Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Comunicação MQTT entre NodeMCU e Raspberry Pi 3 B +


Usando MQTT, NodeMCU, DHT22, RaspberryPi e IoT MQTT Panel para monitorar temperatura e umidade.

Usando um Raspberry Pi 3 B + como corretor para vários NodeMCU com sensores DHT-22, medindo temperatura e umidade e monitorando no aplicativo IoT MQTT Panel. Eu fiz o algoritmo para NodeMCU e Raspberry escalável. Basta alterar os tópicos publicados e assinados e adicionar IoT MQTT Panel App para ter todos os dados disponíveis a qualquer momento.

Pesquisei muitas informações na Internet, pois não tenho conhecimento de raspberry, python e MQTT. Então, eu resumi tudo que aprendi e dei crédito a esses sites.

Se sua conexão com a Internet for perdida, seus sensores continuarão enviando dados para seu corretor. O que significa que você pode salvar seus dados !!! (é claro que você precisa fazer alguma programação)

Por favor, siga-me para quaisquer atualizações. Em breve postarei um vídeo de tudo rodando! 🙂

1. Conectando coisas:


Qual será a aparência da sua rede:

2. Coisas de programação:


Primeiro, você precisa ter certeza de que todas as bibliotecas estão instaladas em seu Arduino IDE e em seu Raspberry Pi 3B +.

2.1 Arduino


Instale as bibliotecas em seu Arduino IDE.

2.2 Raspberry Pi 3 b +


Instale as bibliotecas em seu Python IDE.

2.3 Carregando códigos


Faça upload dos códigos respectivamente para seu NodeMCU e Raspberry.

2.4 Explicando o código - ARDUINO IDE


Essas são as bibliotecas mencionadas antes para serem instaladas em seu Arduino IDE.
  #include  // Esp8266 / Biblioteca NodeMCU # include  // Biblioteca MQTT # include "DHT.h" // Sensor DHT  

Variáveis ​​declaradas para serem usadas em todo o código:
  const char * mqtt_server ="Broker_IP_Address"; // Endereço IP do servidor MQTT  

mqtt_server :para obter o endereço IP no Raspberry pi, abra uma tela de terminal e digite:
  [email protected]:~ $ ifconfigwlan0:flags =4163  mtu 1500 inet 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.255  

Neste exemplo, o endereço IP seria 192.168.1.200
  const char * clientID ="room1"; // O ID do cliente identifica o dispositivo NodeMCU.  

ID do cliente :Qualquer nome ou número para identificar o NodeMCU que você está usando. Nesse caso, ele estará localizado na sala 1. Portanto, é denominado room1.
  const char * topicT ="/ room1 / temperature"; // Topic temperatureconst char * topicH ="/ room1 / umidade"; // Umidade do tópico  

tópicoT :Tópico para publicar a temperatura. Neste exemplo, para a temperatura ambiente1, o tópico será “/ ambiente1 / temperatura”.

tópicoH :Tópico para publicar umidade. Neste exemplo, para a umidade da sala1, o tópico será “/ sala1 / umidade”.
  const char * willTopic ="/ room1 / status"; // Status do tópicoconst char * willMessage ="0"; // 0 - Desconectado  

willTopic :Tópico para publicar o testamento. Isso será usado para verificar se o NodeMCU está conectado / ligado. Se desconectar, publicará o willMessage para o willTopic. Neste caso, “/ room1 / status”

willMessage :Mensagem a ser publicada em willTopic se o NodeMCU estiver desconectado / desligado.
  int willQoS =0; boolean willRetain =true;  

willQoS :Usado para definir a qualidade do serviço. Neste caso, 0.

willRetain :Usado para reter a mensagem em caso de desconexão. Defina como Verdadeiro.
  int counter =0; // Usado para reconectar ao MQTT serverconst char * swversion ="1.0"; // Versão do software  

contador :contador usado na rotina de reconexão.

swversion :usado para controlar minha revisão de software.
  WiFiClient wifiClient; cliente PubSubClient (mqtt_server, 1883, wifiClient); // 1883 é a porta do ouvinte para o Broker  

wifiClient :Cria um cliente que pode se conectar a um endereço IP e porta da Internet especificados, conforme definido em client.connect ().

cliente () :Cliente é a classe base para todas as chamadas baseadas em clientes WiFi. Ele não é chamado diretamente, mas sim sempre que você usa uma função que depende dele.
  DHT dhtA (2, DHT22); // Instância DHT chamada dhtA, Pin on NodeMCU D4 e tipo de sensor  

DHT :Cria uma instância chamada dhtA e atribui o pino 2 do NodeMCU V3 (D4) do sensor DHT-22. De acordo com os esquemas abaixo. Se você quiser usar outro pino, altere o valor para o pino correto. Antes de mudar o pino usado, verifique a pinagem abaixo para atribuir o pino correto.

Se você estiver usando DHT-11, seria:

NOTA: Se você estiver usando a mesma biblioteca que eu. Se você usar uma biblioteca diferente, verifique a documentação da biblioteca para verificar como você deve declarar o pino e os sensores usados.

configuração vazia () :Aqui inicializamos as coisas.
  void setup () {Serial.begin (9600); // Para fins de depuração, verifique se o DHT e a conexão com o MQTT Broker estão funcionandoSerial.print (swversion); // Depure. Versão do softwaredhtA.begin (); // Iniciando o DHT-22  

Conectando-se ao corretor MQTT.
  delay (2000); // Atrase para permitir a primeira conexão com o MQTT Broker  

atraso (2000) :aumenta o tempo se a primeira conexão falhar. Neste caso, 2000 permite que o NodeMCU se conecte ao Broker.
  if (client.connect (clientID, "", "", willTopic, willQoS, willRetain, willMessage, true)) {// Conectando ao Broker MQTT  

client.connect () :explicado abaixo. Retirado de:https://pubsubclient.knolleary.net/api.html#connect5

____________________________________________________________

conexão booleana (clientID, nome de usuário, senha, willTopic, willQoS, willRetain, willMessage, cleanSession)

Conecta o cliente com uma mensagem Will, nome de usuário, senha e sinalizador de sessão limpa especificado.

Nota :mesmo se a cleanSession está definido como false / 0 o cliente não tente novamente qos 1 com falha publica. Este sinalizador é útil apenas para manter assinaturas no corretor.

Parâmetros

Devoluções

Fonte:comunicação MQTT entre NodeMCU e Raspberry Pi 3 B +

Processo de manufatura

  1. Sensor de temperatura Python e Raspberry Pi
  2. Temperatura do Raspberry Pi e sensor de luz
  3. Sensor Raspberry Pi e controle do atuador
  4. NOVO FRAMBOESA PI 3 MODELO B + RECURSOS E COMPRA
  5. Construindo robôs com Raspberry Pi e Python
  6. Diferença entre galvanoplastia e anodização
  7. Diferença entre metais não ferrosos e ferrosos
  8. Diferença entre brasagem e solda
  9. Diferença entre furação, mandrilamento e alargamento
  10. Diferença entre máquina modeladora e plaina