Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Бесшовная MQTT интеграция: NodeMCU DHT22 сенсоры с Raspberry Pi 3 B+ как брокер

Разверните масштабируемое IoT решение, связывающее NodeMCU микроконтроллеры с DHT22 датчиками температуры/влажности к Raspberry Pi 3 B+, выступающему как MQTT брокер. Данные визуализируются в реальном времени в IoT MQTT Panel App.

В этом гайде я прохожу через аппаратные соединения, настройку ПО и структуру кода, позволяющую добавлять или удалять сенсорные ноды простой правкой MQTT топиков. Когда сеть падает, каждый NodeMCU продолжает паблишить локально; позже можно переподключиться к брокеру для восстановления буферизованных данных.

1. Сетевая архитектура

Типовая раскладка ставит Raspberry Pi в LAN и каждый NodeMCU за тем же Wi-Fi роутером. Сенсоры читают значения каждые 10 секунд и паблишат в отдельные топики вроде /room1/temperature и /room1/humidity. Брокер слушает на порту 1883 и форвардит сообщения в MQTT Panel App.

2. ПО предпосылки

2.1 Arduino IDE библиотеки

2.2 Raspberry Pi Python зависимости

3. Прошивка прошивки

Прошейте NodeMCU предоставленным скетчем, затем запустите Python скрипт на Raspberry Pi для подписки на топики и хранения данных.

4. Обзор скетча NodeMCU

#include <ESP8266WiFi.h> // ESP8266 Wi‑Fi library
#include <PubSubClient.h> // MQTT client
#include "DHT.h" // DHT sensor library
const char* mqtt_server = "Broker_IP_Address"; // Замените на IP Pi
const char* clientID = "room1"; // Идентификатор ноды
const char* topicT = "/room1/temperature"; // Топик температуры
const char* topicH = "/room1/humidity"; // Топик влажности
const char* willTopic = "/room1/status"; // Will топик
const char* willMessage = "0"; // 0 = disconnected
int willQoS = 0;
boolean willRetain = true;
int counter = 0;
const char* swversion = "1.0";
WiFiClient wifiClient;
PubSubClient client(mqtt_server, 1883, wifiClient);
DHT dhtA(2, DHT22); // DHT22 на NodeMCU пине D4 (GPIO2)
void setup() {
  Serial.begin(9600);
  Serial.print(swversion);
  dhtA.begin();
  delay(2000); // Allow Wi‑Fi to settle
  if (client.connect(clientID, "", "", willTopic, willQoS, willRetain, willMessage, true)) {
    Serial.println("Connected to MQTT broker");
  }
}

Замените Broker_IP_Address на локальный IP Pi (напр., 192.168.1.200). Чтобы найти, выполните ifconfig wlan0 на Pi.

willTopic и willMessage позволяют брокеру детектировать неожиданное отключение ноды, паблиша удержанный статус «0», визуализируемый в панели.

5. Скрипт подписчика Raspberry Pi

Python скрипт создает постоянное соединение с брокером, подписывается на релевантные топики и пишет входящие данные в CSV файл для последующего анализа.

6. Масштабирование системы

Чтобы добавить новую комнату, просто продублируйте скетч, измените clientID, topicT, topicH, willTopic на новое имя комнаты, и загрузите на другой NodeMCU. MQTT Panel App автоматически детектирует новые топики, если добавите их в UI.

Когда сетевая связность теряется, NodeMCU продолжает паблишить в локальную очередь брокера. После восстановления связи сообщения сбрасываются, обеспечивая отсутствие потери данных.

Следите за обновлениями, и ждите демо-видео всей системы в действии.

Производственный процесс

  1. Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
  2. Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
  3. Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
  4. Raspberry Pi 3 B+ — Обновленные характеристики, спецификации и руководство по покупке
  5. Создание робота на Raspberry Pi и Python: полное руководство
  6. Гальваническое покрытие vs Анодирование: ключевые различия для обработки поверхностей металлов
  7. Черные и цветные металлы: ключевые различия, свойства и применение
  8. Пайка (бразинг) vs Паяльник (солдеринг): ключевые отличия
  9. Сверление, растачивание и резьбование: ключевые отличия
  10. Шуруповальный и строгальный станки: ключевые отличия