Files
HumidityPi/ESP8266/sensornode/sensornode.ino
2017-09-16 19:48:04 +02:00

89 lines
2.1 KiB
C++

#include "DHT.h"
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <climits>
//DHT settings:
#define DHTPIN 14 // what digital pin we're connected to
#define MEASURESECONDS 60 //shouldn't be < 2sec
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
// WiFi settings:
const char* ssid = "Klenkschachtel";
const char* password = "KS!;3k@S$h=?AL";
//milli counter
unsigned long millitotal = 0;
float millicounter = 0;
//Temp variables
float h, t;
//First measurement
bool firstmeasurement = true;
void setup() {
Serial.begin(115200);
Serial.println("Sensornode start");
//dht driver initialization
dht.begin();
// Connect to WiFi
Serial.println("Connecting to wlan");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
h = dht.readHumidity();
// Read temperature as Celsius (the default)
t = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
} else {
// Initialize the client library
HTTPClient client;
// Make a HTTP request:
String url = "http://raspitemp:1337/abshum/" + String(t) + "/" + String(h);
client.begin(url);
client.GET();
client.end();
}
//https://www.mikrocontroller.net/topic/384345
ESP.deepSleep(MEASURESECONDS * 1000000);
//Let the esp chill a bit
delay(100);
}