Lemontech Bluetooth shield AT si collega ad arduino o genuino e puoi controllarla via bluetooth con la sua app.
Questo articolo segue la serie di articoli dedicati ai comandi AT ed i moduli Bluetooth HC-05 ed HC-06 delle scorse settimane.
Come sai la Lemontech Bluetooth shield AT ( i cui schemi sono sul sito ufficiale lemontech.cc ) è dotata di un modulo bluetooth hc-05 e puoi installarne più di una nel tuo impianto domotico, selezionando dall’App la shield a cui collegarti per controllare i due relay a bordo.
Hai sicuramente già capito che se ne posizioni 2,3,4,o più nel tuo impianto casalingo la difficoltà maggiore sarà capire quale Lemontech Bluetooth shield AT serve a controllare le luci della sala e quale quelle della cucina o delle camere.
Inoltre vorrai evitare che chiuque si avvicini alla tua abitazione possa collegarsi al tuo impianto e spegnerti la Tv mentre la stai guardando.
Per ottenere questo è necessario eseguire due semplici operazioni:
- cambiare il nome a ciascuna shield, magari impostando un nome parlante tipo “soggiorno” o “cucina”
- impostare la password ( pin ) in modo che non sia il classico “1234” o “0000” che tutti conoscono e provano
Per fare questo un appassionato di elettronica, e non solo, Arturo ha preparato uno sketch e delle istruzioni per personalizzare la tua Lemontech Bluetooth shield AT.
I comandi AT che useremo li ho già descritti in occasione del precedente articolo che ti invito a leggere.
Lemontech Bluetooth shield AT modalità command
La modalità AT command, come sai, serve per impartire comandi al modulo bluetooth e configurare alcune proprietà del modulo come il nome e la password.
La Lemontech Bluetooth shield AT ti mette a disposizione il pin 5 per portare il modulo bluetooth in modalità comandi:
il pin indicato in tabella come BT_AT_PIN è connesso al pin 5 di arduino ed al pin 34 del modulo bluetooth hc-05.
Portando HIGH questo pin in fase di accensione del modulo entri nella modalità comandi AT.
Lo sketch per impartire comandi AT
Lo sketch scritto da Arturo inizia con un lungo commento che spiega il funzionamento dello sketch, te lo riporto:
Programmino per il settaggio della
Lemontech BlueRelay Shield per Arduino
Con questo programma e’ possibile settare, volendo, i parametri del modulo Bluetooth,
utilizzando la scheda montata su Arduino ed utilizzando semplicemente il Serial Monitor di Arduino.
Compilate il programma ed aprite il Serial Monitor di Arduino
ATTENZIONE, settate il Monitor seriale di Arduino con “Entrambi NL e CR”
Dal Monitor seriale di Arduino, ora, ad esempio, inserite “AT+NAME?” (senza virgolette) <invia>
avremo la “risposta” del modulo che ci dira’ il suo attuale nome:
+NAME:HC-05
OK
Dopo aver interrogato un po’ il modulo (con i comandi AT standard)
insomma, dopo aver cazzeggiato un po’, (e’ d’obbligo in queste occasioni),
possiamo fare qualcosa di utile, come cambiare il NOME del modulo e la PASSWORD
esempio “AT+NAME=HC05Lemon_01” … (il modulo dovrà rispondere “OK”) … ora il nome del modulo, tra i dispositivi Bluetooth, quando faremo la “ricerca” sarà HC05Lemon_01
oppure “AT+NAME=LUCI_GARAGE” o altro nome, magari un po’ piu’ significativo dell’originale “HC-05”
A proposito del nome, non ho controllato, ma c’e’ una lunghezza massima per il nome, mi sembra 12 caratteri.
Per cambiare la password:
esempio “AT+PSWD=5577” … (il modulo dovrà rispondere “OK”)
… ora la password, per il collegamento
e per il pairing con il vostro dispositivo Master (telefonino o altra scheda Arduino), sarà 5577.
Ovviamente, possiamo interrogare il modulo per avere conferma inviando “AT+NAME?” e “AT+PSWD?”.
Ora che abbiamo cambiato Nome e Password -ipotizzando che era questo il nostro obbiettivo-
questo programma non serve piu’…
possiamo quindi chiudere questo programma e ricaricare quello originale/il vostro per il controllo dei rele’.
Nota: per il controllo dei rele’, da telefonino, e’ possibile usare un qualunque Bluetooth Terminal,
… altro valore aggiunto per questa schedina che trovo ottima…
Arturo O. 14 Giugno 2016
ed eccolo sketch:
#include <SoftwareSerial.h> #define BT_TX_PIN 3 #define BT_RX_PIN 4 #define BT_AT_PIN 5 // Instanza per una linea seriale con la scheda SoftwareSerial LemonBT(BT_TX_PIN, BT_RX_PIN); char c; void setup() { // Configuriamo il modulo Bluetooth in AT Mode pinMode(BT_AT_PIN, OUTPUT); // Modalita' AT Command Mode digitalWrite(BT_AT_PIN, HIGH); // Setup serial communication Serial.begin(9600); LemonBT.begin(38400); delay(1000); Serial.println("Ciao, inserisci i comandi AT"); Serial.println("(Settare 'Entrambi NL e CR')"); delay(1000); } // Ciclo infinito per chiaccherare con il modulo Bluetooth void loop() { /* ATTENZIONE, quando in AT Command Mode, settare il Monitor seriale di Arduino con "Entrambi NL e CR" Se ci sono dati nel buffer della Serial... */ while (Serial.available()) { //... mandali al modulo bluetooth LemonBT.write(Serial.read()); } // Se ci sono dati sul buffer // SoftwareSerial (il buffer del bluetooth) while (LemonBT.available()) { //mostrali tramite il Serial Monitor c=LemonBT.read(); Serial.print(c); } }
la prima line, la linea 01: include la software serial, una libreria necessaria per comunicare con il modulo bluetooth su pin differenti da quelli designati come Tx ed Rx sull’arduino uno, i pin 0 ed 1 ti servono per comunicare con la porta usb;
linee 03-05: definisci i pin di comunicazione Tx ed Rx per la SerialSoftware ed il pin BT_AT_PIN;
linea 08: crea una istanza della SoftwareSerial chiamata LemonBT a cui passi i valori BT_RX_PIN e BT_TXPIN definiti nelle linee precedenti;
linea 10: imposta una variavile di tipo char definita come c in cui memorizzerai i valori trasmessi e ricevuti al moduli bluetooth;
linee 14-17: imposta il pin AT come Output e porta il pin a livello HIGH come prima operazione dello sketch in modo che il modulo bluetooth sia ancora in fase di alimentazione;
linee 20-21: imposta le velocità di comunicazione verso il modulo bluetooth, come sai questa velocità deve essere 38400 baud per funzionare;
linee 22-26: attendi 1 secondo, scrivi sul monitor seriale le due frasi definite ed attendi nuovamente 1 secondo;
linee 39-42: il ciclo while attende che arrivino comandi attraverso il monitor seriale e li trasferisce alla Lemontech Bluetooth shield AT;
linee 46-50: allo stesso modo questo ciclo while attende le informazioni di risposta dal modulo bluetooth e lo invia al monitor seriale garantendo un continuo scambio di dati dalla shield al monitor seriale.
Istruzioni di Arturo
Arturo ha realizzato una serie di cutscreen sui comandi impartiti per modificare il nome ed il pin, inizia aprendo il serial monitor:
il primo passo è scegliere il nome da inserire:
quindi imposta la password di accesso:
controlla il nome impostato:
vedrai come risposta il nome da te impostato:
richiedi la password:
verifica la configurazione attuale:
Arturo ti consiglia di segnarti la password per non dimenticarla; è vero che qualora te la dimenticassi non devi far altro che utilizzare questo sketch per interrogare il modulo.
2 commenti
Come al solito le tue guide sono fantastiche.
Grazie per tutto il lavoro che svolgi oggigiorno.
Autore
Ciao,
grazie 1000 !!! Complimenti sempre ben accetti.