#include #include "DHT.h" #include #include //AP definitions - update this #define AP_SSID "Windows Phone6885" #define AP_PASSWORD "yoohoooo" // EasyIoT Cloud definitions - change EIOT_CLOUD_TEMP_INSTANCE_PARAM_ID and EIOT_CLOUD_HUM_INSTANCE_PARAM_ID #define EIOT_CLOUD_TEMP_INSTANCE_PARAM_ID "5719dfa4c943a0182f6c0b4b/ajL9nyaYbuZBu7eF" #define EIOT_CLOUD_HUM_INSTANCE_PARAM_ID "5719dfa4c943a0182f6c0b4b/WcGJGNP45vVHiwto" #define EIOT_CLOUD_MAX_INSTANCE_PARAM_ID "5719dfa4c943a0182f6c0b4b/8pB7wSIGBZWZEC0J" #define REPORT_INTERVAL 60 // in sec #define EIOT_CLOUD_ADDRESS "cloud.iot-playground.com" #define EIOT_CLOUD_PORT 40404 #define DHT22_PIN 4 // DHT22 pin #define ONE_WIRE_BUS 2 // one wire bus pin OneWire oneWire(ONE_WIRE_BUS); DallasTemperature DS18B20(&oneWire); DallasTemperature sensors(&oneWire); float oldTemp; float oldHum; float oldMax; DHT dht; void setup() { Serial.begin(115200); wifiConnect(); Serial.println(); Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F) \t Maxim Sensor Temperature (C)"); dht.setup(DHT22_PIN); // data pin 2 DeviceAddress Probe02 = { 0x28, 0x8B, 0x77, 0x3E, 0x07, 0x00, 0x00, 0x17 }; oldTemp = -1; oldHum = -1; oldMax = -1; } void loop() { delay(500); float hum = dht.getHumidity(); float temp = dht.getTemperature(); float maximtemp; DS18B20.requestTemperatures(); maximtemp = DS18B20.getTempCByIndex(0); Serial.print("The maxim temperature sensor reading is: "); Serial.print(maximtemp); Serial.print(dht.getStatusString()); Serial.print("\t"); Serial.print(hum, 1); Serial.print("\t\t"); Serial.print(temp, 1); Serial.print("\t\t"); Serial.println(dht.toFahrenheit(temp), 1); if (temp != oldTemp) { sendDHTTemp(temp); oldTemp = temp; } if (hum != oldHum) { sendDHTHumidity(hum); oldHum = hum; } if (maximtemp != oldMax) { sendMAXItemp(maximtemp); oldMax = maximtemp; } int cnt = REPORT_INTERVAL; while(cnt--) delay(1000); } void wifiConnect() { Serial.print("Connecting to AP"); WiFi.begin(AP_SSID, AP_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); } void sendDHTTemp(float temp) { WiFiClient client; while(!client.connect(EIOT_CLOUD_ADDRESS, EIOT_CLOUD_PORT)) { Serial.println("connection failed"); wifiConnect(); } String url = ""; // URL: /RestApi/SetParameter/[instance id]/[parameter id]/[value] url += "/RestApi/SetParameter/"+ String(EIOT_CLOUD_TEMP_INSTANCE_PARAM_ID) + "/"+String(temp); // generate EasIoT cloud update parameter URL Serial.print("POST data to URL: "); Serial.println(url); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Host: " + String(EIOT_CLOUD_ADDRESS) + "\r\n" + "Connection: close\r\n" + "Content-Length: 0\r\n" + "\r\n"); delay(100); while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("Connection closed"); } void sendMAXItemp(float maximtemp) { WiFiClient client; while(!client.connect(EIOT_CLOUD_ADDRESS, EIOT_CLOUD_PORT)) { Serial.println("connection failed"); wifiConnect(); } Serial.print("now posting maxim sensor data"); String url = ""; // URL: /RestApi/SetParameter/[instance id]/[parameter id]/[value] url += "/RestApi/SetParameter/"+ String(EIOT_CLOUD_MAX_INSTANCE_PARAM_ID) + "/"+String(maximtemp); // generate EasIoT cloud update parameter URL Serial.print("POST data to URL: "); Serial.println(url); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Host: " + String(EIOT_CLOUD_ADDRESS) + "\r\n" + "Connection: close\r\n" + "Content-Length: 0\r\n" + "\r\n"); delay(100); while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("Connection closed"); } void sendDHTHumidity(float hum) { WiFiClient client; while(!client.connect(EIOT_CLOUD_ADDRESS, EIOT_CLOUD_PORT)) { Serial.println("connection failed"); wifiConnect(); } String url = ""; // URL: /RestApi/SetParameter/[instance id]/[parameter id]/[value] url += "/RestApi/SetParameter/"+ String(EIOT_CLOUD_HUM_INSTANCE_PARAM_ID) + "/"+String(hum); // generate EasIoT cloud update parameter URL Serial.print("POST data to URL: "); Serial.println(url); client.print(String("POST ") + url + " HTTP/1.1\r\n" + "Host: " + String(EIOT_CLOUD_ADDRESS) + "\r\n" + "Connection: close\r\n" + "Content-Length: 0\r\n" + "\r\n"); delay(100); while(client.available()){ String line = client.readStringUntil('\r'); Serial.print(line); } Serial.println(); Serial.println("Connection closed"); }