Warnings:
Good Things:
#include <DHT.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include "font.h"
#define offset 0x00 // SDD1306 // offset=0 for SSD1306 controller
//#define offset 0x02 // SH1106 // offset=2 for SH1106 controller
#define OLED_address 0x3c
String apiKey = "things_speak_api_key";
char ssid[20] = "wifi ssid";
char password[20] = "wifi password";
char TempValue[15];
String str;
const char* server = "api.thingspeak.com";
#define DHTPIN 5 // what pin we're connected to
DHT dht(DHTPIN, DHT11,15);
WiFiClient client;
void setup() {
Serial.begin(115200); // for debugging
Wire.begin(0,2); // Initialize I2C and OLED Display
init_OLED();
reset_display();
clear_display();
delay(10);
sendStrXY("Connecting to ",0,0);
sendStrXY(ssid, 3, 0);
// Setup the Internet
WiFi.begin(ssid, password);
int pos = 0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
pos++;
sendStrXY(".", 5, pos);
}
sendStrXY("connected", 5, 0);
clear_display();
delay(100);
//Setup the display Screen
sendStrXY("Explore Embedded" ,0,0);
sendStrXY("Temp:",3,0);
sendStrXY("Humidity:",4,0);
sendStrXY("InternetOfThings",7,0);
}
//String TempValue;
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
char tvalue[5], hvalue[5];
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
str = String(t);
str.toCharArray(tvalue,15);
sendStrXY(tvalue,3,10);
str = String(h);
str.toCharArray(hvalue,15);
sendStrXY(hvalue,4,10);
if (client.connect(server,80)) { // "184.106.153.149" or api.thingspeak.com
String postStr = apiKey;
postStr +="&field1=";
postStr += String(t);
postStr +="&field2=";
postStr += String(h);
postStr += "\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" degrees Celcius Humidity: ");
Serial.print(h);
Serial.println("% send to Thingspeak");
}
client.stop();
Serial.println("Waiting...");
// thingspeak needs minimum 15 sec delay between updates
delay(20000);
}
Example 2: Air Quality Egg
Resources
Example 3: Starling
Resources
Explore IoT Kit
ESP8266
Custom Cloud