-#include <ESP8266WiFi.h>
+#include <WiFi.h>
#include <WiFiUdp.h>
#include <HCSR04.h>
+#include <SimpleDHT.h>
#include "cave-config.h"
// TRIGGER, ECHO
UltraSonicDistanceSensor distanceSensor(14, 12);
+// Temp
+int pinDHT22 = 27;
+SimpleDHT22 dht22(pinDHT22);
+
void setup() {
#if defined(DEBUG)
}
void loop() {
- // FIXME: get temperature from sensor and use it here
- float temp = 20.0;
- double water_dist = distanceSensor.measureDistanceCm(temp);
+ float temperature = 0;
+ float humidity = 0;
+ int err = SimpleDHTErrSuccess;
+ if ((err = dht22.read2(&temperature, &humidity, NULL)) == SimpleDHTErrSuccess) {
+ #if defined(DEBUG)
+ Serial.println("Temperature: "+String(temperature));
+ Serial.println("Humidity: "+String(humidity));
+ #endif
+ sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(temperature));
+ sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(humidity));
+ } else {
+ #if defined(DEBUG)
+ Serial.println("DHT 22 error");
+ #endif
+ }
+ double water_dist = distanceSensor.measureDistanceCm(temperature);
#if defined(DEBUG)
Serial.println("Distance: "+String(water_dist));
#endif
void sendToInfluxDB(String measure, String key, String value) {
String line = measure+" "+key+"="+value;
- int line_length = line.length()+1;
- char influx_line[line_length];
- line.toCharArray(influx_line, line_length);
Udp.begin(localPort);
Udp.beginPacket(influxdb_ip, influxdb_port);
- Udp.write(influx_line);
+ Udp.print(line);
Udp.endPacket();
}