1.- Daos de alta en https://thingspeak.com/
2.- Ahí dentro, podemos abrir un Canal para registrar los datos enviados. O hacer un link a una cuenta de Twitter para que escriba por nosotros un tweet cuando se le mande una URL. Para ambas cosas, hay que generar una URL con una clave (KEY) que nos darán en la página.
Por ejemplo, para enviar el dato de la temperatura "69" a un canal (y luego verlo a través de una aplicación móvil), la cadena sería:
https://api.thingspeak.com/update?api_key=xxxxxxxxxx&field1=69
Por ejemplo, para enviar el tweet "Hola Mundo", la cadena sería:
https://api.thingspeak.com/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status=Hola Mundo
3.- El código básico del programa sería el siguiente:
#include <WiFiUdp.h> //librerías necesarias para iniciar el wifi
#include <ESP8266WiFi.h> //librerías necesarias para manejar el ESP8266
#include "DHT.h" //Instalar dht sensor library de adafruit
const char* host = "api.thingspeak.com"; //declaramos el servidor al que nos conectaremos
const int httpPort = 443;
const char* ssid= "nombre_red"; //poner nombre y password de red
const char* password="pass_red";
String url; //variables donde irá la URL que enviará el arduino
String arg;
WiFiClientSecure client; //declaramos el cliente
DHT dht(D5, DHT22); //iniciamos el dht
int humedad,temperatura;
void setup()
{
//iniciamos la wifi
WiFi.begin(ssid, password);
while(WiFi.status()!=WL_CONNECTED) delay(200);
client.setInsecure();
//iniciamos el sensor
dht.begin();
}
void loop()
{
delay(3600000); //espera una hora
humedad = dht.readHumidity(); //leemos humedad
delay(2000);
temperatura = dht.readTemperature(); //leemos temperatura
//enviamos la URL con la KEY de ThingSpeak
while (!client.connect(host, httpPort)) delay(200);
url = "/apps/thingtweet/1/statuses/update?api_key=XXXXXXXXXXXXX&status="; //Sustituir XXXXX... por la Key de ThingSpeak
arg = "Temperatura " + String(temperatura) + "%0AHumedad " +String(humedad);
client.print(String("GET ") + url + arg + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
client.stop();
}