Mục lục:

Cầu nối WiFi đơn giản đến BLE (Bluetooth năng lượng thấp): 9 bước (có hình ảnh)
Cầu nối WiFi đơn giản đến BLE (Bluetooth năng lượng thấp): 9 bước (có hình ảnh)

Video: Cầu nối WiFi đơn giản đến BLE (Bluetooth năng lượng thấp): 9 bước (có hình ảnh)

Video: Cầu nối WiFi đơn giản đến BLE (Bluetooth năng lượng thấp): 9 bước (có hình ảnh)
Video: [BLE&Bluetooth Mesh] Bài 3: Lập trình nút nhấn. Phân biệt số lần bấm và thời gian bấm 2024, Tháng bảy
Anonim
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản
Cầu nối WiFi đến BLE (Bluetooth Low Energy) đơn giản

Cập nhật ngày 4 tháng 12 năm 2017 - các bản phác thảo Feather nRF52 đã sửa đổi và mẹo gỡ lỗi. Đã thêm hình ảnh của cây cầu được gắn trong hộp

Dự án đơn giản này cung cấp quyền truy cập WiFi vào bất kỳ mô-đun Bluetooth Low Energy (BLE) nào triển khai UART của Nordic với TX Notify. Cầu Wifi2BLE hoàn toàn trong suốt. Nó chỉ chuyển dữ liệu WiFi đến thiết bị BLE và chuyển dữ liệu của thiết bị BLE trở lại kết nối WiFi.

PfodDesignerV3 miễn phí tạo mã để triển khai Dịch vụ UART Bắc Âu trên nhiều mô-đun BLE bao gồm, Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 và V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend và Flora Boards, Adafruit Bluefruit LE SPI (tức là Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE hoặc Bluefruit LE SPI Friend) và bất kỳ bảng nào khác cho phép bạn lập trình dịch vụ của riêng mình.

Cầu nối Wifi2BLE này phù hợp với người thi công thiếu kinh nghiệm có thể hàn. Nó chỉ sử dụng hai bảng, một cáp ribbon và hai điện trở

Cũng như kiểm tra chi tiết cho từng bo mạch, tài liệu hướng dẫn này bao gồm bước Trợ giúp - Không hoạt động với nhiều mẹo tìm lỗi hơn.

Các hướng dẫn này cũng có sẵn trực tuyến

Tại sao lại là Dự án này?

Dự án này giải quyết một số vấn đề mà BLE (Bluetooth Low Energy) gặp phải.

  • Chỉ điện thoại di động và máy tính gần đây mới hỗ trợ BLE. Cầu nối Wifi2BLE cho phép bất kỳ thiết bị di động hoặc máy tính nào có kết nối WiFi kết nối và điều khiển thiết bị BLE.
  • BLE có phạm vi giới hạn. Cầu nối Wifi2BLE cho phép bạn truy cập thiết bị BLE từ bất kỳ đâu trong nhà (nơi có kết nối WiFi) và từ bên ngoài qua Internet.
  • Tạo ứng dụng BLE yêu cầu bạn học Android hoặc iOS. Cầu Wifi2BLE cung cấp kết nối telnet phổ biến thông qua bất kỳ chương trình đầu cuối nào. Hơn nữa, bạn có thể dễ dàng thêm một trang web vào mô-đun WiFi để tạo giao diện tùy chỉnh của riêng mình.
  • BLE V5 hứa hẹn kết nối mạng lưới để kết nối tất cả các thiết bị BLE gia đình của bạn, một khi phần mềm bắt kịp với thông số kỹ thuật Bluetooth mới nhất. Cầu Wifi2BLE sử dụng thiết bị BLE V5 và do đó sẽ cung cấp quyền truy cập Internet vào mạng gia đình này khi nó đến.

Việc sử dụng ngay lập tức của tôi cho dự án này là thêm điều khiển ánh sáng BLE của phòng khách vào mạng WiFi để cho phép điều khiển nó từ bất kỳ đâu trong nhà. Mặc dù hướng dẫn này sử dụng pfodApp làm ví dụ điều khiển bảng BLE qua WiFi, nhưng bạn không cần phải mua pfodApp để hoàn thành dự án này.

Bước 1: Danh sách bộ phận

Chi phí ~ US $ 60 vào ngày 30 tháng 11 năm 2017, không bao gồm vận chuyển + một hộp nhựa nhỏ

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

