DEV Community

Pawat Saengduan
Pawat Saengduan

Posted on

เปิด-ปิดไฟผ่านบอร์ด ESP32 โดยใช้ ESP-BLE-MESH ร่วมกับ nRF Mesh

สวัสดีคร้าบบผม..!?!! กลับมากันอีกแล้วนะครับ วันนี้มาทำอะไร.?? 😕

หน้าปก

เปิด-ปิดไฟผ่านบอร์ด ESP32 โดยใช้ ESP-BLE-MESH ร่วมกับ nRF Mesh

นั่นเองครับผม.. เอาเป็นว่ามาเริ่มกันเลยดีกว่าครับผม!! 😁


ESP-MESH Network
ESP Mesh คืออะไร..?!?? 🤔 ด้วยความที่ว่ามันค่อนข้างละเอียด.. ให้ไปอ่านใน Docs เอาเองน่าจะเข้าใจมากกว่า.. ถ้าผมสรุปเองน่าจะงงมากๆ 5555+ 😂

มาๆ เริ่มลงซอฟต์แวร์ที่ต้องใช้บนคอมพิวเตอร์ก่อนนะครับ:

  • Git
  • ESP-IDF ( ESP-IDF เป็นเฟรมเวิร์คที่ทำโดย Espressif ลงถึงขั้นตอนที่ 4 )

ต่อไป.. ก็ซอฟต์แวร์ที่ใช้ในโทรศัพท์ ( แนะนำ Android ):

  • [ ANDROID ] nRF Mesh (v.2.1.4)
  • [ IOS ] nRF Mesh (v.2.0.0 | Build เองนะจ้า)

nRF Mesh สำหรับควบคุม Node นะครับ ใช้ได้แค่ Version 2.0.0 -- 2.1.4


ต่อไปก็.. เขียนโค้ดฮะ... ซึ่งเราจะใช้ Example ที่ ESP-IDF มีมาให้นะครับ


เขียนโค้ด

Connect กับ Node

  1. มาถึงเราก็ลง ESP-IDF เลยย... ( ลงที่ Home Folder จะดีที่สุด )

  2. เปิด Terminal มาแล้ว.. ก็ cd เข้า
    Alt Text

  3. เราก็มา Config ว่าเราใช้บอร์ดอะไรซึ่งใน Examples นี้ใช้บอร์ด ESP32 นั้นเอง
    idf.py menuconfig

  4. พอรันแล้วก็รอสักครู่ แล้วสักพักจะขึ้น Menu ให้เลือกตามนี้
    Root Menuconfig

    1. กด ลูกศรขึ้นหรือลง เพื่อขยับ Options
    2. กด RETURN เพื่อเลือก Options
  5. ซึ่งเราจะเลือก Examples Configuration แล้วเราก็จะได้แบบนี้

    'Example Configuration' Menuconfig

  6. เราก็เลือก Board selection for BLE Mesh (ESP32-xxxx)

    Alt Text

  7. ต่อไปเราก็เลือกบอร์ดโดยการกด RETURN (ENTER) เสร็จแล้วเราก็ RETURN ออกมาแล้วก็ Save โดยการกด S แล้วกด RETURN (ENTER) แล้วก็กด Q เพื่อออก

  8. ต่อไปเราก็จะไปตั้งค่าว่า Pin ไหนที่เราต้องการเปิดปิด Pin ซึ่งจะอยู่ใน root/main/board.h

    Code

  9. ต่อไป Build โค้ดของเราโดยพิมพ์คำว่า

idf.py build
  1. หลังจาก Build เราก็มา Flash กันซึ่งเราก็เสียบบอร์ดกับคอมพิวเตอร์ก่อนแล้ว พิมพ์คำว่า
idf.py flash

พอพิมพ์เสร็จแล้วก็รันเลย หลังจากนั้นมันก็จะ Flash ทันที
ถ้ามัน Flash ผ่านก็ไปดูในส่วนของ nRF Mesh กันต่อเลยคร้าบบ!!


nRF Mesh

nRF Mesh (v2.1.4) เป็นแอพสำหรับ Interface กับเน็ตเวิร์คประเภท Mesh นะครับ

  1. มาถึงก็เปิดแอพ nRF Mesh เลยก่อนเลยครับผม..
    nRF Mesh 2.1.4

  2. กดปุ่มสีฟ้ารูปบวกด้านขวาล่างเพื่อเพิ่ม Node
    Add Node Buttons

  3. เปิด Bluetooth แล้วหา Device ที่ชื่อว่า ESP-BLE-MESH แล้วกดเข้าไปได้เลย
    Add Node Device

  4. ต่อไปมันก็จะขึ้น ข้อมูลของ Mesh Device ที่เราเลือกครับ แต่เป็นเพียงข้อมูลเล็กๆ
    Device

    • เราสามารถเปลี่ยนชื่อ Device ได้นะครับ แสดงบนแอพเท่านั้น บนรายชื่อที่ให้ Add Node จะเป็นชื่อเดิม Rename Mesh Device
  5. ต่อไปเราก็กด Identify มันก็จะแสดงผลข้อมูลของ Mesh Device
    Identify Button
    Mesh Info

  6. ต่อไปเราก็กด Provision เพื่อ Connect กับ Node เลยครับ
    Provision Button
    While Provision

  7. ถ้าไม่มี Error อะไรขึ้นก็จะเป็นแบบนี้ครับ
    Provision Success
    แต่ถ้าหากมี แล้วขึ้นคำว่า Initial Configuration Failed ก็ให้

    1. กด CONNECT ซึ่งอยู่ด้านขวาบน CONNECT Button
    2. หลังจากนั้นก็กดเข้า Device ที่ปรากฎหน้า Network Click the Device
    3. หลังจากนั้นก็กด 'GET COMPOSITION DATA' ที่อยู่ใต้ Elements Click GET COMPOSITION DATA
    4. กด 'ADD' ที่อยู่ใต้ Added App Keys Click ADD
    5. หลังจากนั้นก็เลือกอันใดสักอันนึงก็เสร็จแล้วคร้าบบ

ตั้งค่า Node

  1. มาถึงเราก็มาที่ Elements ในบล็อกแต่ละอันจะมี Generic On Off Server อยู่
    แสดง Elements

  2. เราจะกดเข้าไปใน Generic On Off Server อันแรก

  3. ต่อไปเราต้องเพิ่ม Keys เพื่อให้มันสามารถทำงานได้
    Bound Keys

  4. เราก็กดเข้าไปแล้วเลือก Keys เลย.!!
    Bounds Keys Success

    • เราก็ทำแบบนี้ ทุกอันที่เป็น Generic On Off Server

ใช้งาน Node

  1. หลังจากที่เราเสร็จ Config เสร็จแล้ว เราก็เข้าไปที่ Elements เลือก Generic On Off Server หลังจากนั้นก็เลื่อนมาที่ **Generic On Off Controls
    On Off Controls

  2. เราก็กด READ STATE เพื่อ Sync State ของ Device ได้แล้วเราก็กด ON/OFF ตามที่ต้องการได้เลยครับ
    On Off

ผลลัพท์

คร้าบบ!! เสร็จแล้วนะครับ.. 😍 ก็สำหรับบทความนี้ก็มีแค่นี้แหละครับ เจอกันบทความหน้านะคร้าบบ..!!?! สวัสดีครับ!!?!!

Top comments (0)