terça-feira, 28 de agosto de 2018

NodeMCU, primeiro contato...

No curso de Ciências da Computação da FURB, na matéria de tópicos especiais tive meu primeiro contato prático com microcontroladores.

O objeto de estudo em questão foi o NodeMCU, para quem nunca ouviu falar, é um kit de desenvolvimento, com processador ESP8266, GPIO, wifi integrado e etc. Mais detalhes podem ser encontrados no site oficial ou na Wikipédia, pois não é o objetivo do post.

Como atividade, deveríamos desenvolver um fotosensor, que deveria abrir um webservice para ser configurado com e-mail e luminosidade limite.

Após configurado o limite seria usado para quando a iluminação atingisse valor inferior ao definido seria enviado e-mail.

Também a cada 5 segundo deveria atualizar os valores no site ThingSpeak.

O ThinkSpeak na versão gratuita aceita atualização a cada 15 segundos, o excedentes são descartados, bem como o máximo de 3 milhões de mensagens por ano.

Outro serviço que foi utilizado foi o SMTP2Go para facilitar o envio do e-mail sem necessidade de desabilitar as seguranças do gmail enviando os comandos de e-mail via telnet.

Resultado de imagem para microcontroller meme

Materiais utilizados:

 NodeMCU
Protoboard

Foto ressistor
Resultado de imagem para photoresistor png

Resistor 10K Ohm

Fio jumper
Resultado de imagem para jumper cable png
Montagem

Assim, ligamos o foto resistor na alimentação de 3v em uma perna, o resistor de 10k Ohm a outra perna e o terra a outra perna do resistor. Também ligamos esta perna ao pino A0 que receberá as medições.

Temos que utilizar um resistor de 10K Ohm pois em uma escuridão total o foto resistor não teria nenhuma resistência, virando um fio e colocando o sistema em curto.

Foto do projeto:



Saindo da parte física do projeto, partimos para a programação. O NodeMCU pode ser programado em várias linguagens, MicroPython, Lua, Basic e C++ do Arduino.

Escolhi escrever o código de  C++ pois além de ter vasto material, é bastante similar a Java, que já estou mais habituado, também é possível utilizar a IDE do Arduino, disponível também na loja Microsoft, que além de fazer a compilação do código, envia diretamente ao NodeMCU.


TELAS


Resultado de imagem para screenshot meme


Conectando no WiFi:




Configuração do e-mail e limite:



Carregando as configurações:




ThingSpeak atualizando:




Enviando email:




CÓDIGO

Resultado de imagem para show me the code


Bibliotecas Utilizadas:
Setando o pino A0 como foto sensor e objetos:
Constantes e variáveis de configuração:
Método do WebServer:
Método para tratamento das configurações recebidas pelo WebServer:
Método para envio do email conforme as configurações iniciais:
Método para verificar o correto envio do email:
Método para tratamento de erro do envio do email:
Método para atualização do ThingSpeak:
Método para salvar as configurações:
Método para carregar as configurações salvas:
Método de inicialização do NodeMCU, primeiro a ser executado quando ligado:
Método de repetição do NodeMCU, que repete enquanto o mesmo estiver ligado:


CÓDIGO COMPLETO


Fontes utilizadas:
Links nas próprias palavras;
Comentários no código.

Resultado de imagem para everything connected meme

Nenhum comentário:

Postar um comentário