- ข้อกำหนดเบื้องต้น
- วัสดุที่จำเป็น
- ฮาร์ดแวร์
- รับที่อยู่บลูทู ธ ของเซิร์ฟเวอร์ของคุณ (ที่อยู่ของวงออกกำลังกาย)
- การขอรับบริการและ UUID ลักษณะเฉพาะของเซิร์ฟเวอร์
- การเขียนโปรแกรม ESP32 เพื่อทำหน้าที่เป็นไคลเอนต์สำหรับ Proximity Switch Application
- การทำงานและการทดสอบ
จะเจ๋งแค่ไหนที่จะเปิดไฟอัตโนมัติทันทีที่คุณเข้ามาในบ้านของคุณและปิดอีกครั้งเมื่อคุณออกไป! ใช่แอปพลิเคชันง่ายๆสามารถทำเพื่อคุณได้ ในโปรเจ็กต์นี้เราจะใช้ESP32 เป็นไคลเอนต์ BLEและฟิตเนสแบนด์เป็นเซิร์ฟเวอร์ BLEดังนั้นเมื่อใดก็ตามที่ผู้สวมใส่สายรัดออกกำลังกายอยู่ในช่วงของบลูทู ธ ESP32 ESP32 จะตรวจจับและเปิดไฟ อุปกรณ์บลูทู ธ ใด ๆ ที่มีความสามารถในเซิร์ฟเวอร์ BLE สามารถนำมาใช้เป็นอุปกรณ์เรียกเพื่อควบคุมเครื่องใช้ในบ้านใด ๆ ที่ใช้ ESP32
เราได้สำรวจฟังก์ชั่น BLE (Bluetooth Low Energy) ของโมดูล ESP32 แล้วและฉันรู้สึกตื่นเต้นมาก สรุปโมดูลนี้มีทั้งบลูทู ธ คลาสสิกและบลูทู ธ พลังงานต่ำ (BLE) บลูทู ธ แบบคลาสสิกสามารถใช้ในการถ่ายโอนเพลงหรือไฟล์และตัวเลือก BLE สามารถใช้สำหรับแอปพลิเคชันที่ปรับให้เหมาะสมกับแบตเตอรี่เช่นบลูทู ธ บีคอนวงออกกำลังกายความใกล้เคียง ฯลฯ นอกจากนี้ยังสามารถใช้เป็นบลูทู ธ แบบอนุกรมเช่นโมดูล HC-05 หรือ HC-06 สำหรับโครงการไมโครคอนโทรลเลอร์อย่างง่าย
อย่างที่ทราบกันดีว่าESP32 BLEสามารถทำงานได้สองโหมด หนึ่งคือโหมดเซิร์ฟเวอร์ที่เราได้พูดถึงไปแล้วโดยใช้บริการ GATT เพื่อเลียนแบบบริการแสดงระดับแบตเตอรี่ ในแบบฝึกหัดนั้น ESP32 ทำหน้าที่เป็นเซิร์ฟเวอร์และโทรศัพท์มือถือของเราทำหน้าที่เป็นไคลเอนต์ ตอนนี้ให้เราดำเนินการ ESP32 เป็นลูกค้าและพยายามเชื่อมต่อไปยังคนอื่น ๆเซิร์ฟเวอร์ BLE เช่นวงออกกำลังกายของฉัน
เซิร์ฟเวอร์ BLE ทั้งหมดรวมถึงวงออกกำลังกายของฉันอยู่ในโหมดโฆษณาคงที่ซึ่งสามารถค้นพบได้ตลอดเวลาเมื่อสแกนโดยลูกค้า ด้วยการใช้ประโยชน์จากคุณสมบัตินี้เราสามารถใช้แถบออกกำลังกายเหล่านี้เป็นสวิตช์ความใกล้เคียงซึ่งหมายความว่าวงออกกำลังกายเหล่านี้จะผูกติดกับมือของผู้ใช้เสมอและด้วยการสแกนหาวงดนตรีเราสามารถตรวจจับได้ว่าบุคคลนั้นอยู่ในระยะหรือไม่ นี่คือสิ่งที่เราจะทำในบทความนี้ เราจะตั้งโปรแกรม ESP32 ให้ทำหน้าที่เป็นไคลเอนต์ BLEและทำการสแกนหาอุปกรณ์ BLE อย่างต่อเนื่อง หากเราพบวงออกกำลังกายในช่วงที่เราจะพยายามเชื่อมต่อกับมันและถ้าเชื่อมต่อสำเร็จเราสามารถเรียกหลอดไฟด้วยการสลับหนึ่งในหมุด GPIO บน ESP32 วิธีนี้มีความน่าเชื่อถือเนื่องจากเซิร์ฟเวอร์ BLEแต่ละตัว(วงออกกำลังกาย) จะมีรหัสฮาร์ดแวร์ที่ไม่ซ้ำกันดังนั้นจึงไม่มีอุปกรณ์เซิร์ฟเวอร์ BLE สองเครื่องที่เหมือนกัน น่าสนใจใช่ไหม !!! ตอนนี้เรามาสร้างกันเถอะ
ข้อกำหนดเบื้องต้น
ในบทความนี้ฉันคิดว่าคุณคุ้นเคยกับวิธีใช้บอร์ด ESP32 กับ Arduino IDE แล้วหากไม่ถอยกลับไปเริ่มต้นใช้งานการสอน ESP32
เราได้แบ่งESP32 Bluetooth ที่สมบูรณ์ ออกเป็นสามส่วนเพื่อความสะดวกในการทำความเข้าใจ ดังนั้นขอแนะนำให้อ่านสองบทแรกก่อนที่จะเริ่มด้วยบทแนะนำนี้
- Serial Bluetooth บน ESP32 สลับ LED จากโทรศัพท์มือถือ
- เซิร์ฟเวอร์ BLE เพื่อส่งข้อมูลระดับแบตเตอรี่ไปยังโทรศัพท์มือถือโดยใช้บริการ GATT
- ไคลเอนต์ BLE เพื่อสแกนหาอุปกรณ์ BLE และทำหน้าที่เป็นสัญญาณเตือน
เราได้กล่าวถึงบทช่วยสอนสองบทแรกแล้วที่นี่เรากำลังดำเนินการกับบทสุดท้ายเพื่ออธิบาย ESP32 เป็นไคลเอนต์ BLE
วัสดุที่จำเป็น
- คณะกรรมการพัฒนา ESP32
- โหลด AC (หลอดไฟ)
- โมดูลรีเลย์
ฮาร์ดแวร์
ฮาร์ดแวร์สำหรับโครงการไคลเอนต์ ESP32 BLEนี้ค่อนข้างธรรมดาเนื่องจากเวทมนตร์ส่วนใหญ่เกิดขึ้นภายในโค้ด ESP32 ต้องสลับไฟ AC (โหลด) เมื่อสัญญาณ Bluetooth ถูกค้นพบหรือสูญหาย ในการสลับโหลดนี้เราจะใช้รีเลย์และเนื่องจากพิน GPIO ของ ESP32 เข้ากันได้กับ 3.3V เท่านั้นเราจึงต้องมีโมดูลรีเลย์ที่สามารถขับเคลื่อนด้วย 3.3V เพียงตรวจสอบว่าทรานซิสเตอร์ใดที่ใช้ในโมดูลรีเลย์หากเป็น BC548 คุณสามารถสร้างวงจรของคุณเองได้โดยทำตามแผนภาพวงจรด้านล่าง
คำเตือน:วงจรเกี่ยวข้องกับแรงดันไฟ 220 โวลต์ AC โดยตรง ระวังสายไฟที่มีกระแสไฟฟ้าและอย่าทำให้ไฟฟ้าลัดวงจร คุณได้รับการเตือนแล้ว
เหตุผลเบื้องหลังการใช้ BC548 มากกว่า BC547 หรือ 2N2222 ก็คือพวกมันมีแรงดันไฟฟ้าฐานต่ำซึ่งสามารถกระตุ้นได้ด้วย 3.3V เท่านั้นรีเลย์ใช้ที่นี่เป็นรีเลย์ 5Vดังนั้นเรากำลังจะมี Vin ขาที่ได้รับ 5V แบบสายไฟ ขากราวด์เชื่อมต่อกับกราวด์ของวงจร ตัวต้านทาน R1 1K ใช้เป็นตัวต้านทานลิมิตเตอร์กระแสพื้นฐาน สายเฟสเชื่อมต่อกับขา NO ของรีเลย์และพินทั่วไปของรีเลย์เชื่อมต่อกับโหลดและปลายอีกด้านของโหลดเชื่อมต่อกับ Neutral คุณสามารถสลับตำแหน่งของ Phase และ Neutral ได้ แต่ระวังอย่าให้สั้นโดยตรง กระแสไฟฟ้าควรผ่านLoad (Bulb) เสมอฉันใช้โมดูลรีเลย์เพื่อทำให้สิ่งต่างๆง่ายขึ้นและโหลดที่นี่คือหลอดไฟ LED โฟกัส การตั้งค่าของฉันมีลักษณะดังนี้ด้านล่าง
หากคุณต้องการข้ามฮาร์ดแวร์ในตอนนี้คุณสามารถใช้ GPIO 2 พินแทน GPIO 13 พินเพื่อสลับ LED ออนบอร์ดบน ESP32 วิธีนี้แนะนำสำหรับผู้เริ่มต้น
รับที่อยู่บลูทู ธ ของเซิร์ฟเวอร์ของคุณ (ที่อยู่ของวงออกกำลังกาย)
อย่างที่บอกไปก่อนหน้านี้เราจะตั้งโปรแกรม ESP32 เพื่อทำหน้าที่เป็นไคลเอนต์ (คล้ายกับโทรศัพท์) และเชื่อมต่อกับเซิร์ฟเวอร์ซึ่งเป็นวงออกกำลังกายของฉัน (Lenovo HW-01) สำหรับไคลเอนต์ที่จะเชื่อมต่อกับเซิร์ฟเวอร์จะต้องทราบที่อยู่บลูทู ธ ของเซิร์ฟเวอร์ เซิร์ฟเวอร์บลูทู ธ ทุกตัวเช่นวงออกกำลังกายของฉันที่นี่มีที่อยู่บลูทู ธ เฉพาะของตัวเองซึ่งเป็นแบบถาวร คุณสามารถเชื่อมโยงสิ่งนี้กับที่อยู่ MAC ของแล็ปท็อปหรือโทรศัพท์มือถือของคุณ
ในการรับที่อยู่นี้จากเซิร์ฟเวอร์เราใช้แอพพลิเคชั่นที่เรียกว่า nRF connectจากสารกึ่งตัวนำของนอร์ดิกซึ่งเราได้ใช้สำหรับบทช่วยสอนก่อนหน้านี้แล้ว สามารถใช้ได้ฟรีสำหรับทั้งผู้ใช้ IOS และ Android เพียงดาวน์โหลดเปิดแอปพลิเคชันและสแกนหาอุปกรณ์บลูทู ธ ในบริเวณใกล้เคียง แอปพลิเคชันจะแสดงรายการอุปกรณ์ BLE ทั้งหมดที่พบ Mine มีชื่อว่า HW-01 เพียงแค่มองด้านล่างชื่อและคุณจะพบที่อยู่ฮาร์ดแวร์ของเซิร์ฟเวอร์ดังที่แสดงด้านล่าง
ดังนั้นที่อยู่ฮาร์ดแวร์ESP32 BLEของวงฟิตเนสของฉันคือ C7: F0: 69: F0: 68: 81 คุณจะมีชุดตัวเลขที่แตกต่างกันในรูปแบบเดียวกัน เพียงจดบันทึกไว้เนื่องจากเราจำเป็นต้องใช้เมื่อเราตั้งโปรแกรม ESP32 ของเรา
การขอรับบริการและ UUID ลักษณะเฉพาะของเซิร์ฟเวอร์
เอาล่ะตอนนี้เราได้ระบุเซิร์ฟเวอร์ของเราโดยใช้ที่อยู่ BLE แต่เพื่อที่จะสื่อสารกับมันเราจำเป็นต้องพูดภาษาของบริการและลักษณะเฉพาะซึ่งคุณจะเข้าใจได้หากคุณได้อ่านบทแนะนำก่อนหน้านี้ ในบทช่วยสอนนี้ฉันใช้ลักษณะการเขียนของเซิร์ฟเวอร์ของฉัน (วงออกกำลังกาย) เพื่อจับคู่กับมัน ดังนั้นสำหรับการจับคู่กับอุปกรณ์เราจำเป็นต้องมี UUID ลักษณะโฆษณาบริการซึ่งเราสามารถรับได้อีกครั้งด้วยแอปพลิเคชันเดียวกัน
เพียงคลิกที่ปุ่มเชื่อมต่อบนแอปพลิเคชันของคุณและค้นหาลักษณะการเขียนบางอย่างซึ่งแอปพลิเคชันจะแสดง UUID ของบริการและ UUID ลักษณะเฉพาะ เหมืองแสดงอยู่ด้านล่าง
ที่นี่ UUID บริการและ UUID ลักษณะเหมือนกัน แต่ไม่จำเป็นต้องเหมือนกัน จด UUID ของเซิร์ฟเวอร์ของคุณ เหมืองถูกบันทึกว่า
UUID บริการ: 0000fee7-0000-1000-8000-00805f9b34fb ลักษณะเฉพาะ UUID: 0000fee7-0000-1000-8000-00805f9b34fb
ไม่บังคับให้ใช้ลักษณะการเขียน คุณสามารถใช้บริการที่ถูกต้องและ UUID ลักษณะเฉพาะของเซิร์ฟเวอร์ที่แสดงในแอปพลิเคชัน
การเขียนโปรแกรม ESP32 เพื่อทำหน้าที่เป็นไคลเอนต์สำหรับ Proximity Switch Application
แนวคิดของโปรแกรมคือทำให้ ESP32 ทำหน้าที่เป็นไคลเอนต์ที่คอยสแกนหาอุปกรณ์บลูทู ธ เมื่อพบเซิร์ฟเวอร์ของเรา (วงออกกำลังกาย) จะตรวจสอบรหัสฮาร์ดแวร์และจะสลับแสงผ่านพิน GPIO 13 โอเค! ! แต่มีปัญหาอย่างหนึ่งคือเซิร์ฟเวอร์ BLE ทั้งหมดจะมีระยะ 10 เมตรซึ่งมากเกินไปหน่อย ดังนั้นหากเราพยายามสร้างสวิตช์ความใกล้เคียงเพื่อเปิดไฟเปิดประตูช่วงนี้จะสูงมาก
เพื่อลดช่วงของเซิร์ฟเวอร์ BLE เราสามารถใช้ตัวเลือกการจับคู่ เซิร์ฟเวอร์ BLE และไคลเอนต์จะยังคงจับคู่กันก็ต่อเมื่อทั้งคู่อยู่ในระยะ 3-4 เมตร เหมาะสำหรับการใช้งานของเรา ดังนั้นเราจึงทำให้ ESP32 ไม่เพียง แต่ค้นพบเซิร์ฟเวอร์ BLE เท่านั้น แต่ยังเชื่อมต่อกับเซิร์ฟเวอร์และตรวจสอบให้แน่ใจว่ายังคงจับคู่อยู่หรือไม่ ตราบเท่าที่พวกเขาจะจับคู่โคมไฟ AC จะยังคงอยู่เมื่อช่วงเกินจับคู่จะหายไปและหลอดไฟจะถูกปิดโปรแกรมตัวอย่าง ESP32 BLE ที่สมบูรณ์ที่จะทำเช่นเดียวกันมีให้ที่ท้ายหน้านี้ ด้านล่างนี้ฉันจะแบ่งรหัสออกเป็นตัวอย่างเล็ก ๆ และลองอธิบาย
หลังจากรวมไฟล์ส่วนหัวแล้วเราจะแจ้ง ESP32 เกี่ยวกับที่อยู่ BLE บริการและ UUID ลักษณะเฉพาะที่เราได้รับผ่านแอปพลิเคชันการเชื่อมต่อ nRF ตามที่อธิบายไว้ในหัวข้อข้างต้น โค้ดมีลักษณะดังนี้
คง BLEUUID serviceUUID ("0000fee7-0000-1000-8000-00805f9b34fb"); // บริการ UUID ของสายรัดข้อมือฟิตเนสที่ได้รับจากแอปพลิเคชั่นเชื่อมต่อ nRF คง BLEUUID charUUID ("0000fee7-0000-1000-8000-00805f9b34fb"); // UUID ลักษณะเฉพาะของสายฟิตเนสที่ได้รับจากแอปพลิเคชั่นเชื่อมต่อ nRF String My_BLE_Address = "c7: f0: 69: f0: 68: 81"; // ฮาร์ดแวร์ Bluetooth MAC ของสายฟิตเนสของฉันจะแตกต่างกันไปสำหรับทุกวงที่ได้รับผ่านแอปพลิเคชันการเชื่อมต่อ nRF
ตามด้วยสิ่งนั้นในโปรแกรมเรามี connectToserver และ MyAdvertisedDeviceCallback ซึ่งเราจะติดต่อกลับในภายหลัง จากนั้นภายใน การตั้งค่า ฟังก์ชั่นที่เราเริ่มต้นการตรวจสอบอนุกรมและทำให้ BLE บน ESP ในการสแกนสำหรับอุปกรณ์ หลังจากการสแกนเสร็จสมบูรณ์สำหรับอุปกรณ์ BLE ทุกเครื่องที่ค้นพบฟังก์ชัน MyAdvertisedDeviceCallbacks จะถูกเรียก
นอกจากนี้เรายังเปิดใช้งานการสแกนที่ใช้งานอยู่เนื่องจากเรากำลังเปิด ESP32 ด้วยพลังงานหลักสำหรับแอปพลิเคชันแบตเตอรี่จะปิดเพื่อลดการใช้กระแสไฟฟ้า พินทริกเกอร์รีเลย์เชื่อมต่อกับ GPIO 13 ในฮาร์ดแวร์ของเราดังนั้นเราจึงประกาศด้วยว่าพิน GPIO 13 เป็นเอาต์พุต
การตั้งค่าเป็นโมฆะ () { Serial.begin (115200); // เริ่มการตรวจสอบอนุกรม Serial.println ("โปรแกรม ESP32 BLE Server"); // ข้อความแนะนำ BLEDevice:: init (""); pBLEScan = BLEDevice:: getScan (); // สร้างการสแกนใหม่ pBLEScan-> setAdvertisedDeviceCallbacks (ใหม่ MyAdvertisedDeviceCallbacks ()); // เรียกคลาสที่กำหนดไว้ข้างบน pBLEScan-> setActiveScan (true); // การสแกนที่ใช้งานใช้พลังงานมากกว่า แต่ได้ผลลัพธ์ที่เร็วกว่า pinMode (13, OUTPUT) // ประกาศขา LED ในตัวเป็นเอาต์พุต }
ภายในฟังก์ชัน MyAdvertisedDeviceCallbacks เราพิมพ์บรรทัดซึ่งจะแสดงรายการชื่อและข้อมูลอื่น ๆ ของอุปกรณ์ BLE ที่ค้นพบ เราต้องการรหัสฮาร์ดแวร์ของอุปกรณ์ BLE ที่ค้นพบเพื่อที่เราจะได้เปรียบเทียบกับอุปกรณ์ที่ต้องการ ดังนั้นเราจึงใช้ตัวแปร Server_BLE_Address เพื่อรับที่อยู่ของอุปกรณ์จากนั้นจึงแปลงจากประเภท BLEAddress เป็นสตริง
คลาส MyAdvertisedDeviceCallbacks: สาธารณะ BLEAdvertisedDeviceCallbacks { โมฆะ onResult (BLEAdvertisedDevice AdvertisedDevice) { Serial.printf ("Scan Result:% s \ n", advertisingDevice.toString (). c_str ()); Server_BLE_Address = BLEAddress ใหม่ (AdvertisedDevice.getAddress ()); Scaned_BLE_Address = Server_BLE_Address-> toString (). c_str (); } };
ภายในฟังก์ชัน ลูป เราจะสแกนเป็นเวลา 3 วินาทีและใส่ผลลัพธ์ไว้ใน foundDevices ซึ่งเป็นวัตถุจาก BLEScanResults หากเราพบอุปกรณ์หนึ่งหรือมากกว่าหนึ่งเครื่องโดยการสแกนเราจะเริ่มตรวจสอบว่าที่อยู่ BLE ที่ค้นพบนั้นตรงกับที่เราป้อนในโปรแกรมหรือไม่ หากการจับคู่เป็นค่าบวกและอุปกรณ์ไม่ได้จับคู่ก่อนหน้านี้เราจะลองจับคู่อุปกรณ์โดยใช้ฟังก์ชัน connectToserver นอกจากนี้เรายังใช้คำสั่ง Serial เพียงเล็กน้อยเพื่อความเข้าใจวัตถุประสงค์
ในขณะที่ (foundDevices.getCount ()> = 1) { if (Scaned_BLE_Address == My_BLE_Address && จับคู่ == false) { Serial.println ("Found Device: -)… เชื่อมต่อกับเซิร์ฟเวอร์เป็นไคลเอนต์"); ถ้า (connectToserver (* Server_BLE_Address)) {
ภายในฟังก์ชัน connectToserver เราใช้ประโยชน์จาก UUID เพื่อจับคู่กับเซิร์ฟเวอร์ BLE (วงออกกำลังกาย) ในการเชื่อมต่อกับเซิร์ฟเวอร์ ESP32 ต้องทำหน้าที่เป็นไคลเอนต์ดังนั้นเราจึงสร้างไคลเอนต์โดยใช้ฟังก์ชัน createClient () จากนั้นเชื่อมต่อกับที่อยู่ของเซิร์ฟเวอร์ BLE จากนั้นเราค้นหาบริการและลักษณะเฉพาะโดยใช้ค่า UUID และลองเชื่อมต่อกับมัน เมื่อการเชื่อมต่อสำเร็จฟังก์ชันจะส่งคืนค่าจริงและหากไม่ส่งคืนค่าเท็จ โปรดทราบว่าไม่จำเป็นต้องมีบริการและ UUID ลักษณะเฉพาะเพื่อจับคู่กับเซิร์ฟเวอร์ แต่จะทำเพื่อความเข้าใจของคุณเท่านั้น
บูล connectToserver (BLEAddress pAddress) { BLEClient * pClient = BLEDevice:: createClient (); Serial.println ("- สร้างไคลเอนต์"); // เชื่อมต่อกับเซิร์ฟเวอร์ BLE pClient-> เชื่อมต่อ (pAddress); Serial.println ("- เชื่อมต่อกับ fitnessband"); // ขอรับการอ้างอิงถึงบริการที่เราอยู่ในเซิร์ฟเวอร์ BLE ระยะไกล BLERemoteService * pRemoteService = pClient-> getService (serviceUUID); ถ้า (pRemoteService! = nullptr) { Serial.println ("- พบบริการของเรา"); กลับจริง; } else กลับเท็จ; // ขอรับการอ้างอิงถึงคุณลักษณะในบริการของเซิร์ฟเวอร์ BLE ระยะไกล pRemoteCharacteristic = pRemoteService->getCharacteristic (charUUID); ถ้า (pRemoteCharacteristic! = nullptr) Serial.println ("- พบลักษณะเฉพาะของเรา"); กลับจริง; }
หากการเชื่อมต่อสำเร็จ GPIO พิน 13 จะสูงและการควบคุมจะถูกส่งออกไปนอกลูปโดยใช้คำสั่งแบ่ง ตัวแปรบูลีนที่จับคู่ยังถูกตั้งค่าให้เป็นจริง
ถ้า (connectToserver (* Server_BLE_Address)) { คู่ = true; Serial.println ("******************** LED เปิดอยู่ ********************** ** "); digitalWrite (13, สูง); หยุดพัก; }
หลังจากจับคู่สำเร็จและพิน GPIO เปิดอยู่เราต้องตรวจสอบว่าอุปกรณ์ยังอยู่ในระยะหรือไม่ เนื่องจากตอนนี้จับคู่อุปกรณ์แล้วบริการสแกน BLE จะไม่สามารถมองเห็นได้อีกต่อไป เราจะพบอีกครั้งก็ต่อเมื่อผู้ใช้ออกจากพื้นที่ ดังนั้นเราต้องสแกนหาเซิร์ฟเวอร์ BLE และหากเราพบว่าเราต้องตั้งค่าพิน GPIO ให้ต่ำดังที่แสดงด้านล่าง
ถ้า (Scaned_BLE_Address == My_BLE_Address && จับคู่ == true) { Serial. println ("อุปกรณ์ของเราอยู่นอกระยะ"); จับคู่ = เท็จ; อนุกรม. println ("******************** LED OOOFFFFF ************************"); digitalWrite (13, ต่ำ); ESP.restart (); หยุดพัก; }
การทำงานและการทดสอบ
เมื่อคุณพร้อมกับโปรแกรมและการตั้งค่าฮาร์ดแวร์แล้วเพียงแค่อัปโหลดโค้ดไปยัง ESP32 และจัดการการตั้งค่าทั้งหมดตามที่แสดงด้านล่าง
คุณควรสังเกตเห็นโคมไฟได้รับการเปิดในเร็วที่สุดเท่าที่วงออกกำลังกาย (เซิร์ฟเวอร์) คู่กับ ESP32 คุณยังสามารถตรวจสอบได้โดยสังเกตสัญลักษณ์การเชื่อมต่อ Bluetooth บนแถบออกกำลังกาย เมื่อจับคู่แล้วให้ลองเดินห่างจาก ESP32 และเมื่อคุณข้ามไป 3-4 เมตรคุณจะสังเกตเห็นว่าสัญลักษณ์ Bluetooth บนนาฬิกาหายไปและการเชื่อมต่อขาดหายไป ตอนนี้ถ้าคุณมองไปที่หลอดไฟมันจะถูกปิด เมื่อคุณเดินกลับเข้าไปในอุปกรณ์จะถูกจับคู่อีกครั้งและไฟจะสว่างขึ้น การทำงานทั้งหมดของโครงการสามารถพบได้ในวิดีโอด้านล่าง
หวังว่าคุณจะสนุกกับโครงการและเรียนรู้สิ่งใหม่ ๆ ระหว่างทาง หากคุณประสบปัญหาใด ๆ ในการทำให้มันใช้งานได้อย่าลังเลที่จะโพสต์ปัญหาในฟอรัมหรือแม้แต่ในส่วนความคิดเห็นด้านล่าง