Ieri in occasione dell’incontro con l’AUG Milano ho presentato la Lemontech BlueRelay Shield per Arduino prima di una nuova serie di shields nate sotto il nome Lemontech realizzate in collaborazione con l’amico Luca.
Sul sito ufficiale ( www.lemontech.cc ) trovi le caratteristiche della Lemontech BlueRelay Shield per Arduino.
Cos’é la Lemontech BlueRelay Shield per Arduino
La Lemontech BlueRelay Shield per Arduino è la prima shield che abbiamo presentato a cui seguiranno altre interessanti shield da abbinare ad arduino per realizzare velocemente i tuoi progetti.
La principale caratteristica, non tecnica, di questa shield è l’unione su di un unica scheda sia del modulo Bluetooth HC-05 sia di due relay per controllare carichi fino a 250VA 10A
Grazie ad un semplice sistema di comunicazione seriale via bluetooth potrai controllare in modo semplice i due relay di cui è dotata la scheda ed interpretare i comandi inviati da smartphone, tablet o computer in genere.
Caratteristiche tecniche della BlueRelay shield
La shield ha dimensioni ridotte, soli 68 x 60 mm:
ed è equipaggiata con:
Modulo Bluetooth | HC-05 |
Relay | SRD-05VDC-SL |
Voltaggio operativo | 5v |
Voltaggio Input (raccomandato) | 5v |
Voltaggio Input (limite) | 6v |
Voltaggio Relay (limite) | 250VAC |
Corrente DC | 100mA |
Corrente Relay | 10A |
Numero Relay | 2 |
Numero Led | 2 |
Lo sketch di controllo
Il primo sketch lo trovi sul sito lemontech e ti permette di scambiare comandi AT con il modulo Bluetooth HC-05 attraverso il terminale seriale.
Lo sketch seguente è stato realizzato sempre da Luca come demo di funzionamento della Lemontech BlueRelay Shield per Arduino con il protocollo seriale; potrai infatti inviare comandi seriali sia dal monitor dell’IDE arduino sia da qualsiasi terminale seriale connesso tramite bluetooth alla Lemontech BlueRelay Shield per Arduino.
Ecco lo sketch:
#include <SoftwareSerial.h> #define BT_TX_PIN 3 #define BT_RX_PIN 4 #define BT_AT_PIN 5 #define RELAY1_PIN 6 #define RELAY2_PIN 7 SoftwareSerial mySerial(BT_TX_PIN, BT_RX_PIN); boolean relay1Status; boolean relay2Status; void setup() { // Configure Bluetooth module in "transparent mode" pinMode(BT_AT_PIN, OUTPUT); digitalWrite(BT_AT_PIN, LOW); // Relays default status OFF pinMode(RELAY1_PIN, OUTPUT); pinMode(RELAY2_PIN, OUTPUT); digitalWrite(RELAY1_PIN, LOW); digitalWrite(RELAY1_PIN, LOW); relay1Status = false; relay2Status = false; // Setup serial communication Serial.begin(9600); mySerial.begin(9600); } void loop() { // New char from Bluetooth if (mySerial.available()) { char in = mySerial.read(); switch(in) { case 'a': Serial.println("Toggle RELAY1"); relay1Status = !relay1Status; digitalWrite(RELAY1_PIN, relay1Status); break; case 'b': Serial.println("Toggle RELAY2"); relay2Status = !relay2Status; digitalWrite(RELAY2_PIN, relay2Status); break; case 'c': Serial.println("Send RELAY1 status"); mySerial.println(relay1Status); break; case 'd': Serial.println("Send RELAY2 status"); mySerial.println(relay2Status); break; } } }
l’unica libreria di cui hai bisogno è la SoftSerial.h inclusa alla linea 01;
linee 03-07: definisci i pin a cui sono connessi il modulo bluetooth HC-05 ed i relay;
linea 09: inizializza la SoftSerial passandole i pin Rx e Tx a cui è collegato il modulo Bluetooth;
linee 10-11: dinisci due variabili di stato dei rispettivi relay 1 e 2;
linee 16-17: imposta la modalità di OUTPUT per il pin BT_AT_PIN ed imposti a LOW ( 0v ) il suo valore;
linee 20-25: imposta la modalità per i pin a cui sono collegati i due relay, imposti ciascun pin del corrispondente relay a LOW e imposti a false il valore della rispettiva variabile di stato;
linee 28-29: imposta il baudrate della seriale Arduino e della seriale verso il bluetooth a 9600;
linea 35: controlla, ad ogni ciclo di loop(), che sia presente un valore di tipo seriale proveniente dal modulo bluetooth;
linea 37: assegna alla variabile di tipo char in il valore letto con il metodo read() della classe SoftSerial. Tale valore proviene dal terminale seriale connesso via bluetooth alla Lemontech BlueRelay Shield per Arduino;
linea 38: imposta un controllo mediante comando switch sul valore ricevuto, i successivi case si occuperanno di selezionare le operazioni in funzione del valore ricevuto;
linea 40: è il caso in cui arrivi il valore “a” dalla seriale bluetooth;
linea 41: scrivi sul monitor seriale, quello connesso via USB all’IDE arduino, la frase “Toggle RELAY1”;
linea 42: inverti il valore della variabile di stato relativa al RELAY1 da false a true;
linea 43: scrivi sul pin digitale relativo al RELAY1 il valore della variabile di stato appena impostato. Considera che i valori booleano true è interpretato dal comando digitalRead() come 1 o HIGH, il valore false è interpretato come 0 e LOW;
linee 46-49: si comporta come le linee 40-43 considerando il valore “b” ed i riferimenti al RELAY2;
linea 52: individua il carattere “c” come proveniente dal modulo bluetooth;
linea 53: scrive sulla seriale del monitor arduino la frase “Send RELAY1 status”;
linea 54: rispondi al modulo bluetooth perché sia consegnato al client il valore di “relay1status” contenente lo stato del relay 1;
linee 57-59: esegui le stesse operazioni delle linee 52-54 con la sola differenza per la lettera “d” e lo stato del relay 2 al posto del relay 1;
Test della Shield Bluetooth
Abbiamo tenuto acceso la shield qualche ora e provato a connettere diverse periferiche sia computer sia smartphone e tablet android per testare la stabilità della connessione e la risposta della shield dopo ore di funzionamento. I test hanno restituito esito positivo.
Puoi testare la Lemontech BlueRelay Shield per Arduino con il solo IDE arduino usando, ecco come:
attiva il bluetooth sulla tuo computer ed esegui il pairing della shield, la vedrai come HC-05:
appena eseguita la connessione il led 2 si accende ( blu ) fisso in modo da segnalare che è stato “accoppiato” un dispositivo:
questa operazione ti garantisce che nessun altro dispositivo possa collegarsi alla Lemontech BlueRelay Shield per Arduino intanto che sei collegato.
Apri l’IDE arduino e seleziona la porta bluetooth come sei abituato a fare per la selezione della tua scheda arduino:
poi clicca sulla lente di ingrandimento in alto a destra ed accedi al monitor seriale impostato su 9600 baud:
puoi scrivere nella barra in alto uno dei caratteri che hai visto elencati nel sw: “a”,”b”,”c” o “d” vedrai rispettivamente:
- chiudersi il contatto del primo relay
- chiudersi il contatto del secondo relay
- restituirti a video il valore di stato del relay 1
- restituirti a video il valore di stato del relay 2
Buona lavoro !!!
2 commenti
1 ping
Bel lavoro Mauro. Complimenti
Autore
Grazie 1000 Agostino, vedrai nei prossimi mesi ho in programma delle altre chicche per makers che apprezzerai.
[…] ti permette di usare subito la bluerelay shield con il listato che trovi sia sul sito lemontech.cc sia nel mio precedente articolo “Lemontech Bluerelay shield per Arduino“. […]