From: Roman Bazalevsky Date: Fri, 26 Sep 2014 21:08:25 +0000 (+0400) Subject: Улучшена обработка ошибок при работе с проводными датчиками. X-Git-Url: https://git.rvb.name/weathermon.git/commitdiff_plain/2af24084f6a12980933eabb23d3bde41b8fd1a1f?ds=sidebyside Улучшена обработка ошибок при работе с проводными датчиками. --- diff --git a/Weather_WH2.ino b/Weather_WH2.ino index a1796cc..175721e 100644 --- a/Weather_WH2.ino +++ b/Weather_WH2.ino @@ -137,7 +137,18 @@ ISR(TIMER1_COMPA_vect) } void setup() { - + + Serial1.begin(115200); // Set the baud. + + // Wait for U-boot to finish startup. Consume all bytes until we are done. + do { + while (Serial1.available() > 0) { + Serial1.read(); + } + + delay(1000); + } while (Serial1.available()>0); + Serial1.begin(57600); Serial1.println(); Serial1.println("STATUS:STARTING"); @@ -166,6 +177,8 @@ unsigned long outdoor_interval = 45000; unsigned long previousIndoor = 0; unsigned long previousOutdoor = 0; +float temperature; +float pressure; void loop() { unsigned long now; @@ -211,7 +224,7 @@ void loop() { if ((unsigned long)(now - previousMillis) >= indoor_interval) { previousMillis = now; - + int chk = DHT.read11(DHT11PIN); if (chk==0) { @@ -223,16 +236,10 @@ void loop() { Serial1.print(",TEMPERATURE="); Serial1.print(DHT.temperature); - Serial1.println(); - Serial1.print("SENSOR:TYPE=BARO,"); - Serial1.print("PRESSURE="); - Serial1.print(bmp.readPressure()); - Serial1.print(",TEMPERATURE="); - Serial1.println(bmp.readTemperature()); - previousIndoor = now; digitalWrite(GREENPIN,HIGH); + } else { Serial1.println(); @@ -242,6 +249,15 @@ void loop() { } + pressure=bmp.readPressure(); + temperature=bmp.readTemperature(); + Serial1.println(); + Serial1.print("SENSOR:TYPE=BARO,"); + Serial1.print("PRESSURE="); + Serial1.print(pressure); + Serial1.print(",TEMPERATURE="); + Serial1.println(temperature); + } if ((unsigned long)(now - previousIndoor) > indoor_interval*10) { @@ -262,6 +278,7 @@ void loop() { } + }