I microcontrollori sono minuscoli computer a basso costo che possono interagire con il mondo fisico attraverso sensori, attuatori e interfacce di comunicazione. Essi formano la spina dorsale dei moderni sistemi incorporati, dai mozzi di automazione domestica ai gadget indossabili. Uno dei modi più accessibili e pratici per dare una connettività wireless microcontrollore è accoppiandolo con un modulo Bluetooth. Questi moduli consentono al vostro microcontrollore di parlare con smartphone, tablet, fili portatili, computer portatili, e computer portatili

Comprensione dei moduli Bluetooth

Bluetooth Classic vs. Bluetooth Low Energy (BLE)

Non tutti i moduli Bluetooth sono gli stessi. Le due principali categorie che incontrerete sono Bluetooth Classic[ e Bluetooth Low Energy (BLE).

  • Bluetooth Classic[] è progettato per lo streaming continuo dei dati – pensa a diffusori wireless, cuffie e sostituzioni della porta seriale. I moduli come HC‐05 e HC‐06 operano in questa modalità. Sono semplici, economici e perfetti per l'invio di letture dei sensori o comandi di controllo a velocità di dati moderate (fino a circa 2.1 Mbps).
  • Bluetooth Low Energy (BLE)]] è rivolto a applicazioni che necessitano di una lunga durata della batteria e inviano solo piccoli scoppi di dati – ad esempio, un sensore di temperatura che trasmette una lettura ogni minuto.

Per molti progetti hobbisti, i moduli Bluetooth Classic come HC‐05 sono il punto di partenza più semplice perché possono essere utilizzati come cavo seriale virtuale. Tuttavia, se si prevede di eseguire su batterie per mesi, si consideri il passaggio a BLE.

Moduli Bluetooth popolari

I moduli più utilizzati nella comunità dei produttori includono:

  • HC‐05[ – Bluetooth 2.0 Classic, configurabile come master o slave, supporta i comandi AT, buoni per l'apprendimento.
  • HC‐06[ – Come l'HC‐05 ma può essere solo un dispositivo slave. Più economico e semplice, ma non è possibile cambiare il suo nome o la velocità di baud senza strumenti aggiuntivi.
  • HM‐10[] – Un modulo BLE 4.0 comune basato sul TI CC2541. Molto popolare per i progetti BLE con Arduino.
  • Bluetooth sul ESP32[] – Il microcontrollore ESP32 include sia il supporto Classico che il BLE a bordo, eliminando la necessità di un modulo separato.

Per un elenco completo e schede di dati, controllare la documentazione Arduino Bluetooth.

Perché aggiungere Bluetooth a un Microcontroller?

Integrare Bluetooth apre una vasta gamma di possibilità. Ecco le ragioni più interessanti:

  • Controllo e monitoraggio senza fili[[] – Luci, motori o pompe dal vostro smartphone senza essere legati a un cavo.
  • Remote data logging[[] – Log sensore dati (temperatura, umidità, GPS) a un telefono o computer in tempo reale.
  • Prototipazione facile[[] – Utilizzare Bluetooth come collegamento seriale wireless per debug il codice senza cavi USB.
  • Interfacciare con applicazioni mobili[[[] – Costruire la propria applicazione (utilizzando MIT App Inventor, Android Studio, o Swift) per interagire con il vostro hardware.
  • Siamo bassi i costi e la disponibilità[[] – I moduli Bluetooth costano solo pochi dollari e sono forniti dalla maggior parte dei distributori elettronici.
  • Opzioni di potenza molto basse[[] – Con BLE, è possibile eseguire progetti su piccole batterie a celle a moneta per mesi.

Fondamenti di Interfacciamento: Fondamenti di Elettrici e di Comunicazione

Prima di cablaggio, è necessario comprendere alcuni concetti critici: livelli di tensione, comunicazione seriale (UART), e tasso di baud.

Livelli di tensione

Molti microcontrollori (ad esempio Arduino Uno) operano a 5V, mentre molti moduli Bluetooth (in particolare HC‐05, HM‐10) sono dispositivi a 3,3V. Connettando un perno di logica 5V direttamente a un ingresso a 3,3V può danneggiare il modulo. Per le linee di dati (TX e RX), utilizzare un cambio di livello o un divisore di tensione semplice:

  • Utilizzare un divisore di tensione di resistenza 1kΩ + 2kΩ sulla linea TX del microcontroller al pin RX del modulo.
  • Oppure utilizzare un modulo dedicato di conversione livello di logica 3.3V/5V.
  • Collegare VCC a 3.3V (alcuni moduli possono assumere 5V su VCC, ma controllare il foglio dati).
  • Collegare sempre GND a GND.

Comunicazione seriale UART

I moduli Bluetooth in genere comunicano su un'interfaccia seriale UART. Il microcontroller invia i dati sul suo pin TX, e il modulo lo riceve sul suo pin RX e viceversa.

  • Microcontroller TX → Modulo RX
  • Microcontroller RX → Modulo TX
  • E attraversare le linee in modo che ogni dispositivo parla sull'altro perno di ricezione.

La maggior parte delle schede Arduino hanno almeno una porta seriale hardware (pin 0 e 1) che è possibile utilizzare, ma che lega anche il convertitore USB-serial. Per progetti avanzati, utilizzare su qualsiasi due pin digitali per mantenere la seriale hardware gratuita per il debugging.

Tasso di Baud

Il baud rate deve corrispondere al microcontroller e al modulo Bluetooth. I valori comuni: HC‐05 e HC‐06 sono 9600 baud. Puoi cambiarlo usando i comandi AT sull'HC‐05, ma l'HC‐06 non può essere modificato senza un programmatore speciale. Quando ti colleghi, imposta la porta seriale del tuo microcontroller sulla stessa velocità di baud del modulo.

Guida di cablaggio passo-passo (HC‐05 + Arduino Uno)

Mettiamo un modulo Bluetooth HC‐05 ad un Arduino Uno come esempio master/slave, perché HC‐05 è un dispositivo da 3,3V, dobbiamo stare attenti con la tensione.

Materiali

  • Arduino Uno (o qualsiasi scheda logica 5V)
  • Modulo Bluetooth HC‐05
  • Filo di trampolino e saltatore
  • Due resistenze 1kΩ e una resistenza 2kΩ (per un divisore di tensione semplice)

Diagramma di cablaggio

  1. Power:[] Modulo VCC → 3.3V su Arduino (o 5V se il foglio di dati del modulo permette – prima prova). GND → GND.
  2. TX connessione (modulo invia a Uno): Modulo TX → Uno RX (pin 0). Questa linea è 3.3V, che è sicura per lo Uno.
  3. RX connessione (Uno invia al modulo):[] Uno TX (pin 1) → divisore di tensione → Modulo RX. Costruisci un divisore di tensione: una estremità di 1kΩ resistore a Uno TX, poi ad un incrocio con una estremità di 2kΩ resistor. L'altra estremità di 2kΩ va a GND. L'incrocio va al modulo RX.
  4. Opzionale:[] Se si utilizza una modalità di comando HC‐05 in AT, potrebbe essere necessario collegare il pin EN o tirarlo alto – controllare il pinout del modulo.

Un'alternativa più pulita è quella di utilizzare un modulo di conversione di livello di logica, che è economico ed evita resistenze di saldatura.

Configurazione della modalità di comando AT (HC‐05)

Per modificare il nome del modulo, la velocità di baud o la password, è necessario inserire la modalità di comando AT.

  1. Assicurarsi che il modulo non sia collegato a qualsiasi altro dispositivo Bluetooth.
  2. Tenere premuto il perno EN (o chiave) mentre si alimenta. O collegare il perno EN a 3.3V.
  3. Aprire il monitor seriale Arduino a 38400 baud (default AT baud per molti HC‐05s) e selezionare “Both NL & CR”.
  4. Digitare – si dovrebbe ricevere .
  5. Usa i comandi: per cambiare nome, per cambiare la velocità di baud, per impostare PIN.
  6. Ulteriori dettagli possono essere trovati nel Scheda tecnica HC‐05 e tutorial[.

Programmazione del Microcontroller per la comunicazione Bluetooth

Una volta cablato, è necessario scrivere un semplice schizzo per inviare e ricevere i dati. L'idea è semplice: i dati provenienti dal modulo (riceveti dal telefono) appaiono nel buffer seriale, e si può scrivere i dati al modulo per inviare indietro.

Di seguito è riportato uno scheletro concettuale – non copiare il codice di incollaggio direttamente, ma adattarlo alle tue esigenze.

Nel tuo :

  • Inizializzare la porta seriale: (se si utilizza la seriale hardware) o ].
  • Se si utilizza il serial software, collegare il TX del modulo per pin 2 e RX per pin 3.

Nel tuo :

  • Controllare se i dati sono disponibili dal modulo Bluetooth: .
  • Leggete e magari fate eco al Monitor seriale: .
  • Anche i dati in avanti dal Monitor seriale al modulo: .

Questo ponte a due vie consente di controllare il microcontrollore da qualsiasi app terminale Bluetooth seriale sul telefono (come “Serial Bluetooth Terminal” per Android).

Abbinamento e comunicazione con un dispositivo mobile

L'accoppiamento di un modulo Bluetooth Classic è simile ad un dispositivo Bluetooth:

  1. Accendi il microcontrollore e il modulo.
  2. Sul telefono, vai alle impostazioni Bluetooth e la scansione per i dispositivi.
  3. Cerca il nome del modulo (default “HC‐05” o “HC‐06”). Tocca a coppia – il PIN predefinito è spesso 1234 o 0000.
  4. Una volta accoppiato, aprire un'app terminale seriale, selezionare il dispositivo e si dovrebbe vedere una connessione. Il LED del modulo solitamente lampeggia veloce quando non è ancora pronto e lento quando è collegato.

Per i moduli BLE come HM‐10, il processo è leggermente diverso: è necessario un app BLE-capable (ad esempio, “BLE Scanner” o “Adafruit Bluefruit LE Connect”) per eseguire la scansione e la connessione. BLE utilizza un modello di servizio/uuid piuttosto che un profilo porta seriale, ma molti moduli BLE simulano un collegamento seriale (servizio UART) per mantenere la compatibilità.

Sfide comuni e come risolverli

Tensione di danno di errore

Come accennato, la logica 5V può distruggere gli ingressi 3.3V. Sempre livellare-shift la linea TX da microcontroller a modulo. Utilizzare un convertitore di livello o il divisore di resistenza mostrato in precedenza. Se il modulo non risponde, controllare se è ancora vivo misurando la tensione su VCC.

Baud Rate Mismatch

Per HC‐05, il baud predefinito AT è 38400, ma la baud di comunicazione dopo la modalità AT è spesso 9600. Double-check. È possibile verificare il baud del modulo collegandosi con varie velocità fino a quando non si vede “OK” in risposta a “AT”.

TX/RX Cross Wrongly

Ricorda: TX va a RX, RX va a TX. Molti nuovi arrivati filo TX-to-TX e RX-to‐RX, che non si traduce in nessuna comunicazione. Se in dubbio, utilizzare un multimetro per testare la continuità, o scambiare le linee di dati.

Interferenza e gamma

Bluetooth Classic ha una gamma di circa 10 metri al chiuso. Mura e altri dispositivi a 2,4 GHz (Wi-Fi, forni a microonde) possono ridurre questo. Se si verifica la perdita di pacchetti, provare a spostare il modulo lontano da grandi oggetti metallici o passare a un modulo con un'antenna esterna (ad esempio, HC‐05 con perno antenna).

AT Modalità di comando Non funziona

Assicurarsi di avere il perno EN tirato alto o che si tiene premuto il pulsante durante il power-up. Confermare anche la velocità baud per la modalità AT – la maggior parte HC‐05s si aspettano 38400, ma alcuni cloni possono utilizzare 9600.

Idee di progetto reali con moduli Bluetooth

Una volta che avete un lavoro di comunicazione di base, le possibilità sono infinite. Ecco alcuni progetti per iniziare:

1. Controller della striscia del LED wireless

Utilizzare un modulo HC‐05 o BLE per controllare una striscia LED RGB tramite un'app per smartphone. Invia comandi come “rosso”, “blu”, “partita” per cambiare i colori. Combina con un MOSFET per gestire corrente più alta.

2. Monitor di temperatura e umidità a distanza

Collegare un sensore DHT22 e un modulo BLE (come HM‐10) ad un Arduino o ESP32. Avere i dati di temperatura e umidità di trasmissione del bordo ogni pochi secondi. Utilizzare un'app scanner BLE o creare un'app personalizzata per visualizzare le letture. Perfetto per un monitor di serra o di camera per bambini.

3. Macchina robot controllata Bluetooth

Interfaccia un driver motore L298N con HC‐05 e Arduino. Invia caratteri come ‘F’ (in avanti), ‘B’ (in avanti), ‘L’ (a sinistra) per guidare il robot. Il codice legge semplicemente il comando seriale e imposta i pin motore di conseguenza.

4. Smart Lock con la prossimità BLE

Utilizzare un beacon BLE (ESP32 o nRF52) che invia un ID unico. Un dispositivo centrale (ad esempio, smartphone) ascolta la forza RSSI del beacon. Quando il telefono è abbastanza vicino, invia un comando di sblocco. Questo è il principio dietro molte serrature intelligenti.

Conclusione e Prossimo Passo

Interfacciare un microcontrollore con un modulo Bluetooth è una capacità gratificante che collega il gap tra hardware incorporato e connettività mobile. Comprendendo le differenze tra Classic e BLE, mastering the cablaggio (compreso il livellamento della tensione), e imparando a configurare il modulo con i comandi AT, è possibile trasmettere in modo affidabile i dati in modalità wireless.