Nota
Ciao, benvenuto nella Community di appassionati SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
Perché Unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Pronto per esplorare e creare con noi? Clicca [Qui] e unisciti oggi!
Bluetooth Message Box
Questo progetto riceve messaggi e li visualizza su uno schermo LCD.
Puoi usarlo come bacheca dei messaggi di famiglia, ricordando ai membri della famiglia che non sono ancora usciti di ricordarsi di prendere le chiavi.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È sicuramente conveniente acquistare un kit completo, ecco il link:
Nome |
ARTICOLI IN QUESTO KIT |
LINK |
---|---|---|
Elite Explorer Kit |
300+ |
È anche possibile acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
---|---|
- |
|
Cablaggio
Schema
Genera il UUID
Gli UUID svolgono un ruolo cruciale nella comunicazione BLE, garantendo l’unicità dei dispositivi e l’accuratezza dello scambio di dati tra essi. Devi personalizzare gli UUID per creare i tuoi servizi e caratteristiche BLE per soddisfare requisiti applicativi specifici. (Qui, dobbiamo creare una caratteristica che supporti l’input di testo.)
Usa l”Online UUID Generator Tool per creare UUID unici per te per evitare conflitti di UUID.
Genera due UUID versione 4.
Copiali e sostituisci i due UUID nel tuo codice.
#define SERVICE_UUID "uuid1" #define CHARACTERISTIC_UUID "uuid2"
Installa la Libreria
ArduinoBLE.h
: Utilizzato per gestire la comunicazione Bluetooth Low Energy (BLE).
LiquidCrystal_I2C.h
: Utilizzato per controllare uno schermo LCD 16x2 con interfaccia I2C.
Esegui il Codice
Nota
Puoi aprire il file
07_lightblue_lcd.ino
nel percorsoelite-explorer-kit-main\iot_project\07_lightblue_lcd
direttamente.Oppure copia questo codice nell’IDE di Arduino.
Nota
Per installare la libreria, usa il Gestore delle Librerie Arduino per cercare e installare «ArduinoBLE» e «LiquidCrystal I2C».
Come Giocare?
Per interagire con i servizi e le caratteristiche creati in questo sketch, dovresti usare un’app centrale generica Bluetooth® Low Energy come LightBlue (disponibile per iOS e Android) o nRF Connect (per Android).
Utilizziamo LightBlue come esempio per dimostrare come controllare l’LED di Arduino via Bluetooth.
Scarica l’app LightBlue dall’App Store (per iOS) o Google Play (per Android).
Collegare Arduino al tuo Smartphone via Bluetooth
Vai alle impostazioni Bluetooth e individua il dispositivo chiamato «UNO R4 BLE.» Connetti a esso.
Interagire con Arduino via Bluetooth usando LightBlue
Avvia LightBlue e tocca la scheda Bonded nella parte inferiore dell’interfaccia. Qui, vedrai un elenco di dispositivi BLE con cui il tuo smartphone è stato precedentemente associato. Individua UNO R4 BLE e tocca CONNECT.
Una volta connesso, avrai accesso a informazioni dettagliate sul dispositivo Bluetooth. Scorri verso il basso per trovare il tuo UUID di servizio e il tuo UUID di caratteristica.
Tocca la Caratteristica. Noterai che questa Caratteristica è sia leggibile che scrivibile, permettendoti sia di leggere che di scrivere su di essa.
Continua a scorrere fino alla sezione «Formato dei dati» e cambia in Stringa UTF-8. Inserisci il testo nella casella di testo e fai clic su scrivi. Il messaggio inserito apparirà sullo schermo LCD.
Come Funziona?
Ecco le principali parti del codice e le spiegazioni delle loro funzioni:
Includere le librerie necessarie:
ArduinoBLE.h
: Utilizzato per gestire la comunicazione BLE.Wire.h
: Utilizzato per la comunicazione I2C.LiquidCrystal_I2C.h
: Utilizzato per controllare uno schermo LCD 16x2 con interfaccia I2C.
Definire un servizio BLE e una caratteristica BLE:
Usa la classe
BLEService
per definire un servizio BLE e assegnargli un UUID univoco.Usa la classe
BLECharacteristic
per definire una caratteristica BLE, assegnarle un UUID univoco e darle permessi di lettura (BLERead
) e scrittura (BLEWrite
).Crea un array di caratteri
stringValue
come valore iniziale della caratteristica.
Inizializzare uno schermo LCD 16x2 (LCD):
Usa la classe
LiquidCrystal_I2C
per inizializzare un LCD, specificando l’indirizzo I2C (0x27) e il numero di righe e colonne (16x2).Accendi la retroilluminazione dell’LCD, cancella lo schermo, sposta il cursore all’inizio della prima riga e visualizza «Bluetooth LCD.»
Eseguire l’inizializzazione nella funzione
setup()
:Inizializza la comunicazione seriale.
Inizializza il modulo BLE e, se l’inizializzazione fallisce, entra in un ciclo infinito.
Imposta il nome locale e l’UUID del servizio per il dispositivo periferico BLE.
Aggiungi la caratteristica BLE al servizio BLE.
Inizia a pubblicizzare il servizio BLE affinché i dispositivi centrali possano scoprirlo e connettersi ad esso.
Inizializza l’LCD.
La funzione
loop()
:Controlla se c’è un dispositivo centrale connesso al dispositivo periferico BLE chiamando
BLE.central()
. Se un dispositivo centrale è connesso, entra nella logica di gestione della connessione.In stato di connessione, controlla se i dati sono stati scritti nella caratteristica BLE controllando
boxCharacteristic.written()
.Se i dati sono stati scritti, ottieni la lunghezza dei dati scritti usando
boxCharacteristic.valueLength()
e crea un array di bytebuffer
per memorizzare i dati scritti.Usa
boxCharacteristic.readValue()
per leggere i dati dalla caratteristica BLE nelbuffer
.Aggiungi un carattere nullo
'\0'
alla fine delbuffer
per convertirlo in una stringa.Stampa il messaggio ricevuto sul monitor seriale e visualizzalo sull’LCD.
Continua ad aspettare il prossimo dispositivo centrale da connettere dopo che il dispositivo centrale si è disconnesso.