Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ESP8266WiFi.h>
- #include "DHT.h"
- #define AP_SSID "xxxxx"
- #define AP_PASSWORD "xxxxxx"
- #define API_KEY "xxxxx"
- #define REPORT_INTERVAL 60 // in sec
- #define THINGSPEAK_CLOUD_ADDRESS "api.thingspeak.com"
- #define THINGSPEAK_CLOUD_PORT 80
- #define DHT22_PIN 13 // DHT22 pin
- float oldTemp;
- float oldHum;
- DHT dht;
- void setup() {
- Serial.begin(115200);
- wifiConnect();
- Serial.println();
- Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");
- dht.setup(DHT22_PIN); // data pin 2
- oldTemp = -1;
- oldHum = -1;
- }
- void loop() {
- delay(dht.getMinimumSamplingPeriod());
- float hum = dht.getHumidity();
- float temp = dht.getTemperature();
- 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)
- {
- sendTeperature(temp);
- oldTemp = temp;
- }
- if (hum != oldHum)
- {
- sendHumidity(hum);
- oldHum = hum;
- }
- 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 sendTeperature(float temp)
- {
- WiFiClient client;
- while(!client.connect(THINGSPEAK_CLOUD_ADDRESS, THINGSPEAK_CLOUD_PORT)) {
- Serial.println("connection failed");
- wifiConnect();
- }
- String url = "";
- url += "/update?api_key="+ String(API_KEY) + "&field2="+String(temp);
- Serial.print("POST data to URL: ");
- Serial.println(url);
- client.print(String("POST ") + url + " HTTP/1.1\r\n" +
- "Host: " + String(THINGSPEAK_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 sendHumidity(float hum)
- {
- WiFiClient client;
- while(!client.connect(THINGSPEAK_CLOUD_ADDRESS, THINGSPEAK_CLOUD_PORT)) {
- Serial.println("connection failed");
- wifiConnect();
- }
- String url = "";
- url += "/update?api_key="+ String(API_KEY) + "&field1="+String(hum);
- Serial.print("POST data to URL: ");
- Serial.println(url);
- client.print(String("POST ") + url + " HTTP/1.1\r\n" +
- "Host: " + String(THINGSPEAK_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");
- }
Advertisement
Add Comment
Please, Sign In to add comment