Modulo Bluetooth BLE tipo AT-09 Low Energy conforme ISM 2.4 GHz, modalità di funzionamento master/slave con trasmissione dati trasparente. Utilizza il chip della Texas Instruments CC2541 con 256K di memoria Flash e 8K RAM.
Citazione dell’articolo nella sezione Arduino di Elettronica In
Indice
Cos’è la tecnologia BLE
La tecnologia BLE acronimo di Bluetooth Low Energy, conosciuta anche come Bluetooth Smart o Bluetooth 4.0, è una tecnologia di trasmissione dati basata su una frequenza radio di 2.4 GHz, in grado di connettere tra loro dispositivi compatibili in un raggio di circa 100 metri.
La banda è dunque la stessa utilizzata dalla tecnologia Bluetooth standard ma a differenza di quest’ultima, lo standard BLE risulta ottimizzato attraverso tempi di connessione effettivi di pochi millisecondi, a differenza del Bluetooth che si connette per alcuni secondi, minuti o persino ore.
La tecnologia BLE consente dunque un notevole risparmio energetico. con un aumento della durata della batteria. Oggi la maggior parte dei dispositivi connessi a Internet utilizza la tecnologia BLE.
Descrizione del modulo
Il Modulo Bluetooth analizzato è basato sul chip della Texas Instruments CC2541 (datasheet) con 256K di memoria Flash e 8K RAM.
Sul PCB dotato di 34 pin, oltre al chip sono presenti altri componenti passivi e l’antenna.
Per facilitare l’utilizzo il PCB è montato su un’ulteriore schedina (BREAKOUT BOARD). Su di essa sono presenti altri componenti tra cui un riduttore di tensione che permette di alimentare il modulo con una tensione compresa tra 3,3 e 5V.
Per l’interfaccia con la scheda di controllo è presente una pin strip con 6pin, ma quelli utilizzati sono di solito i quattro centrali: VCC, GND, TXD, RXD.
Caratteristiche tecniche
Modulo Bluetooth | conforme ISM 2.4 GHz (HM-10) chip CC2541 SoC con 256K di memoria Flash e 8K RAM |
Antenna: | su PCB |
Supporto: | modalità master e slave |
Guadagno standard RX: | 19,6 mA |
TX -6 dBm: | 24 mA |
Frequenza: | 2402 – 2483.5 MHz in passi da 20 kHz |
Modulazione e Data Rate: | 1 Mbps, GFSK |
Numero di canali: | 40 |
Potenza di uscita (impostabile): | da -23dBm a 4dBm |
Sensibilità in ricezione: | -93dBm/-87dBm |
Stack: | ATT, GATT, SMP, L2CAP, GAP |
Portata: | oltre 70 metri |
ADC: | 10-bit |
Interfaccia seriale: | UART / SPI |
Alimentazione: | da 3,6 a 6 volt |
VDD ripple: | 100 mV max |
Consumo – Standby: | 90 µA |
Consumo – Max: | 400 µA |
Temperatura di funzionamento: | da -40°C a +85°C |
Dimensioni (mm): | 43×15,7×7 |
Peso: | 7 grammi |
NOTA: Il modulo Bluetooth BLE si può trovare anche con la sigla HM-10.
Dove trovare il modulo
Il Modulo Bluetooth BLE 4.0 BT-09 può essere acquistato presso il sito Homotix, codice HMTHM10. Ricordo che chi inserirà il mio codice sconto “ADRIROBOT” riceverà uno sconto.
Altra possibilità è il Modulo Bluetooth 4.0 BLECC2541 con Pin Strip, presso il sito Futura Elettronica, codice 2846-BLECC2541STRIP
Modello compatibile
Un modulo Bluetooth simile e compatibile per il tipo di piedinatura è il modello HC-05.
Molto popolare risulta facile da implementare nei vostri progetti.
La portata è di 10 mt, si imposta facilmente tramite comandi AT ed è programmabile sia come master che come slave a differenza del modello HC-06 che è solo utilizzabile come slave.
Per maggiori informazione vedere l’articolo Modulo Bluetooth HC-05
Schema base di collegamento del Bluetooth BLE AT-09
Vediamo ora lo schema minimo di collegamento tra il modulo Bluetooth BLE AT-09 e una scheda Arduino UNO. Sotto sono riportati i componenti necessari
Scheda Keyestudio PLUS | Modulo Bluetooth BLE BT-09 |
Cavi di collegamento |
Per informazioni sulla scheda PLUS di keyestudio vedere l’articolo Scheda Keyestudio PLUS KS0486
Schema dei collegamenti
Codice del programma di test
Vediamo un semplice codice che permetterà di verificare il funzionamento del modulo e la verifica di alcuni suoi parametri.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <SoftwareSerial.h> SoftwareSerial BTSerial(6, 7); // collegamento AT-09 void setup() { Serial.begin(9600); BTSerial.begin(9600); // Velocità di default del modulo AT-09 } void loop() { // Continua a leggere da AT-09 e invia Serial Monitor Arduino if (BTSerial.available()) Serial.write(BTSerial.read()); // Continua a leggere da Arduino Serial Monitor e invia a AT-09 if (Serial.available()) BTSerial.write(Serial.read()); } |
Non preoccupatevi se aperta la finestra del monitor seriale apparirà la scritta “ERROR”
Esempio comandi AT per AT-09
È possibile ora inviare dei comandi AT al modulo AT-09 dal Serial Monitor IDE Arduino mentre sulla scheda Arduino è in esecuzione il programma.
Sfortunatamente, non tutti i comandi AT standard sono disponibili sul modello analizzato.
Infatti se digitiamo nella finestra del monitor seriale il comando “AT+HELP” il modulo risponderà con il testo sotto riportato.
Solo alcuni di questo sortiranno un effetto. Vediamo quindi quelli che sono presenti.
- Digitare prima di tutti “AT” il modulo dovrebbe rispondere “OK” segno che la comunicazione è corretta
- Digitare: “AT + VERSION” per ottenere la versione del vostro AT-09
- Digitare: “AT + ROLE” se il vostro modulo è master-slave.
- Digitare: “AT + NAME” per sapere il nome attribuito al vostro modulo. Se si intende cambiare il nome del dispositivo per esempio “BT-BLE” immettere “AT + NAME” seguito dal nuovo nome, il modulo risponderà con “+ NAME = BT-BLE“
- Digitare “AT+ADD” per sapere l’indirizzo MAC nativo
- Digitare “AT+BAUD” per sapere o modificare la velocità di comunicazione dove il numero ricevuto o trasmesso corrisponde a : n=1 per 1200, n=2 per 2400, n=3 per 4800, n=4 per 9600 (default), n=5 per 19200, n=6 per 38400, n=7 per 57600, n=8 per 115200.
- Digitare “AT+PIN” per sapere o modificare il pin del nostro modulo. Per modificare il numero presente per esempio “234512”, deve essere formato da 6 cifre, digitare “AT+PIN234512″ il modulo risponderà con il nuovo numero di pin
- NOTA: (rimuovere le virgolette dal comando AT)
Semplice applicazione per testare il modulo Bluetooth BLE AT-09
Vediamo ora una semplice applicazione che permette di testare le funzioni del nostro modulo AT-09.
Per fare questo utilizzeremo un’APP da istallare sul nostro smartphone deve avere la versione Bluetooth 4 o superiore.
Materiale occorrente
Oltre allo Smart Phone (con Bluetooth 4.0 o superiore. e l’APP Bluetooth seriale utilizzeremo un modulo KS0310 Keyestudio Traffic Light Module si cui sono presenti tre LED separati: luce rossa, verde e gialla con la loro resistenza limitatrice. Il connettore a 4 pin potrà essere inserito direttamente sul connettore di arduino per la sua gestione.
Scheda Keyestudio PLUS | Modulo Bluetooth BLE BT-09 |
Modulo KS0310 Traffic Light Module | Cavi di collegamento |
Per informazioni sulla scheda PLUS di keyestudio vedere l’articolo Scheda Keyestudio PLUS KS0486
Per informazioni sul Traffic Light Module vedere l’articolo KS0310 Keyestudio Traffic Light Module
Schema dei collegamenti
Sotto i pin utilizzati
Pin Arduino | Bluetooth | KS0310 |
---|---|---|
+5V | VCC | |
GND | GND | GND |
D6 | TXD | |
D6 | RXD | |
D11 | R | |
D12 | Y | |
D13 | G |
Codice esempio gestione led con Bluetooth BLE
Sotto è riportato il codice per controllare i LED utilizzando lo smartphone tramite Bluetooth BLE. Raggiungeremo questo obiettivo utilizzando la comunicazione seriale.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #include <SoftwareSerial.h> SoftwareSerial BTSerial(6, 7); /* Pin 6 --> TXD, Pin 7 --> RXD */ //Impostazione dei pin Arduino per i led int ledR = 11; int ledY = 12; int ledG = 13; //Variabile per memorizzare i dati di input int data; //Variabili per memorizzare lo stato del LED se acceso/spento int flagR = 0; int flagY = 0; int flagG = 0; void setup() { //Imposta il baud rate per la comunicazione seriale BTSerial.begin(9600); pinMode(ledR, OUTPUT); //Imposta i pin LED come output pinMode(ledY, OUTPUT); pinMode(ledG, OUTPUT); BTSerial.println("Il Bluetooth è pronto"); } void loop() { while (BTSerial.available()) // se i dati sono disponibili { data = BTSerial.read(); //legge l'input e lo memorizza nella variabile data if (data == 'R') //Controlla se la variabile è 'R' { if (flagR == 0) //controlla se il flag è impostato su 0 { digitalWrite(ledR, HIGH); //se il flag è 0 accende il LED Rosso BTSerial.println("Il LED ROSSO è Acceso"); //scrive sul terminal flagR = 1; //imposta il flag a 1 } else if (flagR == 1) //controlla se il flag è impostato su 1 { digitalWrite(ledR, LOW); //se il flag è 1 spegne il LED Rosso BTSerial.println("Il LED ROSSO è Spento"); flagR = 0; //imposta il flag a 0 } } if (data == 'Y') //Controlla se la variabile è 'Y' { if (flagY == 0) //controlla se il flag è impostato su 0 { digitalWrite(ledY, HIGH); //se il flag è 0 accende il LED Giallo BTSerial.println("Il LED GIALLO è Acceso"); //scrive sul terminal flagY = 1; //imposta il flag a 1 } else if (flagY == 1) //controlla se il flag è impostato su 1 { digitalWrite(ledY, LOW); //se il flag è 1 spegne il LED Giallo BTSerial.println("Il LED GIALLO è Spento"); //scrive sul terminal flagY = 0; //imposta il flag a 0 } } if (data == 'G') //Controlla se la variabile è 'G' { if (flagG == 0) //controlla se il flag è impostato su 0 { digitalWrite(ledG, HIGH); //se il flag è 0 accende il LED Verde BTSerial.println("Il LED VERDE è Acceso"); //scrive sul terminal flagG = 1; //imposta il flag a 1 } else if (flagG == 1) //checks if flag is 1 { digitalWrite(ledG, LOW); //se il flag è 1 spegne il LED Verde BTSerial.println("Il LED VERDE è Spento");//scrive sul terminal flagG = 0; //imposta il flag a 0 } } } } |
Utilizzo dello smartphone BLE con Arduino
Per la gestione del programma occorre prima di tutto connettere il telefono al Bluetooth, nel nostro caso l’APP seriale Bluetooth “Serial USB Terminal”
Dopo aver stabilito la connessione, premere il tasto ‘M1’ assegnando il nome “Rosso” e il valore “R”, al tasto ‘M2’ assegnare il nome “Giallo” e il valore “G” e infine al tasto ‘M3 ‘il nome “Verde” e il valore “V”
Ora premendo il tasto vedrete accendersi il tasto e premendolo nuovamente il led si spegnerà. Sul vostro display vedrete il relativo testo
E questo è tutto! Questo può essere una base per realizzare delle vostre applicazioni