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 // Check wifi connexion
66 if ( WiFi.status() != WL_CONNECTED ) {
69 WiFi.begin(WIFI_SSID, WIFI_PASS);
70 while (retry < 10 || WiFi.status() != WL_CONNECTED) {
76 if ( WiFi.status() == WL_CONNECTED ) {
77 sensors_event_t event;
79 dht.temperature().getEvent(&event);
80 if (isnan(event.temperature)) {
82 Serial.println("DHT 22 temperature error");
86 Serial.println("Temperature: "+String(event.temperature));
88 sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(event.temperature));
89 double water_dist = distanceSensor.measureDistanceCm(event.temperature);
91 Serial.println("Distance: "+String(water_dist));
93 sendToInfluxDB("water_well,city="+city+",location="+location, "distance", String(water_dist));
95 dht.humidity().getEvent(&event);
96 if (isnan(event.relative_humidity)) {
98 Serial.println("DHT 22 humidity error");
102 Serial.println("Humidity: "+String(event.relative_humidity));
104 sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(event.relative_humidity));
109 void sendToInfluxDB(String measure, String key, String value) {
110 String line = measure+" "+key+"="+value;
111 Udp.begin(localPort);
112 Udp.beginPacket(influxdb_ip, influxdb_port);