Мини-кейс 3: Домашняя метеостанция
Метеостанция с показаниями данных с датчиков.
Перед выполнением прочтите
Информация про датчик температуры и влажности dht11 от Амперки: http://wiki.amperka.ru/%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D1%8B:troyka-dht11
Информация про библиотеку работы по таймеру GTimer: https://alexgyver.ru/gyvertimer/
Создание мини-проекта
Сделаем мини-проект с RGB модулем, который управляется через интерфейс RainMaker. Представим, что наш RGB модуль будет умной лампочкой, которая может менять цвет.
Нужно собрать устройство. К
GPIO 17
подключить датчик температуры и влажности Troyka контактом. Распиновка платы на родительской странице "О ESP32". Питание для него от пина3.3v
.Создаём новый файл в Arduino IDE с кодом:
Изучите код, прочитайте комментарии к код!
Обратите своё внимание, что на 83 строке, когда создаётся параметр
humidity_c_param
дефолтное значение (в функции value()) записывается как строка. RainMaker понимает её как массив символов. Если дальше передавать в сервис новые данные для этого параметра без обработки, тогда в монитор порта будет выводится ошибка:
"New param value type not same as the existing one."
, что значит то, что новое отправленное значение другого типа.Поэтому перед отправкой нужно данные переконвертировать в старый тип данных, что делается в строке 108:
String(temp, 1).c_str())
. Сначала переменная типа float переводится в строку и остётся только 1 знак после запятой. Далее эта строка переводится в массив символов.Также обратите внимание на строки 110 и 111, тут в функции printf указывается, что число типа float %.1f выведется только с одним знаком после запятой.
Прочитайте о функции printf! Ещё обратите внимание в данном мини-кейсе отстутствуют строки, которые отвечают за параметр POWER. Это означает, что в интерфейсе RainMaker не будет кнопки отключения.
Скачайте и добавьте библиотеки
DHT sensor library от Adafruit
иGyverTimer
. Вы можете это сделать через пункт"Управление библиотками"
или скачать из интернета и добавить как zip библиотеку.Обратите внимание, что библиотека
TroykaDHT
от разработчиков модуля не работает с ESP32.В инструментах вы должны выбрать:
Плата: ESP32 Arduino > ESP32 Dev Module;
Partition Scheme: RainMaker.
И выберите порт платы. Загрузите прошивку. Никаких пинов для перевода контроллера в режим прошивки зажимать не нужно.
Далее дайдите в монитор порта, установить скорость
115200
. Выведется информация о том, как подключить плату к сервису. Там должна быть строка с QR-кодом и ссылка. Скопируйте ссылку и вставьте в адресную строку браузера.На этом этапе могут возникнуть две известные проблемы...
Плата пишет что-то на английском, но не выдаёт ссылку, тогда нужно сбросить настройки WI-FI, зажав
BOOT
на 3 секунды и отпустив. * Если плата уже была до этого настроена, тогда она будет выводить после прошивки текст на английском, QR-код уже не выведется. Это нормально, но пользоваться дальше можно!Плата пишет всякие кракозябры, хотя скорость последовательного порта выставлена верно. Вам нужно сбросить настройки прошивки. Для этого зажмите кнопку
BOOT
на плате на 10 секунд. По истечению времени отпустите, плата перезапустит код и в монитор порта текст станет читабельный и выведется ссылка.
Откройте приложение
RainMaker
. В приложении RainMaker нажать на кнопку с иконкойПЛЮС
, запуститься сканер QR-кода.Отсканировать сканером QR-код с страницы с браузера.
В приложении
RainMaker
выбрать точку доступа для устройства, дать пароль и подождать подключения и всяких других настроек.На главной странице
RainMaker
появится или обновится ваш девайс.
Дополнительное задание:
Сделать, чтобы в интерфейс RainMaker выводилась ещё и влажность с датчика.
Last updated