Adafruit HUZZAH ESP8266 Đột phá - ~ US $ 10

Cáp ruy-băng với các đầu cái riêng biệt - Cáp cướp biển ~ US $ 5 https://www.sparkfun.com/products/9556 HOẶC Cáp đột phá ổ cắm IDC 10 chân ~ US $ 4 https://www.sparkfun.com/products/ 9556 HOẶC tương tự

Tiêu đề Break Away Male - Góc phải - ~ US $ 2

Cáp nối tiếp USB to TTL 3V3 - ~ US $ 10 https://www.sparkfun.com/products/12977 (Ưu tiên vì nó có các chân được gắn nhãn) HOẶC https://www.sparkfun.com/products/12977 (các chân KHÔNG ĐƯỢC được dán nhãn)

Cáp USB A đến Micro B - ~ US $ 4 https://www.sparkfun.com/products/12977 (dài 3 foot) HOẶC ~ US $ 3 https://www.sparkfun.com/products/12977 (dài 6 inch) HOẶC ~ US $ 2 https://www.sparkfun.com/products/12977 (dài 6 inch) HOẶC ~ US $ 5 https://www.sparkfun.com/products/12977 (dài 6 foot) HOẶC tương tự

Điện trở 2 x 100 ohm - ~ US $ 1

Nguồn điện USB (500mA trở lên) - ~ US $ 6 https://www.sparkfun.com/products/12890 HOẶC ~ US $ 7 https://www.adafruit.com/product/1994 HOẶC tương tự

Arduino IDE V1.8.5 và một máy tính để chạy nó.

Đối với một hộp nhựa, tôi đã sử dụng một hộp từ Jaycar UB5 (màu xanh) 83mm x 54mm x 31mm ~ A $ 4

Bước 2: Mạch Wifi2BLE

Mạch Wifi2BLE
Mạch Wifi2BLE

Mạch Wifi2BLE được hiển thị ở trên. Một phiên bản pdf ở đây. Như bạn có thể thấy mạch rất đơn giản. Chỉ cần 4 dây và hai điện trở bảo vệ 100 ohm. Các điện trở bảo vệ trong trường hợp bạn bỏ lỡ kết nối các đường TX / RX sau khi lập trình HUZZAH ESP8266 hoặc Feather nRF52.

LƯU Ý: Việc đánh dấu bảng Feather nRF52 cho các chân TX và RX là đúng. Chân TX thực sự là chân bên cạnh chân DFU và chân RX là chân bên cạnh chân MISO

Đảm bảo rằng bạn kết nối các dòng TX / RX như hình trên. May mắn thay, các điện trở bảo vệ đã làm công việc của chúng và các bảng không bị hư hại trong khi tôi đã phân loại lý do tại sao các bảng không tiếp xúc với nhau.

Bước 3: Xây dựng Wifi2BLE

Cấu trúc Wifi2BLE
Cấu trúc Wifi2BLE
Cấu trúc Wifi2BLE
Cấu trúc Wifi2BLE
Cấu trúc Wifi2BLE
Cấu trúc Wifi2BLE

Các chân cắm đầu góc phải được hàn vào HUZZAH ESP8266 để cho phép nó được rút ra để lập trình. Bốn dây của cáp ruy-băng được sử dụng để kết nối hai bảng. Giữ các đầu nối ghim cái và cắt đầu còn lại của cáp ruy-băng. Cáp ribbon của tôi có cùng màu với cáp lập trình Sparkfun USB to TTL nên tôi đã chọn dây cho phù hợp. Đen cho GND, Đỏ cho 5V +, Cam cho TX (kết nối với ESP8266 RX) và Nâu cho RX (kết nối với ESP8266 TX)

Tôi nối dây các điện trở bảo vệ ở mặt sau của bo mạch Feather nRF52. (Những người xây dựng tinh ý biết mã điện trở của họ sẽ thấy tôi đã sử dụng hai điện trở 68 ohm mà tôi cầm trên tay thay vì 100 ohm) và sau đó cách điện chúng bằng một số bọc co lại.

Cáp Đỏ được hàn vào chân USB Feather nRF52 để nhận USB 5V để cấp nguồn cho mô-đun HUZZAH ESP8266 và cáp Đen được hàn vào chân Feather nRF52 GND.

Đó là tất cả những gì ngoại trừ lập trình các mô-đun, như mô tả bên dưới, đặt nó vào một hộp nhựa và cắm nguồn điện USB vào Feather nRF52.

Bước 4: Lập trình Wifi2BLE

Lập trình Wifi2BLE
Lập trình Wifi2BLE
Lập trình Wifi2BLE
Lập trình Wifi2BLE
Lập trình Wifi2BLE
Lập trình Wifi2BLE

Lập trình HUZZAH ESP8266

Để lập trình lá chắn, hãy làm theo hướng dẫn được cung cấp trên https://github.com/esp8266/Arduino trong Cài đặt bằng trình quản lý bảng. Khi mở Trình quản lý bảng từ menu Công cụ → Bảng và chọn Loại đã đóng góp và cài đặt nền tảng esp8266. Dự án này được biên dịch bằng cách sử dụng ESP8266 phiên bản 2.3.0. Các phiên bản khác sẽ có bộ lỗi riêng và có thể không hoạt động với mã này.

LƯU Ý: KHÔNG sử dụng cài đặt Adafruit Board vì bản phác thảo được sử dụng ở đây sẽ không biên dịch theo mã đó.

Đóng và mở lại Arduino IDE và bây giờ bạn có thể chọn “Adafruit HUZZAH ESP8266” từ menu Công cụ → Bảng.

Bạn cũng cần cài đặt phiên bản mới nhất của thư viện pfodESP8266WiFiBufferedClient. Thư viện này hoạt động với trình cắm thêm IDE của ESP8266.com V2.3. (Nếu trước đó bạn đã cài đặt thư viện pfodESP2866WiFi, hãy xóa hoàn toàn thư mục thư viện đó.)

  • a) Tải tệp pfodESP8266WiFiBufferedClient.zip này xuống máy tính của bạn, di chuyển tệp vào máy tính của bạn hoặc một số thư mục khác mà bạn có thể dễ dàng tìm thấy
  • b) Sau đó sử dụng tùy chọn menu Arduino 1.8.5 IDE Sketch → Import Library → Add Library để cài đặt nó. (Nếu Arduino không cho phép bạn cài đặt vì thư viện đã tồn tại, hãy tìm và xóa thư mục pfodESP8266BufferedClient cũ hơn rồi nhập thư mục này)
  • c) Dừng và khởi động lại Arduino IDE và trong File-> Examples, bây giờ bạn sẽ thấy pfodESP8266BufferedClient.

Đặt ssid mạng và mật khẩu và IP và cổng

Sau khi bạn đã cài đặt thư viện pfodESP8266BufferedClient, hãy mở Arduino IDE và sao chép bản phác thảo này, Wifi_Bridge.ino, vào IDE. Trước khi lập trình mô-đun, bạn cần đặt ssid và mật khẩu của mạng và chọn một IP không sử dụng.

Chỉnh sửa ba dòng này gần đầu Wifi_Bridge.ino

char ssid = "**** ***"; mật khẩu char = "**** *****"; char staticIP = "10.1.1.180";

Tôi sử dụng ứng dụng Fing (Android hoặc iOS) để quét mạng cục bộ của mình và xác định IP đã được sử dụng. Thường an toàn khi chọn một IP không sử dụng trong dải.180 đến.254

Để bắt đầu, bạn có thể để cổng No as 23, cổng tiêu chuẩn cho kết nối telnet.

Khi bạn đã thực hiện những thay đổi đó, bạn có thể lập trình ESP8266.

Lập trình HUZZAH ESP8266

Để lập trình HUZZAH ESP8266, hãy kết nối USB với cáp Nối tiếp như trong hình. Kiểm tra ảnh và hệ thống dây điện của bạn. Cũng xem Mẹo lập trình ESP8266 (espcomm thất bại)

Tôi sử dụng Cáp nối tiếp Sparkfun USB to TTL 3V3 vì nó có các dây dẫn TX và RX được đánh dấu. Đảm bảo dây dẫn TX được cắm vào chân RX và dây dẫn RX được cắm vào chân TX như hình trên. Nếu bạn đang sử dụng cáp Adafruit, nó không có các đầu cuối được đánh dấu nhưng được mã hóa màu, màu đỏ là nguồn, màu đen là nối đất, màu xanh lá cây là TX và màu trắng là RX.

Cắm cáp USB to Serial vào máy tính của bạn và chọn nó là cổng COM trong menu Công cụ → Cổng. Để Tần suất CPU, Kích thước Flash và Tốc độ Tải lên ở cài đặt mặc định của chúng.

