From fc7724a0b892fe2407443e417988baa50de6284b Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Wed, 1 Aug 2018 09:52:26 +0200 Subject: Support variable number of ds18b20 sensors Signed-off-by: Florian Pritz --- src/main.cpp | 52 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d8122a6..85fe3fa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,6 +3,7 @@ #include #include #include +#include // Pin setup const int oneWirePin = 7; @@ -18,35 +19,42 @@ DHT dht(dhtPin, DHTTYPE); void setup () { Serial.begin(9600); dht.begin(); + sensors.begin(); } -void loop () { - sensors.requestTemperatures(); - - float t1 = sensors.getTempCByIndex(0); - - float t2 = dht.readTemperature(); - float h1 = dht.readHumidity(); - - char temp[BUFSIZE]; - // format: t:1= t:2= h:1= - String line = ""; - line += 0; +void print_float2serial(float val) { + char buf[BUFSIZE]; + dtostrf(val, 5, 2, buf); + Serial.print(buf); +} +void print_value(char* type, uint8_t id, float val) { + Serial.print(" "); + Serial.print(type); + Serial.print(":"); + Serial.print(id); + Serial.print("="); + print_float2serial(val); +} - line += " t:1="; - dtostrf(t1, 5, 2, temp); - line += temp; +void loop () { + sensors.requestTemperatures(); - line += " t:2="; - dtostrf(t2, 5, 2, temp); - line += temp; + uint8_t devcounter = 0; - line += " h:1="; - dtostrf(h1, 5, 2, temp); - line += temp; + // output format: t:1= t:2= h:1= + Serial.print("0"); + for (uint8_t i = 0; i < sensors.getDeviceCount(); ++i) { + float temp = sensors.getTempCByIndex(i); + print_value("t", devcounter++, temp); + } + float t1 = dht.readTemperature(); + float h1 = dht.readHumidity(); - Serial.println(line); + print_value("t", devcounter, t1); + print_value("h", devcounter, h1); + devcounter++; + Serial.println(); delay(10000); } -- cgit v1.2.3-24-g4f1b