Para trabalhar com um banco de dados voltado para IOT, no caso utilizamos no caso o ThingSpeak, que pode ser acessado por esse link: https://thingspeak.com/
criamos a nossa conta de modo simples, clicando em cadastro e preenchendo as informações.
Após isso, selecionamos "Sign In" e realizamos o nosso login e seremos direcionado para a seguinte tela:
Selecionamos em "New channel" e informamos um Nome para o canal, uma descrição e quais serão os dados que iremos inserir, então finalmente no fim da página, selecionarmos "Salvar" sem alterar nenhuma outra informação.
Então, utilizaremos o seguinte código:
modificando a linha const char* host = "api.thingspeak.com"; de acordo com a informação encontrada na tela de "Chaves", em "Chave de Escrita"
Com isto alterado, basta executar o código e nossa aplicação estará subindo dados à API ThingSpeak.
criamos a nossa conta de modo simples, clicando em cadastro e preenchendo as informações.
Após isso, selecionamos "Sign In" e realizamos o nosso login e seremos direcionado para a seguinte tela:
Selecionamos em "New channel" e informamos um Nome para o canal, uma descrição e quais serão os dados que iremos inserir, então finalmente no fim da página, selecionarmos "Salvar" sem alterar nenhuma outra informação.
Então, utilizaremos o seguinte código:
#include#include const char* ssid = "REDE-WIFI"; const char* password = "Senha"; const char* host = "api.thingspeak.com"; const char* apiKey = "O6NLS0YC08HZHE7N"; #define DHTPIN 23 // pino de dados do DHT11 #define DHTTYPE DHT11 // define o tipo de sensor, no caso DHT11 DHT dht(DHTPIN, DHTTYPE); float humidade; float temperatura; void setup() { Serial.begin(9600); dht.begin(); delay(10); Serial.println(); Serial.print("Conectanto à rede"); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi conectado"); Serial.println("IP: "); Serial.println(WiFi.localIP()); } void loop() { humidade = dht.readHumidity(); temperatura = dht.readTemperature(); if (isnan(temperatura) || isnan(humidade)) { Serial.println("Falha ao ler DHT"); } else { Serial.print("conectando a "); Serial.println(host); String url = "/update"; url += "?api_key="; url += apiKey; url += "&field1="; url += humidade; url += "&field2="; url += temperatura; WiFiClient client; const int httpPort = 80; if (!client.connect(host, httpPort)) { Serial.println("connection failed"); return; } Serial.print("Requesting URL: "); Serial.println(url); // This will send the request to the server client.print(String("GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); unsigned long timeout = millis(); while (client.available() == 0) { if (millis() - timeout > 5000) { Serial.println(">>> Client Timeout !"); client.stop(); return; } } // Read all the lines of the reply from server and print them to Serial while(client.available()) { String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("finalizando conexão"); /* Serial.print("Umidade: "); Serial.print(humidity); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(temperature); Serial.println(" *C"); */ } delay(30000); }
modificando a linha const char* host = "api.thingspeak.com"; de acordo com a informação encontrada na tela de "Chaves", em "Chave de Escrita"
Com isto alterado, basta executar o código e nossa aplicação estará subindo dados à API ThingSpeak.
Comentários
Postar um comentário