Sau đó, đặt mô-đun Adafruit HUZZAH ESP2866 vào chế độ lập trình bằng cách giữ nút nhấn GPIO0 và nhấp vào nút nhấn Đặt lại rồi thả nút nhấn GPIO0. Đèn LED GPIO0 nên vẫn sáng mờ. Sau đó chọn Tệp → Tải lên hoặc sử dụng nút Mũi tên Phải để biên dịch và tải lên chương trình. Nếu bạn nhận được thông báo lỗi khi tải lên, hãy kiểm tra xem kết nối cáp của bạn đã được cắm vào đúng chân chưa và thử lại.

Khi quá trình lập trình hoàn tất, đèn Led đỏ trên mô-đun sẽ sáng. Điều đó cho thấy nó đã kết nối thành công với mạng cục bộ của bạn và khởi động máy chủ để chấp nhận kết nối.

Kiểm tra HUZZAH ESP2866

Để kiểm tra HUZZAH ESP2866, hãy để cáp lập trình được kết nối và mở Công cụ Arduino IDE → Màn hình nối tiếp và đặt 9600 baud (góc dưới cùng bên phải). Sau đó, mở một chương trình đầu cuối trên máy tính của bạn, tôi sử dụng TeraTerm cho Windows và CoolTerm cho Mac, đồng thời kết nối với IP và portNo bạn đã đặt trong bản phác thảo Wifi_Bridge.ino.

Khi bạn kết nối Đèn Led đỏ trên mô-đun sẽ bắt đầu nhấp nháy, cho biết có kết nối. Bây giờ bạn có thể nhập vào cửa sổ đầu cuối máy tính của mình và các ký tự sẽ xuất hiện trong cửa sổ giám sát của Arduino IDE và ngược lại.

Thời gian chờ kết nối Wifi

Mã Wifi_Bridge.ino có thời gian kết nối.

uint32_t connectTimeout = 60000; // Hết thời gian kết nối 60 giây

Nếu không có dữ liệu WiFi nào được nhận bởi mô-đun HUZZAH ESP8266 trong 60 giây thì mô-đun sẽ đóng kết nối và chờ kết nối mới. Điều này đảm bảo mô-đun phục hồi từ các kết nối 'nửa đóng' xảy ra mà máy khách chỉ biến mất do kết nối WiFi kém, mất nguồn tại bộ định tuyến hoặc buộc phải tắt máy khách. Xem phần Phát hiện kết nối ổ cắm TCP / IP nửa mở (bị rơi) để biết thêm chi tiết.

Thời gian chờ kết nối này được đặt thành 60 giây. nhưng có thể giảm hoặc tăng khi cần thiết. Đặt nó thành 0 có nghĩa là không bao giờ hết thời gian, điều này không được khuyến khích.

Lập trình Feather nRF52

Để lập trình Feather nRF52, hãy làm theo hướng dẫn về cách tải xuống và cài đặt hỗ trợ Bảng Arduino cho Feather nRF52. Kiểm tra xem bạn có thể kết nối và lập trình bo mạch thông qua cáp USB.

LƯU Ý: Rút phích cắm mô-đun HUZZAH ESP8266 khỏi Feather nRF52 trước khi cố gắng lập trình Feather

Kết nối Feather nRF52 với thiết bị BLE bao gồm hai bước. Đầu tiên xác định địa chỉ MAC (và loại) trên thiết bị và kiểm tra xem nó có hỗ trợ dịch vụ Nordic UART với TX Notify không, sau đó chuyển địa chỉ đó và nhập vào bản phác thảo cầu nối.

Bước 5: Kết nối với thiết bị BLE

Kết nối với thiết bị BLE
Kết nối với thiết bị BLE
Kết nối với thiết bị BLE
Kết nối với thiết bị BLE
Kết nối với thiết bị BLE
Kết nối với thiết bị BLE

Sau khi HUZZAH ESP8266 được lập trình, bạn cần mã địa chỉ BLE và loại thiết bị bạn muốn kết nối vào bản phác thảo Feather nRF52. Đây là một quy trình gồm hai bước. I) Chạy chương trình quét để tìm các thiết bị BLE lân cận triển khai Dịch vụ UART Bắc Âu (TX Notify) và sau đó sao chép đầu ra của máy quét đó vào bản phác thảo cầu Feather để kết nối với thiết bị đó.

