Use o Raspberry Pi para controlar o NodeMCU – Parte 2 2

Esta é a segunda e última parte do projeto mostrando como usar o Raspberry Pi para controlar o NodeMCU,  e neste projeto você pode controlar as saídas de até cinco NodeMCUs diferentes com uma GUI feita em Python com TKinter.

Detalhe ESP8266 NodeMCU

O controle é feito pela Internet utilizando MQTT, ou seja, o controle pode ser feito de qualquer lugar do mundo com conectividade à Internet. Aqui será mostrado como programar os NodeMCUs de forma a fazerem o proposto.

Material necessário

Além do material listado na parte 1, você precisará de:

  • Cinco NodeMCUs (cada um com um cabo micro-USB e fonte 5V para alimentação, com no mínimo 1A de corrente de saída)
  • Cinco elementos que deseja acionar / desacionar através do output (LEDs, relés, válvulas solenóides, etc.).
    No caso deste projeto, como forma de exemplo, serão controlados cinco LEDs. Dessa forma, serão necessários 5 resistores 220ohm 1/4W e 5 LEDs (cor a sua escolha).
  • É recomendável o uso de protoboards também (400 ou 830 pontos), conforme necessidade do seu projeto.

Lembre-se que para este projeto você não precisa necessariamente ter 5 placas NodeMCU, você pode usar, por exemplo, o programa com apenas um NodeMCU conectado e fazer os testes necessários.

Recomendações e requisitos

Antes de prosseguir com o projeto para controlar o NodeMCU usando Raspberry Pi, recomendo fortemente que leia nossos artigos listados abaixo. Eles servem de pré-requisito para a programação e uso do NodeMCU conforme é preciso aqui neste projeto.

Portanto, deste ponto em diante, assume-se que seu NodeMCU esteja totalmente operacional, a biblioteca PubSubClient esteja instalada e que seja possível programá-lo pela Arduino IDE.

Circuito esquemático

O circuito esquemático em que cada NodeMCU é envolvido depende muito do que você deseja controlar (LEDs, relés, válvulas solenóides, etc.). Como exemplo, assumirei que LEDs serão controlados.

Sendo assim, deve-se montar cinco circuitos conforme circuito esquemático da figura 1:

Usando Raspberry Pi para controlar o NodeMCU

O resistor utilizado nos testes tem o valor de 10K, mas você pode usar outros valores.

Código-fonte do programa para controlar o NodeMCU

Conforme foi visto na parte 1 deste projeto para controlar o NodeMCU usando Raspberry Pi, todos os botões da GUI quando clicados fazem com que seja enviado um texto exclusivo (“BT1“, “BT2“, “BT3“, “BT4” e “BT5“) num determinado tópico. Portanto, cada NodeMCU deverá ser capaz de se subescrever ao mesmo tópico o qual o texto é enviado e tratar a mensagem, de modo a “decidir” se a mensagem foi para ele ou não. Dessa forma:

  • O NodeMCU 1 deverá alterar o output D0 se receber o texto “BT1” no referido tópico MQTT
  • O NodeMCU 2 deverá alterar o output D0 se receber o texto “BT2” no referido tópico MQTT
  • O NodeMCU 3 deverá alterar o output D0 se receber o texto “BT3” no referido tópico MQTT
  • O NodeMCU 4 deverá alterar o output D0 se receber o texto “BT4” no referido tópico MQTT
  • O NodeMCU 5 deverá alterar o output D0 se receber o texto “BT5” no referido tópico MQTT

Desta forma, para cada NodeMCU, deve-se alterar o valor da variável “CmdNodeMCU” para “BT1”, “BT2”, “BT3”, “BT4” ou “BT5”, dependendo do NodeMCU a ser programado (fazendo com que cada NodeMCU obedeça a um texto somente).

Segue abaixo o código-fonte. Preste atenção nos comentários, eles explicam passos importantes de todo o projeto.

Projeto em ação!

Agora, basta juntar tudo e comandar os outputs pela GUI na Raspberry PI! Veja abaixo um gif animado mostrando o projeto em ação, utilizando um NodeMCU:

Projeto em funcionamento

Gostou do projeto para controlar o NodeMCU usando Raspberry Pi? Deixe seu comentário logo abaixo. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

2 Comentários

  1. Meus parabéns para mais um excelente artigo da série sobre NodeMCU. Venho acompanhando todos desde o início.
    Sobre o acesso a rede externa, eu tenho uma dúvida.
    Se além do normal, que é o WiFi.begin(SSID, PASSWORD), para se acessar ela for necessária autenticação via proxy, é possível usar o NodeMCU nestas condições? Pois num ambiente doméstico esta autenticação normalmente não é necessária, mas num ambiente comercial e/ou industrial este é um requisito de segurança de rede.

    PS. Eu me formei em engenharia no outro lado da Serra da Mantiqueira, na Unifei, em Itajubá.

    Angelo José Roncali da Silva
    1. Angelo, muito obrigado por acompanhar os artigos e pelos elogios!

      Entendi seu problema. Infelizmente, eu nunca cheguei ao ponto de precisar utilizar o NodeMCU com autenticação via proxy. Desculpa não conseguir responder sua pergunta.

      Atenciosamente,
      Pedro Bertoleti