X-Git-Url: http://git.home-dn.net/?p=manu%2Farduino-maison.git;a=blobdiff_plain;f=garage%2Fgarage.ino;fp=garage%2Fgarage.ino;h=0c11eaab2ec4aa86bfe5044a775d43f4d6c9fdde;hp=0000000000000000000000000000000000000000;hb=92461c3a3b98d41c79ae7aa3eeb849f20bead087;hpb=6c0f01d1ab0d53a7b422cdcdb9596f9f1d8c4329 diff --git a/garage/garage.ino b/garage/garage.ino new file mode 100644 index 0000000..0c11eaa --- /dev/null +++ b/garage/garage.ino @@ -0,0 +1,69 @@ +#include +#include +#include +#include + +#include "garage-config.h" + +const char* wifi_ssid = WIFI_SSID; +const char* wifi_pass = WIFI_PASS; + +// Grafana +IPAddress influxdb_ip(INFLUXDB_IP); +long influxdb_port = INFLUXDB_PORT; +unsigned int localPort = 2390; +// MilliSeconds +long unsigned poll_int = POLL_INT; +String city = CITY; +String location = LOCATION; +WiFiUDP Udp; + +int pinDHT22 = 13; +SimpleDHT22 dht22(pinDHT22); + +TeleInfo teleinfo(&Serial); + +void setup() { + + Serial.begin(1200); + WiFi.mode(WIFI_STA); + WiFi.begin(WIFI_SSID, WIFI_PASS); + + while (WiFi.status() != WL_CONNECTED) { + delay(500); + } +} + +void loop() { + float temperature = 0; + float humidity = 0; + int err = SimpleDHTErrSuccess; + if ((err = dht22.read2(&temperature, &humidity, NULL)) == SimpleDHTErrSuccess) { + sendToInfluxDB("temperature,city="+city+",location="+location, "value", String(temperature)); + sendToInfluxDB("humidity,city="+city+",location="+location, "value", String(humidity)); + } + + teleinfo.process(); + if(teleinfo.available()){ + long I1 = teleinfo.getLongVal("IINST1"); + long I2 = teleinfo.getLongVal("IINST2"); + long I3 = teleinfo.getLongVal("IINST3"); + long PAPP = teleinfo.getLongVal("PAPP"); + long BASE = teleinfo.getLongVal("BASE"); + sendToInfluxDB("teleinfo,city="+city+",phase=1", "IINST", String(I1)); + sendToInfluxDB("teleinfo,city="+city+",phase=2", "IINST", String(I2)); + sendToInfluxDB("teleinfo,city="+city+",phase=3", "IINST", String(I3)); + sendToInfluxDB("teleinfo,city="+city, "PAPP", String(PAPP)); + sendToInfluxDB("teleinfo,city="+city, "BASE", String(BASE)); + teleinfo.resetAvailable(); + } + delay(POLL_INT); +} + +void sendToInfluxDB(String measure, String key, String value) { + String line = measure+" "+key+"="+value; + Udp.begin(localPort); + Udp.beginPacket(influxdb_ip, influxdb_port); + Udp.print(line); + Udp.endPacket(); +}