Add more debugging
[manu/arduino-maison.git] / cave / cave.ino
index 868901f..5abccb6 100644 (file)
@@ -1,6 +1,7 @@
-#include <ESP8266WiFi.h>
+#include <WiFi.h>
 #include <WiFiUdp.h>
 #include <HCSR04.h>
+#include <SimpleDHT.h>
 
 #include "cave-config.h"
 
@@ -20,6 +21,10 @@ WiFiUDP Udp;
 // TRIGGER, ECHO
 UltraSonicDistanceSensor distanceSensor(14, 12);
 
+// Temp
+int pinDHT22 = 27;
+SimpleDHT22 dht22(pinDHT22);
+
 void setup() {
 
   #if defined(DEBUG)
@@ -46,9 +51,22 @@ void setup() {
 }
 
 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
@@ -58,11 +76,8 @@ void loop() {
 
 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();
 }