Table des matières:

Pont simple WiFi vers BLE (Bluetooth Low Energy): 9 étapes (avec photos)
Pont simple WiFi vers BLE (Bluetooth Low Energy): 9 étapes (avec photos)

Vidéo: Pont simple WiFi vers BLE (Bluetooth Low Energy): 9 étapes (avec photos)

Vidéo: Pont simple WiFi vers BLE (Bluetooth Low Energy): 9 étapes (avec photos)
Vidéo: ESP32 Bluetooth Low Energy (BLE) #ElecrowMaker 2024, Novembre
Anonim
Pont simple WiFi vers BLE (Bluetooth Low Energy)
Pont simple WiFi vers BLE (Bluetooth Low Energy)
Pont simple WiFi vers BLE (Bluetooth Low Energy)
Pont simple WiFi vers BLE (Bluetooth Low Energy)
Pont simple WiFi vers BLE (Bluetooth Low Energy)
Pont simple WiFi vers BLE (Bluetooth Low Energy)

Mise à jour du 4 décembre 2017 - croquis révisés de Feather nRF52 et astuces de débogage. Ajout de photos du pont monté dans la boîte

Ce projet simple fournit un accès WiFi à n'importe quel module Bluetooth Low Energy (BLE) qui implémente l'UART de Nordic avec TX Notify. Le pont Wifi2BLE est complètement transparent. Il transmet simplement les données WiFi à l'appareil BLE et renvoie les données de l'appareil BLE à la connexion WiFi.

Le pfodDesignerV3 gratuit génère du code pour implémenter un service Nordic UART sur de nombreux modules BLE, notamment Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 et V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend et Flora Boards, Adafruit Bluefruit LE SPI (c'est-à-dire Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ou Bluefruit LE SPI Friend) et toute autre carte vous permettant de programmer votre propre service.

Ce pont Wifi2BLE convient aux constructeurs inexpérimentés qui savent souder. Il n'utilise que deux cartes, un câble plat et deux résistances

En plus des tests détaillés pour chaque carte, cette instructable comprend une étape Aide - Cela ne fonctionne pas avec plus de conseils de recherche de pannes.

Ces instructions sont également disponibles en ligne

Pourquoi ce projet ?

Ce projet résout un certain nombre de problèmes que BLE (Bluetooth Low Energy) a.

  • Seuls les mobiles et ordinateurs récents prennent en charge le BLE. Le pont Wifi2BLE permet à n'importe quel mobile ou ordinateur disposant d'une connexion WiFi de se connecter et de contrôler l'appareil BLE.
  • BLE a une portée limitée. Le pont Wifi2BLE permet d'accéder au dispositif BLE depuis n'importe où dans la maison (là où il y a une connexion WiFi) et depuis l'extérieur via Internet.
  • La création d'applications BLE nécessite que vous appreniez Android ou iOS. Le pont Wifi2BLE fournit une connexion telnet universelle via n'importe quel programme de terminal. De plus, vous pouvez facilement ajouter une page Web au module WiFi pour créer votre propre interface personnalisée.
  • BLE V5 promet un réseau maillé pour connecter tous vos appareils BLE domestiques, une fois que le logiciel rattrapera la dernière spécification Bluetooth. Le pont Wifi2BLE utilise un appareil BLE V5 et fournira donc un accès Internet à ce réseau domestique à son arrivée.

Mon utilisation immédiate pour ce projet est d'ajouter le contrôle de la lumière BLE du salon au réseau WiFi pour lui permettre d'être contrôlé de n'importe où dans la maison. Bien que ce tutoriel utilise pfodApp comme exemple de contrôle des cartes BLE via WiFi, vous n'avez pas besoin d'acheter pfodApp pour terminer ce projet.

Étape 1: Liste des pièces

Coût ~ 60 $ US au 30 novembre 2017, hors frais de port + un petit boîtier en plastique

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

Adafruit HUZZAH ESP8266 Breakout - ~ 10 $ US

Câble ruban avec extrémités femelles séparées - Câble de bus pirate ~ 5 $ US https://www.sparkfun.com/products/9556 OU Câble de dérivation arc-en-ciel à prise IDC 10 broches ~ 4 $ US https://www.sparkfun.com/products/ 9556 OU similaire

En-têtes mâles Break Away - Angle droit - ~ 2 $ US

Câble série USB vers TTL 3V3 - ~ 10 $ US https://www.sparkfun.com/products/12977 (de préférence car les broches sont étiquetées) OU https://www.sparkfun.com/products/12977 (les broches ne sont PAS étiqueté)

Câble USB A vers Micro B - ~ 4 $ US https://www.sparkfun.com/products/12977 (3 pieds de long) OU ~ 3 $ US https://www.sparkfun.com/products/12977 (6 pouces de long) OU ~ 2 $ US https://www.sparkfun.com/products/12977 (6 pouces de long) OU ~ 5 $ US https://www.sparkfun.com/products/12977 (6 pieds de long) OU similaire

2 résistances de 100 ohms – ~1 $US

Alimentation USB (500 mA ou plus) - ~ 6 $ US https://www.sparkfun.com/products/12890 OU ~ 7 $ US https://www.adafruit.com/product/1994 OU similaire

Arduino IDE V1.8.5 et un ordinateur pour l'exécuter.

Pour une boîte en plastique, j'en ai utilisé une de Jaycar UB5 (bleu) 83 mm x 54 mm x 31 mm ~ 4 $A

Étape 2: Circuit Wifi2BLE

Circuit Wifi2BLE
Circuit Wifi2BLE

Le circuit Wifi2BLE est illustré ci-dessus. Une version pdf est ici. Comme vous pouvez le voir, le circuit est très simple. Seulement 4 fils et deux résistances de protection de 100 ohms. Les résistances de protection sont au cas où vous auriez mal connecté les lignes TX/RX après avoir programmé le HUZZAH ESP8266 ou le Feather nRF52.

REMARQUE: Le marquage de la carte Feather nRF52 pour les broches TX et RX est incorrect. La broche TX est en fait celle à côté de la broche DFU et la broche RX est celle à côté de la broche MISO

Assurez-vous de connecter les lignes TX/RX comme indiqué ci-dessus. Heureusement, les résistances de protection ont fait leur travail et les cartes n'ont pas été endommagées pendant que je cherchais pourquoi les cartes ne se prenaient pas les unes aux autres.

Étape 3: Construction Wifi2BLE

Wifi2BLE Construction
Wifi2BLE Construction
Wifi2BLE Construction
Wifi2BLE Construction
Wifi2BLE Construction
Wifi2BLE Construction

Les broches d'en-tête à angle droit ont été soudées sur le HUZZAH ESP8266 pour lui permettre d'être débranché pour la programmation. Quatre fils du câble plat sont utilisés pour connecter les deux cartes. Conservez les connecteurs à broches femelles et coupez l'autre extrémité du câble plat. Mon câble plat avait les mêmes couleurs que le câble de programmation Sparkfun USB vers TTL, j'ai donc choisi le fil qui lui correspond. Noir pour GND, Rouge pour 5V+, Orange pour TX (se connecte à ESP8266 RX) et Marron pour RX (se connecte à ESP8266 TX)

J'ai câblé les résistances de protections au dos de la carte Feather nRF52. (Les constructeurs attentifs qui connaissent leurs codes de résistance verront que j'ai utilisé deux résistances de 68 ohms que j'ai sous la main au lieu de 100 ohms) et que je les ai ensuite isolées avec un film rétractable.

Le câble rouge est soudé à la broche USB Feather nRF52 pour récupérer l'USB 5V pour alimenter le module HUZZAH ESP8266 et le câble noir est soudé à la broche Feather nRF52 GND.

C'est tout sauf pour programmer les modules, comme décrit ci-dessous, le mettre dans une boîte en plastique et brancher une alimentation USB sur le Feather nRF52.

Étape 4: Programmation Wifi2BLE

Programmation Wifi2BLE
Programmation Wifi2BLE
Programmation Wifi2BLE
Programmation Wifi2BLE
Programmation Wifi2BLE
Programmation Wifi2BLE

Programmation du HUZZAH ESP8266

Pour programmer le bouclier, suivez les instructions données sur https://github.com/esp8266/Arduino sous Installation avec le gestionnaire de cartes. Lorsque vous ouvrez le gestionnaire de cartes à partir du menu Outils → Carte, sélectionnez Type de contribution et installez la plate-forme esp8266. Ce projet a été compilé à l'aide de l'ESP8266 version 2.3.0. D'autres versions auront leur propre ensemble de bogues et peuvent ne pas fonctionner avec ce code.

REMARQUE: N'utilisez PAS l'installation de la carte Adafruit car l'esquisse utilisée ici ne sera pas compilée sous ce code.

Fermez et rouvrez l'IDE Arduino et vous pouvez maintenant sélectionner "Adafruit HUZZAH ESP8266" dans le menu Outils → Carte.

Vous devez également installer la dernière version de la bibliothèque pfodESP8266WiFiBufferedClient. Cette bibliothèque fonctionne avec le plug-in IDE ESP8266.com V2.3. (Si vous avez déjà installé la bibliothèque pfodESP2866WiFi, supprimez complètement ce répertoire de bibliothèque.)

  • a) Téléchargez ce fichier pfodESP8266WiFiBufferedClient.zip sur votre ordinateur, déplacez-le sur votre bureau ou dans un autre dossier que vous pouvez facilement trouver
  • b) Ensuite, utilisez l'option de menu IDE Arduino 1.8.5 Sketch → Import Library → Add Library pour l'installer. (Si Arduino ne vous permet pas de l'installer car la bibliothèque existe déjà, recherchez et supprimez l'ancien dossier pfodESP8266BufferedClient, puis importez celui-ci)
  • c) Arrêtez et redémarrez l'IDE Arduino et sous Fichier-> Exemples, vous devriez maintenant voir pfodESP8266BufferedClient.

Définition du ssid et du mot de passe du réseau et de l'IP et du port

Après avoir installé la bibliothèque pfodESP8266BufferedClient, ouvrez l'IDE Arduino et copiez ce croquis, Wifi_Bridge.ino, dans l'IDE. Avant de programmer le module, vous devez définir le ssid et le mot de passe de votre réseau et choisir une IP inutilisée.

Modifiez ces trois lignes vers le haut de Wifi_Bridge.ino

char ssid = "**** ***"; mot de passe char = "**** *****"; char staticIP = "10.1.1.180";

J'utilise l'application Fing (Android ou iOS) pour scanner mon réseau local et identifier les IP déjà utilisées. Il est généralement prudent de choisir une adresse IP inutilisée comprise entre 0,180 et 0,254

Pour commencer, vous pouvez laisser le portNo comme 23, le port standard pour une connexion telnet.

Une fois ces modifications effectuées, vous pouvez programmer l'ESP8266.

Programmation du HUZZAH ESP8266

Pour programmer le HUZZAH ESP8266, connectez le câble USB vers série comme indiqué sur la photo. Vérifiez la photo et votre câblage. Voir aussi ESP8266 Programming Tips (espcomm a échoué)

J'utilise le câble série Sparkfun USB vers TTL 3V3 car les fils TX et RX sont marqués. Assurez-vous que le fil TX est branché sur la broche RX et que le fil RX est branché sur la broche TX comme indiqué ci-dessus. Si vous utilisez le câble Adafruit, les bornes ne sont pas marquées mais sont codées par couleur, le rouge est l'alimentation, le noir est la masse, le vert est TX et le blanc est RX.

Branchez le câble USB vers série sur votre ordinateur et sélectionnez le port COM dans le menu Outils → Port. Laissez la fréquence du processeur, la taille du flash et la vitesse de téléchargement à leurs paramètres par défaut.

Mettez ensuite le module Adafruit HUZZAH ESP2866 en mode programmation en maintenant enfoncé le bouton poussoir GPIO0 et en cliquant sur le bouton poussoir Reset puis en relâchant le bouton poussoir GPIO0. La led GPIO0 doit rester faiblement allumée. Ensuite, sélectionnez Fichier → Télécharger ou utilisez le bouton Flèche droite pour compiler et télécharger le programme. Si vous obtenez un message d'erreur lors du téléchargement, vérifiez que les connexions de votre câble sont branchées sur les bonnes broches et réessayez.

Une fois la programmation terminée, la Led Rouge sur le module doit s'allumer. Cela indique qu'il s'est connecté avec succès à votre réseau local et a démarré le serveur pour accepter une connexion.

Test du HUZZAH ESP2866

