// GPIO where the DS18B20 is connected to
const int oneWireBus = 19;
// Setup a oneWire instance to communicate with any OneWire devices
+// ROM = 28 C6 C9 81 E3 6E 3C C ROM = 28 31 A7 1D 13 21 1 F6 ROM = 28 15 8E 4B 13 21 1 46 No more addresses.
+DeviceAddress sensor_heater_out = {0x28, 0x31, 0xA7, 0x1D, 0x13, 0x21, 0x01, 0xF6};
+DeviceAddress sensor_serre = {0x28, 0x15, 0x8E, 0x4B, 0x13, 0x21, 0x01, 0x46};
+DeviceAddress sensor_heater_in = {0x28, 0xC6, 0xC9, 0x81, 0xE3, 0x6E, 0x3C ,0x0C};
OneWire oneWire(oneWireBus);
// Pass our oneWire reference to Dallas Temperature sensor
DallasTemperature sensors(&oneWire);
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASS);
-
+ delay(500);
+
while (WiFi.status() != WL_CONNECTED) {
+ WiFi.begin(wifi_ssid, wifi_pass);
delay(500);
+ if (WiFi.status() != WL_CONNECTED) {
+ delay(2000);
+ }
}
sensors.begin();
fulldata = true;
previousMillis = millis();
- // Check wifi connexion
- if ( WiFi.status() != WL_CONNECTED ) {
- int retry = 0;
- WiFi.mode(WIFI_STA);
+ // Reconnect if needed
+ while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(WIFI_SSID, WIFI_PASS);
- while (retry < 10 || WiFi.status() != WL_CONNECTED) {
- retry++;
- delay(500);
+ delay(500);
+ if (WiFi.status() != WL_CONNECTED) {
+ delay(2000);
}
}
Serial.println("DEBUG wifi connected, start temp measure");
sensors.requestTemperatures();
- float tempC = sensors.getTempCByIndex(0);
+ float serre_tempC = sensors.getTempC(sensor_serre);
+ float heater_out_tempC = sensors.getTempC(sensor_heater_out);
+ float heater_in_tempC = sensors.getTempC(sensor_heater_in);
+
+ if(serre_tempC == DEVICE_DISCONNECTED_C) {
+ // Error
+ } else {
+ sendToInfluxDB("temperature,city="+city+",location=serre-semis", "value", String(serre_tempC));
+ }
+
+ if(heater_out_tempC == DEVICE_DISCONNECTED_C) {
+ // Error
+ } else {
+ sendToInfluxDB("temperature,city="+city+",location=heater,direction=out", "value", String(heater_out_tempC));
+ }
- if(tempC == DEVICE_DISCONNECTED_C)
+ if(heater_in_tempC == DEVICE_DISCONNECTED_C) {
// Error
} else {
- sendToInfluxDB("temperature,city="+city+",location=serre_semis", "value", String(tempC));
+ sendToInfluxDB("temperature,city="+city+",location=heater,direction=in", "value", String(heater_in_tempC));
}
sendToInfluxDB("teleinfo,city="+city+",location="+location, "SINSTS", tinfo_SINSTS);