LAB 2: NodeMCU ESP8266 com Sensor de temperatura e umidade DHT11 - Azure IoT Hub, Stream Analytics e Blob Storage
Objetivo deste Laboratório:
Conectar a placa NodeMCU v3 Esp8266 para efetuar leitura do sensor de temperatura e umidade DHT11 e integrar ao Azure IOT Hub e aos serviços Stream Analytics e Azure Blob Storage.
Componentes utilizados:
- Device: Placa NodeMCU ESP8266
- Sensor de temperatura DHT11
Importante:
Para executar este lab é aconselhável que tenha boa familiaridade com a Azure para as configurações abaixo.
Configurações Azure:
- criar recurso IoT Hub
- criar novo device
- criar recurso Stream Analytics
- criar recurso Blob Storage
- criar um novo container
- configurar o Stream analytics (entre IoT Hub e blob storage - container)
- pino 1 - saída do sinal (obtém informações do sensor)
- pino 2 - positivo (VCC)
- pino 3 - negativo (GND)
- Porta digital "D1" está conectado o pino da saída do sinal do sensor
- Porta GND está ligado o "terra/negativo"
- Porta 3V (3.5 volts) está ligado a entrada do sinal "positivo" conhecido também como VCC (opera entre 3.5 á 5 volts)
- instalar as bibliotecas para comunicação com Azure ioT Hub:
- AzureIoTHub
- AzureIoTProtocol_MQTT
- AzureIoTUtility
Garantir que as bibliotecas acima estejam instaladas.
Antes de executar demais etapas no Arduino é necessário efetuar algumas modificações no ambiente de desenvolvimento (essa etapa evita que tenha erros futuros na execução do projeto): https://github.com/renatotvs/esp8266-azure-iot-hub-stream-analytics/blob/main/leia-me.txt
-
Arquivos:
- dht_temperature_AzureIoTHubLabDemo2.ino - arquivo principal que efetua a conexão com wifi da rede configurada e executa o envio da mensagem ao IoT Hub.
- dht_temperature_AzureIoTHub_config.h - contém os parâmetros que precisam ser configurados:
- connection string do "Device" do IoT Hub criado
- dados de acesso a rede wi-fi
- pino de comunicação com a placa nodeMCU
- etc.
- iotHubClient.ino - contém método que dispara a mensagem para Azure IoT Hub.
- message.ino - contém método que efetua leitura do componente configurado no pino da placa que nesse caso estamos usando um potenciômetro como exemplo, poderia ser usado algum outro dispositivo: sensor de temperatura, umidade, etc.
- Selecionar a placa e porta para execução:
Certifique-se que o cabo usb esteja conectado:
- Fazer upload do código para a placa:
- Acompanhamento do processo do upload do código antes de conectar a rede wifi:
- Visualizar a execução pelo "Serial Monitor" e o momento que a placa é conectado a rede wi-fi:
A imagem acima mostra quando o wi-fi foi estabelecido com sucesso e o processo enviou mensagem ao IoT Hub.
IoT Hub
Stream Analytics
No painel abaixo é possível acompanhar em tempo real os eventos processados e integradas ao blob storage.
Container Blob Storage
No container é armazenado um arquivo .json de forma incremental. Sempre que o houver uma nova integração com o IoT Hub, será processado pelo Stream Analytics o envio dos dados ao container do blob storage.
Dados coletados do sensor:
- temperatureC - temperatura em Celsius.
- humidity - umidade.
A cada 3 segundos é coletado um novo valor de temperatura e umidade.
Conseiderações
Fique a vontade para mudar o parãmetro de configuração do tempo de 3 segundos ou mesmo incluir novos componentes de medição. Esse laboratório é apenas uma ideia de como integrar a placa NodeMCU com Azure IoT Hub. É possível aplicar a diversos cenários da internet das coisas (iot), coleta de sensores diversos, telemetria, etc...