/* Program for handling the serial programming This version uses standard serial library */ #include #define relayPin 0 // Connected to the third pin, just next to power and to button #define DHTPIN 4 // DHT sensor pin #define DHTTYPE DHT22 // DHT 22 (AM2302) #define RELAY_ON 1 // Define relay on pin state #define RELAY_OFF 0 // Define relay off pin state const char node = '1'; // network address const int ledPin = 1; // the number of the LED pin (default 1) int incomingByte; int state = LOW; // Initialize the humidity and temperature variables DHTStable DHT; // initialize the DHT library int temperature; int humidity; int intchk; unsigned long lastTime = 0; void setup() { // Turn relay off and set pinMode Output digitalWrite(relayPin, RELAY_OFF); // initialise the relay to off pinMode(relayPin, OUTPUT); Serial.swap(1); Serial.begin(9600); pinMode(ledPin, OUTPUT); pinMode(DHTPIN, INPUT); digitalWrite(ledPin,LOW); // Read initial humn and temp values // temp = DHT.getTemperature(); // hum = DHT.getHumidity(); } void loop() { //delay(2000); //intchk = DHT.read22(DHTPIN); //temperature = DHT.getTemperature(); //humidity = DHT.getHumidity(); if (Serial.available() > 0) { incomingByte = Serial.read(); /* Command reference for UI_Node1 * 1: Return node is alive message. * a: Turn off led * A: Turn On led * h: return humidity value * t: return temperature value * r: turn relay off * R: turn relay off */ switch(incomingByte) { #ifdef DEBUG case '1': Serial.print("Node "); Serial.flush(); Serial.print(node); Serial.flush(); Serial.println(" is alive."); Serial.flush(); break; #endif case 'a': digitalWrite(ledPin,LOW); #ifdef DEBUG Serial.println("Led off"); Serial.flush(); #endif break; case 'A': digitalWrite(ledPin,HIGH); #ifdef DEBUG Serial.println("Led on"); Serial.flush(); #endif break; case 'R': digitalWrite(relayPin, RELAY_ON); #ifdef DEBUG Serial.println("Relay on"); Serial.flush(); #endif break; case 'r': digitalWrite(relayPin, RELAY_OFF); #ifdef DEBUG Serial.println("Relay off"); Serial.flush(); #endif break; case 't': intchk = DHT.read22(DHTPIN); delay(3000); temperature = DHT.getTemperature(); Serial.print("Temperature: "); Serial.println(temperature); Serial.flush(); break; case 'h': intchk = DHT.read22(DHTPIN); delay(3000); humidity = DHT.getHumidity(); Serial.print("Humidity: "); Serial.println(humidity); Serial.flush(); break; // status query #ifdef DEBUG case 's': switch (intchk) { case DHTLIB_OK: Serial.println("Read Status OK"); Serial.flush(); break; case DHTLIB_ERROR_CHECKSUM: Serial.println("Checksum error"); Serial.flush(); break; case DHTLIB_ERROR_TIMEOUT: Serial.println("Time out error"); Serial.flush(); break; default: Serial.println("Unknown error"); Serial.flush(); break; } break; #endif default: break; } } }