Quét thiết bị ngoại vi BLE

Để xác định các thiết bị ngoại vi BLE tương thích, hãy tải chương trình central_bleuart_scanner.ino vào Feather nRF52 của bạn. Chương trình này liên tục quét các thiết bị mới và sau đó kiểm tra xem chúng có hỗ trợ dịch vụ Nordic UART hay không với TX Notify.

Dịch vụ UART Bắc Âu

Dịch vụ UART Bắc Âu bao gồm ba phần, UUID dịch vụ và các đặc tính RX và TX. Đây là một số mã mẫu được tạo bởi pfodDesignerV3 cho RedBear NanoV2

BLEService uartService = BLEService ("6E400001B5A3F393E0A9E50E24DCCA9E");

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

pfodDesignerV3 có thể tạo mã mẫu cho một số mô-đun BLE. Tuy nhiên, vì không có thông số kỹ thuật BLE cho kết nối UART 'tiêu chuẩn' nên không phải tất cả các mô-đun đều sử dụng dịch vụ Nordic UART. Ví dụ: mô-đun HM-10 (lá chắn Itead BLE), RFduno và Romeo BLE sử dụng các dịch vụ uart độc đáo của riêng họ và do đó sẽ không kết nối với Feather nRF52.

Các bảng sau sẽ kết nối: - Adafruit Bluefruit Feather nRF52, Arduino / Genuino 101, RedBearLab BLE Nano V2 và V1-V1.5, RedBearLab BLE Shield, Adafruit Bluefruit LE UART Friend and Flora Boards, Adafruit Bluefruit LE SPI (tức là Bluefruit LE Shield, Bluefruit LE Micro, Feather 32u4 Bluefruit LE, Feather M0 Bluefruit LE hoặc Bluefruit LE SPI Friend) Cũng như các bảng có thể được mã hóa bằng Dịch vụ tùy chỉnh hoặc bảng có thể sử dụng thư viện BLEPeri Ngoại vi.

Bảng ví dụ được sử dụng ở đây là Arduino / Genuino 101 với mã được tạo bởi pfodDesignerV3. PfodDesignerV3 miễn phí cho phép bạn tạo menu pfodApp và sau đó tạo mã Arduino cần thiết để hiển thị menu chính xác đó trên thiết bị di động Android của bạn bằng pfodApp (trả phí). pfodApp cũng sẽ kết nối qua Wifi, cũng như Bluetooth Classic, BLE và SMS, và do đó có thể kết nối qua cầu Wifi2BLE này. Tuy nhiên, ngay cả khi bạn không muốn sử dụng pfodApp làm ứng dụng điều khiển của mình, bạn vẫn có thể sử dụng pfodDesignerV3 để tạo mã dịch vụ Nordic UART cho bảng BLE của mình.

Liên kết hướng dẫn này mô tả cách thiết lập Arduino / Genuino 101 BLE và tạo điều khiển bật / tắt đèn LED đơn giản với pfodDesignerV3. Bản phác thảo do pfodDesignerV3 tạo ra là Arduino101_led_control.ino

Lập trình Arduino / Genuino 101 với Arduino101_led_control.ino sẽ cho phép bạn kết nối với pfodApp và hiển thị màn hình sau trên điện thoại di động Android của bạn.

Tuy nhiên đây chỉ là một ví dụ và bạn không cần phải mua pfodApp để hoàn thành dự án này. Phần quan trọng là ứng dụng pfodDesignerV3 miễn phí đã tạo mã cho Arduino / Genuino 101 triển khai Dịch vụ UART Bắc Âu. Vì vậy, hãy quét tìm nó.

Tuy nhiên đây chỉ là một ví dụ và bạn không cần phải mua pfodApp để hoàn thành dự án này. Phần quan trọng là ứng dụng pfodDesignerV3 miễn phí đã tạo mã cho Arduino / Genuino 101 triển khai Dịch vụ UART Bắc Âu. Vì vậy, hãy quét tìm nó.

Quét dịch vụ UART Bắc Âu

Khi ngắt kết nối mô-đun HUZZAH ESP8266 khỏi Feather nRF52, hãy lập trình Feather nRF52 với central_bleuart_scanner.ino, sau đó mở Công cụ Arduino IDE → Serial Monitor và đặt tốc độ truyền thành 9600. ảnh chụp màn hình đầu tiên ở trên.

