Índice:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 etapas
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 etapas

Vídeo: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 etapas

Vídeo: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 etapas
Vídeo: ESPNOW as simple as possible | Getting Started, Range test & much more.. 2024, Novembro
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

Neste Instructable, mostro como usei o ESP-NOW na minha automação residencial. No esquema você pode ver os fluxos de comunicação

Eu te mostro:

  • como o remetente funciona
  • como o receptor funciona
  • como funciona a comunicação serial com um Raspberry Pi

Não mostro como funciona o MQTT e minha automação residencial, você pode encontrar outras boas instruções para isso.

Créditos: Este Instructable foi inspirado por:

Vídeo # 172 por Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

Etapa 1: backup via WiFi e MQTT

Backup via WiFi e MQTT
Backup via WiFi e MQTT

Descobri que o ESP-NOW é extremamente rápido e confiável, mas às vezes falha. No meu programa, adicionei um backup via WiFi normal e conexão MQTT.

Etapa 2: Remoto / remetente

O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente
O Remoto / Remetente

No primeiro esquema, você vê como funciona o programa do remetente:

  1. O esp8266 é inicializado a partir da inicialização ou reinicialização
  2. ESP-NOW foi inicializado
  3. O módulo envia ESP-NOW por um tempo definido
  4. O módulo verifica se a mensagem ESP-NOW foi recebida pelo receptor em uma função de retorno de chamada.

    1. Se a mensagem ESP-NOW foi recebida, o módulo entra em um sono profundo de baixa potência
    2. Se a mensagem ESP-NOW não foi recebida, o módulo inicia uma conexão WiFi e uma conexão MQTT como uma conexão de backup.

O programa para o remetente está no meu Github (Master_sender.ino). Os programas enviam o tópico e a mensagem para a automação residencial MQTT em uma mensagem ESP-NOW combinada, combinada com um sinal '&' para uma divisão fácil no receptor.

Fiz dois controles remotos / remetentes diferentes:

Remetente 1: O esp8266 está em hibernação e é ativado por uma reinicialização. O led no botão acende e escurece quando o módulo é concluído. Se a tensão da bateria estiver muito baixa, o led pisca. Se o ESP-NOW falhou, o led pisca antes de mudar para conexões WiFi / MQTT. O esp8266 é alimentado por uma bateria LiPo com um regulador de tensão HT7333 para 3,3V

Remetente 2: O esp8266 é desligado e é ligado ao pressionar o botão. Normalmente a conexão ESP-NOW é feita após o botão 'clicar'. O esp8266 é alimentado diretamente por uma bateria LiPo. Não sei se o esp8266 fica danificado pela alta tensão de uma bateria totalmente carregada (até 4,2 V) quando é ligado apenas alguns 100 ms. É mais alto que as especificações (3,0 - 3,6 V).

Nota: se a bateria estiver fraca, o ESP-NOW falha.

Etapa 3: O receptor - Hardware (esp8266 e Raspberry Pi)

O receptor - Hardware (esp8266 e Raspberry Pi)
O receptor - Hardware (esp8266 e Raspberry Pi)
O receptor - Hardware (esp8266 e Raspberry Pi)
O receptor - Hardware (esp8266 e Raspberry Pi)
O receptor - Hardware (esp8266 e Raspberry Pi)
O receptor - Hardware (esp8266 e Raspberry Pi)

A descrição do receptor é dividida em duas partes:

  1. Hardware
  2. Programas

O hardware

O receptor esp-01 está conectado ao meu Raspberry Pi Zero que executa meu sistema de automação residencial (Openhab2) e Node Red.

No esquema, as conexões simples são mostradas:

  • RX da esp-01 para TX da RasPi
  • TX da esp-01 a RX da RasPi
  • GND para GND
  • O esp-01 VCC é alimentado pelo pino de 3,3 V do Raspi
  • No esp-01, tanto o RST quanto o CH_PD são elevados.

Eu fiz um conector de interface para montá-lo facilmente

Em uma foto você pode ver minhas conexões de fio para meu Raspberry Pi 3 (que tem a mesma pinagem, mas usei outro pino de 3,3 V para conectar ao CH_PD).

O esp-01 foi programado conforme mostrado no meu outro Instructable (veja o passo 3).

Etapa 4: O receptor - software (serial, nó vermelho, MQTT)

O Receptor - Software (Serial, Node Red, MQTT)
O Receptor - Software (Serial, Node Red, MQTT)
O Receptor - Software (Serial, Node Red, MQTT)
O Receptor - Software (Serial, Node Red, MQTT)
O Receptor - Software (Serial, Node Red, MQTT)
O Receptor - Software (Serial, Node Red, MQTT)

Programa em esp8266

O programa para o receptor esp-01 está no meu Github (Master_sender.ino). O programa é muito simples, ele só imprime a mensagem ESP-NOW recebida na porta serial para o Raspberry Pi.

Porta serial

No Raspberry Pi, você deve ativar a porta serial (no raspbian, execute 'sudo raspi-config') para comunicação serial normal.

O nome da porta serial é:

  • Raspberry Pi Zero: / dev / ttyAMA0
  • Raspberry Pi 3: / dev / ttyS0

Você pode verificar a porta serial executando 'dmesg | grep tty 'ou' ls / dev '

Nó Vermelho

Em Nó Vermelho, selecione o Nó de entrada serial e configure a porta serial (veja as fotos anexas). Observe a taxa de transmissão da conexão serial; ela deve corresponder à taxa de transmissão programada no esp8266.

A saída do nó serial é transformada por um nó de função que divide a mensagem no sinal '&' e define msg.topic e msg.payload. A saída da função é conduzida ao nó de saída mqtt que envia a mensagem ao servidor MQTT. Observe que o campo do tópico do nó mqtt está em branco, porque o tópico está definido na mensagem.

Recomendado: