- Componenti richiesti
- Schema del circuito del modulo Bluetooth ESP8266 HC-05
- Modulo Bluetooth HC-05
- Utilizzo del terminale Bluetooth seriale (app Android)
- Programmazione NodeMCU ESP8266 per interfacciare Bluetooth
Ormai il Bluetooth è diventato parte integrante dei dispositivi digitali e viene integrato nella maggior parte dei dispositivi come smartphone, laptop, PC, fotocamera, orologi, cinturini fitness e molti altri. Il Bluetooth ha sempre dominato il protocollo nella comunicazione wireless sin da quando è stato scoperto. Sebbene la tecnologia Bluetooth sia fondamentalmente un sistema di sostituzione del cavo, sfrutta anche un ponte universale per le reti di dati esistenti e un meccanismo di connessione ad hoc per il numero di dispositivi in varie configurazioni. Abbiamo utilizzato il modulo Bluetooth HC05 e HC06 con molti altri microcontrollori per farli comunicare in modalità wireless:
- Interfacciamento Bluetooth HC-05 con STM32F103C8 Blue Pill: LED di controllo
- Interfacciamento del modulo Bluetooth HC-05 con il microcontrollore AVR
- Robot controllato da Android utilizzando il microcontrollore 8051
- Controllo del GPIO di Raspberry Pi utilizzando l'app Android tramite Bluetooth
- Macchinina controllata tramite Bluetooth con Arduino
Oggi interfacciamo il modulo Bluetooth HC-05 con il popolare modulo Wi-Fi ESP8266 e controlleremo un LED in modalità wireless inviando comandi tramite Bluetooth. Questo LED può essere sostituito da un relè e un apparecchio CA per creare un'applicazione di automazione domestica.
Componenti richiesti
Hardware:
- NodeMCU ESP8266
- Modulo Bluetooth HC-05
Software:
- IDE Arduino
- Terminale Bluetooth seriale (app Android): per monitorare i dati Bluetooth su uno smartphone.
Schema del circuito del modulo Bluetooth ESP8266 HC-05
Lo schema del circuito per collegare il modulo Bluetooth HC-05 con NodeMCU ESP8266 è molto semplice e mostrato di seguito:
È necessario un modulo Bluetooth esterno con ESP8266 poiché non dispone di Bluetooth integrato come ESP32. ESP32 ha Bluetooth Low Energy (BLE) e Classic Bluetooth integrati , sui quali abbiamo precedentemente trattato alcuni tutorial:
- Server ESP32 BLE - Servizio GATT per l'indicazione del livello della batteria
- Client ESP32 BLE - Collegamento a Fitness Band per attivare una lampadina
- Come utilizzare il Bluetooth seriale in ESP32
Modulo Bluetooth HC-05
HC-05 è un modulo Bluetooth seriale. Può essere configurato utilizzando i comandi AT. Può funzionare in tre diverse configurazioni (Master, Slave, Loop back). Nel nostro progetto lo useremo come schiavo. Le caratteristiche del modulo HC-05 includono,
- Sensibilità tipica di -80dBm.
- Baud rate predefinito: 9600 bps, 8 bit di dati, 1 bit di stop, nessuna parità.
- Codice pin di accoppiamento automatico: codice pin predefinito "1234" o "0000".
- Dispone di 6 pin.
- I pin Vcc e Gnd vengono utilizzati per alimentare l'HC-05.
- I pin Tx e Rx vengono utilizzati per comunicare con il microcontrollore.
- Abilita il pin per l'attivazione del modulo HC-05. quando è basso, il modulo è disabilitato
- Il pin di stato funge da indicatore di stato. Quando non è accoppiato / connesso a nessun altro dispositivo Bluetooth, il LED lampeggia continuamente. Quando è connesso / accoppiato con qualsiasi altro dispositivo Bluetooth, il LED lampeggia con un ritardo costante di 2 secondi.
Per saperne di più sul modulo Bluetooth, passa attraverso i nostri altri progetti relativi al Bluetooth.
Utilizzo del terminale Bluetooth seriale (app Android)
Usare questa app è molto semplice e richiede pochi passaggi. Gli screenshot sono forniti di seguito con i passaggi. Basta accoppiare l' HC-05 con lo smartphone. Il codice predefinito è "0000" o "1234", ma per lo più "1234" funziona.
- Innanzitutto scarica e installa l'app, quindi vai su dispositivi per trovare il modulo HC-05. Selezionare il modulo HC-05 cercato sull'app. Se non viene trovato, controllare se l'HC-05 è alimentato correttamente.
- Dopo aver fatto clic sull'HC-05, verrà connesso. Ora digita qualsiasi messaggio nella casella del messaggio e invialo. Verrà stampato sul monitor seriale Arduino.
Programmazione NodeMCU ESP8266 per interfacciare Bluetooth
Per programmare il NodeMCU ESP8266 utilizzando ArduinoIDE, basta collegarlo dal laptop o PC utilizzando il cavo Micro USB e aprire Arduino IDE. Per questo tutorial, verranno utilizzati il seriale hardware e il seriale software. La seriale hardware verrà utilizzata per leggere e scrivere dati su Arduino Serial Monitor e Serial Sofware verrà utilizzato per comunicare con HC-05. Come sempre il codice completo e il video dimostrativo sono forniti alla fine del tutorial.
Inizialmente, includere la libreria seriale del software poiché verrà utilizzata in questo tutorial.
#includere
Definire i pin RX e TX per la comunicazione seriale del software, definire anche il pin del led collegato a NodeMCU. Stiamo usando il LED interno di NodeMCU che si trova sul Pin D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Avviare Software and Hardware Serial a 9600 baud rate. Imposta Led Pin come uscita. Stampa un messaggio di benvenuto e di debug.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Avviato…");
In primo luogo, leggi dal modulo Bluetooth e definisci un caso in cui se il modulo Bluetooth riceve "B" dal telefono, allora inizia il LED lampeggiante collegato a D4 di NodeMCU altrimenti se riceve "S", allora smetti di lampeggiare. Non stiamo usando delay () qui. Ma Arduino "millis" verrà utilizzato per non ostacolare le prestazioni di Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); interruttore (dati) { caso 'B': ledB = "lampeggia"; rompere; caso 'S': ledB = "stop"; rompere; default: pausa; } }
Il millis è definito e si imposta il ritardo a 500ms cioè il led lampeggerà ogni 500ms. Inoltre è possibile configurare il ritardo del led modificando il valore di "intervallo". Lo stato del led verrà attivato.
corrente lunga non firmataMillis = millis ();
if (ledB == "blink") { Serial.println ("blinking started"); if (currentMillis - previousMillis> = intervallo) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } altro { ledState = LOW; } digitalWrite (led, ledState); } }
E questo finirà la programmazione di NodeMCU per lampeggiare LED in modalità wireless tramite Bluetooth. È inoltre possibile modificare il programma per eseguire diverse attività con LED come il LED può essere sostituito da un relè con apparecchio CA per realizzare un progetto di automazione domestica Bluetooth. In caso di dubbi o suggerimenti, si prega di raggiungere il nostro forum o commentare qui sotto.