Mục lục:

Tre nhẹ (Đèn kết nối): 3 bước
Tre nhẹ (Đèn kết nối): 3 bước

Video: Tre nhẹ (Đèn kết nối): 3 bước

Video: Tre nhẹ (Đèn kết nối): 3 bước
Video: Khuất Lối - H-Kray | Official Lyrics Video 2024, Tháng mười một
Anonim
Tre nhẹ (Đèn kết nối)
Tre nhẹ (Đèn kết nối)

Xin chào và chào mừng!

Đèn tre sáng là đèn được kết nối sẽ sáng lên khi nhận được thông báo trên điện thoại thông minh Android mà nó được kết nối. Mục tiêu của tài liệu hướng dẫn này là cho bạn thấy giai đoạn thiết kế của dự án: từ kiến trúc phần cứng, đến kết nối Bluetooth Low Energy (BLE) và xây dựng ứng dụng Android.

Đối với đèn của chúng tôi, chúng tôi đã chọn một cây nhựa để thiết kế trang trí mát mẻ. Đối với dự án này, các thông báo được hiển thị từ các ứng dụng sau: cuộc gọi, sms / mms, facebook, messenger, instagram, whatsapp ang gmail. Một màu sáng được quy cho mỗi loại thông báo.

Đối với dự án này, bạn sẽ cần:

  • Một uC với mô-đun BLE tích hợp: nFR51822 RedBearLab
  • 3 NeoPixel Ring (12 đèn LED RGB)
  • Một điện thoại thông minh Android
  • Android Studio

Mỗi thông báo có một mức độ ưu tiên cụ thể, tùy thuộc vào mức độ quan trọng của nó. Ví dụ, thông báo cuộc gọi đến quan trọng hơn thông báo trên Facebook. Trong trường hợp đó, màu đèn LED sẽ được kết hợp với thông báo cuộc gọi đến.

Điện thoại thông minh mà chúng tôi đã phát triển ứng dụng này là Samsung Galaxy A5.

Bước 1: Phần cứng

Phần cứng
Phần cứng

Kiến trúc của chúng tôi khá đơn giản.

Kết nối các chân NeoPixel Ring với bo mạch nRF51822 như sau:

  • Inout pin dữ liệu của NeoPixel Ring vào cổng 3 của uC.
  • Vcc của vòng NeoPixel đến 3,3V của uC.
  • GND của Vòng NeoPixel với GND của uC.

Bạn có thể nhận thấy rằng chúng tôi không sử dụng chân Dữ liệu đầu ra của Vòng NeoPixel. Đó là vì các chân Dữ liệu đầu vào của ba Vòng NeoPixel mà chúng tôi sử dụng trong dự án này đều được kết nối với cùng một cổng của bảng nRF51822 (chân 3).

Bước 2: Phần mềm

Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm
Phần mềm

1. Giao tiếp Bluetooth Low Energy:

Trong giao tiếp BLE, máy chủ (trong trường hợp của chúng tôi là uC) và máy khách (điện thoại thông minh) trao đổi dữ liệu bằng cách sử dụng các giao dịch GATT. Trong các giao dịch đó, dữ liệu được tổ chức phân cấp trong các phần gọi là dịch vụ, nhóm các phần dữ liệu người dùng có liên quan về mặt khái niệm được gọi là đặc điểm. Trong trường hợp của chúng ta, việc đóng gói dữ liệu rất đơn giản vì chúng ta chỉ có một thông tin để truyền từ máy khách đến máy chủ (xem hình trên).

  • ở phía máy chủ: Để có thể sử dụng bo mạch nrf51822 làm máy chủ BLE, trước tiên hãy cài đặt thư viện "BLEPeripheral.h" trên Arduino IDE. Thư viện này cung cấp các chức năng sẵn sàng sử dụng để tạo các dịch vụ, đặc điểm và quảng cáo.
  • về phía máy khách: Để bắt đầu giao tiếp BLE trong Android Studio, trước tiên hãy định cấu hình quyền BLE trong tệp kê khai. Sau đó, trong tệp activity_main.xml, thêm 4 nút: quét, dừng quét, kết nối và ngắt kết nối sẽ cho phép ứng dụng quét các thiết bị BLE gần đó, dừng quét, kết nối và ngắt kết nối với một thiết bị. Trong tệp main_activity.java, hãy triển khai các hàm được liên kết với các nút trước đó: startScanning (), stopcanning (), connectToDeviceSelected (), ngắt kết nốiDeviceSelected (). Cuối cùng, triển khai các hàm gọi lại được gọi khi trạng thái của máy khách thay đổi.

2. Quản lý thông báo

  • về phía máy khách (trên Android Studio): Để nghe thông báo đến từ điện thoại thông minh, hãy triển khai trình nghe thông báo được kích hoạt khi có thông báo trên thanh trạng thái. Người nghe thông báo này sẽ gửi một "thông báo", được gọi là một ý định, đến hoạt động chính khi một thông báo được đăng hoặc bị xóa. "Thông báo" này chứa một mã thông báo giúp xác định ứng dụng đã đăng thông báo. Để xử lý thông báo trong hoạt động chính, hãy tạo bộ thu phát sóng sẽ nhận thông báo từ người nghe thông báo. Sau đó, tùy thuộc vào mã thông báo, một ký tự khác nhau được gửi đến máy chủ.
  • ở phía máy chủ (trên Arduino IDE): thông báo có mức độ ưu tiên cao nhất được hiển thị.

Bước 3: Bước 3: Phụ lục

Tại đây, bạn sẽ tìm thấy tất cả các mã nguồn.

Đề xuất: