
Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03

Neste projeto, irei explicar o que é o protocolo MQTT e como ele é usado para se comunicar entre os dispositivos. Em seguida, como uma demonstração prática, demonstrarei como configurar um sistema cliente e brocker, onde um módulo ESP8266 e também RPi falam um para o outro ou enviar mensagem quando um botão for pressionado.
Material necessário
1. Raspberry Pi 3
2. NodeMCU
3. LED
4. Botão
5. Resistores (10k, 475 ohm)
Etapa 1: O que é MQTT e como funciona
MQTT
MQTT é um protocolo de transferência de dados máquina a máquina (M2M). O MQTT foi criado com o objetivo de coletar dados de muitos dispositivos e, em seguida, transportar esses dados para a infraestrutura de TI. É leve e, portanto, ideal para monitoramento remoto, especialmente em conexões M2M que requerem uma pequena pegada de código ou onde a largura de banda da rede é limitada.
Como o MQTT funciona
MQTT é um protocolo de publicação / assinatura que permite que dispositivos de borda de rede publiquem em um broker. Os clientes se conectam a este corretor, que então medeia a comunicação entre os dois dispositivos. Cada dispositivo pode se inscrever ou registrar-se em tópicos específicos. Quando outro cliente publica uma mensagem em um tópico inscrito, o broker encaminha a mensagem a qualquer cliente que tenha se inscrito.
MQTT é bidirecional e mantém o reconhecimento de sessão com estado. Se um dispositivo de borda de rede perder a conectividade, todos os clientes assinados serão notificados com o recurso "Última Vontade e Testamento" do servidor MQTT para que qualquer cliente autorizado no sistema possa publicar um novo valor de volta para a borda de dispositivo de rede, mantendo a conectividade bidirecional.
O projeto está dividido em 3 partes
Em primeiro lugar, criamos o servidor MQTT no RPi e instalamos algumas bibliotecas.
Em segundo lugar, iremos instalar bibliotecas no Arduino IDE para NodeMCU para trabalhar com MQTT, fazer upload do código e verificar se o servidor está funcionando ou não.
Por fim, criamos um script em Rpi, carregamos o código necessário em NodeMCU e executamos o script python para controlar leds tanto do lado do servidor quanto do cliente. Aqui, o servidor é RPi e o cliente é NodeMCU.
Etapa 2: Raspberry Pi




1. Para instalar o servidor e cliente MQTT mais recente no RPi, para usar o novo repositório, você deve primeiro importar a chave de assinatura do pacote do repositório.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Disponibilize o repositório para o apt.
cd /etc/apt/sources.list.d/
3. Dependendo de qual versão do Debian você está usando.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Instale o servidor Mosquitto usando o comando.
sudo apt-get install mosquitto
Se você está recebendo erros ao instalar o Mosquitto como este.
#################################################################
Os seguintes pacotes têm dependências não atendidas: mosquitto: Depende: libssl1.0.0 (> = 1.0.1) mas não é instalável Depende: libwebsockets3 (> = 1.2) mas não é instalável E: Incapaz de corrigir problemas, você manteve quebrado pacotes.
#################################################################
Em seguida, use este comando para corrigir problemas.
sudo apt --fix-broken install
5. Depois de instalar o servidor MQTT, instale o cliente usando o comando
sudo apt-get install mosquitto-clients
Você pode verificar os serviços usando o comando.
systemctl status mosquitto.service
Como nosso servidor e cliente MQTT está instalado. Agora, podemos verificar usando inscrever-se e publicar. Para assinar e publicar você pode verificar os comandos ou visitar o site conforme fornecido abaixo.
Mosquitto Sub
Mosquitto Pub
Para instalar a biblioteca paho-mqtt, use o comando abaixo.
sudo pip install paho-mqtt
Paho
Etapa 3: como configurar o endereço IP estático

Vá para o diretório cd / etc e abra o arquivo dhcpcd.conf usando qualquer editor. No final, escreva essas quatro linhas.
interface eth0 static ip_address = 192.168.1.100 // ip que você deseja usar
interface wlan0
ip_address estático = 192.168.1.68
roteadores estáticos = 192.168.1.1 // seu gateway padrão
domain_name_servers estático = 192.168.1.1
Depois disso, salve-o e reinicie seu pi.
Etapa 4: NodeMCU




Instale as bibliotecas necessárias no Arduino IDE para NodeMCU
1. Vá para Sketch ==> Incluir biblioteca ==> Gerenciar bibliotecas.
2. Pesquise mqtt e instale a biblioteca de Adafruit ou você pode instalar qualquer biblioteca.
3. Depende da biblioteca sleepydog, portanto, precisamos dessa biblioteca também.
O programa é fornecido acima, apenas para verificar se funciona ou não. Aqui não criei nenhum script em RPi. Estamos apenas usando comandos para assinar e publicar. Vamos criar um script para controle mais tarde.
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ON"
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "OFF"
mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "TOGGLE"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "LIGADO"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "TOGGLE"
-h ==> nome do host-t ==> tópico
-m ==> mensagem
Depois de verificar o programa Mqtt_check, carregue o programa completo no NodeMCU
Etapa 5: Script Python


Como discutido acima, precisamos do script python para controlar leds usando botões. Portanto, vamos criar o script. O script é fornecido acima.
Quando você executa o script, seu script deve ter a aparência mostrada na imagem, se o código do resultado não for zero, então é um erro, você pode verificar o erro no site do paho.
Etapa 6: Conexões e Diagrama de Circuito


Interface de botão, LED com NodeMCU
NodeMCU ===> ButtonGnd ===> Gnd
3,3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Cátodo (-ve)
GPIO5 (D1) ===> Ânodo (+ ve)
Interface de botão, LED com RPi
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Cátodo (-ve)
GPIO 24 ===> Ânodo (+ ve)
Etapa 7: Resultado



Certifique-se de que o script está em execução, caso contrário não será possível controlar o led usando os botões.
Recomendado:
Automação residencial controlada por Internet / nuvem usando Esp8266 (aREST, MQTT, IoT): 7 etapas (com imagens)

Automação residencial controlada por Internet / nuvem usando Esp8266 (aREST, MQTT, IoT): TODOS os créditos para http://arest.io/ pelo serviço em nuvem !! IoT o assunto mais discutido no mundo agora !! Servidores e serviços em nuvem que tornam isso possível são o ponto de atração do mundo de hoje … ELIMINAR A BARREIRA DE DISTÂNCIA foi e é o
Conversor de texto em fala Arduino usando LM386 - Projeto Falando do Arduino - Biblioteca Talkie Arduino: 5 etapas

Conversor de texto em fala Arduino usando LM386 | Projeto Falando do Arduino | Biblioteca Talkie Arduino: Olá pessoal, em muitos dos projetos exigimos que o arduino fale algo como um relógio falante ou contando alguns dados, então neste instructables iremos converter texto em fala usando o Arduino
Falando em Arduino - Tocando um MP3 com o Arduino sem nenhum módulo - Reproduzindo arquivo MP3 do Arduino usando PCM: 6 etapas

Falando em Arduino | Tocando um MP3 com o Arduino sem nenhum módulo | Reproduzindo arquivo MP3 do Arduino usando PCM: Neste instructables, aprenderemos como reproduzir um arquivo mp3 com arduino sem usar nenhum módulo de áudio, aqui vamos usar a biblioteca PCM para Arduino que reproduz PCM de 16 bits com frequência de 8 kHZ, então vamos fazer isso
Falando Relógio Bilíngue (EN + PT): 5 Passos (com Imagens)

Talking Clock Bilingual (PT + PT): O Talking Clock 2 (Bilingual) é a nova versão do Talking Clock que publiquei há algum tempo. O código foi atualizado para suportar dois idiomas (inglês / português) e novos recursos foram introduzidos no código: Modo 1: Definir a hora (hora e manhã
Falando no computador (sons personalizados do Windows): 7 etapas

Computador falante (sons personalizados do Windows): Neste instrutível irei ensiná-lo, se você ainda não sabe, como fazer um computador que falará com você várias vezes dependendo do que você fizer no computador ao longo do dia