Πίνακας περιεχομένων:
- Βήμα 1: Λίστα μερών
- Βήμα 2: Κύκλωμα Wifi2BLE
- Βήμα 3: Κατασκευή Wifi2BLE
- Βήμα 4: Προγραμματισμός Wifi2BLE
- Βήμα 5: Σύνδεση σε συσκευή BLE
- Βήμα 6: Σύνδεση σε περιφερειακό BLE
- Βήμα 7: Σύνδεση στη συσκευή BLE μέσω WiFi - Το βάζουμε όλα μαζί
- Βήμα 8: Βοήθεια - Δεν λειτουργεί
- Βήμα 9: Επεκτάσεις και συμπέρασμα
Βίντεο: Γέφυρα απλού WiFi to BLE (Bluetooth Low Energy): 9 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:38
Ενημέρωση 4 Δεκεμβρίου 2017 - αναθεωρημένα σκίτσα και συμβουλές εντοπισμού σφαλμάτων Feather nRF52. Προστέθηκαν εικόνες της γέφυρας τοποθετημένης στο κουτί
Αυτό το απλό έργο παρέχει πρόσβαση WiFi σε οποιαδήποτε μονάδα Bluetooth Low Energy (BLE) που υλοποιεί το UART της Nordic με TX Notify. Η γέφυρα Wifi2BLE είναι εντελώς διαφανής. Απλώς μεταφέρει τα δεδομένα WiFi στη συσκευή BLE και μεταφέρει τα δεδομένα της συσκευής BLE πίσω στη σύνδεση WiFi.
Το δωρεάν pfodDesignerV3 δημιουργεί κώδικα για την υλοποίηση μιας Nordic UART Service σε πολλές μονάδες BLE, όπως Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 και V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend και Adafruit Bluefruit LE UART Friend, Adafruit Bluefruit LE SPI (δηλαδή Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ή Bluefruit LE SPI Friend) και οποιαδήποτε άλλη πλακέτα που σας επιτρέπουν να προγραμματίσετε τη δική σας υπηρεσία.
Αυτή η γέφυρα Wifi2BLE είναι κατάλληλη για άπειρους κατασκευαστές που μπορούν να κολλήσουν. Χρησιμοποιεί μόνο δύο σανίδες, ένα καλώδιο κορδέλας και δύο αντιστάσεις
Εκτός από λεπτομερείς δοκιμές για κάθε πίνακα, αυτό το εκπαιδευτικό περιλαμβάνει ένα βήμα βοήθειας - δεν λειτουργεί με περισσότερες συμβουλές εύρεσης βλαβών.
Αυτές οι οδηγίες είναι επίσης διαθέσιμες στο διαδίκτυο
Γιατί αυτό το Έργο;
Αυτό το έργο επιλύει μια σειρά προβλημάτων που έχει το BLE (Bluetooth Low Energy).
- Μόνο πρόσφατα κινητά και υπολογιστές υποστηρίζουν BLE. Η γέφυρα Wifi2BLE επιτρέπει σε οποιοδήποτε κινητό ή υπολογιστή με σύνδεση WiFi να συνδεθεί και να ελέγξει τη συσκευή BLE.
- Το BLE έχει περιορισμένο εύρος. Η γέφυρα Wifi2BLE σας επιτρέπει να έχετε πρόσβαση στη συσκευή BLE από οπουδήποτε στο σπίτι (όπου υπάρχει σύνδεση WiFi) και από έξω μέσω του Διαδικτύου.
- Η δημιουργία εφαρμογών BLE απαιτεί να μάθετε Android ή iOS. Η γέφυρα Wifi2BLE παρέχει μια καθολική σύνδεση telnet μέσω οποιουδήποτε τερματικού προγράμματος. Επιπλέον, μπορείτε εύκολα να προσθέσετε μια ιστοσελίδα στη μονάδα WiFi για να δημιουργήσετε τη δική σας προσαρμοσμένη διεπαφή.
- Το BLE V5 υπόσχεται δικτύωση πλέγματος για τη σύνδεση όλων των οικιακών συσκευών BLE, μόλις το λογισμικό πληροί τις τελευταίες προδιαγραφές Bluetooth. Η γέφυρα Wifi2BLE χρησιμοποιεί μια συσκευή BLE V5 και έτσι θα παρέχει πρόσβαση στο Διαδίκτυο σε αυτό το οικιακό δίκτυο όταν φτάσει.
Η άμεση χρήση μου για αυτό το έργο είναι να προσθέσω τον έλεγχο φωτισμού BLE του σαλονιού στο δίκτυο WiFi για να μπορεί να ελέγχεται από οπουδήποτε στο σπίτι. Αν και αυτό το σεμινάριο χρησιμοποιεί το pfodApp ως παράδειγμα ελέγχου των πλακέτων BLE μέσω WiFi, δεν χρειάζεται να αγοράσετε pfodApp για να ολοκληρώσετε αυτό το έργο.
Βήμα 1: Λίστα μερών
Κόστος 60 ~ US $ στις 30 Νοεμβρίου 2017, εξαιρούνται τα μεταφορικά + ένα μικρό πλαστικό περίβλημα
Adafruit Feather nRF52 Bluefruit LE - nRF52832 - ~ 25 US $
Adafruit HUZZAH ESP8266 Breakout - 10 ~ US $
Καλώδιο κορδέλας με ξεχωριστά θηλυκά άκρα-Λεωφορείο Pirate Cable ~ 5 $ US https://www.sparkfun.com/products/9556 10 10-pin IDC Socket Rainbow Breakout Cable ~ 4 $ US 9556 similar παρόμοιο
Break Away Male Headers - Right Angle - ~ US $ 2
Σειριακό καλώδιο USB to TTL 3V3 - ~ 10 $ US με την ένδειξη)
Καλώδιο USB A έως Micro B - 4 ~ US $ https://www.sparkfun.com/products/12977 (μήκος 3 ποδιών) OR 3 ~ US $ https://www.sparkfun.com/products/12977 (μήκος 6 ίντσες) OR ~ 2 $ US https://www.sparkfun.com/products/12977 (μήκος 6 ίντσες) OR 5 ~ US $ https://www.sparkfun.com/products/12977 (6 πόδια μήκος) similar παρόμοια
2 αντιστάσεις 100 ohm - 1 ~ US $
Τροφοδοτικό USB (500mA ή περισσότερο) - ~ 6 $ US https://www.sparkfun.com/products/12890 OR ~ 7 US $ https://www.adafruit.com/product/1994 similar παρόμοια
Arduino IDE V1.8.5 και έναν υπολογιστή για εκτέλεση.
Για πλαστικό κουτί χρησιμοποίησα ένα από το Jaycar UB5 (μπλε) 83mm x 54mm x 31mm ~ A $ 4
Βήμα 2: Κύκλωμα Wifi2BLE
Το κύκλωμα Wifi2BLE φαίνεται παραπάνω. Μια έκδοση pdf είναι εδώ. Όπως μπορείτε να δείτε το κύκλωμα είναι πολύ απλό. Μόνο 4 καλώδια και δύο αντιστάσεις προστασίας 100 ohm. Οι αντιστάσεις προστασίας είναι σε περίπτωση που χάσετε τη σύνδεση των γραμμών TX / RX μετά τον προγραμματισμό του HUZZAH ESP8266 ή του Feather nRF52.
ΣΗΜΕΙΩΣΗ: Η σήμανση του πίνακα FeRR nRF52 για τις ακίδες TX και RX δεν είναι σωστή. Ο πείρος TX είναι στην πραγματικότητα αυτός που βρίσκεται δίπλα στον πείρο DFU και ο πείρος RX είναι αυτός δίπλα στον πείρο MISO
Βεβαιωθείτε ότι έχετε συνδέσει τις γραμμές TX/RX όπως φαίνεται παραπάνω. Ευτυχώς οι αντιστάσεις προστασίας έκαναν τη δουλειά τους και οι σανίδες δεν υπέστησαν ζημιά, ενώ κατάλαβα γιατί οι σανίδες δεν πήγαιναν ο ένας στον άλλο.
Βήμα 3: Κατασκευή Wifi2BLE
Οι καρφίτσες κεφαλίδας με ορθή γωνία συγκολλήθηκαν στο HUZZAH ESP8266 για να το αποσυνδέσετε για προγραμματισμό. Τέσσερα σύρματα του καλωδίου κορδέλας χρησιμοποιούνται για τη σύνδεση των δύο σανίδων. Κρατήστε τους θηλυκούς συνδετήρες ακίδων και κόψτε το άλλο άκρο του καλωδίου κορδέλας. Το καλώδιο κορδέλας μου είχε τα ίδια χρώματα με το καλώδιο προγραμματισμού Sparkfun USB to TTL, οπότε επέλεξα το σύρμα για να το ταιριάξω. Μαύρο για GND, Κόκκινο για 5V+, Πορτοκαλί για TX (συνδέεται με ESP8266 RX) και Καφέ για RX (συνδέεται με ESP8266 TX)
Συνδέω τις αντιστάσεις προστασίας στο πίσω μέρος της πλακέτας FeR nRF52. (Οι παρατηρητές κατασκευαστές που γνωρίζουν τους κωδικούς αντίστασης θα δουν ότι χρησιμοποίησα δύο αντιστάσεις 68 ohm που έχω στο χέρι αντί 100 ohm) και στη συνέχεια τις μόνωσα με κάποιο συρρικνωμένο περιτύλιγμα.
Το κόκκινο καλώδιο είναι συγκολλημένο στην ακίδα USB Feather nRF52 για να παραλάβετε το USB 5V για να τροφοδοτήσετε τη μονάδα HUZZAH ESP8266 και το μαύρο καλώδιο συγκολλάται στην ακίδα φτερού nRF52 GND.
Ότι υπάρχει μόνο για τον προγραμματισμό των μονάδων, όπως περιγράφεται παρακάτω, τοποθετώντας το σε ένα πλαστικό κουτί και συνδέοντας ένα τροφοδοτικό USB στο Feather nRF52.
Βήμα 4: Προγραμματισμός Wifi2BLE
Προγραμματισμός του HUZZAH ESP8266
Για να προγραμματίσετε την ασπίδα ακολουθήστε τις οδηγίες που δίνονται στη διεύθυνση https://github.com/esp8266/Arduino στην ενότητα Εγκατάσταση με διαχειριστές πινάκων. Όταν ανοίγετε το Boards Manager από το μενού Tools → Board και επιλέξτε Type Contributed και εγκαταστήστε την πλατφόρμα esp8266. Αυτό το έργο καταρτίστηκε χρησιμοποιώντας την έκδοση 2.3.0 ESP8266. Άλλες εκδόσεις θα έχουν το δικό τους σύνολο σφαλμάτων και ενδέχεται να μην λειτουργούν με αυτόν τον κώδικα.
ΣΗΜΕΙΩΣΗ: ΜΗΝ χρησιμοποιείτε την εγκατάσταση του Adafruit Board καθώς το σκίτσο που χρησιμοποιείται εδώ δεν θα μεταγλωττιστεί με αυτόν τον κωδικό.
Κλείστε και ανοίξτε ξανά το Arduino IDE και τώρα μπορείτε να επιλέξετε "Adafruit HUZZAH ESP8266" από το μενού Tools → Board.
Πρέπει επίσης να εγκαταστήσετε την πιο πρόσφατη έκδοση της βιβλιοθήκης pfodESP8266WiFiBufferedClient. Αυτή η βιβλιοθήκη λειτουργεί με το πρόσθετο ESP8266.com IDE V2.3. (Εάν έχετε εγκαταστήσει προηγουμένως τη βιβλιοθήκη pfodESP2866WiFi, διαγράψτε εντελώς αυτόν τον κατάλογο βιβλιοθήκης.)
- α) Κατεβάστε αυτό το αρχείο pfodESP8266WiFiBufferedClient.zip στον υπολογιστή σας, μετακινήστε το στην επιφάνεια εργασίας σας ή σε κάποιον άλλο φάκελο που μπορείτε εύκολα να βρείτε
- β) Στη συνέχεια, χρησιμοποιήστε την επιλογή μενού Arduino 1.8.5 IDE Sketch → Import Library → Add Library για να την εγκαταστήσετε. (Εάν το Arduino δεν σας επιτρέπει να το εγκαταστήσετε επειδή υπάρχει ήδη η βιβλιοθήκη, βρείτε και διαγράψτε τον παλαιότερο φάκελο pfodESP8266BufferedClient και, στη συνέχεια, εισαγάγετε αυτόν)
- γ) Διακόψτε και επανεκκινήστε το Arduino IDE και στην ενότητα Αρχείο-> Παραδείγματα θα πρέπει τώρα να δείτε το pfodESP8266BufferedClient.
Ρύθμιση ssid και κωδικού πρόσβασης δικτύου και IP και θύρας
Αφού εγκαταστήσετε τη βιβλιοθήκη pfodESP8266BufferedClient, ανοίξτε το Arduino IDE και αντιγράψτε αυτό το σκίτσο, Wifi_Bridge.ino, στο IDE. Πριν προγραμματίσετε τη μονάδα, πρέπει να ορίσετε το ssid και τον κωδικό πρόσβασης του δικτύου σας και να επιλέξετε μια αχρησιμοποίητη IP.
Επεξεργαστείτε αυτές τις τρεις γραμμές κοντά στην κορυφή του Wifi_Bridge.ino
char ssid = "**** ***"; char password = "**** *****"; char staticIP = "10.1.1.180";
Χρησιμοποιώ την εφαρμογή Fing (Android ή iOS) για να σαρώσω το τοπικό μου δίκτυο και να προσδιορίσω την IP που χρησιμοποιείται ήδη. Είναι συνήθως ασφαλές να επιλέξετε μια αχρησιμοποίητη IP στην περιοχή.180 έως.254
Για να ξεκινήσετε, μπορείτε να αφήσετε τη θύραNo ως 23, την τυπική θύρα για σύνδεση telnet.
Μόλις κάνετε αυτές τις αλλαγές, μπορείτε να προγραμματίσετε το ESP8266.
Προγραμματισμός του HUZZAH ESP8266
Για να προγραμματίσετε το HUZZAH ESP8266, συνδέστε το USB στο σειριακό καλώδιο, όπως φαίνεται στη φωτογραφία. Ελέγξτε τη φωτογραφία και την καλωδίωσή σας. Δείτε επίσης Συμβουλές προγραμματισμού ESP8266 (το espcomm απέτυχε)
Χρησιμοποιώ το σειριακό καλώδιο Sparkfun USB to TTL 3V3 επειδή φέρει σήμανση στους αγωγούς TX και RX. Βεβαιωθείτε ότι το καλώδιο TX είναι συνδεδεμένο στην ακίδα RX και το καλώδιο RX είναι συνδεδεμένο στον πείρο TX όπως φαίνεται παραπάνω. Εάν χρησιμοποιείτε το καλώδιο Adafruit, δεν έχει τους ακροδέκτες με σήμανση αλλά έχει χρώμα, το κόκκινο είναι ισχύς, το μαύρο είναι αλεσμένο, το πράσινο είναι TX και το λευκό είναι RX.
Συνδέστε το καλώδιο USB σε Serial στον υπολογιστή σας και επιλέξτε τη θύρα COM στο μενού Tools → Port. Αφήστε τη συχνότητα CPU, το μέγεθος του φλας και την ταχύτητα αποστολής στις προεπιλεγμένες ρυθμίσεις τους.
Στη συνέχεια, θέστε τη μονάδα Adafruit HUZZAH ESP2866 σε λειτουργία προγραμματισμού κρατώντας πατημένο το κουμπί GPIO0 και κάνοντας κλικ στο κουμπί Reset push και, στη συνέχεια, αφήνοντας το κουμπί GPIO0. Το led GPIO0 θα πρέπει να παραμένει αμυδρά φωτισμένο. Στη συνέχεια, επιλέξτε Αρχείο → Μεταφόρτωση ή χρησιμοποιήστε το κουμπί Δεξί βέλος για να μεταγλωττίσετε και να ανεβάσετε το πρόγραμμα. Εάν λάβετε ένα μήνυμα σφάλματος κατά τη μεταφόρτωση, ελέγξτε ότι οι συνδέσεις καλωδίων σας είναι συνδεδεμένες στις σωστές ακίδες και δοκιμάστε ξανά.
Μόλις ολοκληρωθεί ο προγραμματισμός, θα πρέπει να ανάψει το κόκκινο LED της μονάδας. Αυτό δείχνει ότι έχει συνδεθεί επιτυχώς στο τοπικό σας δίκτυο και έχει ξεκινήσει ο διακομιστής να δέχεται μια σύνδεση.
Δοκιμή του HUZZAH ESP2866
Για να δοκιμάσετε το HUZZAH ESP2866, αφήστε το καλώδιο προγραμματισμού συνδεδεμένο και ανοίξτε το Arduino IDE Tools → Serial Monitor και ορίστε 9600 baud (κάτω δεξιά γωνία). Στη συνέχεια, ανοίξτε ένα τερματικό πρόγραμμα στον υπολογιστή σας, χρησιμοποιώ το TeraTerm για Windows και το CoolTerm για Mac και συνδέομαι με την IP και τη θύραΔεν ορίζετε στο σκίτσο Wifi_Bridge.ino.
Όταν συνδέετε το Red Led στη μονάδα πρέπει να αρχίσει να αναβοσβήνει, υποδεικνύοντας ότι υπάρχει σύνδεση. Θα πρέπει τώρα να μπορείτε να πληκτρολογείτε στο τερματικό παράθυρο των υπολογιστών σας και οι χαρακτήρες να εμφανίζονται στο παράθυρο οθόνης του Arduino IDE και αντίστροφα.
Χρονικό όριο σύνδεσης Wifi
Ο κωδικός Wifi_Bridge.ino έχει χρόνο σύνδεσης.
uint32_t connectionTimeout = 60000; // Χρόνος λήξης σύνδεσης 60 δευτερολέπτων
Εάν δεν υπάρχουν δεδομένα WiFi που λαμβάνονται από τη μονάδα HUZZAH ESP8266 για 60 δευτερόλεπτα, τότε οι μονάδες κλείνουν τη σύνδεση και περιμένουν μια νέα. Αυτό διασφαλίζει ότι η μονάδα ανακάμπτει από "μισοκλειστές" συνδέσεις που συμβαίνουν όταν ο πελάτης εξαφανίζεται λόγω κακής σύνδεσης WiFi, απώλειας ισχύος στο δρομολογητή ή αναγκαστικού τερματισμού λειτουργίας του πελάτη. Για περισσότερες λεπτομέρειες, ανατρέξτε στην ενότητα Ανίχνευση συνδέσεων υποδοχής TCP/IP Half-Open (Dropped).
Αυτό το χρονικό όριο σύνδεσης έχει οριστεί σε 60 δευτερόλεπτα. αλλά μπορεί να μειωθεί ή να αυξηθεί ανάλογα με τις ανάγκες. Η ρύθμισή του στο 0 σημαίνει ότι δεν υπάρχει χρονικό όριο που δεν συνιστάται.
Προγραμματισμός του φτερού nRF52
Για να προγραμματίσετε το Feather nRF52, ακολουθήστε τις οδηγίες για τη λήψη και εγκατάσταση της υποστήριξης Arduino Board για το Feather nRF52. Ελέγξτε ότι μπορείτε να συνδεθείτε και να προγραμματίσετε την πλακέτα μέσω καλωδίου USB.
ΣΗΜΕΙΩΣΗ: Αποσυνδέστε τη μονάδα HUZZAH ESP8266 από το φτερό nRF52 πριν προσπαθήσετε να προγραμματίσετε το φτερό
Η σύνδεση του Feather nRF52 σε μια συσκευή BLE αποτελείται από δύο βήματα. Πρώτα προσδιορίστε τη διεύθυνση MAC (και τον τύπο) στη συσκευή και ελέγξτε την υποστήριξη της υπηρεσίας Nordic UART με TX Notify και, στη συνέχεια, μεταφορά αυτής της διεύθυνσης και του τύπου στο σκίτσο της γέφυρας.
Βήμα 5: Σύνδεση σε συσκευή BLE
Μόλις προγραμματιστεί το HUZZAH ESP8266, πρέπει να κωδικοποιήσετε τη διεύθυνση BLE και τον τύπο της συσκευής στην οποία θέλετε να συνδεθείτε στο σκίτσο Feather nRF52. Αυτή είναι μια διαδικασία δύο βημάτων. I) Εκτελέστε το πρόγραμμα σάρωσης για να βρείτε κοντινές συσκευές BLE που υλοποιούν την υπηρεσία Nordic UART (TX Notify) και, στη συνέχεια, αντιγράψτε την έξοδο του σαρωτή στο σκίτσο της γέφυρας Feather για να συνδεθεί με αυτήν τη συσκευή.
Σάρωση για περιφερειακά BLE
Για να προσδιορίσετε συμβατά περιφερειακά BLE, φορτώστε το πρόγραμμα central_bleuart_scanner.ino στο φτερό σας nRF52. Αυτό το πρόγραμμα σαρώνει συνεχώς για νέες συσκευές και στη συνέχεια ελέγχει εάν υποστηρίζουν την υπηρεσία Nordic UART με TX Notify.
Nordic UART Service
Η Nordic UART Service αποτελείται από τρία μέρη, το Service UUID και τα χαρακτηριστικά RX και TX. Ακολουθεί δείγμα κώδικα που δημιουργήθηκε από το pfodDesignerV3 για το RedBear NanoV2
BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");
BLECharacteristic rxCharacteristic = BLECharacteristic ("6E400002B5A3F393E0A9E50E24DCCA9E", BLEWrite, BLE_MAX_LENGTH); BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003B5A3F393E0A9E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH);
Το pfodDesignerV3 μπορεί να δημιουργήσει δείγμα κώδικα για έναν αριθμό μονάδων BLE. Ωστόσο, επειδή δεν υπάρχει καμία προδιαγραφή BLE για μια "τυπική" σύνδεση UART, δεν χρησιμοποιούν όλες οι μονάδες την υπηρεσία Nordic UART. Για παράδειγμα μονάδες HM-10 (ασπίδα Itead BLE), RFduno και Romeo BLE χρησιμοποιούν τις δικές τους μοναδικές υπηρεσίες uart και έτσι δεν θα συνδεθούν με το Feather nRF52.
Οι παρακάτω πίνακες θα συνδεθούν:- Adafruit Bluefruit Feather nRF52, Arduino/Genuino 101, RedBearLab BLE Nano V2 και V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (δηλαδή Bluefruit LE Shield), Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE ή Bluefruit LE SPI Friend) Καθώς και πίνακες που μπορούν να κωδικοποιηθούν με προσαρμοσμένες υπηρεσίες ή πίνακες που μπορούν να χρησιμοποιήσουν τη βιβλιοθήκη BLEPeripheral.
Το παράδειγμα του πίνακα που χρησιμοποιείται εδώ είναι το Arduino/Genuino 101 με κωδικό που δημιουργήθηκε από το pfodDesignerV3. Το δωρεάν pfodDesignerV3 σάς επιτρέπει να δημιουργείτε μενού pfodApp και, στη συνέχεια, δημιουργεί τον απαραίτητο κώδικα Arduino για την εμφάνιση αυτού του ακριβούς μενού στο κινητό σας Android χρησιμοποιώντας (πληρωμένο) pfodApp. Το pfodApp θα συνδεθεί επίσης μέσω Wifi, καθώς και Bluetooth Classic, BLE και SMS, και έτσι μπορεί να συνδεθεί μέσω αυτής της γέφυρας Wifi2BLE. Ωστόσο, ακόμη και αν δεν θέλετε να χρησιμοποιήσετε το pfodApp ως εφαρμογή ελέγχου, μπορείτε να χρησιμοποιήσετε το pfodDesignerV3 για να δημιουργήσετε έναν κωδικό υπηρεσίας NART της UART για την πλακέτα BLE.
Αυτός ο σύνδεσμος φροντιστηρίου περιγράφει τη ρύθμιση του Arduino/Genuino 101 BLE και τη δημιουργία ενός απλού ελέγχου ενεργοποίησης/απενεργοποίησης LED με το pfodDesignerV3. Το σκίτσο που παράγεται από το pfodDesignerV3 είναι το Arduino101_led_control.ino
Ο προγραμματισμός του Arduino/Genuino 101 με το Arduino101_led_control.ino θα σας επιτρέψει να συνδεθείτε με το pfodApp και να εμφανίσετε την ακόλουθη οθόνη στο κινητό σας Android.
Ωστόσο, αυτό είναι μόνο ένα παράδειγμα και δεν χρειάζεται να αγοράσετε pfodApp για να ολοκληρώσετε αυτό το έργο. Το σημαντικό μέρος είναι ότι η δωρεάν εφαρμογή pfodDesignerV3 έχει κωδικό για το Arduino/Genuino 101 που υλοποιεί μια σκανδιναβική υπηρεσία UART. Ας το σκανάρουμε λοιπόν.
Ωστόσο, αυτό είναι μόνο ένα παράδειγμα και δεν χρειάζεται να αγοράσετε pfodApp για να ολοκληρώσετε αυτό το έργο. Το σημαντικό μέρος είναι ότι η δωρεάν εφαρμογή pfodDesignerV3 έχει κωδικό για το Arduino/Genuino 101 που υλοποιεί μια σκανδιναβική υπηρεσία UART. Ας το σκανάρουμε λοιπόν.
Σάρωση για μια σκανδιναβική υπηρεσία UART
Με τη μονάδα HUZZAH ESP8266 αποσυνδεδεμένη από το Feather nRF52, προγραμματίστε το Feather nRF52 με το central_bleuart_scanner.ino και, στη συνέχεια, ανοίξτε το Arduino IDE Tools → Serial Monitor και ρυθμίστε τον ρυθμό baud στα 9600. Η ενεργοποίηση του Arduino/Genuino 101 δίνει την έξοδο που εμφανίζεται στο το πρώτο στιγμιότυπο οθόνης παραπάνω.
Όπως μπορείτε να δείτε, ο σαρωτής βρήκε δύο συσκευές BLE, ένα Arduino/Genuino 101 με μια υπηρεσία NARTIC UART, αλλά το χαρακτηριστικό TX δεν υποστηρίζει το Notify. Ο σαρωτής βρήκε επίσης μια μονάδα RFduino BLE, αλλά η RFduino δεν χρησιμοποιεί την υπηρεσία Nordic UART, αλλά χρησιμοποιεί τη δική της. Η Επιτροπή Bluetooth φέρει το φταίξιμο για αυτό επειδή δεν καθορίζει μια «τυπική» υπηρεσία UART, αντίθετα αφήνει κάθε κατασκευαστή να δημιουργήσει την δική της.
Όπως αναφέρεται παραπάνω, ο κωδικός 101 δημιουργήθηκε από το pfodDesignerV3 κυρίως για χρήση με το pfodApp. Το pfodApp δεν επιλέγει τόσο το TX Notify όσο ο κωδικός uart Feather nRF52. Το pfodApp λειτουργεί με το 101 όπως έχει προγραμματιστεί, αλλά το φτερό nRF52 επιμένει στο TX Notify, οπότε απαιτείται μια μικρή αλλαγή στον κώδικα για να ικανοποιήσει το φτερό.
Ανοίξτε το Arduino101_led_control.ino στο Arduino IDE και κοντά στην κορυφή θα βρείτε αυτές τις δύο γραμμές. Η δεύτερη γραμμή είναι απλώς μια περιγραφή του χαρακτηριστικού και δεν επηρεάζει τη λειτουργία.
BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLEIndicate, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("29)" ";
Αλλάξτε τα σε
BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX - (Ειδοποίηση)");
Στη συνέχεια, επαναπρογραμματίστε το 101 με αυτήν την επεξεργασμένη έκδοση, Arduino101_Notify_led_control.ino. Στη συνέχεια, όταν εκτελείτε ξανά το σαρωτή Feather nRF52 (central_bleuart_scanner.ino), η Σειριακή οθόνη εμφανίζει τη δεύτερη οθόνη που εμφανίζεται παραπάνω.
Δεν υπάρχουν σφάλματα για το Genuino 101 τώρα και ο σαρωτής εκτυπώνει τον κωδικό που απαιτείται για το σκίτσο γέφυρας Feather nRF52 έτσι ώστε να συνδέεται με το 101. Ο σαρωτής θα ελέγχει κάθε συσκευή που βρίσκει σε εμβέλεια. Το κόκκινο led αναβοσβήνει μία φορά για κάθε συσκευή που βρίσκεται με την Nordic UART Service (TX Notify).
Βήμα 6: Σύνδεση σε περιφερειακό BLE
Ενδείξεις LED
Το φτερό nRF52 έχει δύο led, μπλε και κόκκινο. Όταν η πλακέτα είναι συνδεδεμένη σε μια συσκευή BLE, το Blue Led είναι σταθερό, διαφορετικά αναβοσβήνει. Ο σαρωτής δεν παραμένει συνδεδεμένος στη συσκευή, οπότε το μπλε led του αναβοσβήνει συνήθως. Το κόκκινο led αναβοσβήνει μία φορά για κάθε συσκευή Nordic UART Service (TX Notify). Όταν λειτουργεί ως σαρωτής, το Red Led μετρά τον αριθμό των συσκευών Nordic UART Service (TX Notify) που βρέθηκαν. Όταν λειτουργεί ως γέφυρα, το Red Led αναβοσβήνει μία φορά όταν είναι συνδεδεμένο στη διεύθυνση κωδικού BLE.
Σύνδεση σε περιφερειακό BLE
Τώρα που το σκίτσο του σαρωτή παρέχει τις λεπτομέρειες για τη συσκευή BLE στην οποία θέλετε να συνδεθείτε, μπορείτε να αντιγράψετε την έξοδο στο σκίτσο central_bleuart_bridge.ino. Κοντά στην κορυφή αυτού του σκίτσου θα βρείτε τον ακόλουθο κώδικα.
// Αυτές οι επόμενες τρεις γραμμές κώδικα προέρχονται από την έξοδο 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;
Αντικαταστήστε τις τρεις γραμμές κώδικα με την έξοδο από το σαρωτή για τη συσκευή BLE στην οποία θέλετε να γεφυρώσετε. Στη συνέχεια, προγραμματίστε το Feather nRF52 με το επεξεργασμένο σκίτσο central_bleuart_bridge.ino.
Δοκιμή του σκίτσου central_bleuart_bridge
Πριν συνδέσετε ξανά το HUZZAH ESP8266 στο Feather nRF52, δοκιμάστε τη σύνδεση με τη συσκευή σας BLE. Αφήνοντας το Feather nRF52 συνδεδεμένο με το Arduino IDE, ανοίξτε την Εργαλεία → Serial Monitor στα 9600 baud και έπειτα ελέγξτε ότι η συσκευή BLE -στόχος σας είναι ενεργοποιημένη.
Όταν γίνει η σύνδεση με τη συσκευή σας BLE, όπως περιγράφηκε παραπάνω, το μπλε led ανάβει συνεχώς και το κόκκινο led αναβοσβήνει μία φορά κάθε 10 δευτερόλεπτα περίπου. Αυτό σας επιτρέπει να μην πραγματοποιείται και να διατηρείται η σύνδεση.
Στη συνέχεια, στο Serial Monitor μπορείτε να εισαγάγετε τις εντολές που αναμένετε να στείλετε στη συσκευή σας BLE και να το παρακολουθήσετε να λειτουργεί και να παρακολουθείτε κάθε απάντηση που στέλνει πίσω. Εάν όλα είναι καλά, μπορείτε να απενεργοποιήσετε και να συνδέσετε τη μονάδα HUZZAH ESP8266.
Βήμα 7: Σύνδεση στη συσκευή BLE μέσω WiFi - Το βάζουμε όλα μαζί
Αφού προγραμματίσετε και δοκιμάσετε τη μονάδα HUZZAH ESP8266 με τον κωδικό γέφυρας (Wifi_Bridge.ino) που έχει διαμορφωθεί για το ssid και τον κωδικό πρόσβασης του δικτύου σας και IP και προγραμματίσατε και δοκιμάσατε το Feather nRF52 με τον κωδικό γέφυράς του (central_bleuart_bridge.ino) που έχει διαμορφωθεί με τη διεύθυνση της συσκευής BLE και πληκτρολογήστε, τότε μπορείτε να τα συνδέσετε μαζί και να συνδέσετε μια τροφοδοσία USB στη μονάδα Feather για να τα ενεργοποιήσετε και τα δύο.
Η μονάδα HUZZAH Red led θα πρέπει να ανάβει σταθερά καθώς συνδέεται με τον τοπικό δρομολογητή δικτύου σας και το led Feather Blue να ανάβει σταθερά καθώς συνδέεται με τη συσκευή BLE σας και το led Feather Red να αναβοσβήνει μία φορά κάθε 10 δευτερόλεπτα για να δείχνει ακριβώς Η συσκευή BLE είναι συνδεδεμένη.
Ανοίξτε το πρόγραμμα telnet και συνδεθείτε με την IP και τη θύρα του HUZZAH. Το κόκκινο led HUZZAH θα αναβοσβήνει αργά για να δείξει ότι το πρόγραμμά σας έχει συνδεθεί και θα πρέπει να στέλνετε εντολές στη συσκευή σας BLE μέσω WiFi και να παρακολουθείτε τη λειτουργία της συσκευής BLE και να βλέπετε οποιαδήποτε απάντηση στο παράθυρο του τηλεφώνου σας. Θυμηθείτε εάν η συσκευή σας BLE δεν στέλνει δεδομένα πίσω για 60 δευτερόλεπτα, ο κωδικός HUZZAH θα λήξει η σύνδεση και θα αποσυνδεθεί και το κόκκινο led HUZZAH θα σταθεροποιηθεί ξανά.
Βήμα 8: Βοήθεια - Δεν λειτουργεί
Πρώτα κάντε τα βήματα δοκιμής που περιγράφονται παραπάνω, Δοκιμή του HUZZAH ESP2866 και Δοκιμή του σκίτσου central_bleuart_bridge.
Προβλήματα σάρωσης
Εάν ο σαρωτής δεν μπορεί να σας βρει τη συσκευή BLE, είτε είναι πολύ μακριά είτε δεν διαφημίζεται ή έχει ήδη συνδεθεί με κάτι. Δοκιμάστε να μετακινήσετε τον σαρωτή πιο κοντά και ενεργοποιήστε την ποδηλασία της συσκευής και απενεργοποιήστε όλες τις άλλες κοντινές από κινητές συσκευές που ενδέχεται να έχουν σύνδεση με τη συσκευή BLE.
Εάν έχετε έξοδο σαρωτή όπως αυτή.
Συνδεδεμένο με 98: 4F: EE: 0C: FC: 8F ingάχνετε για σκανδιναβική υπηρεσία UART… Κανένα δεν βρέθηκε OR Δεν μπορεί να ανακαλυφθεί !!!!! Δεν ήταν δυνατή η αναγνώριση μιας σκανδιναβικής υπηρεσίας UART !!!!!!!! Αν περιμένατε μια σκανδιναβική υπηρεσία UART, μετακινήστε το σαρωτή πιο κοντά στη συσκευή BLE !!!!
Μπορεί να είστε αρκετά κοντά στη συσκευή BLE για να την εντοπίσετε, αλλά όχι αρκετά κοντά για να πραγματοποιήσετε με επιτυχία μια ανακάλυψη υπηρεσίας για να βρείτε την υπηρεσία Nordic UART. Προσπαθήστε να πλησιάσετε τη συσκευή BLE.
Ως έσχατη λύση, μπορείτε να χρησιμοποιήσετε τη δωρεάν εφαρμογή Nordic nRF Connect για Android ή iOS. Αυτή η εφαρμογή έχει καλύτερο εύρος και ευαισθησία. Θα σας πει εάν η συσκευή BLE διαθέτει Nordic UART Service. Ωστόσο, θα χρειαστεί ακόμα να ενεργοποιήσετε το σαρωτή και να συνδέσετε και να προσδιορίσετε το Nordic UART Serivice πριν επιχειρήσετε να χρησιμοποιήσετε τη γέφυρα Wifi2BLE καθώς χρησιμοποιεί παρόμοιο κώδικα με το σαρωτή.
Αν θέλετε να σκάψετε βαθύτερα, μπορείτε να χρησιμοποιήσετε τη μονάδα Adafruit Bluefruit LE Sniffer για να δείτε τι υπάρχει στον αέρα.
Προβλήματα σύνδεσης BLE
Εάν καταφέρατε να σαρώσετε τη συσκευή BLE τότε οι πιο πιθανές αιτίες προβλημάτων σύνδεσης είναι I) η συσκευή BLE είναι πολύ μακριά, II) κάτι άλλο έχει ήδη συνδεθεί με τη συσκευή BLE
Προβλήματα σύνδεσης WiFi
Εάν το HUZZAH ESP8266 Red led δεν ανάβει σταθερά, τότε δεν έχει σύνδεση στο δίκτυό σας μέσω του δρομολογητή σας. Ελέγξτε το ssid και τον κωδικό πρόσβασης που έχετε στον Wifi_Bridge.ino και χρησιμοποιήστε την εφαρμογή Fing Android ή iOS για να ελέγξετε ότι η IP που διαθέσατε δεν χρησιμοποιείται ήδη. Δοκιμάστε να απενεργοποιήσετε όλους τους υπολογιστές και τις συσκευές σας και ενεργοποιήστε την ποδηλασία του δρομολογητή (αφήστε το για 20 δευτερόλεπτα) και, στη συνέχεια, σαρώστε ξανά με το Fing. Τέλος, εάν η σύνδεση συνεχίζει να πέφτει, θυμηθείτε τη ρύθμιση λήξης της σύνδεσης στον κωδικό Wifi_Bridge.ino.
Βήμα 9: Επεκτάσεις και συμπέρασμα
Το έργο που παρουσιάζεται εδώ είναι η απλούστερη έκδοση. Υπάρχουν πολλές πιθανές επεκτάσεις, όπως:-
- Το Feather nRF52 μπορεί να συνδεθεί ταυτόχρονα με έως και 4 συσκευές BLE, ώστε να μπορείτε να τροποποιήσετε τον κώδικα για να προσθέσετε περισσότερες έγκυρες διευθύνσεις και να ελέγξετε έως και 4 συσκευές από τη μία σύνδεση WiFi. Δείτε το παράδειγμα κώδικα που συνοδεύει την εγκατάσταση της πλακέτας Feather nRF52.
- Θα μπορούσατε να ανοίξετε μια τρύπα στο δρομολογητή σας για να παρέχετε πρόσβαση στη συσκευή BLE από οπουδήποτε στο διαδίκτυο. Δείτε τη σύνδεση DIY IoT συσκευών στο Διαδίκτυο με το pfodApp.
- Θα μπορούσατε να χρησιμοποιήσετε τον κώδικα από το Cheap/Simple Wifi Shield για να σας επιτρέψει να διαμορφώσετε τις παραμέτρους του δικτύου WiFi για το HUZZAH μέσω μιας ιστοσελίδας, χωρίς επαναπρογραμματισμό. Θα χρειαστεί να προσθέσετε ένα κουμπί διαμόρφωσης στο κύκλωμα.
- Μπορείτε να προσθέσετε ένα κουμπί διαμόρφωσης (χρησιμοποιώντας το ίδιο κουμπί με το παραπάνω) που κάνει το Feather nRF52 να σαρώνει συσκευές BLE με Nordic UART (TX Notify) και στη συνέχεια να αποθηκεύσετε τα στοιχεία σύνδεσης για αυτό με το ισχυρότερο σήμα. Για να αποθηκεύσετε το αποτέλεσμα, θα πρέπει να χρησιμοποιήσετε τη βιβλιοθήκη nffs που συνοδεύει την εγκατάσταση του πίνακα Adafruit nRF52.
- Μπορείτε να προσθέσετε μια ιστοσελίδα στον κωδικό HUZZAH ESP8266 για να παρέχετε μια προσαρμοσμένη διεπαφή για τη συσκευή σας BLE. Θα μπορούσατε επίσης να χρησιμοποιήσετε το pfodDesignerV3 και το pfodApp να προσθέσετε μια προσαρμοσμένη διεπαφή χωρίς αλλαγές σε αυτό το έργο.
συμπέρασμα
Αυτό το απλό έργο παρέχει πρόσβαση WiFi σε οποιαδήποτε μονάδα Bluetooth Low Energy (BLE) που υλοποιεί το UART της Nordic με TX Notify. Η γέφυρα Wifi2BLE είναι εντελώς διαφανής. Απλώς μεταφέρει τα δεδομένα WiFi στη συσκευή BLE και μεταφέρει τα δεδομένα της συσκευής BLE πίσω στη σύνδεση WiFi.
Η απλή κατασκευή και οι λεπτομερείς οδηγίες δοκιμής καθιστούν αυτό το κατάλληλο έργο για αρχάριους που θέλουν να έχουν πρόσβαση στη συσκευή BLE από τον υπολογιστή τους ή εκτός του κανονικού εύρους του BLE.
Αυτό το έργο θα γίνει πιο σημαντικό μόλις το λογισμικό της συσκευής BLE φτάσει στη νέα προδιαγραφή Bluetooth V5 Mesh. Στη συνέχεια, το Wifi2BLE θα παρέχει πρόσβαση στο Διαδίκτυο σε ολόκληρη την αυτοματοποίηση του σπιτιού σας.
Συνιστάται:
Αναβοσβήνοντας Γέφυρα Κεριών: 6 Βήματα (με Εικόνες)
Γέφυρα κεριών που τρεμοπαίζουν: Αυτό το διδακτικό δείχνει πώς να μετατρέψετε μια απλή γέφυρα κεριών με στατικό φως σε ένα ωραίο λαμπερό φως διάθεσης με ατελείωτες παραλλαγές λαμπτήρων που τρεμοπαίζουν, αναβοσβήνουν, μοτίβα κυμάτων και άλλα. Αγόρασα από το After Christmas Sales μια γέφυρα με κεριά για 8
Σχεδιασμός ενός απλού τεσσάρων κατευθύνσεων συσχετιστικού ελεγκτή μνήμης cache σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού τεσσάρων κατευθυντήριων συστημάτων ελεγκτή μνήμης προσωρινής μνήμης σε VHDL: Στο προηγούμενο διδάσκοντά μου, είδαμε πώς να σχεδιάσουμε έναν απλό ελεγκτή προσωρινής μνήμης απευθείας αντιστοιχισμένου. Αυτή τη φορά, προχωράμε ένα βήμα μπροστά. Θα σχεδιάσουμε ένα απλό τετράπλευρο σύνολο συσχετιστικού ελεγκτή προσωρινής μνήμης. Πλεονέκτημα; Λιγότερο ποσοστό χαμένων, αλλά με κόστος για
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: 4 βήματα
Σχεδιασμός ενός απλού ελεγκτή προσωρινής μνήμης σε VHDL: Γράφω αυτό με οδηγίες, γιατί μου φάνηκε λίγο δύσκολο να βρω κάποιον κώδικα αναφοράς VHDL για να μάθω και να αρχίσω να σχεδιάζω έναν ελεγκτή προσωρινής μνήμης. Έτσι σχεδίασα ένα χειριστήριο cache μόνος μου από την αρχή και το δοκίμασα με επιτυχία στο FPGA. Έχω π
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: 5 βήματα
Σχεδιασμός ενός απλού ελεγκτή VGA σε VHDL και Verilog: Σε αυτό το διδακτικό, θα σχεδιάσουμε έναν απλό ελεγκτή VGA σε RTL. Το VGA Controller είναι το ψηφιακό κύκλωμα που έχει σχεδιαστεί για να οδηγεί οθόνες VGA. Διαβάζεται από το Frame Buffer (VGA Memory) που αντιπροσωπεύει το πλαίσιο που θα εμφανιστεί και παράγει αναγκαία
Τρόπος επίλυσης του ζητήματος αναβάθμισης του απλού κλωνοποιημένου ελεγκτήBGC: 4 βήματα
Τρόπος επίλυσης του ζητήματος αναβάθμισης του απλού κώδικα του BGC Control: Γεια σας. Πρόσφατα, δούλευα πάνω στο SimpleBGC gimbal controller για το έργο μου με drone. Το συνέδεσα με επιτυχία και το συντονίστηκα. Δούλευε τέλεια. Μετά από αυτό, ήθελα να αναβαθμίσω το υλικολογισμικό του από v2.2 σε v2.4. Έτσι, αφού αναβάθμισα το gimbal