Overview of the Series
Warnings:
- Not that simple, it is full stack.
- IoT Not necessarily required
- Think on your feet
- Lots of Holes
- Think of the problem at hand
Good Things:
- Get a feel of complete Stack
- Learn a lot
- Be able to make a decision
- Build something cool
The IoT Architecure
The Devices
The Connectivity
The Cloud and the Internet
We have the Data? Now what
Concrete Examples
Example 1
A simple IOT demo with Explore ESP8266
#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
IoT the Hackers way
Setting up the ESP8266 with Arudino
Reading Temperature and Humidity
How?
Low cost stuff!
ESP8266
Custom Cloud
IoT the Hackers way
By Sandeep Patil
IoT the Hackers way
- 631