Caso de estudo sobre integração de comunicação entre protótipos ESP32*, Arduino UNO R3 (ou hardware compatível) e NodeJs.
O projeto apresenta um sensor de luminosidade, com resposta visual no hardware com um LED RGB representando a intensidade de luz ambiente, classificados como forte (verde), média (amarelo) ou fraca (vermelho). A variação do sensor de luminosidade também é apresentada em dados no display LCD. Em paralelo, os dados capturados pelo sensor é enviado via porta serial (USB) e lidos por um servidor web Express, ouvindo a porta 3000 e estabelecendo uma conexão event-based e de baixa latência com a library Socket.io.
Em resumo, podemos ler os dados de luminosidade através de qualquer aparelho na mesma rede, além de interagir dinamicamente como um interruptor ao enviar comando para o protótipo, interferir na luminosidade de forma artificial, acendendo um led branco junto ao sensor.
{
"lumens": number,
"status": number,
"light": boolean
}
- 1 ESP32* / Arduino UNO R3 (ou similar)
- 1 Sensor LDR
- 1 LED RGB cátodo comum
- 4 Resistores 220 Ohms 5%
- 1 Resistor 10 kOhms 5%
- 8 jumpers (macho-macho)
- 4 jumpers (fêmea-fêmea)
- 1 protoboard
- 1 display LCD 16x2
- 1 Módulo Serial I2C
Execute o comando npm install
ou yarn install
para instalar as dependências listadas no arquivo package.json.
*Consulte a documentação do Arduino para carregar o código presente na pasta /iot/unoR3/unoR3_sensor.cpp ou /iot/esp32/esp32_sensor.cpp em seu hardware, utilizando o Arduino IDE conforme o caso.
Plugue o hardware via USB e na pasta do projeto execute o comando yarn start
+ PORTA qual o protótipo está conectado, para inicializar a aplicação conectando pela porta serial.
Ex: yarn start COM3
Necessário criar o arquivo .env em /
, informando o IP de conexão ao ESP32.
Ex:
WS_IP=192.0.0.0
Na pasta /iot/esp32_sensor, edite o arquivo conf.example
, inserindo os dados de acesso à sua rede local, salve como conf.h
na mesma pasta e faça a compilação do esp32_sensor.ino
para o seu ESP32*.
Plugue o hardware à uma fonte de energia e na pasta do projeto execute o comando yarn start
para inicializar a aplicação conectando via WiFi e comunicação por websocket.
- Conectar modelo ESP32 à rede local
*Devkit com 38 pinos