Sommario:

Bridge semplice da WiFi a BLE (Bluetooth Low Energy): 9 passaggi (con immagini)
Bridge semplice da WiFi a BLE (Bluetooth Low Energy): 9 passaggi (con immagini)

Video: Bridge semplice da WiFi a BLE (Bluetooth Low Energy): 9 passaggi (con immagini)

Video: Bridge semplice da WiFi a BLE (Bluetooth Low Energy): 9 passaggi (con immagini)
Video: Беспроводный USB шлюз ZigBee 3.0 – WiFi умного дома TUYA добавляем датчики 2024, Dicembre
Anonim
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge
Semplice WiFi a BLE (Bluetooth Low Energy) Bridge

Aggiornamento 4 dicembre 2017 -- bozzetti Feather nRF52 rivisti e suggerimenti per il debug. Aggiunte immagini del ponte montato nella scatola

Questo semplice progetto fornisce l'accesso WiFi a qualsiasi modulo Bluetooth Low Energy (BLE) che implementa UART di Nordic con TX Notify. Il bridge Wifi2BLE è completamente trasparente. Passa semplicemente i dati WiFi al dispositivo BLE e restituisce i dati del dispositivo BLE alla connessione WiFi.

Il pfodDesignerV3 gratuito genera codice per implementare un servizio UART Nordic su molti moduli BLE tra cui, Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 e V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend e Flora Boards, Adafruit Bluefruit LE SPI (ovvero Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) e qualsiasi altra scheda che consente di programmare il proprio servizio.

Questo bridge Wifi2BLE è adatto a costruttori inesperti che possono saldare. Utilizza solo due schede, un cavo a nastro e due resistori

Oltre a test dettagliati per ciascuna scheda, questa istruzione include un passaggio Guida - Non funziona con ulteriori suggerimenti per la ricerca dei guasti.

Queste istruzioni sono disponibili anche online

Perché questo progetto?

Questo progetto risolve una serie di problemi che ha BLE (Bluetooth Low Energy).

  • Solo i cellulari e i computer recenti supportano BLE. Il bridge Wifi2BLE consente a qualsiasi cellulare o computer con una connessione WiFi di connettersi e controllare il dispositivo BLE.
  • BLE ha una portata limitata. Il bridge Wifi2BLE consente di accedere al dispositivo BLE da qualsiasi punto della casa (dove è presente una connessione WiFi) e dall'esterno tramite Internet.
  • La creazione di app BLE richiede l'apprendimento di Android o iOS. Il bridge Wifi2BLE fornisce una connessione telnet universale tramite qualsiasi programma terminale. Inoltre, puoi aggiungere facilmente una pagina web al modulo WiFi per creare la tua interfaccia personalizzata.
  • BLE V5 promette reti mesh per connettere tutti i tuoi dispositivi BLE domestici, una volta che il software raggiunge le ultime specifiche Bluetooth. Il bridge Wifi2BLE utilizza un dispositivo BLE V5 e quindi fornirà l'accesso a Internet a questa rete domestica quando arriva.

Il mio utilizzo immediato per questo progetto è aggiungere il controllo della luce BLE della lounge alla rete WiFi per consentirne il controllo da qualsiasi punto della casa. Sebbene questo tutorial utilizzi pfodApp come esempio di controllo delle schede BLE tramite WiFi, non è necessario acquistare pfodApp per completare questo progetto.

Passaggio 1: elenco delle parti

Costo ~US $ 60 al 30 novembre 2017, escluse le spese di spedizione + un piccolo involucro di plastica

Adafruit Feather nRF52 Bluefruit LE – nRF52832 – ~US$25

Adafruit HUZZAH ESP8266 Breakout - ~US $ 10

Cavo a nastro con estremità femmina separate – Bus Pirate Cable ~US $ 5 https://www.sparkfun.com/products/9556 OPPURE Cavo breakout con presa IDC a 10 pin ~ US $ 4 https://www.sparkfun.com/products/ 9556 O simile

Intestazioni maschili Break Away - Angolo retto – ~US $ 2

Cavo seriale da USB a TTL 3V3 – ~US $ 10 https://www.sparkfun.com/products/12977 (Preferito in quanto ha i pin etichettati) OPPURE https://www.sparkfun.com/products/12977 (i pin NON sono etichettato)

Cavo da USB A a Micro B – ~US$4 https://www.sparkfun.com/products/12977 (lunghezza 3 piedi) OPPURE ~US$3 https://www.sparkfun.com/products/12977 (lunghezza 6 pollici) OPPURE ~US$2 https://www.sparkfun.com/products/12977 (lunghezza 6 pollici) OPPURE ~US$5 https://www.sparkfun.com/products/12977 (lunghezza 6 piedi) OPPURE simile

2 resistenze da 100 ohm – ~US$1

Alimentazione USB (500mA o più) – ~US$6 https://www.sparkfun.com/products/12890 OPPURE ~US$7 https://www.adafruit.com/product/1994 O simili

Arduino IDE V1.8.5 e un computer su cui eseguirlo.

Per una scatola di plastica ne ho usata una di Jaycar UB5 (blu) 83 mm x 54 mm x 31 mm ~ A $ 4

Passaggio 2: circuito Wifi2BLE

Circuito Wifi2BLE
Circuito Wifi2BLE

Il circuito Wifi2BLE è mostrato sopra. Una versione in pdf è qui. Come puoi vedere il circuito è molto semplice. Solo 4 fili e due resistenze di protezione da 100 ohm. Le resistenze di protezione sono nel caso in cui non si colleghino le linee TX / RX dopo aver programmato l'HUZZAH ESP8266 o il Feather nRF52.

NOTA: la marcatura della scheda Feather nRF52 per i pin TX e RX non è corretta. Il pin TX è in realtà quello vicino al pin DFU e il pin RX è quello vicino al pin MISO

Assicurati di collegare le linee TX/RX come mostrato sopra. Fortunatamente le resistenze di protezione hanno fatto il loro lavoro e le schede non sono state danneggiate mentre cercavo di capire perché le schede non si prendessero l'una con l'altra.

Passaggio 3: costruzione Wifi2BLE

Costruzione Wifi2BLE
Costruzione Wifi2BLE
Costruzione Wifi2BLE
Costruzione Wifi2BLE
Costruzione Wifi2BLE
Costruzione Wifi2BLE

I pin dell'intestazione ad angolo retto sono stati saldati sull'HUZZAH ESP8266 per consentirne lo scollegamento per la programmazione. Per collegare le due schede vengono utilizzati quattro fili del cavo a nastro. Conservare i connettori a pin femmina e tagliare l'altra estremità del cavo a nastro. Il mio cavo a nastro aveva gli stessi colori del cavo di programmazione Sparkfun da USB a TTL, quindi ho scelto il cavo per abbinarlo. Nero per GND, Rosso per 5V+, Arancione per TX (si collega a ESP8266 RX) e Marrone per RX (si collega a ESP8266 TX)

Ho cablato le resistenze di protezione sul retro della scheda Feather nRF52. (I costruttori attenti che conoscono i loro codici di resistenza vedranno che ho usato due resistori da 68 ohm che ho a portata di mano invece di quelli da 100 ohm) e poi li ho isolati con un po' di pellicola termoretraibile.

Il cavo rosso è saldato al pin USB Feather nRF52 per prelevare l'USB 5V per alimentare il modulo HUZZAH ESP8266 e il cavo nero è saldato al pin GND Feather nRF52.

Che c'è tutto tranne che per programmare i moduli, come descritto di seguito, mettendolo in una scatola di plastica e collegando un alimentatore USB al Feather nRF52.

Passaggio 4: programmazione Wifi2BLE

Programmazione Wifi2BLE
Programmazione Wifi2BLE
Programmazione Wifi2BLE
Programmazione Wifi2BLE
Programmazione Wifi2BLE
Programmazione Wifi2BLE

Programmazione dell'HUZZAH ESP8266

Per programmare lo shield seguire le istruzioni fornite su https://github.com/esp8266/Arduino in Installazione con Boards Manager. Quando si apre Boards Manager dal menu Strumenti → Board e selezionare Type Contributed e installare la piattaforma esp8266. Questo progetto è stato compilato utilizzando la versione 2.3.0 di ESP8266. Altre versioni avranno il proprio set di bug e potrebbero non funzionare con questo codice.

NOTA: NON utilizzare l'installazione di Adafruit Board poiché lo sketch utilizzato qui non verrà compilato con quel codice.

Chiudi e riapri l'IDE Arduino e ora puoi selezionare "Adafruit HUZZAH ESP8266" dal menu Strumenti → Scheda.

È inoltre necessario installare l'ultima versione della libreria pfodESP8266WiFiBufferedClient. Questa libreria funziona con il plug-in IDE ESP8266.com V2.3. (Se hai precedentemente installato la libreria pfodESP2866WiFi, elimina completamente la directory della libreria.)

  • a) Scarica questo file pfodESP8266WiFiBufferedClient.zip sul tuo computer, spostalo sul desktop o in un'altra cartella che puoi trovare facilmente
  • b) Quindi utilizzare l'opzione di menu IDE Arduino 1.8.5 Schizzo → Importa libreria → Aggiungi libreria per installarlo. (Se Arduino non ti consente di installarlo perché la libreria esiste già, trova ed elimina la cartella pfodESP8266BufferedClient precedente e quindi importa questa)
  • c) Arrestare e riavviare l'IDE Arduino e in File-> Esempi dovresti ora vedere pfodESP8266BufferedClient.

Impostazione di ssid di rete e password e IP e porta

Dopo aver installato la libreria pfodESP8266BufferedClient, apri l'IDE di Arduino e copia questo schizzo, Wifi_Bridge.ino, nell'IDE. Prima di programmare il modulo, è necessario impostare l'ssid e la password della rete e scegliere un IP non utilizzato.

Modifica queste tre righe nella parte superiore di Wifi_Bridge.ino

char ssid = "**** ***"; char password = "**** *****"; char staticoIP = "10.1.1.180";

Utilizzo l'app Fing (Android o iOS) per scansionare la mia rete locale e identificare gli IP già utilizzati. Di solito è sicuro scegliere un IP inutilizzato nell'intervallo da.180 a.254

Per cominciare puoi lasciare il portNo come 23, la porta standard per una connessione telnet.

Dopo aver apportato tali modifiche, è possibile programmare ESP8266.

Programmazione dell'HUZZAH ESP8266

Per programmare HUZZAH ESP8266, collegare il cavo USB a seriale come mostrato nella foto. Controlla la foto e il cablaggio. Vedi anche Suggerimenti per la programmazione di ESP8266 (espcomm non riuscito)

Uso il cavo seriale Sparkfun da USB a TTL 3V3 perché ha i cavi TX e RX contrassegnati. Assicurarsi che il cavo TX sia collegato al pin RX e che il cavo RX sia collegato al pin TX come mostrato sopra. Se stai usando il cavo Adafruit, non ha i terminali contrassegnati ma è codificato a colori, il rosso è alimentazione, il nero è massa, il verde è TX e il bianco è RX.

Collega il cavo da USB a seriale al computer e seleziona la porta COM nel menu Strumenti → Porta. Lascia la frequenza della CPU, la dimensione del flash e la velocità di caricamento alle impostazioni predefinite.

Quindi metti il modulo Adafruit HUZZAH ESP2866 in modalità di programmazione tenendo premuto il pulsante GPIO0 e facendo clic sul pulsante Reset e quindi rilasciando il pulsante GPIO0. Il led GPIO0 dovrebbe rimanere debolmente acceso. Quindi seleziona File → Carica o usa il pulsante Freccia destra per compilare e caricare il programma. Se ricevi un messaggio di errore durante il caricamento, controlla che le connessioni dei cavi siano inserite nei pin corretti e riprova.

Una volta completata la programmazione, il led rosso sul modulo dovrebbe accendersi. Ciò indica che si è connesso correttamente alla rete locale e ha avviato il server per accettare una connessione.

Test dell'HUZZAH ESP2866

Per testare HUZZAH ESP2866, lascia collegato il cavo di programmazione e apri Arduino IDE Tools → Serial Monitor e imposta 9600 baud (angolo in basso a destra). Quindi apri un programma terminale sul tuo computer, io uso TeraTerm per Windows e CoolTerm per Mac e mi connetto all'IP e portNo che hai impostato nello sketch Wifi_Bridge.ino.

Quando si collega il Led Rosso sul modulo dovrebbe iniziare a lampeggiare, indicando che c'è una connessione. Ora dovresti essere in grado di digitare nella finestra del terminale del tuo computer e i caratteri dovrebbero apparire nella finestra del monitor dell'IDE di Arduino e viceversa.

Timeout connessione Wi-Fi

Il codice Wifi_Bridge.ino ha un tempo di connessione.

uint32_t connectionTimeout = 60000; // Timeout connessione 60 secondi

Se non ci sono dati WiFi ricevuti dal modulo HUZZAH ESP8266 per 60 secondi, il modulo chiude la connessione e attende una nuova. Ciò garantisce che il modulo si riprenda da connessioni "semichiuse" che si verificano quando il client scompare a causa di una cattiva connessione WiFi, perdita di alimentazione al router o spegnimento forzato del client. Vedere Rilevamento di connessioni socket TCP/IP semiaperte (perse) per maggiori dettagli.

Questo timeout di connessione è impostato su 60 sec. ma può essere diminuito o aumentato secondo necessità. Impostarlo su 0 significa non scadere mai, il che non è raccomandato.

Programmazione della piuma nRF52

Per programmare Feather nRF52, segui le istruzioni su come scaricare e installare il supporto della scheda Arduino per Feather nRF52. Verifica di poterti connettere e programmare la scheda tramite il cavo USB.

NOTA: scollegare il modulo HUZZAH ESP8266 dal Feather nRF52 prima di provare a programmare il Feather

Il collegamento di Feather nRF52 a un dispositivo BLE consiste in due passaggi. Prima identificando l'indirizzo MAC (e tipo) sul dispositivo e verificando che supporti il servizio Nordic UART con TX Notify e quindi trasferendo quell'indirizzo e tipo allo sketch del ponte.

Passaggio 5: connessione a un dispositivo BLE

Connessione a un dispositivo BLE
Connessione a un dispositivo BLE
Connessione a un dispositivo BLE
Connessione a un dispositivo BLE
Connessione a un dispositivo BLE
Connessione a un dispositivo BLE

Una volta programmato HUZZAH ESP8266, è necessario codificare l'indirizzo BLE e il tipo del dispositivo a cui si desidera connettersi nello sketch Feather nRF52. Questo è un processo in due fasi. I) Eseguire il programma di scansione per trovare dispositivi BLE nelle vicinanze che implementano il servizio Nordic UART (TX Notify) e quindi copiare l'output dello scanner nello schizzo del ponte Feather per farlo connettere a quel dispositivo.

Scansione per periferiche BLE

Per identificare le periferiche BLE compatibili, carica il programma central_bleuart_scanner.ino nel tuo Feather nRF52. Questo programma cerca continuamente nuovi dispositivi e quindi verifica se supportano il servizio Nordic UART con TX Notify.

Servizio UART nordico

Il servizio Nordic UART è composto da tre parti, l'UUID del servizio e le caratteristiche RX e TX. Ecco un esempio di codice generato da pfodDesignerV3 per RedBear NanoV2

BLEService uartService = BLEService("6E400001B5A3F393E0A9E50E24DCCA9E");

