ESP, IoT Весы с телеграм-ботом

IEA4

★✩✩✩✩✩✩
13 Фев 2023
3
10
Приветствую !
Рад представить вниманию изучающего весы с возможностью передачи показаний телеграм-боту.

Принцип работы:
Посредством модуля на основе тензодатчика и микросхемы HX711 производится измерение веса. Результат выводится на семисегментный четырёхразрядный дисплей 74HC595. Последовательность последних измерений передаётся телеграм-боту. В заданный промежуток времени происходит добавление в файл значения результата измерения и времени, соответствующего моменту измерения. По мере накопления данных производится отправка этого файла. По завершению всех необходимых действий устройство уходит в глубокий сон на заданный в коде период времени. Всем процессом управляет Wemos D1 Mini -- плата на базе ESP8266.
Схема соединений:

Схема соединений.jpeg


Возможности:
  • отображение текущего веса на дисплее при каждом пробуждении по таймеру или нажатию на кнопку "ВЗВЕСИТЬ";
  • клик кнопкой "ТАРИРОВАТЬ" от двух до четырёх раз производит тарирование весов, ровно пять -- тарирование, плюс удаление всей имеющейся информации о весе-времени, в том числе файлов;
  • отправка телеграм-боту при каждом пробуждении: текущего напряжения источника питания, последних измерений в виде последовательности, а при накоплении достаточного количества значений, гистограммы для возможности визуально оценить тренд;
  • подытоживание суточного изменения веса в заданное время дня или ночи;
  • сохранение данных в энергонезависимую память, т.е. результаты измерения не теряются в случае отключения питания;
  • отправка телеграм-боту файла результатов измерения-времени для возможности просмотра истории изменения веса автоматически по периоду и по запросу в чате (ввести и отправить "result");
  • точная длительность сна: достигается добавлением поправки к заданному периоду сна, которая высчитывается при каждом пробуждении;
  • при отсутствии связи по вай-фай или при невозможности получить текущее время из отправленного сообщения -- сон на период сна по умолчанию;
  • ОТA-обновление прошивки: скомпилировать bin-файл и скинуть в чат;
  • показания веса неизменны при постоянной температуре, при переменной желательна термокомпенсация, т.к. возможно отклонение от действительного значения: по наблюдениям в среднем на 10г/*С (в планах добавить учитывание влияния температуры на показание).

Ссылка на исходники (код, список компонентов, схемы): https://github.com/IEA4/Apiary-WiFi_scales
Пример реализации -- пасечные весы: https://dzen.ru/video/watch/676d21f051eaa6586b929cf7

Как пользоваться:
После сборки по схеме соединений первым делом необходимо получить коэффициент перевода сырого веса в граммы, для этого загрузить скетч из папки Get_koef_k_for_HX711. Следующим действием в коде из папки Send_recent_long_result прописать свои настройки вай-фай, телеграм-бота и коэффициент перевода сырого веса в граммы. Когда от бота будет получен файл result.txt, запустив код из Grafic_result.py (оба файла должны находиться в одной папке) в окне браузера можно получить красивую картинку с графиком изменения веса по датам с возможностью масштабирования.