Như bạn có thể thấy máy quét đã tìm thấy hai thiết bị BLE, một Arduino / Genuino 101 với dịch vụ Nordic UART trên đó, NHƯNG đặc tính TX không hỗ trợ Notify. Máy quét cũng tìm thấy một mô-đun RFduino BLE nhưng RFduino không sử dụng Dịch vụ UART Bắc Âu mà sử dụng mô-đun của chính nó. Ủy ban Bluetooth đổ lỗi cho điều này vì đã không chỉ định một Dịch vụ UART 'tiêu chuẩn', thay vào đó để mỗi nhà sản xuất tạo ra một dịch vụ của họ.

Như đã trình bày ở trên, mã 101 được tạo bởi pfodDesignerV3 chủ yếu để sử dụng với pfodApp. pfodApp không chọn về TX Notify như mã uart Feather nRF52. pfodApp hoạt động với 101 như được lập trình nhưng Feather nRF52 nhất quyết yêu cầu TX Notify vì vậy cần có một thay đổi nhỏ đối với mã để đáp ứng Feather.

Mở Arduino101_led_control.ino trong Arduino IDE và gần đầu bạn sẽ tìm thấy hai dòng này. Dòng thứ hai chỉ là mô tả đặc tính và không ảnh hưởng đến hoạt động.

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

Thay đổi chúng thành

BLECharacteristic txCharacteristic = BLECharacteristic ("6E400003-B5A3-F393-E0A9-E50E24DCCA9E", BLENotify, BLE_MAX_LENGTH); BLEDescriptor txNameDescriptor = BLEDescriptor ("2901", "TX - (Thông báo)");

Sau đó, lập trình lại 101 với phiên bản đã chỉnh sửa này, Arduino101_Notify_led_control.ino. Sau đó, khi bạn chạy lại máy quét Feather nRF52 (central_bleuart_scanner.ino), Serial Monitor sẽ hiển thị ảnh chụp màn hình thứ hai ở trên.

Hiện không có lỗi nào đối với Genuino 101 và máy quét in ra mã cần thiết cho bản phác thảo cầu Feather nRF52 để nó sẽ kết nối với 101. Máy quét sẽ kiểm tra mọi thiết bị mà nó tìm thấy trong phạm vi. Đèn LED màu đỏ nhấp nháy một lần cho mỗi thiết bị được tìm thấy với Dịch vụ UART Bắc Âu (Thông báo TX).

Bước 6: Kết nối với thiết bị ngoại vi BLE

Chỉ báo LED

Feather nRF52 có hai đèn led, Blue và Red. Khi bo mạch được kết nối với thiết bị BLE, đèn Led xanh lam là không đổi, nếu không thì nó sẽ nhấp nháy. Máy quét không duy trì kết nối với thiết bị nên đèn LED Xanh của nó thường nhấp nháy. Đèn LED màu đỏ nhấp nháy một lần cho mỗi thiết bị Dịch vụ UART Bắc Âu (TX Notify). Khi chạy như một máy quét, Đèn Led đỏ sẽ đếm số lượng thiết bị Dịch vụ UART Bắc Âu (TX Notify) được tìm thấy. Khi chạy cầu, đèn Led đỏ nhấp nháy một lần khi kết nối với địa chỉ mã BLE.

Kết nối với thiết bị ngoại vi BLE

Bây giờ bản phác thảo máy quét đã cung cấp các chi tiết cho thiết bị BLE mà bạn muốn kết nối, bạn có thể sao chép đầu ra vào bản phác thảo central_bleuart_bridge.ino. Gần đầu bản phác thảo đó, bạn sẽ tìm thấy đoạn mã sau.

// Ba dòng mã tiếp theo này đến từ đầu ra 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;

Thay thế ba dòng mã bằng đầu ra từ máy quét cho thiết bị BLE mà bạn muốn kết nối. Sau đó, lập trình Feather nRF52 với phác thảo central_bleuart_bridge.ino đã chỉnh sửa.

Kiểm tra bản phác thảo central_bleuart_bridge

Trước khi cắm lại HUZZAH ESP8266 vào Feather nRF52, hãy kiểm tra kết nối với thiết bị BLE của bạn. Để Feather nRF52 được kết nối với Arduino IDE của bạn, mở Công cụ → Màn hình nối tiếp ở 9600 baud và sau đó kiểm tra thiết bị BLE mục tiêu của bạn đã được cấp nguồn chưa.

