Tapete Natalino IoT com NodeMCU ESP8266 Deixe um comentário

Estamos quase no Natal pessoal! Então que tal um tapete com tema natalino para enfeitar sua casa? Mas não um tapete com tema natalino qualquer, um tapete natalino IoT!

Imagem 1 - Tapete Natalino IoT

Nesse projeto, quando alguém chegar na porta e pisar no tapete, este tocará Jingle Bells, piscará vários LEDs e além de tudo isso, ainda vai entregar uma notificação via Telegram que há alguém na porta. Um tapete natalino IoT com campainha high tech, imagine só a surpresa das visitas!

Material para o Tapete Natalino IoT

Para o tapete natalino vamos precisar dos seguintes itens:

Estou recomendando aqui os Kits de LEDs e jumpers para que você tenha várias possibilidades para enfeitar seu tapete. Eu enfeitei de uma forma, mas sua criatividade é o limite.

Circuito do Tapete Natalino IoT

Imagem 2 - Circuito do Tapete Natalino IoT

No caso do meu tapete eu tenho LEDs nos olhos e nos narizes do Papai Noel e das Renas. Cada par de LEDs dos olhos, e os dos narizes, estão ligados em uma porta digital do ESP8266. Assim podemos sincronizar e criar efeitos de pisca-pisca no ritmo da música.

Lembrando que o modelo, desenhos e enfeites no seu tapete não precisam ser necessariamente iguais ao meu. Deixe sua criatividade fluir e crie os enfeites e efeitos que quiser! O NodeMCU ESP8266 possui 11 portas digitais. Tirando duas portas para uso específico (uma para a entrada dos sensores e outra para a saída do buzzer) temos ainda 9 portas digitais para serem usadas com LEDs. Note, por exemplo, que nas minhas conexões eu liguei os LEDs dos olhos em paralelo. Assim podemos utilizar uma mesma porta digital para conectar vários LEDs de uma só vez, que irão piscar em conjunto, e criar enfeites bem bacanas!

Montagem do Tapete Natalino IoT

Faça pequenos furos para os LEDs. O mínimo necessário para passar os contatos:

Imagem 3 - Montagem

Para colocar o ESP8266 NodeMCU no tapete, fiz dois cortes em linha reta para passar os pinos:

Imagem 4 - Montagem

Coloquei o módulo NodeMCU por cima do tapete, passando os pinos do mesmo pelos cortes. Eu coloquei o módulo na ponta do tapete mas, no seu projeto, fique a vontade em posicioná-lo da maneira que achar melhor. Depois de conectar os jumpers na parte de trás do tapete eu ainda dobrei os pinos. Tenha cuidado para não quebrar o pino! Dobre com gentiliza, assim a placa ficou “encaixada” e na mesma altura do tapete.

Imagem 5 - Montagem

Cole também na parte de trás do tapete a bateria, que irá fornecer a energia para o projeto:

Imagem 6 - Montagem

Distribua os sensores piezo na superfície do tapete. Isso irá aumentar a área que os sensores detectam quando alguém pisar no tapete.

Imagem 7 - Montagem

Posicione, por exemplo, um em cada extremidade e um no meio, como na foto. Outro fator importante que deve ser lembrado é o tamanho do tapete. Usei um tapete pequeno, quanto maior o tapete mais sensores serão necessários para cobrir sua área.

Como você pode ver, todas as conexões foram feitas com jumpers e coladas com fita isolante. Tenho que ser sincero e dizer que não ficou nada bonito. Fui bastante literal com a frase “esconde tudo debaixo do tapete”. 😜

Para organizar um pouco as conexões eu utilizei uma placa de fenolite perfurada:

Imagem 8 - Montagem

Soldar as conexões em uma placa de fenolite perfurada facilita bastante a montagem do circuito no tapete, mas este é uma passo totalmente opcional. Você pode fazer tudo com jumpers, se assim desejar. Caso você tenha alguma habilidade com costura (que não é o meu caso), você pode também fazer uma montagem mais organizada utilizando linha condutiva e, assim, costurar as conexões entre os componentes e o ESP8266. Ficará bem legal!

Software para o Tapete Natalino IoT

A lógica do programa do tapete segue o seguinte diagrama:

Imagem 9 - Lógica Tapete Natalino

Quando o ESP8266 inicializar, a primeira tarefa a ser executada será a configuração dos pinos de entrada/saída e inicialização das bibliotecas utilizadas. Logo após, o programa ficará esperando uma conexão à rede Wi-Fi. Para sinalizar que o Wi-Fi ainda não foi conectado, o programa deixa todos os LEDs acessos até que a conexão seja concluída, depois os LEDs se apagam.

Depois desta primeira etapa de conexão e configuração, o programa configura as entradas dos sensores piezo e fica monitorando as mesmas. Quando alguma pressão é detectada nos sensores (entradas em nível lógico alto) o programa pisca os LEDs , toca a musiquinha de Jingle Bells e realiza uma conexão HTTP, enviando uma mensagem via Telegram Bot. O ciclo de monitoramento das entradas dos sensores só é inicializada novamente quando a música parar.

Gravando Firmware Espruino

No NodeMCU eu usei o firmware do Espruino, me possibilitando utilizar JavaScript para programar esse projeto. Para gravar o firmware do Espruino no seu NodeMCU siga os seguintes passos:

Pré-requisitos:

  • git;
  • Python 2.7 ou posterior;
  • Windows PowerShell;

Após instalar os pré-requisitos, baixe o repositório com o script utilitário:

git clone https://github.com/microhobby/EspruinoESP8266Firmware.git

Execute o script passando como argumento a porta serial onde o seu NodeMCU está conectado:

cd EspruinoESP8266Firmware 
.\flash8266.ps1 COM4

Código do Tapete Natalino IoT

Baixe o código do projeto:

git clone https://github.com/microhobby/EspruinoProjects.git

Para verificar se o Espruino está rodando corretamente no NodeMCU, grave o blink rodando o seguinte comando:

.\send.ps1 com4 .\blink\

Se tudo deu certo nessa etapa, você terá o LED onboard D2 do NodeMCU piscando.

Configurando Wifi

Antes de gravar o código JavaScript no NodeMCU precisamos fazer algumas modificações. Vá na pasta jingleBells, acesse o arquivo wifi.js e modifique a linha 6 colocando o nome e senha da sua rede Wi-Fi, como no exemplo abaixo:

wifi.connect("MeuWiFi", {password:"123456789"}, function(err)

Telegram Bot

Neste tutorial vamos usar o Telegram Bot, que o SuperMaker Paulo Lucas já abordou com clareza no artigo: Telegram Bot com Raspberry Pi 3. Então leia esse artigo, principalmente a parte “get_id_bot“. Vamos precisar desse chat ID na pasta jingleBells no arquivo index.js na linha 3:

var telegramID = "0";

Modifique essa linha trocando o “0” pelo seu chat ID.

Gravando NodeMCU

Para gravar o código no NodeMCU execute o seguinte comando na pasta raiz do projeto:

.\send.ps1 com4 .\jingleBells\

Lembrando aqui que estou utilizando a porta com4 como exemplo, troque pela porta serial que sua máquina listar.

Espere o NodeMCU concluir a conexão com a internet, os LEDs irão apagar. Pise no tapete e se tudo ocorrer bem, os LEDs vão piscar, a musiquinha vai tocar e você receberá uma notificação do Telegram! 😎

Considerações Finais

Para se aprofundar no projeto e seguir com suas customizações, dentro da pasta jingleBells temos o seguinte:

  • Pasta docs:
    • Aqui você encontra a foto em alta resolução das conexões entre os componentes e o NodeMCU;
  • Pasta php:
    • Nessa pasta o arquivo tapete.php tem o modelo utilizado pra enviar a mensagem através da API do Telegram;
  • leds.js:
    • Possui a implementação da classe que configura e executa as animações de pisca LED;
  • music.js:
Music.JingleBellsPt1 = "b b b b b b b D g a b C C C C C b b b b a a b a D b b b b b b b D g a b C C C C C b b b D D C a g ";
Music.JingleBellsPt2 = "d b a g d d b a g e e C b a f D E D C a b d b a g d d b a g e e C b a D D E D C a g D ";
Music.JingleBells = Music.JingleBellsPt1 + Music.JingleBellsPt2 + Music.JingleBellsPt1;
  • wifi.js:
    • Aqui ficam as funções de conexão com a rede wi-fi e de requisição do tapete.php;
  • index.js:
    • E por último, mas não menos importante, o arquivo que tem as inicializações das variáveis e objetos utilizados no projeto;

Bem bacana ver o que pode ser feito com um NodeMCU ESP8266, JavaScript e conexão com a internet, né? Fique a vontade para montar você mesmo o seu Tapete Natalino IoT. Esse é aquele projeto que tem que estar pronto para receber seus convidados de Natal na porta, ao som de Jingle Bells. 🎄.

Veja também o Tapete Natalino IoT em ação:

Gostou do projeto Tapete Natalino IoT com NodeMCU ESP8266? Conte para a gente o que achou deixando um comentário aqui embaixo! Para ter acesso a mais conteúdos como esse, visite nosso blog.

FELIZ NATAL!

Faça seu comentário

Acesse sua conta e participe