Índice:

Raspberry Pi falando com ESP8266 usando MQTT: 8 etapas
Raspberry Pi falando com ESP8266 usando MQTT: 8 etapas

Vídeo: Raspberry Pi falando com ESP8266 usando MQTT: 8 etapas

Vídeo: Raspberry Pi falando com ESP8266 usando MQTT: 8 etapas
Vídeo: Como controlar ESP8266 (Tasmota) pelo Node-RED usando MQTT - Raspberry Pi - Automação Residencial 32 2024, Novembro
Anonim
Raspberry Pi falando com ESP8266 usando MQTT
Raspberry Pi falando com ESP8266 usando MQTT

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

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
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

Como configurar o endereço IP estático
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

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
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

Python Script
Python Script
Python Script
Python Script

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

Diagrama de conexões e circuito
Diagrama de conexões e circuito
Diagrama de conexões e circuito
Diagrama de conexões e 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

Image
Image
Resultado
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: