Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Comunicación MQTT entre NodeMCU y Raspberry Pi 3 B +

Usando MQTT, NodeMCU, DHT22, RaspberryPi y IoT MQTT Panel para monitorear la temperatura y la humedad.

Usar una Raspberry Pi 3 B + como intermediario para varios NodeMCU con sensores DHT-22 que miden la temperatura y la humedad y monitorean en la aplicación IoT MQTT Panel. Hice escalable el algoritmo para NodeMCU y Raspberry. Simplemente cambie los temas publicados y suscritos y agregue la aplicación IoT MQTT Panel para tener todos los datos a su alcance en cualquier momento.

He buscado en Internet mucha información porque no tengo conocimiento de frambuesa, pitón y MQTT. Entonces, resumí todo lo que aprendí y le di crédito a esos sitios web.

Si su conexión a Internet se pierde, sus sensores seguirán enviando datos a su corredor. ¡¡¡Lo que significa que puede guardar sus datos !!! (por supuesto que necesita hacer algo de programación)

Síganme para recibir actualizaciones. ¡Pronto publicaré un video de todo funcionando! 🙂

1. Conectando cosas:

Cómo se verá su red:

2. Programación de cosas:

Primero debe asegurarse de tener todas las bibliotecas instaladas en su Arduino IDE y en su Raspberry Pi 3B +. ​​

2.1 Arduino

Instale las bibliotecas en su Arduino IDE.

2.2 Raspberry Pi 3 b +

Instale las bibliotecas en su Python IDE.

2.3 Subiendo códigos

Sube los códigos respectivamente a tu NodeMCU y Raspberry.

2.4 Explicando el código - ARDUINO IDE

Esas son las bibliotecas mencionadas anteriormente para instalar en su IDE de Arduino.

  #include  // Esp8266 / NodeMCU Library # include  // MQTT Library # include "DHT.h" // Sensor DHT  

Variables declaradas para ser utilizadas en todo el código:

  const char * mqtt_server ="Broker_IP_Address"; // Dirección IP del servidor MQTT  

mqtt_server :para obtener la dirección IP en Raspberry pi, abra una pantalla de terminal y escriba:

  [email protected]:~ $ ifconfigwlan0:flags =4163  mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255  

En este ejemplo, la dirección IP sería 192.168.1.200

  const char * clientID ="room1"; // La identificación del cliente identifica el dispositivo NodeMCU.  

ID de cliente :Cualquier nombre o número para identificar el NodeMCU que está utilizando. En este caso estará ubicado en la habitación 1. Por eso se llama habitación1.

  const char * topicT ="/ room1 / temperature"; // Tema temperatureconst char * topicH ="/ habitación1 / humedad"; // Tema humedad  

topicT :Tema para publicar la temperatura. En este ejemplo, para la temperatura ambiente1, el tema será "/ ambiente1 / temperatura".

topicH :Tema para publicar humedad. En este ejemplo, para la humedad de la habitación 1, el tema será "/ habitación1 / humedad".

  const char * willTopic ="/ room1 / status"; // Tema Statusconst char * willMessage ="0"; // 0 - Desconectado  

willTopic :Tema para publicar el testamento. Esto se usará para verificar si el NodeMCU está conectado / encendido. Si se desconecta, publicará el willMessage al willTopic. En este caso "/ room1 / status"

willMessage :Mensaje que se publicará en willTopic si el NodeMCU está desconectado / apagado.

  int willQoS =0; boolean willRetain =true;  

willQoS :Se utiliza para establecer la calidad del servicio. En este caso 0.

willRetain :Se utiliza para retener el mensaje de voluntad en caso de desconexión. Establecer en Verdadero

  int contador =0; // Se utiliza para volver a conectarse a MQTT serverconst char * swversion ="1.0"; // Versión de software  

contador :contador utilizado en la rutina de reconexión.

swversion :utilizado para controlar la revisión de mi software.

  WiFiClient wifiClient; Cliente PubSubClient (mqtt_server, 1883, wifiClient); // 1883 es ​​el puerto de escucha del Broker  

wifiClient :Crea un cliente que puede conectarse a una dirección IP de Internet y un puerto especificados como se define en client.connect ().

cliente () :Cliente es la clase base para todas las llamadas basadas en clientes WiFi. No se llama directamente, sino que se invoca cada vez que utiliza una función que se basa en ella.

  DHT dhtA (2, DHT22); // Instancia DHT llamada dhtA, Pin en NodeMCU D4 y tipo de sensor  

DHT :Crea una instancia llamada dhtA y asigna el pin 2 del NodeMCU V3 (D4) del sensor DHT-22. Según los esquemas a continuación. Si desea utilizar otro pin, cambie el valor al pin correcto. Antes de cambiar el pin utilizado, verifique el pinout a continuación para asignar el pin correcto.

Si está utilizando DHT-11, sería:

NOTA: Si está utilizando la misma biblioteca que yo. Si usa una biblioteca diferente, consulte la documentación de la biblioteca para verificar cómo debe declarar el pin y los sensores utilizados.

configuración nula () :Aquí inicializamos las cosas.

  void setup () {Serial.begin (9600); // Para fines de depuración, compruebe si DHT y la conexión con MQTT Broker están funcionandoSerial.print (swversion); // Depuración. Versión de software dhtA.begin (); // Iniciando el DHT-22  

Conectando con el corredor de MQTT.

  retraso (2000); // Retraso para permitir la primera conexión con MQTT Broker  

retraso (2000) :aumenta el tiempo si falla la primera conexión. En este caso 2000 permite que NodeMCU se conecte al Broker.

  if (client.connect (clientID, "", "", willTopic, willQoS, willRetain, willMessage, true)) {// Conectando a MQTT Broker  

client.connect () :explicado a continuación. Tomado de:https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

conexión booleana (ID de cliente, nombre de usuario, contraseña, willTopic, willQoS, willRetain, willMessage, cleanSession)

Conecta al cliente con un mensaje Will, nombre de usuario, contraseña y bandera de sesión limpia especificada.

Nota :incluso si la cleanSession está configurado en false / 0 el cliente no reintento fallido qos 1 publica. Esta bandera solo se usa para mantener las suscripciones en el corredor.

Parámetros

Devoluciones

Fuente:Comunicación MQTT entre NodeMCU y Raspberry Pi 3 B +


Proceso de manufactura

  1. Sensor de temperatura Python y Raspberry Pi
  2. Sensor de temperatura y luz Raspberry Pi
  3. Control de actuador y sensor Raspberry Pi
  4. NUEVA FRAMBUESA PI 3 MODELO B + CARACTERÍSTICAS Y COMPRA
  5. Creación de robots con Raspberry Pi y Python
  6. Diferencia entre galvanoplastia y anodizado
  7. Diferencia entre metales no ferrosos y ferrosos
  8. Diferencia entre soldadura fuerte y soldadura blanda.
  9. Diferencia entre taladrado, mandrinado y escariado
  10. Diferencia entre máquina formadora y cepilladora
  11. Diferencia entre bomba centrífuga y recíproca