From 9640b115895ad6878b6d29ed7da7f4f5674a6481 Mon Sep 17 00:00:00 2001 From: jops Date: Wed, 2 Dec 2015 02:34:08 +0100 Subject: [PATCH] modifiche rele --- InstallazioneBluetooth.txt | 2 ++ arduino/rele/rele.ino | 23 +++++++++++++++-------- bluetoothRele.py | 20 +++++++++++++++++--- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/InstallazioneBluetooth.txt b/InstallazioneBluetooth.txt index 0b0ad5e..64305dd 100644 --- a/InstallazioneBluetooth.txt +++ b/InstallazioneBluetooth.txt @@ -6,6 +6,8 @@ Installa il bluetooth Per scannerizzare i dispositivi bluetooth hcitool scan +per capire che adattatore devo usare: +root@raspberrypi /home/pi/script/cac/utils # hcitool dev Fare pairing root@raspberrypi /home/pi/script/cac/utils # bluez-simple-agent hci0 98:D3:31:B2:35:33 diff --git a/arduino/rele/rele.ino b/arduino/rele/rele.ino index db0556d..c0b5945 100644 --- a/arduino/rele/rele.ino +++ b/arduino/rele/rele.ino @@ -3,7 +3,7 @@ SoftwareSerial mySerial(4, 2); // RX, TX (seriale su cui e' settato il bluetooth) -char statoRele = 'f'; // salviamo lo stato del rele +char statoRele = 'n'; // salviamo lo stato del rele char blueToothVal; //value sent over via bluetooth int contatoreSecondi = 0; @@ -22,9 +22,9 @@ void setup() { 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 + if (contatoreSecondi > 3600){ + digitalWrite(13,HIGH); //accendo il led + digitalWrite(RELAY1,LOW); //accendo il rele statoRele = 'f'; blueToothVal=' '; @@ -36,26 +36,33 @@ void loop() { } - if (blueToothVal=='n')//se ricevo n lo accendo + if (blueToothVal=='n')//se ricevo n lo spengo { digitalWrite(13,HIGH); //accendo il led digitalWrite(RELAY1,LOW); //accendo il rele - mySerial.write('n'); + mySerial.write('n\n'); statoRele = blueToothVal; blueToothVal=' '; contatoreSecondi = 0; - }else if (blueToothVal=='f')//se ricevo f lo spengo + }else if (blueToothVal=='f')//se ricevo f lo accendo { digitalWrite(13,LOW); //spendo il led digitalWrite(RELAY1,HIGH); //spengo il rele - mySerial.write('f'); + mySerial.write('f\n'); statoRele = blueToothVal; blueToothVal=' '; contatoreSecondi = 0; }else if(blueToothVal=='s'){ //richiedo lo stato mySerial.write(statoRele); //mando lo stato + mySerial.write("\n"); blueToothVal=' '; contatoreSecondi = 0; + }else if(blueToothVal=='c'){ //info sul contatore + String myString = String(contatoreSecondi); + char charBuf[50]; + myString.toCharArray(charBuf, 50); + strcat(charBuf, "\n"); + mySerial.write(charBuf); //mando lo stato } delay(1000); diff --git a/bluetoothRele.py b/bluetoothRele.py index a27a2c4..dd36eb6 100644 --- a/bluetoothRele.py +++ b/bluetoothRele.py @@ -11,7 +11,21 @@ sock.settimeout(1.0) print sys.argv[1] sock.send(sys.argv[1]) print 'Sent data' -data = sock.recv(1) -print 'received [%s]' % data + +data = "" +while 1: + try: + data += sock.recv(1024) + data_end = data.find('\n') + if data_end != -1: + rec = data[:data_end] + print data + data = data[data_end+1:] + break + except KeyboardInterrupt: + break + except bluetooth.btcommon.BluetoothError as error: + continue sock.close() -print 'socket chius' + +