
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

สวัสดีและยินดีต้อนรับ!
ไม้ไผ่อ่อนเป็นโคมไฟที่เชื่อมต่อซึ่งจะสว่างขึ้นเมื่อได้รับการแจ้งเตือนบนสมาร์ทโฟน Android ที่เชื่อมต่ออยู่ เป้าหมายของคำแนะนำนี้คือการแสดงขั้นตอนการออกแบบของโครงการให้คุณเห็น ตั้งแต่สถาปัตยกรรมฮาร์ดแวร์ ไปจนถึงการเชื่อมต่อ Bluetooth Low Energy (BLE) และการสร้างแอปพลิเคชัน Android
สำหรับโคมไฟของเรา เราเลือกโรงงานพลาสติกสำหรับการออกแบบตกแต่งที่เก๋ไก๋ สำหรับโครงการนี้ การแจ้งเตือนที่แสดงมาจากแอปพลิเคชันต่อไปนี้: โทร, sms/mms, facebook, messenger, instagram, whatsapp ang gmail มีการระบุสีของแสงหนึ่งสีสำหรับการแจ้งเตือนแต่ละประเภท
สำหรับโครงการนี้ คุณจะต้อง:
- uC ที่มีโมดูล BLE ในตัว: nFR51822 RedBearLab
- 3 NeoPixel Ring (ไฟ LED RGB 12 ดวง)
- สมาร์ทโฟน Android
- Android Studio
การแจ้งเตือนแต่ละรายการมีลำดับความสำคัญเฉพาะ ขึ้นอยู่กับความสำคัญ ตัวอย่างเช่น การแจ้งเตือนสายเรียกเข้ามีความสำคัญมากกว่าการแจ้งเตือนบน Facebook ในกรณีนั้น ไฟ LED จะเชื่อมโยงกับการแจ้งเตือนสายเรียกเข้า
สมาร์ทโฟนที่เราพัฒนาแอปพลิเคชันนี้คือ Samsung Galaxy A5
ขั้นตอนที่ 1: ส่วนฮาร์ดแวร์

สถาปัตยกรรมของเราค่อนข้างเรียบง่าย
เชื่อมต่อหมุด NeoPixel Ring เข้ากับบอร์ด nRF51822 ดังนี้:
- Inout Data pin ของ NeoPixel Ring ไปยังพอร์ต 3 ของ uC
- Vcc ของ NeoPixel Ring ถึง 3.3V ของ uC
- GND ของ NeoPixel Ring ไปยัง GND ของ uC
คุณจะสังเกตเห็นว่าเราไม่ได้ใช้พินข้อมูลเอาต์พุตของ NeoPixel Ring นั่นเป็นเพราะพินอินพุตข้อมูลของ NeoPixel Rings สามอันที่เราใช้ในโครงการนี้ทั้งหมดเชื่อมต่อกับพอร์ตเดียวกันของบอร์ด nRF51822 (พิน 3)
ขั้นตอนที่ 2: ส่วนซอฟต์แวร์



1. การสื่อสาร Bluetooth Low Energy:
ในการสื่อสาร BLE เซิร์ฟเวอร์ (ซึ่งในกรณีของเราคือ uC) และลูกค้า (สมาร์ทโฟน) แลกเปลี่ยนข้อมูลโดยใช้ธุรกรรม GATT ในธุรกรรมเหล่านั้น ข้อมูลจะถูกจัดระเบียบตามลำดับชั้นในส่วนที่เรียกว่าบริการ ซึ่งจัดกลุ่มข้อมูลผู้ใช้ที่เกี่ยวข้องกับแนวคิดที่เรียกว่าคุณลักษณะ ในกรณีของเรา การห่อหุ้มข้อมูลนั้นง่าย เนื่องจากเรามีข้อมูลเดียวเท่านั้นที่จะส่งผ่านจากไคลเอนต์ไปยังเซิร์ฟเวอร์ (ดูภาพด้านบน)
- ทางฝั่งเซิร์ฟเวอร์: เพื่อให้สามารถใช้บอร์ด nrf51822 เป็นเซิร์ฟเวอร์ BLE ได้ ก่อนอื่นให้ติดตั้งไลบรารี "BLEPeripheral.h" บน Arduino IDE ห้องสมุดนี้มีฟังก์ชันที่พร้อมใช้งานสำหรับการสร้างบริการและคุณลักษณะและการโฆษณา
- ที่ฝั่งไคลเอ็นต์: ในการเริ่มการสื่อสาร BLE ใน Android Studio ก่อนอื่นให้กำหนดค่าการอนุญาต BLE ในไฟล์ Manifest จากนั้นในไฟล์ activity_main.xml ให้เพิ่มปุ่ม 4 ปุ่ม ได้แก่ สแกน หยุดสแกน เชื่อมต่อและยกเลิกการเชื่อมต่อ ซึ่งจะทำให้แอปพลิเคชันสามารถสแกนหาอุปกรณ์ BLE ที่อยู่ใกล้เคียง หยุดการสแกน เชื่อมต่อและยกเลิกการเชื่อมต่อกับอุปกรณ์ ในไฟล์ main_activity.java ใช้ฟังก์ชันที่เกี่ยวข้องกับปุ่มก่อนหน้า: startScanning(), stopscanning(), connectToDeviceSelected(), disconnectDeviceSelected().สุดท้าย ใช้ฟังก์ชันการเรียกกลับที่ได้รับการเรียกเมื่อสถานะของไคลเอ็นต์เปลี่ยนแปลง.
2. การจัดการการแจ้งเตือน
- ที่ฝั่งไคลเอ็นต์ (บน Android Studio): หากต้องการฟังการแจ้งเตือนที่มาจากสมาร์ทโฟน ให้ใช้ตัวฟังการแจ้งเตือนซึ่งจะเปิดใช้งานเมื่อมีการแจ้งเตือนในแถบสถานะ ผู้ฟังการแจ้งเตือนนี้จะส่ง "ข้อความ" ที่เรียกว่าเจตนา ไปยังกิจกรรมหลักเมื่อมีการโพสต์หรือลบการแจ้งเตือน "ข้อความ" นี้มีรหัสการแจ้งเตือนที่ช่วยระบุแอปพลิเคชันที่โพสต์การแจ้งเตือน ในการประมวลผลการแจ้งเตือนในกิจกรรมหลัก ให้สร้างเครื่องรับการออกอากาศที่จะรับข้อความจากผู้ฟังการแจ้งเตือน จากนั้น อักขระอื่นจะถูกส่งไปยังเซิร์ฟเวอร์ ทั้งนี้ขึ้นอยู่กับรหัสการแจ้งเตือน
- ที่ฝั่งเซิร์ฟเวอร์ (บน Arduino IDE): การแจ้งเตือนที่มีลำดับความสำคัญสูงสุดจะปรากฏขึ้น
ขั้นตอนที่ 3: ขั้นตอนที่ 3: ภาคผนวก
ที่นี่ คุณจะพบที่มาของรหัสทั้งหมด
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน

การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน

การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน

วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน

การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน

เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง