Cac/arduino/rele/rele.ino

65 lines
1.6 KiB
Arduino
Raw Normal View History

2015-11-14 18:02:13 +01:00
#include <SoftwareSerial.h>
#define RELAY1 8
SoftwareSerial mySerial(4, 2); // RX, TX (seriale su cui e' settato il bluetooth)
2015-11-14 18:02:13 +01:00
2015-11-30 01:40:07 +01:00
char statoRele = 'f'; // salviamo lo stato del rele
2015-11-14 18:02:13 +01:00
char blueToothVal; //value sent over via bluetooth
int contatoreSecondi = 0;
2015-11-14 18:02:13 +01:00
void setup() {
// Open serial communications:
Serial.begin(9600);
Serial.println("Type AT commands!");
// The HC-06 defaults to 9600 according to the datasheet.
mySerial.begin(9600);
pinMode(13,OUTPUT); //il led
pinMode(RELAY1, OUTPUT); //il rele
contatoreSecondi = 0;
2015-11-14 18:02:13 +01:00
}
void loop() {
//Si autospegne se non riceve alcun messaggio per un ora
if (contatoreSecondi==3600){
digitalWrite(13,LOW); //spengo il led
digitalWrite(RELAY1,HIGH); //spengo il rele
statoRele = 'f';
blueToothVal=' ';
}
2015-11-14 18:02:13 +01:00
// Legge l'input dal raspeberry
2015-11-14 18:02:13 +01:00
if (mySerial.available()){
blueToothVal=(char)mySerial.read();
2015-11-14 18:02:13 +01:00
}
if (blueToothVal=='n')//se ricevo n lo accendo
{
digitalWrite(13,HIGH); //accendo il led
digitalWrite(RELAY1,LOW); //accendo il rele
2015-11-14 18:02:13 +01:00
mySerial.write('n');
statoRele = blueToothVal;
2015-11-14 18:02:13 +01:00
blueToothVal=' ';
contatoreSecondi = 0;
}else if (blueToothVal=='f')//se ricevo f lo spengo
{
digitalWrite(13,LOW); //spendo il led
digitalWrite(RELAY1,HIGH); //spengo il rele
2015-11-14 18:02:13 +01:00
mySerial.write('f');
statoRele = blueToothVal;
blueToothVal=' ';
contatoreSecondi = 0;
}else if(blueToothVal=='s'){ //richiedo lo stato
mySerial.write(statoRele); //mando lo stato
2015-11-14 18:02:13 +01:00
blueToothVal=' ';
contatoreSecondi = 0;
2015-11-14 18:02:13 +01:00
}
2015-11-14 18:02:13 +01:00
delay(1000);
contatoreSecondi += 1;
2015-11-14 18:02:13 +01:00
}