В этой статье мы расскажем как управлять светодиодом, подключенным к плате esp8266, с помощью платформы (на примере протокола MQTT).
Для начала работы создадим модель устройства в платформе (подробнее о создании модели). Как вариант, можно не создавать новую модель, а расширить уже существующую модель устройства.
Ссылка на разбор этого кейса на нашем YouTube канале.
Чтобы сформировать команду для устройства, создадим новый узел модели в подсистеме команд и выберем тип «Действие». После добавления команды появятся в соответствующем разделе на карточке объекта. Создадим параметр и заполним поле topic — led_on. В поле payload указываем JSON строку со значением кода RGB, чтобы задать желаемый цвет светодиода:
{ "red": 255, "green": 0, "blue": 0 }
Создадим несколько команд для разных цветов.
Получившуюся модель вы можете скачать и импортировать в свой проект:
В примере мы используем плату NodeMCU. Процесс подключения аналогичных плат практически не отличается.
Для начала работы с NodeMCU подключим плату к компьютеру. Для подключения может понадобиться установка драйвера CP2102 (например, (https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers#software)). Откроем Arduino IDE и выберем «Файл» > «Настройки». В окно «Дополнительные ссылки для менеджера плат» вставим ссылку:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
После этого в меню «Инструменты» – «Плата» – «Менеджер плат» выбираем «esp8266» и «Установить последнюю версию». Теперь в меню «Инструменты» – «Плата» находим NodeMCU.
Копируем в среду код примера:
В этом примере наше устройство ожидает команды, в которой будут содержаться значения для управления цветом светодиода. Эти значения отправляются на порт вход/выхода, к которому подключен светодиод. Это позволяет нам с помощью платформы самостоятельно задать цвет горящего светодиода без обновления кода платы, просто редактируем модель устройства, добавляя новые команды или редактируя уже созданные .
Наш макет выглядит следующим образом:
После подключения устройства (появится статус online), мы можем начать отправлять команды. Для этого откроем раздел Команды и выберем нужный цвет. В интерфейсе платформы можно увидеть статус выполнения команды.