Mục lục:
Video: Cách sử dụng Bluetooth (BLE) với ESP32: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
#####GHI CHÚ#####
Phương pháp hiển thị trong Bảng hướng dẫn này đã cũ và lỗi thời. Xem video này để biết phương pháp mới nhất.
###############
Trong khi ESP32 tự hào có danh sách tính năng mở rộng (Wikipedia), tính năng thu hút sự chú ý lớn nhất là bluetooth v4.2 tích hợp với hỗ trợ BLE. Nhưng tuyên bố đó có thể gây hiểu lầm, trong khi phần cứng ở đó, phần mềm hỗ trợ sử dụng Bluetooth lại thiếu. (Nó đang được phát triển)
Đối với những người không biết BLE là gì, nó là viết tắt của Bluetooth Low Energy. Đó là một giao thức bluetooth giúp tăng mức tiêu thụ điện năng thấp hơn đáng kể so với Bluetooth "Cổ điển".
Trong Tài liệu hướng dẫn này, tôi sẽ chỉ cho bạn cách bạn có thể sử dụng các tài nguyên (phần mềm) hạn chế theo ý của mình để gửi dữ liệu từ bo mạch ESP32 đến điện thoại của bạn qua BLE.
Một vài tuyên bố từ chối trách nhiệm…
Một số điều lưu ý mà tôi nên đề cập trước khi bạn tiếp tục với hướng dẫn này..
Lưu ý 1: Khi tôi nói rằng hỗ trợ Bluetooth vẫn chưa khả dụng, ý tôi là trong môi trường phát triển arduino.
Hỗ trợ rất tốt có thể có sẵn trong SDK chính thức cũng như IDF nhưng tôi chưa tìm thấy bất kỳ hướng dẫn có thẩm quyền nào cho chúng.
Lưu ý 2: Phương pháp mà tôi đang sử dụng rất là một cách giải quyết và không phải là cách BLE được cho là hoạt động lý tưởng. Thư viện hỗ trợ tạo dịch vụ trong BLE không có ở đây cho môi trường arduino.
Điều duy nhất bạn có thể làm một cách đáng tin cậy là tạo một Beacon quảng cáo tên của nó. Một bình luận trên YouTube diễn đạt rất thanh lịch: "LOL, một cuộc tấn công tàn bạo. Nhưng bạn có thể làm gì?"
Lưu ý 3: Loại dữ liệu duy nhất mà bạn có thể gửi là chuỗi.
Bạn rất có thể quyết định viết mã và giải mã các loại dữ liệu khác đến và từ chuỗi nhưng điều đó nằm ngoài phạm vi của hướng dẫn này.
Bước 1: Bản dựng mẫu
Nếu bạn chỉ ở đây để giải thích thì bạn có thể bỏ qua bước này nhưng thực hiện qua bước này có thể giúp bạn rõ ràng hơn một chút..
Trước tiên, tôi sẽ xây dựng một dự án mẫu và sau đó tôi sẽ cố gắng giải thích cách hoạt động của nó và cách bạn có thể tái tạo giao tiếp Bluetooth. Chúng tôi sẽ xây dựng một cảm biến nhiệt độ di động gửi nguồn cấp dữ liệu trực tiếp đến điện thoại thông minh của bạn. Bản dựng có thể chạy nhiều ngày trên một li-po duy nhất và dễ dàng thể hiện các lợi ích của BLE.
Bạn có thể sử dụng mô-đun này như một tấm lót ly để bảo ôn đồ uống của mình và nhận được thông báo ngay khi đồ uống của bạn đạt đến nhiệt độ tối ưu. Bởi vì sẽ thật là tội nghiệp nếu bạn phải nhấp một ngụm trà có độ trên 40.
Phần cứng duy nhất bạn cần là bo mạch ESP32 và cảm biến nhiệt độ kỹ thuật số. Bo mạch của tôi hỗ trợ pin bên ngoài nên tôi đang sử dụng li-po 3,7v mà tôi đã tận dụng được từ một số thiết bị cũ để làm cho dự án này có thể di động.
Phần cứng
Các kết nối cho cảm biến nhiệt độ rất đơn giản. Dây màu đỏ kết nối với 3.3v, màu đen kết nối với đất (gnd), màu vàng kết nối với GPIO 2 mà trên bảng của tôi được đánh dấu là D9. Kết nối một điện trở 4,7k ohm giữa dây màu đỏ và màu vàng. Tôi không sử dụng điện trở, thay vào đó tôi đang sử dụng thiết bị đầu cuối có thể cắm 3 chân đi kèm với cảm biến của tôi. Nó có một điện trở kéo lên được tích hợp sẵn.
Thực sự cần kết nối li-po bằng đầu nối JST nhưng tôi không muốn mua một cái nên tôi chỉ gắn một số cáp jumper (từ nữ sang nữ) vào đầu nối và hàn một cặp khác vào các đầu nối của pin. Điều này tạo ra một kết nối đáng tin cậy và một công tắc nguồn tạm thời.
Bây giờ là một bao vây dự án, tôi đang sử dụng một đĩa Styrofoam đã được cắt ra từ một trang tính lớn hơn. Điều này làm cho một chất cách điện tuyệt vời. Một đĩa nhỏ hơn nhiều khác bị kẹt ở trên cùng nhưng hơi lệch sang một bên. Điều này là để quấn thêm chiều dài của dây để chúng không bị lủng lẳng khắp nơi. Sau khi sử dụng đầy đủ keo và một lỗ nhỏ cho đầu dò cảm biến, bạn đã sẵn sàng để tiếp tục phần mềm.
Phần mềm
Nếu bạn chưa cài đặt arduino IDE thì hãy truy cập liên kết này để tải xuống. Phần mềm arduino theo mặc định không đi kèm với các định nghĩa về bo mạch cho các bo mạch ESP32 khác nhau. Để yêu cầu họ truy cập liên kết này và tải xuống các tệp dưới dạng zip. Bạn cần giải nén chúng đến vị trí này:
C: / Users // Documents / Arduino / hardware / espserrif / ESP32
Tên người dùng của bạn ở đâu trên PC của bạn. Đảm bảo rằng các tệp khác nhau có sẵn trong thư mục ESP32 và không nằm trong thư mục khác.
Bây giờ nếu bạn khởi động phần mềm arduino và đi đến công cụ-> bảng, bạn sẽ thấy nhiều bảng ESP32 khác nhau khi bạn cuộn xuống.
Hầu hết các cảm biến nhiệt độ kỹ thuật số sử dụng giao thức OneWire để giao tiếp với các bộ điều khiển vi mô, vì vậy chúng ta cần lấy thư viện. Đi tới sketch-> include library-> quản lý thư viện và tìm kiếm onewire và cài đặt thư viện có quá nhiều tác giả. Bạn không cần trung tâm onewire. Bỏ mặc nó.
Bây giờ bạn có thể tải xuống và mở mã được đính kèm trong bước này (nhiệt độ-example.ino).
Nếu bạn đang sử dụng cảm biến khác với tôi thì bạn sẽ phải thay đổi mã cho phù hợp. Thay thế mã trong getTemp (). Chỉ cần trả lại nhiệt độ cuối cùng ở dạng
Trở lại;
Phao chứa nhiệt độ ở đâu.
Cắm bảng, chọn bảng và cổng chính xác từ các công cụ bên dưới và nhấn tải lên.
Nếu mã từ chối tải lên, hãy ngắt kết nối cảm biến và kết nối GPIO 0 với đất. Khôi phục các kết nối sau khi tải lên.
ESP của bạn bây giờ có thể hét nhiệt độ của cà phê của bạn với thế giới nhưng bạn cần một người có thể hiểu nó.
Ứng dụng Android
Xin lỗi người dùng iPhone (… không hẳn vậy).
Tải xuống apk từ đây và cài đặt nó. Khi bạn khởi động ứng dụng, bạn sẽ được chào đón bằng một giao diện rất đơn giản.
Nếu bạn nhận được thông báo lỗi cho biết 'quảng cáo không được hỗ trợ', hãy nhấp vào OK và bỏ qua nó nhưng nếu bạn nhận được thông báo 'BLE không được hỗ trợ' thì điện thoại của bạn không có Bluetooth 4.0 trở lên và sẽ không thể chạy ứng dụng.
Đảm bảo rằng Bluetooth trên điện thoại của bạn đã được bật và nhấp vào "Bắt đầu quét", miễn là esp trong phạm vi và được bật nguồn, bạn sẽ nhận được một số giá trị nhiệt độ.
Các lỗi có thể xảy ra:
- -1000:: Điều này có nghĩa là thiết bị của bạn không thể tìm thấy ESP. đảm bảo rằng Bluetooth được bật và thử khởi động lại ESP.
- SNA:: Điều này có nghĩa là điện thoại của bạn đang nhận dữ liệu từ ESP nhưng chính ESP không thể tìm thấy cảm biến nhiệt độ trên GPIO 2. Đảm bảo rằng các kết nối được bảo mật, xem bạn có đang sử dụng điện trở có giá trị chính xác hay không. Kiểm tra kỹ với sơ đồ bảng của bạn để đảm bảo rằng bạn được kết nối với GPIO 2 và không phải là chân được đánh dấu là D2.
Bước 2: Giải thích
Cách BLE hoạt động bình thường là một thiết bị quảng cáo tên của nó giống như một đèn hiệu, tên này có thể được nhìn thấy bởi bất kỳ ai và được sử dụng để nhận dạng thiết bị. Sau đó, thiết bị có thể tạo ra các dịch vụ khác nhau mà người khác nhìn thấy khi họ kết nối với thiết bị đó. Các dịch vụ này có thể có các luồng dữ liệu khác nhau.
Ví dụ. Một thiết bị có tên là "Trạm thời tiết" có thể được bảo dưỡng trong đó như "Nhiệt độ", "Độ ẩm" và "Gió". Khi một thiết bị BLE khác như điện thoại thông minh của bạn quét tìm thiết bị, nó sẽ thấy Trạm thời tiết và khi kết nối với nó, nó sẽ có thể nhận các luồng dữ liệu tương ứng với các dịch vụ khác nhau.
Các thư viện (dành cho ESP32) hiện có sẵn cho chúng tôi cho phép chúng tôi tạo ra một beacon mà những người khác có thể khám phá nhưng đó là phạm vi của nó. Chúng tôi không thể tạo dịch vụ cũng như không thể kết nối bất kỳ thiết bị nào với nó.
Vì vậy, cách tôi gửi dữ liệu mà không cần tạo dịch vụ là sử dụng một kỹ thuật tương tự như giao thức WiFi được gọi là Beacon Stuffing. Điều này có nghĩa là tôi đang bao gồm dữ liệu sẽ được gửi trong chính tên beacon. Điều này cho phép tôi quảng cáo dữ liệu mà không yêu cầu các thiết bị khác kết nối với đèn hiệu.
ble.begin (beaconMsg); // beaconMsg là tên được quảng cáo
Chúng tôi đang sử dụng thư viện SimpleBLE để tạo báo hiệu với tên của nó ở định dạng ESP. Trong đó ‘ESP’ luôn không thay đổi ở đầu tên và được thay thế bằng dữ liệu mới nhất được trả về bởi hàm getValue () sau mỗi 100 mili giây.
float getValue () {return sensorValue;}
Ứng dụng android tìm kiếm các tên thiết bị BLE bắt đầu bằng ‘ESP’, sau khi được tìm thấy, nó sẽ tách tên và chỉ hiển thị dữ liệu từ cuối.
Giao tiếp chỉ là một chiều, ứng dụng không gửi lại bất cứ thứ gì.
Bước 3: Kết luận
Vào cuối ngày, phương pháp này không thể thay thế cho một thư viện BLE được triển khai đúng cách nhưng nó có thể đủ để xử lý một số dự án cho đến khi hỗ trợ BLE hoàn chỉnh đến với Arduino. Hy vọng rằng các tài liệu hướng dẫn này sẽ giúp ích được phần nào cho bạn.
Rất cám ơn DFRobot.com đã gửi cho tôi những sản phẩm này:
- Bảng chữa cháy ESP32
- FireBeetle Expantion Shield
- Cảm biến nhiệt độ DS18B20
Gần đây tôi đã tìm thấy thư viện này. ReadME tuyên bố rằng bạn có thể kết nối với các thiết bị BLE khác để nhận dữ liệu (Không thể tự quảng cáo). Tôi chưa thử nhưng bạn có thể kiểm tra nếu bạn quan tâm.
Bạn có thể xem video dự án tại: YouTube
Đề xuất:
Hướng dẫn: Cách xây dựng mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: 3 bước
Hướng dẫn: Cách xây dựng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: Mô tả: Hướng dẫn này sẽ hiển thị chi tiết cho tất cả các bạn về cách xây dựng máy dò khoảng cách bằng cách sử dụng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X và Arduino UNO và nó sẽ chạy giống như bạn muốn. Làm theo hướng dẫn và bạn sẽ hiểu gia sư này
Xây dựng bộ đọc âm lượng xe tăng với giá dưới 30 đô la bằng cách sử dụng ESP32: 5 bước (có hình ảnh)
Xây dựng Bộ đọc khối lượng xe tăng với giá dưới 30 đô la Sử dụng ESP32: Internet of Things đã đưa rất nhiều ứng dụng thiết bị phức tạp trước đây vào nhà của nhiều nhà sản xuất rượu và nấu rượu thủ công. Các ứng dụng với cảm biến mức đã được sử dụng trong nhiều thập kỷ trong các nhà máy lọc dầu lớn, nhà máy xử lý nước và hóa chất
Hướng dẫn sử dụng Bluetooth ESP32 - Cách sử dụng Bluetooth có sẵn của ESP32: 5 bước
Hướng dẫn sử dụng Bluetooth ESP32 | Cách sử dụng Bluetooth sẵn có của ESP32: Xin chào các bạn Vì Bảng ESP32 đi kèm với WiFi & Bluetooth cả hai nhưng đối với các Dự án chủ yếu của chúng tôi, chúng tôi thường chỉ sử dụng Wifi, chúng tôi không sử dụng Bluetooth. Vì vậy, trong phần hướng dẫn này, tôi sẽ chỉ ra cách sử dụng Bluetooth của ESP32 & Đối với các Dự án cơ bản của bạn
Cách sử dụng Mô-đun WiFi mini Wemos ESP-Wroom-02 D1 ESP8266 + 18650 bằng cách sử dụng Blynk: 10 bước
Cách sử dụng Mô-đun WiFi mini Wemos ESP-Wroom-02 D1 ESP8266 + 18650 bằng cách sử dụng Blynk: Đặc điểm kỹ thuật: Tương thích với tích hợp hệ thống sạc gật gù 18650 Có thể sử dụng đèn LED chỉ báo (màu xanh lá cây có nghĩa là màu đỏ đầy nghĩa là đang sạc) trong khi sạc Nguồn điện điều khiển công tắc SMT trình kết nối có thể được sử dụng cho chế độ ngủ · 1 thêm
Cách sử dụng Mac Terminal và Cách sử dụng các chức năng chính: 4 bước
Cách sử dụng Mac Terminal và Cách sử dụng các chức năng chính: Chúng tôi sẽ hướng dẫn bạn cách mở MAC Terminal. Chúng tôi cũng sẽ chỉ cho bạn một vài tính năng trong Terminal, chẳng hạn như ifconfig, thay đổi thư mục, truy cập tệp và arp. Ifconfig sẽ cho phép bạn kiểm tra địa chỉ IP và quảng cáo MAC của bạn