evgenyD
-
Публикации
6 -
Зарегистрирован
-
Посещение
-
Дней в лидерах
1
Сообщения, опубликованные пользователем evgenyD
-
-
нашел, устранил
- 1
-
20.02.2019 в 09:48, Kitsum сказал:Доброе время суток.
Электронных компонентов для проверки у меня нет, но я постараюсь помочь, опираясь на код библиотеки. Все фактические проверки Вам придется произвести самостоятельно. Я буду использовать эту библиотеку https://github.com/bogde/HX711, Вы можете использовать любую другую, просто действуйте по аналогии.
В первую очередь необходимо определиться с используемыми портами микроконтроллера. Предлагаю задействовать 12 и 13 порты, но т.к они уже были использованы ранее, то в основном файле проекта необходимо закомментировать вызов функции gpio_12_13(). Я выбрал эти порты для примера, возможно Вы задействуете какие ни-ть другие.
/* Инициализация GPIO для управления внешней нагрузкой */ //gpio_12_13(); // Простое превышение температуры или влажности (выставляется в WEB интерфейсе)
Теперь мы уверенны, что порты не заняты и можем переходить к реализации весов.
Я предположу, что для описания сенсоров Вы используете один из пользовательских файлов имена которых начинаются с users_.
В начале файла подключаем выбранную библиотеку.
#include "HX711.h"
Объявляем объект с помощью которого будем работать с весами. При объявлении мы передаем в качестве параметров номера задействованных портов.
HX711 scale(12, 13);
Создадим описание для системы визуализации (плагин Knob).
knob_t *W = new knob_t(-100, 10000, "1", "Вес", "Гр");
Мне не известно какой датчик Вы будите использовать, поэтому значения я выбрал на свое усмотрение. Минимальный вес равен -100 грамм, максимальный 10000 грамм, шаг шкалы 1, описание сенсора "Вес", ну и "Гр" в качестве единиц измерения. Минимальный вес в -100 грамм взят не случайно, так Вам будет проще найти калибровочный коэффициент.
Теперь модифицируем функцию sensors_config() и объявим новый сенсор.
/* Добавление датчиков в систему */ void sensors_config() { /* Тут описан код других датчиков */ scale.set_scale(3); // калибровочный коэффициент scale.tare(); // тарирование sensors.add(W, device::in, "in_weight", [&](){ return scale.get_units() * 0.035274; // перевод в граммы }); }
В теории, этого должно быть достаточно.
Обратите внимание на калибровочный коэффициент, я указал значение 3, у Вас это будет свое значение уникальное для Вашего датчика.
scale.set_scale(3);
Также обратите внимание, что при запуске микроконтроллера происходит тарирование весов.
scale.tare();
Отпишитесь о результатах.
Добрый день!
тензодатчик для весов пока не приехал, жду. возник другой вопросик, не получается отправлять корректно по MQTT в одном сообщении данные по
температуре, влажности и давлению. подставляется содержимое mqtt_path дважды
-
Спасибо огромное , по результату сразу отпишусь
-
Добрый день! вопрос к автору: пожалуйста, посоветуйте как лучше реализовать подключение к данному проекту HX711 c тензодатчиками , из указанных здесь сенсоров хочу использовать только BME280. заранее огромное спасибо.
-
Добрый день! отличнейший проект!!!! очень жду продолжения для ESP32
Метеостанция на ESP8266 от it4it.club
в Espressif Systems
Опубликовано: · Жалоба на ответ
Добрый день! помогите пожалуйста !!!!
подключил два BME280 и тензодатчик, с помощью отдельного скетча нашел калибровочный коэффициент и tareoffset и забил их в скрипте постоянно. т.к. улей на весах должен стоять все время, то тарирование отключил tareoffset (для этого в библиотеке HX711_ADC выставил параметр doTare = 0) и все вроде как замечательно, но так как может понадобиться откалибровать весы заново и выполнить тарирование, сохранить эти параметры для дальнейшего измерения веса и отключить тарирование, добавил в меню Калибровка весов (правда в остальных меню во многих ячейках пропало отображение значений ), а дальше как говориться завис, я только знакомлюсь с программированием .
ESP8266_scale.zip