Pour tester le HUZZAH ESP2866, laissez le câble de programmation connecté et ouvrez Arduino IDE Tools → Serial Monitor et réglez 9600 bauds (coin inférieur droit). Ensuite, ouvrez un programme de terminal sur votre ordinateur, j'utilise TeraTerm pour Windows et CoolTerm pour Mac, et je me connecte à l'adresse IP et au portNo que vous avez définis dans le croquis Wifi_Bridge.ino.

Lorsque vous connectez la LED rouge sur le module doit commencer à clignoter, indiquant qu'il y a une connexion. Vous devriez maintenant pouvoir taper dans la fenêtre du terminal de votre ordinateur et les caractères devraient apparaître dans la fenêtre du moniteur de l'IDE Arduino et vice versa.

Délai d'expiration de la connexion Wi-Fi

Le code Wifi_Bridge.ino a un temps de connexion.

uint32_t connectionTimeout = 60000; // Délai de connexion de 60 secondes

S'il n'y a pas de données WiFi reçues par le module HUZZAH ESP8266 pendant 60 secondes, le module ferme la connexion et attend une nouvelle. Cela garantit que le module récupère des connexions « à moitié fermées » qui se produisent lorsque le client disparaît en raison d'une mauvaise connexion WiFi, d'une panne de courant au niveau du routeur ou d'un arrêt forcé du client. Voir Détection des connexions de socket TCP/IP semi-ouvertes (abandonnées) pour plus de détails.

Ce délai de connexion est fixé à 60 s. mais peut diminuer ou augmenter selon les besoins. Le mettre à 0 signifie ne jamais expirer, ce qui n'est pas recommandé.

Programmation du Feather nRF52

Pour programmer le Feather nRF52, suivez les instructions de téléchargement et d'installation de la prise en charge de la carte Arduino pour le Feather nRF52. Vérifiez que vous pouvez vous connecter et programmer la carte via le câble USB.

REMARQUE: Débranchez le module HUZZAH ESP8266 du Feather nRF52 avant d'essayer de programmer le Feather

La connexion du Feather nRF52 à un appareil BLE se fait en deux étapes. Identifiez d'abord l'adresse MAC (et le type) sur l'appareil et vérifiez qu'elle prend en charge le service Nordic UART avec TX Notify, puis transférez cette adresse et ce type au croquis de pont.

Étape 5: Connexion à un appareil BLE

Connexion à un appareil BLE
Connexion à un appareil BLE
Connexion à un appareil BLE
Connexion à un appareil BLE
Connexion à un appareil BLE
Connexion à un appareil BLE

Une fois le HUZZAH ESP8266 programmé, vous devez coder l'adresse BLE et le type de l'appareil auquel vous souhaitez vous connecter dans le sketch Feather nRF52. Il s'agit d'un processus en deux étapes. I) Exécutez le programme de numérisation pour trouver les appareils BLE à proximité qui implémentent le service Nordic UART (TX Notify), puis copiez la sortie de ce scanner dans le croquis du pont Feather pour qu'il se connecte à cet appareil.

Recherche de périphériques BLE

Pour identifier les périphériques BLE compatibles, chargez le programme central_bleuart_scanner.ino dans votre Feather nRF52. Ce programme recherche continuellement de nouveaux appareils, puis vérifie s'ils prennent en charge le service Nordic UART avec TX Notify.

Service UART nordique

Le service Nordic UART se compose de trois parties, l'UUID de service et les caractéristiques RX et TX. Voici un exemple de code généré par pfodDesignerV3 pour le RedBear NanoV2

BLEService uartService = BLEService("6E400001B5A3F393E0A9E50E24DCCA9E");

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

pfodDesignerV3 peut générer des exemples de code pour un certain nombre de modules BLE. Cependant, comme il n'y a pas de spécification BLE pour une connexion UART « standard », tous les modules n'utilisent pas le service Nordic UART. Par exemple, les modules HM-10 (Shield Itead BLE), RFduno et Romeo BLE utilisent leurs propres services uart uniques et ne se connectent donc pas au Feather nRF52.

