-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnodemcu.cpp
89 lines (65 loc) · 1.98 KB
/
nodemcu.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include<ESP8266WiFi.h>
#include<PubSubClient.h>
#include<DHT.h>
#define DHTTYPE DHT11
const char* nome_wifi = "usuário";
const char* senha_wifi = "senha";
const char* broker = "ID da organização.messaging.internetofthings.ibmcloud.com";
const char* usuario_mqtt="use-token-auth";
const char* senha_mqtt = "Token de autenticação";
const char* cliente_mqtt = "d:ID da organização:Tipo de dispositivo:ID do dispositivo";
const char* topico = "iot-2/evt/data/fmt/json";
const int porta_mqtt = 1883;
int pino_DHT = 2;
DHT dht(pino_DHT, DHTTYPE);
WiFiClient wificlient;
PubSubClient client(broker, porta_mqtt, NULL, wificlient);
void conectarWifi(){
Serial.print("Conectando na rede");
WiFi.begin(nome_wifi, senha_wifi);
while (WiFi.status()!= WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("Conectado no Wifi");
}
void conectarMQTT(){
Serial.print("Conectando no Broker...");
client.setServer(broker, porta_mqtt);
while (!client.connect(cliente_mqtt, usuario_mqtt, senha_mqtt))
{
delay(500);
Serial.print(".");
}
Serial.print("Conectado com o broker!");
}
void enviar(String nome_campo1, float valor1, String nome_campo2, float valor2){
if(!client.connected()){
conectarMQTT();
}
//{ "d": {"key1": "value1"} }
String payload = "{\"d\":{\""+ nome_campo1 + "\":" + valor1 + ", \""+ nome_campo2 + "\":" + valor2 + " } }";
client.publish(topico, (char*) payload.c_str());
}
void setup() {
Serial.begin(115200);
pinMode(pino_DHT, INPUT);
conectarWifi();
conectarMQTT();
}
void loop() {
float temp = dht.readTemperature();
float humi = dht.readHumidity();
if((!isnan(temp)) || (!isnan(humi))){
enviar("Temperatura", temp, "Umidade", humi);
Serial.print("temperatura:");
Serial.println(temp);
Serial.print("Umidade:");
Serial.println(humi);
}
else{
Serial.println("Ruído");
}
delay(1000);
}