Улучшена обработка ошибок при работе с проводными датчиками.
[weathermon.git] / Weather_WH2.ino
index 0977862328dc7b510293b25733f15f07cec0f20a..175721e012753060a10e1db7227d2d6eabbbcce0 100644 (file)
@@ -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,13 +236,6 @@ 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);
 
@@ -243,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) {