Khi kết nối được thực hiện với thiết bị BLE của bạn, như mô tả ở trên, đèn LED Xanh lam sẽ sáng liên tục và đèn LED Đỏ sẽ nhấp nháy một lần sau mỗi 10 giây hoặc lâu hơn. Điều này cho phép bạn không phải kết nối đã được thực hiện và đang được duy trì.

Sau đó, trong Serial Monitor, bạn có thể nhập các lệnh mà bạn muốn gửi đến thiết bị BLE của mình và xem nó hoạt động và giám sát bất kỳ phản hồi nào mà nó gửi lại. Nếu tất cả đều ổn, bạn có thể tắt nguồn và cắm mô-đun HUZZAH ESP8266.

Bước 7: Kết nối với thiết bị BLE qua WiFi - Kết hợp tất cả lại với nhau

Sau khi bạn đã lập trình và kiểm tra mô-đun HUZZAH ESP8266 với mã cầu nối của nó (Wifi_Bridge.ino) được định cấu hình cho ssid mạng và mật khẩu của bạn và IP VÀ đã lập trình và kiểm tra Feather nRF52 với mã cầu nối của nó (central_bleuart_bridge.ino) được định cấu hình với địa chỉ của thiết bị BLE và nhập, sau đó bạn có thể cắm chúng lại với nhau và cắm nguồn cung cấp USB vào mô-đun Feather để cấp nguồn cho cả hai.

Mô-đun HUZZAH Đèn LED màu đỏ sẽ sáng lên khi nó kết nối với bộ định tuyến mạng cục bộ của bạn và đèn LED Feather Blue sẽ sáng lên khi nó kết nối với thiết bị BLE của bạn và đèn LED Feather Red sẽ nhấp nháy một lần sau mỗi 10 giây hoặc lâu hơn để chỉ báo bật Thiết bị BLE đã được kết nối.

Mở chương trình telnet của bạn và kết nối với IP và cổng của HUZZAH. Đèn LED HUZZAH Đỏ sẽ nhấp nháy chậm để cho biết chương trình của bạn đã kết nối và bạn sẽ gửi lệnh đến thiết bị BLE của mình qua WiFi và xem thiết bị BLE hoạt động và xem bất kỳ phản hồi nào trong cửa sổ telnet của bạn. Hãy nhớ rằng nếu thiết bị BLE của bạn không gửi lại bất kỳ dữ liệu nào trong 60 giây, mã HUZZAH sẽ hết thời gian kết nối và ngắt kết nối và đèn LED HUZZAH Đỏ sẽ hoạt động trở lại.

Bước 8: Trợ giúp - Nó không hoạt động

Trước tiên, hãy thực hiện các bước kiểm tra được nêu chi tiết ở trên, Kiểm tra HUZZAH ESP2866 và Kiểm tra phác thảo central_bleuart_bridge.

Sự cố khi quét

Nếu máy quét không thể tìm thấy thiết bị BLE của bạn thì đó là thiết bị ở quá xa hoặc không có quảng cáo hoặc đã được kết nối với thiết bị nào đó. Thử di chuyển máy quét đến gần hơn và bật nguồn thiết bị và tắt tất cả các thiết bị khác ở gần thiết bị di động có thể có kết nối với thiết bị BLE.

Nếu bạn nhận được một đầu ra máy quét như thế này.

Đã kết nối với 98: 4F: EE: 0C: FC: 8F Đang tìm kiếm dịch vụ Nordic UART… Không tìm thấy HOẶC Không tìm thấy !!!!! Không thể xác định một dịch vụ UART Bắc Âu !!!!!!!! Nếu bạn đang mong đợi một Dịch vụ UART Bắc Âu, hãy di chuyển Máy quét đến gần thiết bị BLE !!!!

Có thể bạn ở đủ gần thiết bị BLE để phát hiện nó nhưng không đủ gần để thực hiện thành công Khám phá dịch vụ để tìm dịch vụ Nordic UART. Thử di chuyển đến gần thiết bị BLE hơn.

Phương án cuối cùng là bạn có thể sử dụng ứng dụng Nordic nRF Connect miễn phí cho Android hoặc iOS. Ứng dụng đó có phạm vi và độ nhạy tốt hơn. Nó sẽ cho bạn biết liệu thiết bị BLE có Dịch vụ UART Bắc Âu hay không. Tuy nhiên, bạn vẫn cần phải chạy máy quét, kết nối và xác định Nordic UART Serivice trước khi cố gắng sử dụng cầu Wifi2BLE vì nó sử dụng mã tương tự như máy quét.