BLECharacteristic rxCharacteristic = BLECharacteristic("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH);

pfodDesignerV3 può generare codice di esempio per un numero di moduli BLE. Tuttavia, poiché non esiste una specifica BLE per una connessione UART "standard", non tutti i moduli utilizzano il servizio UART nordico. Ad esempio i moduli HM-10 (scudo Itead BLE), RFduno e Romeo BLE utilizzano i propri servizi uart unici e quindi non si collegheranno al Feather nRF52.

Le seguenti schede si collegheranno:- Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 e V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend e Flora Boards, Adafruit Bluefruit LE SPI (cioè Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE o Bluefruit LE SPI Friend) e schede che possono essere codificate con servizi personalizzati o schede che possono utilizzare la libreria BLEPipheral.

La scheda di esempio utilizzata qui è Arduino/Genuino 101 con codice generato da pfodDesignerV3. Il pfodDesignerV3 gratuito ti consente di creare menu pfodApp e quindi genera il codice Arduino necessario per mostrare quel menu esatto sul tuo cellulare Android utilizzando pfodApp (a pagamento). pfodApp si connetterà anche tramite Wifi, Bluetooth Classic, BLE e SMS, quindi può connettersi tramite questo bridge Wifi2BLE. Tuttavia, anche se non desideri utilizzare pfodApp come app di controllo, puoi comunque utilizzare pfodDesignerV3 per generare un codice di servizio Nordic UART per la tua scheda BLE.

Questo collegamento tutorial descrive la configurazione di Arduino/Genuino 101 BLE e la creazione di un semplice controllo di accensione/spegnimento LED con pfodDesignerV3. Lo sketch prodotto dal pfodDesignerV3 è Arduino101_led_control.ino

La programmazione di Arduino/Genuino 101 con Arduino101_led_control.ino ti consentirà di connetterti con pfodApp e visualizzare la seguente schermata sul tuo cellulare Android.

Tuttavia questo è solo un esempio e non è necessario acquistare pfodApp per completare questo progetto. La parte importante è che l'app gratuita pfodDesignerV3 ha generato il codice per Arduino/Genuino 101 che implementa un servizio UART nordico. Quindi cerchiamo di scansionarlo.

Tuttavia questo è solo un esempio e non è necessario acquistare pfodApp per completare questo progetto. La parte importante è che l'app gratuita pfodDesignerV3 ha generato il codice per Arduino/Genuino 101 che implementa un servizio UART nordico. Quindi cerchiamo di scansionarlo.

Scansione per un servizio UART nordico

Con il modulo HUZZAH ESP8266 scollegato dal Feather nRF52, programmare il Feather nRF52 con central_bleuart_scanner.ino e quindi aprire Arduino IDE Tools → Serial Monitor e impostare il baud rate a 9600. Accendendo Arduino/Genuino 101 si ottiene l'output mostrato in la prima schermata sopra.

Come puoi vedere lo scanner ha trovato due dispositivi BLE, un Arduino/Genuino 101 con ha trovato un servizio UART nordico su di esso, MA la caratteristica TX non supportava Notify. Lo scanner ha anche trovato un modulo RFduino BLE, ma RFduino non utilizza il servizio Nordic UART ma ne utilizza uno proprio. Il Bluetooth Committee è responsabile di ciò per non aver specificato un servizio UART "standard", lasciando invece a ciascun produttore il compito di crearne uno.

Come spiegato sopra, il codice 101 è stato generato da pfodDesignerV3 principalmente per l'uso con pfodApp. pfodApp non è così esigente su TX Notify come il codice uart Feather nRF52. pfodApp funziona con il 101 come programmato ma il Feather nRF52 insiste su TX Notify quindi è necessaria una piccola modifica al codice per soddisfare il Feather.

Apri Arduino101_led_control.ino nell'IDE Arduino e nella parte superiore troverai queste due righe. La seconda riga è solo una descrizione della caratteristica e non influisce sull'operazione.

BLECharacteristic txCharacteristic = BLECharacteristic("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH);BLEDescriptor txNameDescriptor = BLEDescriptor("2901", "TX – (Indicate)");

Cambiali in

BLECharacteristic txCharacteristic = BLECharacteristic("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor("2901", "TX - (Notifica)");

Quindi riprogrammare il 101 con questa versione modificata, Arduino101_Notify_led_control.ino. Quindi, quando riesegui lo scanner Feather nRF52 (central_bleuart_scanner.ino), il monitor seriale mostra la seconda schermata sopra.

Nessun errore per il Genuino 101 ora e lo scanner stampa il codice necessario per lo schizzo del ponte Feather nRF52 in modo che si colleghi al 101. Lo scanner controllerà ogni dispositivo che trova nel raggio d'azione. Il led rosso lampeggia una volta per ogni dispositivo trovato con Nordic UART Service (TX Notify).

Passaggio 6: connessione a una periferica BLE

Indicazioni LED

Il Feather nRF52 ha due led, Blu e Rosso. Quando la scheda è collegata ad un dispositivo BLE il Led Blu è fisso, altrimenti lampeggia. Lo scanner non rimane connesso al dispositivo quindi il suo led Blu di solito lampeggia. Il led rosso lampeggia una volta per ogni dispositivo Nordic UART Service (TX Notify). Quando è in esecuzione come scanner, il LED rosso conta il numero di dispositivi Nordic UART Service (TX Notify) trovati. Quando funziona in bridge, il Led Rosso lampeggia una volta quando è collegato all'indirizzo del codice BLE.

Collegamento a una periferica BLE

Ora che lo schizzo dello scanner ha fornito i dettagli per il dispositivo BLE a cui vuoi connetterti, puoi copiare l'output nello schizzo central_bleuart_bridge.ino. Nella parte superiore di quello schizzo troverai il seguente codice.

// Queste tre righe di codice successive provengono dall'output di central_bleuart_scanner.ino

const char *BLE_NAME = "GENUINO 101-FC8F"; const char *BLE_ADDRESS = "98:4F:EE:0C:FC:8F"; const uint8_t BLE_ADDRESS_TYPE = 0;

Sostituisci le tre righe di codice con l'output dello scanner per il dispositivo BLE a cui desideri eseguire il bridge. Quindi programma il Feather nRF52 con lo schizzo central_bleuart_bridge.ino modificato.

Testare lo schizzo central_bleuart_bridge

Prima di ricollegare HUZZAH ESP8266 a Feather nRF52, verifica la connessione al tuo dispositivo BLE. Lasciando il Feather nRF52 connesso al tuo Arduino IDE, apri Strumenti → Serial Monitor a 9600 baud e poi controlla che il tuo dispositivo BLE di destinazione sia acceso.

Quando viene effettuata la connessione al tuo dispositivo BLE, come descritto sopra, il led Blu si accenderà costantemente e il led Rosso lampeggerà una volta ogni 10 secondi circa. Ciò consente di non stabilire e mantenere la connessione.

Quindi nel monitor seriale puoi inserire i comandi che prevedi di inviare al tuo dispositivo BLE e guardarlo funzionare e monitorare qualsiasi risposta che invia. Se tutto va bene, puoi spegnere e collegare il modulo HUZZAH ESP8266.

Passaggio 7: connessione al dispositivo BLE tramite WiFi - Mettere tutto insieme

Dopo aver programmato e testato il modulo HUZZAH ESP8266 con il suo codice bridge (Wifi_Bridge.ino) configurato per la tua rete ssid e password e IP E programmato e testato il Feather nRF52 con il suo codice bridge (central_bleuart_bridge.ino) configurato con l'indirizzo del dispositivo BLE e digita, quindi puoi collegarli insieme e collegare un alimentatore USB al modulo Feather per accenderli entrambi.

Il led rosso del modulo HUZZAH dovrebbe accendersi fisso quando si connette al router di rete locale e il led Feather Blue dovrebbe accendersi fisso quando si connette al tuo dispositivo BLE e il led Feather Red dovrebbe lampeggiare una volta ogni 10 secondi circa per indicare solo su Il dispositivo BLE è collegato.

Apri il tuo programma telnet e connettiti all'IP e alla porta di HUZZAH. Il led HUZZAH rosso dovrebbe lampeggiare lentamente per indicare che il programma si è connesso e dovresti inviare comandi al tuo dispositivo BLE tramite WiFi e guardare il dispositivo BLE funzionare e vedere qualsiasi risposta nella finestra telnet. Ricorda che se il tuo dispositivo BLE non restituisce alcun dato per 60 sec, il codice HUZZAH scadrà la connessione e si disconnetterà e il led HUZZAH rosso tornerà a essere fisso.

Passaggio 8: aiuto: non funziona

Per prima cosa, esegui i passaggi di test descritti sopra, Test di HUZZAH ESP2866 e Test dello schizzo central_bleuart_bridge.

Problemi di scansione

Se lo scanner non riesce a trovare il tuo dispositivo BLE, è troppo lontano o non fa pubblicità o è già connesso a qualcosa. Prova ad avvicinare lo scanner e spegnere e riaccendere il dispositivo e spegnere tutti gli altri dispositivi mobili vicini che potrebbero avere una connessione al dispositivo BLE.

Se ottieni un output dello scanner come questo.

Connesso a 98:4F:EE:0C:FC:8F Ricerca del servizio UART nordico … Nessuno trovato O Non rilevabile!!!!! Impossibile identificare un servizio UART nordico !!!!!!!! Se ti aspettavi un servizio UART nordico, avvicina lo scanner al dispositivo BLE !!!!

È possibile che tu sia abbastanza vicino al dispositivo BLE per rilevarlo ma non abbastanza vicino per eseguire correttamente un rilevamento del servizio per trovare il servizio Nordic UART. Prova ad avvicinarti al dispositivo BLE.

Come ultima risorsa puoi utilizzare l'app gratuita Nordic nRF Connect per Android o iOS. Quell'app ha una portata e una sensibilità migliori. Ti dirà se il dispositivo BLE ha un servizio UART nordico. Tuttavia, sarà comunque necessario eseguire lo scanner, connettersi e identificare il servizio Nordic UART prima di tentare di utilizzare il bridge Wifi2BLE poiché utilizza un codice simile allo scanner.

Se vuoi scavare più a fondo puoi usare il modulo Adafruit Bluefruit LE Sniffer per vedere cosa c'è nell'aria.

Problemi di connessione BLE

Se sei riuscito a scansionare il dispositivo BLE, le cause più probabili dei problemi di connessione sono I) il dispositivo BLE è troppo lontano, II) qualcos'altro si è già connesso al dispositivo BLE

Problemi di connessione WiFi

Se il led rosso di HUZZAH ESP8266 non si accende fisso, significa che non ha una connessione alla rete tramite il router. Controlla l'ssid e la password di cui hai il codice in Wifi_Bridge.ino e usa l'app Fing per Android o iOS per verificare che l'IP che hai assegnato non sia già in uso. Prova a spegnere tutti i tuoi computer e dispositivi e a spegnere e riaccendere il router (lascialo spento per 20 secondi) e poi scansiona di nuovo con Fing. Infine, se la connessione continua a interrompersi, ricorda l'impostazione del timeout della connessione nel codice Wifi_Bridge.ino.

Passaggio 9: estensioni e conclusione

Il progetto qui presentato è la versione più semplice. Ci sono una serie di possibili estensioni come: -

  • Il Feather nRF52 è in grado di connettersi a un massimo di 4 dispositivi BLE contemporaneamente in modo da poter modificare il codice per aggiungere più indirizzi validi e controllare fino a 4 dispositivi da un'unica connessione WiFi. Vedere il codice di esempio fornito con l'installazione della scheda Feather nRF52.
  • Potresti fare un buco nel tuo router per fornire l'accesso al dispositivo BLE da qualsiasi punto su Internet. Vedere Connessione di dispositivi IoT fai da te a Internet con pfodApp.
  • È possibile utilizzare il codice di Cheap/Simple Wifi Shield per consentire di configurare i parametri della rete WiFi per HUZZAH tramite una pagina Web, senza riprogrammazione. Dovresti aggiungere un pulsante di configurazione al circuito.
  • È possibile aggiungere un pulsante di configurazione (utilizzando lo stesso pulsante di cui sopra) che effettui la scansione di Feather nRF52 per i dispositivi BLE con un Nordic UART (TX Notify) e quindi salvare i dettagli della connessione per quello con il segnale più forte. Per salvare il risultato, dovrai utilizzare la libreria nffs fornita con l'installazione della scheda Adafruit nRF52.
  • Puoi aggiungere una pagina web al codice HUZZAH ESP8266 per fornire un'interfaccia personalizzata per il tuo dispositivo BLE. Puoi anche usare pfodDesignerV3 e pfodApp aggiungere un'interfaccia personalizzata senza alcuna modifica a questo progetto.

Conclusione

Questo semplice progetto fornisce l'accesso WiFi a qualsiasi modulo Bluetooth Low Energy (BLE) che implementa UART di Nordic con TX Notify. Il bridge Wifi2BLE è completamente trasparente. Passa semplicemente i dati WiFi al dispositivo BLE e restituisce i dati del dispositivo BLE alla connessione WiFi.

La costruzione semplice e le istruzioni di test dettagliate lo rendono un progetto adatto per i principianti che desiderano accedere al proprio dispositivo BLE dal proprio computer o al di fuori della gamma t normale del BLE.

Questo progetto diventerà più importante una volta che il software del dispositivo BLE raggiungerà la nuova specifica Bluetooth V5 Mesh. Quindi Wifi2BLE fornirà l'accesso a Internet all'intera automazione della casa.

Consigliato: