You are on page 1of 2

#include <ESP8266WiFi.

h>
#include <PubSubClient.h>
#include <Thermistor.h>
//Elemento do termistor com sinal analogico A0
Thermistor temp(A0);
const char* ssid = "celular";
const char* senha = "celular123";
const char* mqtt_server = "test.mosquitto.org";
const char* nome_modulo = "esp_andre_iot";
const char* nome_topico = "topico_andre";
WiFiClient espClient;
PubSubClient client(espClient);
char mensagem[50];
int umidade = 0;
void setup() {
Serial.begin(115200);
Serial.print("Conectando WiFi em: ");
Serial.println(ssid);
WiFi.mode(WIFI_STA); //define o modulo em modo Station
WiFi.disconnect(); //encerra qualquer outra previa conexao
WiFi.begin(ssid,senha); //Inicia a conexao ao AP WiFi
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
Serial.println("Conectado!");
Serial.println(WiFi.localIP());
client.setServer(mqtt_server, 1883);
}
void loop() {
//Se MQTT nao esta conectado...
while(!client.connected()){
Serial.println("Conectando MQTT...");
if(client.connect(nome_modulo)) {
Serial.println("Conectado!");
client.publish(nome_topico, "Ola IoT MQTT");
client.subscribe(nome_topico);
} else {
Serial.println("Problema...");
Serial.println(client.state());
delay(5000);
}
}
//Chama rotina para calculo de temperatura do NTC (em graus C)
umidade = temp.getTemp();
//Nesse trecho, o modulo esta conectado no servidor MQTT

//A funcao snprintf formata uma mensagem pra ser enviada


snprintf(mensagem, 50, "%d", umidade);
Serial.print("MQTT enviado: ");
Serial.println(mensagem);
client.publish(nome_topico, mensagem);
//garante a conexao com MQTT server
client.loop();
delay(1000); //mandar mensagens a cada 1 segundo
}

You might also like