Les cartes suivantes se connecteront:- Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 et V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend et Flora Boards, Adafruit Bluefruit LE SPI (c'est-à-dire Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ou Bluefruit LE SPI Friend) Ainsi que des cartes pouvant être codées avec des services personnalisés ou des cartes pouvant utiliser la bibliothèque BLEPeripheral.

L'exemple de carte utilisé ici est l'Arduino/Genuino 101 avec le code généré par pfodDesignerV3. Le pfodDesignerV3 gratuit vous permet de créer des menus pfodApp, puis de générer le code Arduino nécessaire pour afficher ce menu exact sur votre mobile Android à l'aide de pfodApp (payant). pfodApp se connectera également via Wifi, ainsi que Bluetooth Classic, BLE et SMS, et pourra ainsi se connecter via ce pont Wifi2BLE. Cependant, même si vous ne souhaitez pas utiliser pfodApp comme application de contrôle, vous pouvez toujours utiliser pfodDesignerV3 pour générer un code de service Nordic UART pour votre carte BLE.

Ce lien de didacticiel décrit la configuration de l'Arduino/Genuino 101 BLE et la création d'un simple contrôle marche/arrêt des LED avec pfodDesignerV3. L'esquisse produite par le pfodDesignerV3 est Arduino101_led_control.ino

La programmation de l'Arduino/Genuino 101 avec l'Arduino101_led_control.ino vous permettra de vous connecter avec pfodApp et d'afficher l'écran suivant sur votre mobile Android.

Cependant, ce n'est qu'un exemple et vous n'avez pas besoin d'acheter pfodApp pour terminer ce projet. La partie importante est que l'application gratuite pfodDesignerV3 a généré du code pour l'Arduino/Genuino 101 qui implémente un service UART nordique. Alors, balayons-le.

Cependant, ce n'est qu'un exemple et vous n'avez pas besoin d'acheter pfodApp pour terminer ce projet. La partie importante est que l'application gratuite pfodDesignerV3 a généré du code pour l'Arduino/Genuino 101 qui implémente un service UART nordique. Alors, balayons-le.

Recherche d'un service UART nordique

Avec le module HUZZAH ESP8266 déconnecté du Feather nRF52, programmez le Feather nRF52 avec le central_bleuart_scanner.ino, puis ouvrez Arduino IDE Tools → Serial Monitor et réglez le débit en bauds sur 9600. La mise sous tension de l'Arduino/Genuino 101 donne la sortie indiquée dans la première capture d'écran ci-dessus.

Comme vous pouvez le voir, le scanner a trouvé deux périphériques BLE, un Arduino/Genuino 101 avec un service Nordic UART, MAIS la caractéristique TX ne prenait pas en charge Notify. Le scanner a également trouvé un module RFduino BLE mais RFduino n'utilise pas le service Nordic UART mais utilise à la place le sien. Le comité Bluetooth n'est pas blâmé pour cela pour ne pas avoir spécifié de service UART "standard", laissant à la place chaque fabricant créer le sien.

Comme indiqué ci-dessus, le code 101 a été généré par pfodDesignerV3 principalement pour être utilisé avec pfodApp. pfodApp n'est pas aussi sensible à TX Notify que le code uart Feather nRF52. pfodApp fonctionne avec le 101 comme programmé mais le Feather nRF52 insiste sur TX Notify donc une petite modification du code est nécessaire pour satisfaire le Feather.

Ouvrez le Arduino101_led_control.ino dans l'IDE Arduino et près du haut, vous trouverez ces deux lignes. La deuxième ligne est juste une description de la caractéristique et n'affecte pas l'opération.

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

Changez-les en

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

Reprogrammez ensuite le 101 avec cette version modifiée, Arduino101_Notify_led_control.ino. Ensuite, lorsque vous réexécutez le scanner Feather nRF52 (central_bleuart_scanner.ino), le moniteur série affiche la deuxième capture d'écran ci-dessus.

Aucune erreur pour le Genuino 101 maintenant et le scanner imprime le code nécessaire pour le croquis du pont Feather nRF52 afin qu'il se connecte au 101. Le scanner vérifiera chaque appareil qu'il trouvera à portée. La LED rouge clignote une fois pour chaque appareil trouvé avec Nordic UART Service (TX Notify).

Étape 6: connexion à un périphérique BLE

Indicateurs LED

Le Feather nRF52 possède deux leds, Bleu et Rouge. Lorsque la carte est connectée à un appareil BLE, la Led Bleue est fixe, sinon elle clignote. Le scanner ne reste pas connecté à l'appareil, donc sa LED bleue clignote généralement. Le voyant rouge clignote une fois pour chaque appareil Nordic UART Service (TX Notify). Lors de l'exécution en tant que scanner, la LED rouge compte le nombre de périphériques Nordic UART Service (TX Notify) trouvés. Lors de l'exécution en tant que pont, la Led rouge clignote une fois lorsqu'elle est connectée à l'adresse de code BLE.

Connexion à un périphérique BLE

Maintenant que l'esquisse du scanner a fourni les détails du périphérique BLE auquel vous souhaitez vous connecter, vous pouvez copier la sortie dans l'esquisse central_bleuart_bridge.ino. Près du haut de ce croquis, vous trouverez le code suivant.

// Ces trois prochaines lignes de code proviennent de la sortie 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;

Remplacez les trois lignes de code par la sortie du scanner pour le périphérique BLE vers lequel vous souhaitez établir un pont. Programmez ensuite le Feather nRF52 avec le croquis central_bleuart_bridge.ino édité.

Test du sketch central_bleuart_bridge

Avant de rebrancher le HUZZAH ESP8266 dans le Feather nRF52, testez la connexion à votre appareil BLE. En laissant le Feather nRF52 connecté à votre IDE Arduino, ouvrez Outils → Moniteur série à 9600 bauds, puis vérifiez que votre périphérique BLE cible est sous tension.

Lorsque la connexion est établie avec votre appareil BLE, comme décrit ci-dessus, le voyant bleu s'allumera en permanence et le voyant rouge clignotera une fois toutes les 10 secondes environ. Cela vous permet de ne pas établir et maintenir la connexion.

Ensuite, dans le moniteur série, vous pouvez entrer les commandes que vous prévoyez d'envoyer à votre appareil BLE et le regarder fonctionner et surveiller toute réponse qu'il renvoie. Si tout va bien, vous pouvez éteindre et brancher le module HUZZAH ESP8266.

Étape 7: Connexion au périphérique BLE via WiFi - Tout assembler

Une fois que vous avez programmé et testé le module HUZZAH ESP8266 avec son code bridge (Wifi_Bridge.ino) configuré pour votre ssid et mot de passe et IP de réseau ET programmé et testé le Feather nRF52 avec son code bridge (central_bleuart_bridge.ino) configuré avec l'adresse de l'appareil BLE et tapez, puis vous pouvez les brancher ensemble et brancher une alimentation USB au module Feather pour les alimenter tous les deux.

Le voyant rouge du module HUZZAH doit s'allumer en continu lorsqu'il se connecte à votre routeur de réseau local et le voyant bleu plume doit s'allumer en continu lorsqu'il se connecte à votre appareil BLE et le voyant rouge plume doit clignoter une fois toutes les 10 secondes environ pour indiquer juste allumé L'appareil BLE est connecté.

Ouvrez votre programme telnet et connectez-vous à l'adresse IP et au port de HUZZAH. Le voyant rouge HUZZAH doit clignoter lentement pour indiquer que votre programme s'est connecté et vous devez envoyer des commandes à votre appareil BLE via WiFi et regarder l'appareil BLE fonctionner et voir toute réponse dans votre fenêtre telnet. N'oubliez pas que si votre appareil BLE ne renvoie aucune donnée pendant 60 secondes, le code HUZZAH expirera la connexion et se déconnectera et le voyant rouge HUZZAH redeviendra fixe.

Étape 8: Aide - Cela ne fonctionne pas

Effectuez d'abord les étapes de test détaillées ci-dessus, Test du HUZZAH ESP2866 et Test de l'esquisse central_bleuart_bridge.

Problèmes de numérisation

Si le scanner ne parvient pas à trouver votre appareil BLE, il est soit trop éloigné, soit sans publicité, soit déjà connecté à quelque chose. Essayez de rapprocher le scanner, de redémarrer l'appareil et d'éteindre tous les autres appareils mobiles à proximité pouvant être connectés à l'appareil BLE.

Si vous obtenez une sortie de scanner comme celle-ci.

Connecté à 98:4F:EE:0C:FC:8F Vous recherchez le service Nordic UART … Aucun trouvé OU Non détectable !!!!! Impossible d'identifier un service UART nordique !!!!!!!! Si vous vous attendiez à un service UART nordique, rapprochez le scanner de l'appareil BLE !!!!

Il se peut que vous soyez suffisamment proche du périphérique BLE pour le détecter, mais pas suffisamment pour effectuer avec succès une découverte de service afin de trouver le service Nordic UART. Essayez de vous rapprocher de l'appareil BLE.

En dernier recours, vous pouvez utiliser l'application gratuite Nordic nRF Connect pour Android ou iOS. Cette application a une meilleure portée et sensibilité. Il vous dira si l'appareil BLE dispose d'un service Nordic UART. Cependant, vous devrez toujours faire fonctionner le scanner, se connecter et identifier le service Nordic UART avant d'essayer d'utiliser le pont Wifi2BLE car il utilise un code similaire au scanner.

Si vous voulez creuser plus profondément, vous pouvez utiliser le module Adafruit Bluefruit LE Sniffer pour voir ce qu'il y a dans l'air.

Problèmes de connexion BLE

Si vous avez réussi à scanner le périphérique BLE, les causes les plus probables de problèmes de connexion sont I) le périphérique BLE est trop éloigné, II) quelque chose d'autre est déjà connecté au périphérique BLE

Problèmes de connexion Wi-Fi

Si la led rouge HUZZAH ESP8266 ne s'allume pas fixe c'est qu'elle n'a pas de connexion à votre réseau via votre routeur. Vérifiez le ssid et le mot de passe que vous avez dans Wifi_Bridge.ino et utilisez l'application Fing Android ou iOS pour vérifier que l'adresse IP que vous avez attribuée n'est pas déjà utilisée. Essayez d'éteindre tous vos ordinateurs et appareils et mettez le routeur hors tension (laissez-le éteint pendant 20 secondes), puis scannez à nouveau avec Fing. Enfin, si la connexion continue de se déconnecter, n'oubliez pas le paramètre de délai d'attente de connexion dans le code Wifi_Bridge.ino.

Étape 9: Prolongations et conclusion

Le projet présenté ici est la version la plus simple. Il existe un certain nombre d'extensions possibles telles que: -

  • Le Feather nRF52 est capable de se connecter à jusqu'à 4 appareils BLE à la fois afin que vous puissiez modifier le code pour ajouter plus d'adresses valides et contrôler jusqu'à 4 appareils à partir d'une seule connexion WiFi. Voir l'exemple de code fourni avec l'installation de la carte Feather nRF52.
  • Vous pouvez percer un trou dans votre routeur pour donner accès au périphérique BLE depuis n'importe où sur Internet. Voir Connecter des appareils DIY IoT à Internet avec pfodApp.
  • Vous pouvez utiliser le code de Cheap/Simple Wifi Shield pour vous permettre de configurer les paramètres du réseau WiFi pour le HUZZAH via une page Web, sans reprogrammation. Vous auriez besoin d'ajouter un bouton poussoir de configuration au circuit.
  • Vous pouvez ajouter un bouton-poussoir de configuration (en utilisant le même bouton que ci-dessus) qui permet au Feather nRF52 de rechercher les appareils BLE avec un Nordic UART (TX Notify), puis d'enregistrer les détails de connexion pour celui avec le signal le plus fort. Pour enregistrer le résultat, vous devrez utiliser la bibliothèque nffs fournie avec l'installation de la carte Adafruit nRF52.
  • Vous pouvez ajouter une page Web au code HUZZAH ESP8266 pour fournir une interface personnalisée pour votre appareil BLE. Vous pouvez également utiliser pfodDesignerV3 et pfodApp pour ajouter une interface personnalisée sans aucune modification de ce projet.

Conclusion

Ce projet simple fournit un accès WiFi à n'importe quel module Bluetooth Low Energy (BLE) qui implémente l'UART de Nordic avec TX Notify. Le pont Wifi2BLE est complètement transparent. Il transmet simplement les données WiFi à l'appareil BLE et renvoie les données de l'appareil BLE à la connexion WiFi.

La construction simple et les instructions de test détaillées en font un projet approprié pour les débutants qui souhaitent accéder à leur appareil BLE depuis leur ordinateur ou en dehors de la plage normale du BLE.

Ce projet deviendra plus important une fois que le logiciel de l'appareil BLE rattrapera la nouvelle spécification Bluetooth V5 Mesh. Ensuite, Wifi2BLE fournira un accès Internet à toute votre domotique.

Conseillé: