



O conceito da Iot (Internet das Coisas), juntamente com integrações em cloud Computer (Computação em nuvem) tem sido grande acelerador no que diz respeito à evolução comercial e industrial. Neste post de hoje você vai aprender bem detalhadamente realizar a integração do microcontrolador Esp8266 com o recurso Hub IoT disponível na plataforma Azure da empresa Microsoft. Com o conhecimento adquirido aqui, você poderá realizar a telemetria (monitoramento de dados de sensores) de equipamentos de modo que os dados destes podem ser analisados em tempo real ou ainda persistidos em destinos de sua preferência, como podemos ver no vídeo abaixo:
Para fazer este projeto, iremos precisar dos seguintes materiais e serviços:
ESP8266 NodeMCU: Será a placa de desenvolvimento usada neste projeto, o funcionamento dela é similar as placas Arduino, mas com algumas peculiaridades que fazem ela ser a escolha melhor para este projeto:













#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <WiFiClientSecure.h>
// Configurações de Wi-Fi
const char* ssid = "<NOME DA SUA REDE>";
const char* password = "<SENHA>";
// Configurações do Azure IoT Hub
const char* mqttServer = "<SEU AZURE HOST>.azure-devices.net";
const int mqttPort = 8883;
const char* deviceID = "<NOME DO SEU DISPOSITIVO>";
const char* sasToken = "<TOKEN GERADO>";
WiFiClientSecure espClient;
PubSubClient client(espClient);
void connectWiFi() {
Serial.print("Conectando ao Wi-Fi...");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Conectado ao Wi-Fi!");
}
void connectMQTT() {
client.setServer(mqttServer, mqttPort);
espClient.setInsecure(); // Para evitar problemas com certificados SSL
String username = String(mqttServer) + "/" + deviceID + "/?api-version=2021-04-12";
Serial.print("Conectando ao Azure IoT Hub...");
while (!client.connected()) {
if (client.connect(deviceID, username.c_str(), sasToken)) {
Serial.println("Conectado!");
} else {
Serial.print("Falha, rc=");
Serial.print(client.state());
Serial.println(" tentando novamente em 5 segundos...");
delay(5000);
}
}
}
void sendMessage() {
int sensorValue = analogRead(A0); // Lê o valor do sensor no pino A0
float voltage = sensorValue * (3.3 / 1023.0); // Converte para tensão
String payload = "{\"temperature\": " + String(voltage*10) + "}"; // Monta o JSON corretamente
String topic = String("devices/") + deviceID + "/messages/events/";
if (client.publish(topic.c_str(), payload.c_str())) {
Serial.println("Mensagem enviada: " + payload);
} else {
Serial.println("Falha ao enviar mensagem");
}
}
void setup() {
Serial.begin(115200);
connectWiFi();
connectMQTT();
}
void loop() {
if (!client.connected()) {
connectMQTT();
}
client.loop();
sendMessage();
delay(60000); // Envia a cada 60 segundos
}
Não se esqueça de substituir os campos que estão entre as aspas angulares (Símbolos < >) pelas informações inseridas no momento da criação de seu Hub Iot. (Exemplo: const char* mqttServer = "eletrogateEsp.azure-devices.net"; )
Observação: Note que as aspas angulares (Símbolos <>) somem as aspas duplas ("") permanecem e que dependendo do coeficiente de temperatura de seu sensor de temperatura pode ser necessário adequar a fórmula matemática presente em seu código:
void sendMessage() {
int sensorValue = analogRead(A0); // Lê o valor do sensor no pino A0
float voltage = sensorValue * (3.3 / 1023.0); // Converte para tensão
String payload = "{\"temperature\": " + String(voltage*10) + "}"; // Monta o JSON corretamente
String topic = String("devices/") + deviceID + "/messages/events/";
if (client.publish(topic.c_str(), payload.c_str())) {
Serial.println("Mensagem enviada: " + payload);
} else {
Serial.println("Falha ao enviar mensagem");
}
}
Para localizar seu:



az iot hub generate-sas-token --device-id <SEU ID DE DISPOSIIVO> --hub-name <NOME DO SEU HUB>
Será necessário aceitar alguns termos e instalações na plataforma:





az iot hub monitor-events --hub-name <NOME DO SEU HUB IOT> --device-id <ID DO SEU
DISPOSIVO>

Então, com tudo finalmente concluído, você pode monitorar os valores lidos de seu Esp8266 a partir da plataforma Azure!
Por se tratar de uma plataforma em nuvem podem ser feita a consistência de dados via Power Bi, Bancos de dados e demais aplicações Web que suportem protocolo de comunicação com a plataforma.
|
Neste post de hoje você vai aprender bem detalhadamente realizar a integração do microcontrolador Esp8266 com o recurso Hub IoT disponível na plataforma Azure da empresa Microsoft.
Encontre tudo na Loja Eletrogate com frete grátis para compras acima de R$ 200