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

Связь MQTT между NodeMCU и Raspberry Pi 3 B +

Использование MQTT, NodeMCU, DHT22, RaspberryPi и IoT MQTT Panel для мониторинга температуры и влажности.

Использование Raspberry Pi 3 B + в качестве брокера для нескольких NodeMCU с датчиками DHT-22, измеряющими температуру и влажность, и монитором в приложении IoT MQTT Panel. Я сделал алгоритм для NodeMCU и Raspberry расширяемым. Просто измените темы, опубликованные и подписанные, и добавьте в приложение IoT MQTT Panel, чтобы все данные были у вас под рукой в ​​любое время.

Я искал в Интернете много информации, так как ничего не знаю о малине, питоне и MQTT. Итак, я обобщил все, чему научился, и дал высокую оценку этим веб-сайтам.

Если ваше интернет-соединение потеряно, ваши датчики будут продолжать отправлять данные вашему брокеру. Это означает, что вы можете сохранить свои данные !!! (конечно, вам нужно заняться программированием)

Пожалуйста, следите за мной за любыми обновлениями. Скоро выложу видео, как все работает! 🙂

1. Соединяем вещи:

Как ваша сеть будет выглядеть:

2. Программирование:

Сначала вы должны убедиться, что в вашей Arduino IDE и на Raspberry Pi 3B + установлены все библиотеки.

2.1 Arduino

Установите библиотеки в свою среду разработки Arduino.

2.2 Raspberry Pi 3 b +

Установите библиотеки в свою среду разработки Python.

2.3. Коды загрузки

Загрузите коды соответственно в свои NodeMCU и Raspberry.

2.4 Объяснение кода - ARDUINO IDE

Это упомянутые ранее библиотеки для установки в вашу среду разработки Arduino.

  #include  // Библиотека Esp8266 / NodeMCU # include  // Библиотека MQTT # include "DHT.h" // Датчик DHT  

Переменные, объявленные для использования во всем коде:

  const char * mqtt_server ="Broker_IP_Address"; // IP-адрес сервера MQTT  

mqtt_server :чтобы получить IP-адрес на Raspberry pi, откройте экран терминала и введите:

  [электронная почта защищена]:~ $ ifconfigwlan0:flags =4163  mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255  

В этом примере IP-адрес будет 192.168.1.200

  const char * clientID ="room1"; // Идентификатор клиента идентифицирует устройство NodeMCU.  

clientID :Любое имя или номер, идентифицирующий используемый вами NodeMCU. В этом случае он будет расположен в room1. Итак, он называется room1.

  const char * topicT ="/ room1 / temperature"; // Температурная константа темы char * topicH ="/ room1 / влажность"; // Влажность темы  

topicT :Тема для публикации температуры. В этом примере для комнатной температуры будет тема «/ room1 / temperature».

topicH :Тема для публикации влажности. В этом примере для влажности в комнате1 тема будет «/ room1 / влажность».

  const char * willTopic ="/ room1 / status"; // Статус темыconst char * willMessage ="0"; // 0 - отключено  

willTopic :Тема для публикации завещания. Это будет использоваться для проверки подключения / включения NodeMCU. Если он отключится, он опубликует willMessage в willTopic. В этом случае «/ room1 / status»

willMessage :Сообщение будет опубликовано на willTopic если NodeMCU отключен / выключен.

  int willQoS =0; логическое willRetain =true;  

willQoS :Используется для установки качества обслуживания. В данном случае 0.

willRetain :Используется для сохранения сообщения в случае отключения. Установите значение True .

  int counter =0; // Используется для переподключения к серверу MQTTconst char * swversion ="1.0"; // Версия программного обеспечения  

счетчик :счетчик, используемый при повторном подключении.

поворот :используется для управления моей версией программного обеспечения.

  WiFiClient wifiClient; клиент PubSubClient (mqtt_server, 1883, wifiClient); // 1883 - порт слушателя для брокера  

wifiClient :Создает клиента, который может подключаться к указанному IP-адресу и порту в Интернете, как определено в client.connect ().

client () :Client - это базовый класс для всех вызовов через Wi-Fi-клиент. Он не вызывается напрямую, но вызывается всякий раз, когда вы используете функцию, которая на него полагается.

  DHT dhtA (2, DHT22); // Экземпляр DHT с именем dhtA, вывод на NodeMCU D4 и тип датчика  

DHT :Создает экземпляр с именем dhtA и назначает контакт 2 NodeMCU V3 (D4) датчика DHT-22. Согласно схемам ниже. Если вы хотите использовать другой вывод, измените значение на правильный вывод. Перед изменением используемого пина проверьте распиновку ниже, чтобы назначить правильный пин.

Если вы используете DHT-11, это будет:

ПРИМЕЧАНИЕ. Если вы используете ту же библиотеку, что и я. Если вы используете другую библиотеку, проверьте документацию библиотеки, чтобы узнать, как следует объявлять используемые штырьки и датчики.

void setup () :Здесь мы инициализируем вещи.

  void setup () {Serial.begin (9600); // В целях отладки проверяется, работают ли DHT и соединение с MQTT Broker Serial.print (swversion); // Debug. Версия программного обеспечения dhtA.begin (); // Запуск DHT-22  

Подключение к брокеру MQTT.

  задержка (2000); // Задержка для разрешения первого соединения с MQTT Broker  

задержка (2000) :увеличить время, если первое соединение не удалось. В этом случае 2000 позволяет NodeMCU подключиться к брокеру.

  if (client.connect (clientID, "", "", willTopic, willQoS, willRetain, willMessage, true)) {// Подключение к брокеру MQTT  

client.connect () :объяснено ниже. Взято с:https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

логическое соединение (clientID, имя пользователя, пароль, willTopic, willQoS, willRetain, willMessage, cleanSession)

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

Примечание :даже если cleanSession установлено значение false / 0 клиент не повторить попытку не удалось QOS 1 публикует. Этот флаг используется только для поддержки подписок на брокере.

Параметры

Возврат

Источник:Связь MQTT между NodeMCU и Raspberry Pi 3 B +


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

  1. Датчик температуры Python и Raspberry Pi
  2. Датчик температуры и освещенности Raspberry Pi
  3. Управление датчиком и исполнительным механизмом Raspberry Pi
  4. НОВАЯ МОДЕЛЬ B + МАЛИНЫ PI 3 ФУНКЦИИ И ПОКУПКА
  5. Создание роботов с Raspberry Pi и Python
  6. Разница между гальванопокрытием и анодированием
  7. Разница между цветными и черными металлами
  8. Разница между пайкой и пайкой
  9. Разница между сверлением, растачиванием и развертыванием
  10. Разница между формовочным и строгальным станком