Nếu bạn muốn tìm hiểu sâu hơn, bạn có thể sử dụng mô-đun Adafruit Bluefruit LE Sniffer để xem có gì trong không khí.

Sự cố kết nối BLE

Nếu bạn quản lý để quét thiết bị BLE thì các nguyên nhân có thể gây ra sự cố kết nối nhất là I) thiết bị BLE ở quá xa, II) thứ gì đó khác đã kết nối với thiết bị BLE

Sự cố kết nối WiFi

Nếu đèn led HUZZAH ESP8266 Red không sáng thì tức là nó không có kết nối với mạng qua bộ định tuyến của bạn. Kiểm tra ssid và mật khẩu bạn có mã vào Wifi_Bridge.ino và sử dụng ứng dụng Fing Android hoặc iOS để kiểm tra xem IP bạn đã cấp chưa được sử dụng hay chưa. Hãy thử tắt nguồn tất cả các máy tính và thiết bị của bạn và khởi động lại bộ định tuyến (để nó tắt trong 20 giây) rồi quét lại bằng Fing. Cuối cùng, nếu kết nối vẫn bị ngắt, hãy nhớ cài đặt thời gian chờ kết nối trong mã Wifi_Bridge.ino.

Bước 9: Phần mở rộng và Kết luận

Dự án được trình bày ở đây là phiên bản đơn giản nhất. Có một số phần mở rộng có thể có như: -

  • Feather nRF52 có khả năng kết nối với tối đa 4 thiết bị BLE cùng một lúc để bạn có thể sửa đổi mã để thêm nhiều địa chỉ hợp lệ hơn và kiểm soát tối đa 4 thiết bị từ một kết nối WiFi. Xem mã ví dụ đi kèm với cài đặt bo mạch Feather nRF52.
  • Bạn có thể đục một lỗ trên bộ định tuyến của mình để cung cấp quyền truy cập vào thiết bị BLE từ mọi nơi trên internet. Xem Kết nối thiết bị IoT tự làm với Internet bằng pfodApp.
  • Bạn có thể sử dụng mã từ Tấm chắn Wifi giá rẻ / đơn giản để cho phép bạn định cấu hình các thông số mạng WiFi cho HUZZAH thông qua trang web mà không cần lập trình lại. Bạn sẽ cần thêm một nút ấn cấu hình vào mạch.
  • Bạn có thể thêm nút nhấn cấu hình (sử dụng nút tương tự như trên) để Feather nRF52 quét các thiết bị BLE có Nordic UART (TX Notify) và sau đó lưu chi tiết kết nối cho thiết bị có tín hiệu mạnh nhất. Để lưu kết quả, bạn sẽ cần sử dụng thư viện nffs đi kèm với cài đặt bo mạch Adafruit nRF52.
  • Bạn có thể thêm một trang web vào mã HUZZAH ESP8266 để cung cấp giao diện tùy chỉnh cho thiết bị BLE của mình. Bạn cũng có thể sử dụng pfodDesignerV3 và pfodApp thêm một giao diện tùy chỉnh mà không có thay đổi nào đối với dự án này.

Phần kết luận

Dự án đơn giản này cung cấp quyền truy cập WiFi vào bất kỳ mô-đun Bluetooth Low Energy (BLE) nào triển khai UART của Nordic với TX Notify. Cầu Wifi2BLE hoàn toàn trong suốt. Nó chỉ chuyển dữ liệu WiFi đến thiết bị BLE và chuyển dữ liệu của thiết bị BLE trở lại kết nối WiFi.

Cấu trúc đơn giản và hướng dẫn kiểm tra chi tiết làm cho đây là một dự án phù hợp cho những người mới bắt đầu muốn truy cập thiết bị BLE của họ từ máy tính của họ hoặc từ bên ngoài phạm vi thông thường của BLE.

Dự án này sẽ trở nên quan trọng hơn khi phần mềm thiết bị BLE bắt kịp với thông số kỹ thuật Bluetooth V5 Mesh mới. Sau đó, Wifi2BLE sẽ cung cấp truy cập internet để tự động hóa toàn bộ ngôi nhà của bạn.

Đề xuất: