4 #include <Adafruit_Sensor.h>
8 #include "cave-config.h"
10 const char* wifi_ssid = WIFI_SSID;
11 const char* wifi_pass = WIFI_PASS;
14 IPAddress influxdb_ip(INFLUXDB_IP);
15 long influxdb_port = INFLUXDB_PORT;
16 unsigned int localPort = 2390;
18 long unsigned poll_int = POLL_INT;
20 String location = LOCATION;
24 UltraSonicDistanceSensor distanceSensor(14, 12);
29 DHT_Unified dht(DHTPIN, DHTTYPE);
35 Serial.print("Connecting to ");
36 Serial.println(wifi_ssid);
40 WiFi.begin(WIFI_SSID, WIFI_PASS);
42 while (WiFi.status() != WL_CONNECTED) {
50 Serial.println("WiFi connected");
51 Serial.println("IP address: ");
52 Serial.println(WiFi.localIP());
57 dht.temperature().getSensor(&sensor);
58 dht.humidity().getSensor(&sensor);
65 sensors_event_t event;
67 dht.temperature().getEvent(&event);
68 if (isnan(event.temperature)) {
70 Serial.println("DHT 22 temperature error");
74 Serial.println("Temperature: "+String(event.temperature));
76 sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(event.temperature));
77 double water_dist = distanceSensor.measureDistanceCm(event.temperature);
79 Serial.println("Distance: "+String(water_dist));
81 sendToInfluxDB("water_well,city="+city+",location="+location, "distance", String(water_dist));
83 dht.humidity().getEvent(&event);
84 if (isnan(event.relative_humidity)) {
86 Serial.println("DHT 22 humidity error");
90 Serial.println("Humidity: "+String(event.relative_humidity));
92 sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(event.relative_humidity));
96 void sendToInfluxDB(String measure, String key, String value) {
97 String line = measure+" "+key+"="+value;
99 Udp.beginPacket(influxdb_ip, influxdb_port);