Контроль влажности и температуры в погребе, подвале.

Внимание! На ардуино.ру аналогичный проект и даже пришпилен, чтобы не потеряться. Ардуинщикам сюда: http://arduino.ru/forum/proekty/kontrol-vlazhnosti-podvala-arduino-pro-mini

Или вот еще от тех же пастухов сферических коней: http://arduino.ru/forum/proekty/kontrol-vlazhnosti-podvala-ver20-stm32-set 🙂


Тема для поддержки проекта на ESP32, если он кому-то будет интересн.

В силу специфичности устройства, не вижу необходимости делать для него большую заметку с детальным описанием.

Глобально:

Если в подземелье с WiFi проблем нет — все упрощается. Основное устройство подготовлено к работе с брокером напрямую:

Ниже плюсы и минусы не показаны. Трик: плюсы соединять с плюсами, минусы — с минусами.

И главное. В целом, не нужно устройству никакой связи ни с чем. Тот блок, что в подвале работает сам без всякого внешнего управления. Сам анализирует обстановку, принимает решение о включении вентилятора или нагревателя. Связь предназначена для познания ситуации под землей, но для управления абсолютно не нужна.

Рабочий код лежит по адресу: https://github.com/igorkkk/cellar

Вопросы здесь. Ответы путем редактирования этой заметки.


Здравствуйте. На каком железе лучше собрать (esp32 или esp8266) . Возможно применить bme280.

В целом, это устройство состоит из двух железок. В подвале находится ESP32, помогает ему пробиться наружу — ESP8266. Обе железки переговариваются через HC-12.

То что в погребе — ESP32. Там железно два UART, что сильно радует. По одному — настройка, кодинг, по другому — связь, которая тоже требует наблюдения.

ESP8266 имеет только один UART, софтверный работает, ИМХО, так себе. Можно обойтись и им, но лучше заняться чем-то более полезным в то время, которое потребуется для настройки.

Читать далее «Контроль влажности и температуры в погребе, подвале.»

ESP-8266: отправка многих данных на брокер MQTT.

Решение простое, почему раньше не додумался — ума не приложу.

Исходная обстановка — делаем таблицу для отправки на брокер. Вариантов два:

data = {
    t = 25.0,
    hume = 45
}

Второй

data = {
    {"t", 25.0},
    {"hume", 45}
}

В чем смысл? Пишем обычную функцию отправки данных на брокер и вызываем в callback(е) рекурсивно саму себя. Данные из таблицы извлекаем путем удаления элементов:

Читать далее «ESP-8266: отправка многих данных на брокер MQTT.»

Модуль антидребезга для ESP-8266 (lua debounce)

Руки дошли, накидал модуль. Оный узнает три длительности нажатия, короткое, среднее и (никогда не догадаетесь!) длинное.

Короткое до секунды, среднее — более секунды, длинное — более 2,5. Или сами настроите.

При удержании более 2,5 с оно срабатывает без дальнейшего выяснения физических возможностей нажимающего.
Можно применять не все или пропускать применение нажатия.

Вот модуль с именем debMod.lua:

Читать далее «Модуль антидребезга для ESP-8266 (lua debounce)»