Начало работы с IoT и MQTT: урок без кода для ESP8266
MQTT — легковесный мессенджер, лежащий в основе большинства IoT-решений. Это руководство показывает, как запустить полный код-фри workflow: датчик ESP8266 публикует данные на Raspberry Pi под Node-RED, где показания появляются в живой панели.
Почему MQTT важен для IoT
Модель publish/subscribe MQTT держит сетевой трафик минимальным и создана для ненадежных или низкопропускных соединений — именно то, что требуется большинству IoT-развертываний. Используя открытые стандарты вроде Arduino, MQTT и Node-RED, можно быстро прототипировать без написания ни строки кода.
Что понадобится
- Модуль ESP8266 (здесь называемый «IoT Octopus») с датчиком Bosch BME280 (температура, давление, влажность)
- Raspberry Pi с Raspbian (тестировано на релизе 2018-06-27)
- Node-RED (предустановлен на новых образах Raspbian, иначе установите вручную)
- MQTT-брокер Mosquitto – https://mosquitto.org
- Arduino IDE 1.8.5 (портативная версия входит в пакет IoT Werkstatt)
- Ardublock — визуальный блочный редактор, автоматически генерирующий Arduino-код
Шаг 1: Скачайте пакет IoT Werkstatt
Заберите IoT Werkstatt ZIP. Он включает портативный Arduino 1.8.5, все нужные библиотеки и Ardublock с готовыми «суперблоками» для типичных IoT-задач.
Шаг 2: Подготовка ESP8266
Откройте Ardublock и загрузите предоставленный XML-проект. Настройте Wi-Fi SSID/пароль и укажите MQTT-настройки на адрес брокера вашего Raspberry Pi. Выберите датчик Bosch BME280 и создайте отдельный топик для каждого измерения (например, home/room1/temperature).
Нажмите Upload to Octopus — Arduino IDE скомпилирует сгенерированный скетч и прошьет его в ESP8266. После запуска устройство публикует данные датчика в MQTT-брокер.
Шаг 3: Настройка MQTT-брокера на Raspberry Pi
На Pi установите Mosquitto:
sudo apt-get update sudo apt-get install mosquitto mosquitto-clients
Запустите брокер (он автозапускается при загрузке). Для базовой локальной настройки дополнительная конфигурация не нужна.
Шаг 4: Импорт Node-RED flow
Откройте Node-RED (https://localhost:1880) и вставьте предоставленный JSON flow. Дважды кликните каждый MQTT input node, чтобы задать адрес брокера и учетные данные.
Панель debug справа покажет входящие сообщения, как только ESP8266 начнет публиковать.
Шаг 5: Добавление панели управления
В Node-RED установите палитру node-red-dashboard. Flow уже содержит конфигурацию UI панели.
После установки панель доступна по https://localhost:1880/ui и покажет живые графики температуры, давления и влажности.
Опционально: Защита панели
Для защиты UI включите httpNodeAuth в settings.js как описано в документации безопасности Node-RED.
Быстрый старт Raspberry Pi
- Скачайте Raspbian с официального сайта Raspberry Pi и прошейте на 32 ГБ SD-карту.
- Включите Wi-Fi и SSH для headless-настройки:
- Создайте пустой файл
sshв разделе/boot. - Поместите
wpa_supplicant.confс деталями сети:
country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="YourNetworkSSID" psk="YourNetworkPassphrase" key_mgmt=WPA-PSK } - Создайте пустой файл
- Загрузите Pi, затем обновите ОС:
sudo apt-get update sudo apt-get upgrade
- Установите Mosquitto (см. Шаг 3).
- Если Node-RED не предустановлен, выполните:
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
- Включите автозапуск Node-RED:
sudo systemctl enable nodered.service
- Установите ноду dashboard:
sudo apt-get install npm sudo npm install -g npm hash -r cd ~/.node-red npm i node-red-dashboard node-red-start
После запуска Node-RED доступен по https://localhost:1880, панель — по https://localhost:1880/ui.
Управление Node-RED
node-red-start— запуск Node-REDnode-red-stop— остановка Node-REDsudo systemctl— контроль сервисаsudo journalctl -f -u nodered -o cat— просмотр логов в реальном времени
Что дальше?
Расширьте проект машинным обучением: установите TensorFlow на Pi (pip3 install tensorflow) и добавьте палитру node-red-contrib-machine-learning для внедрения AI в панель.
Ссылки
— DONE —
Производственный процесс
- Наука текстилей: глубокое погружение в кислотные, реактивные, кожевенные и прямые красители
- Интеграция метеостанции с CWOP: практическое руководство
- Освоение PSoC 6 Pioneer Board с IoT Add-On Shield: руководство разработчика
- IoT революционизирует полевой сервис: предиктивное обслуживание и выше ROI
- Как умные города используют IoT, микросервисы и дашборды для эффективного управления активами
- Как IoT трансформирует мобильные приложения и драйвит бизнес-инновации
- Устранение слепой зоны IoT в постпандемийном мире
- IoT World: внутри Big-Data решения Vertica для IoT-аналитики
- Переосмысление ценности в промышленном ИоТ: от отслеживания к трансформации
- Software AG прогнозирует следующую волну роста IoT