fixed serial init
[svn42.git] / rf433ctl / rf433ctl.pde
index 6f5ae7d..2cf589a 100644 (file)
@@ -22,6 +22,7 @@
 OneWire  onewire(ONE_WIRE_PIN);
 DallasTemperature dallas_sensors(&onewire);
 DeviceAddress onShieldTemp = { 0x10, 0xE7, 0x77, 0xD3, 0x01, 0x08, 0x00, 0x3F };
+#define TEMPC_OFFSET_ARDUINO_GENEREATED_HEAT -4.0
 
 typedef struct {
   byte offset;
@@ -204,7 +205,7 @@ void printTemperature(DeviceAddress deviceAddress)
   dallas_sensors.requestTemperatures();
   float tempC = dallas_sensors.getTempC(deviceAddress);
   Serial.print("Temp C: ");
-  Serial.println(tempC);
+  Serial.println(tempC TEMPC_OFFSET_ARDUINO_GENEREATED_HEAT);
   //Serial.print(" Temp F: ");
   //Serial.println(DallasTemperature::toFahrenheit(tempC)); // Converts tempC to Fahrenheit
 }
@@ -226,7 +227,7 @@ void updateLightLevel(unsigned int pin)
     return;
   
   unsigned int diff = abs(value - light_level_mean_);
-  if (diff > 250)
+  if (light_level_mean_ < 6 || diff > 250)
     light_level_mean_ = value;
   else
       light_level_mean_=(unsigned int) ( ((float) light_level_mean_) * 0.98 + ((float)value)*0.02 );
@@ -288,6 +289,8 @@ void setup()
   pinMode(PANIC_BUTTON_PIN, INPUT);      // set pin to input
   digitalWrite(PANIC_BUTTON_PIN, HIGH);  // turn on pullup resistors 
   analogWrite(BLUELED_PWM_PIN,0);
+
+  Serial.begin(9600);
   
   onewire.reset();
   onewire.reset_search();
@@ -295,9 +298,7 @@ void setup()
   //in case we change temp sensor:
   if (!dallas_sensors.getAddress(onShieldTemp, 0)) 
     Serial.println("Error: Unable to find address for Device 0"); 
-  dallas_sensors.setResolution(onShieldTemp, 9);
-  
-  Serial.begin(9600);
+  dallas_sensors.setResolution(onShieldTemp, 9);  
 }
 
 unsigned int ir_time=IR_SAMPLE_DURATION;
@@ -307,6 +308,12 @@ boolean pb_state=0;
 boolean pb_postth_state=0;
 unsigned int pb_time=0;
 
+void echoCommand(char command)
+{
+  Serial.print(command);
+  Serial.print(": ");
+}
+
 void loop()
 {
   ir_time--;
@@ -333,7 +340,7 @@ void loop()
     {   
       pb_postth_state=1;
       Serial.println("PanicButton");
-      flash_led(7);
+      flash_led(4);
     }
     else if (!pb_state)
       pb_postth_state=0;
@@ -386,10 +393,15 @@ void loop()
     else if(command == 'h')
       send_frame(words[D2_OFF]);
     else if(command == 'T')
+    {
+      echoCommand(command);
       printTemperature(onShieldTemp);
+    }
     else if(command == 'P')
+    {
+      echoCommand(command);
       printLightLevel();
-
+    }
     else
       Serial.println("Error: unknown command");
   }