11.1. เหตุใดจึงใช้ Bluetooth

การเชื่อมต่อเครือข่ายทำให้กล้องเชื่อมต่อกับเครือข่าย Wi-Fi หรือ Ethernet ได้ เพื่อให้สามารถสื่อสารกับอุปกรณ์ใดก็ตามที่เข้าถึงได้จากเครือข่ายนั้น ไม่ว่าจะเป็นแล็ปท็อปในห้องถัดไป เซิร์ฟเวอร์บนทวีปอื่น หรือโทรศัพท์ที่ใช้เครือข่ายมือถือ อย่างไรก็ตาม การเชื่อมต่อแบบนี้มีข้อกำหนดเบื้องต้น จะต้องมีเครือข่ายที่พร้อมใช้งาน มีจุดเชื่อมต่อในระยะที่เข้าถึงได้ มีข้อมูลการเข้าสู่ระบบที่ถูกต้อง และมีเราเตอร์ที่พร้อมจัดสรร IP ให้กล้อง นอกจากนี้ กล้องยังต้องคงให้วิทยุ (หรือพอร์ต Ethernet) ทำงานอย่างต่อเนื่องเพื่อรักษาการเชื่อมต่อ

Bluetooth ครอบคลุมกรณีตรงกันข้าม นั่นคือระยะสั้น ไม่ต้องพึ่งพาโครงสร้างพื้นฐาน และใช้พลังงานต่ำ กล้องและโทรศัพท์ในห้องเดียวกันสามารถแลกเปลี่ยนข้อมูลผ่านการเชื่อมต่อวิทยุโดยตรง โดยไม่มีสิ่งใดขวางกั้น ไม่ต้องใช้จุดเชื่อมต่อ ไม่ต้องมีเราเตอร์ และไม่จำเป็นต้องให้อุปกรณ์ฝั่งใดฝั่งหนึ่งเชื่อมต่อกับเครือข่ายใดเลย วิทยุจะอยู่ในสถานะปิดเป็นส่วนใหญ่ระหว่างช่วงที่มีการรับส่งข้อมูลสั้นๆ จึงทำให้แบตเตอรีที่อยู่ได้แค่วันเดียวบน Wi-Fi สามารถใช้งานได้นานหลายเดือน

11.1.1. เมื่อ Bluetooth คือเครื่องมือที่เหมาะสม

กรณีทั่วไปบนกล้อง:

  • โทรศัพท์หรือแท็บเล็ตจับคู่กับกล้อง ผู้ใช้ที่อยู่ใกล้เคียงเปิดแอปบนโทรศัพท์เพื่อตั้งค่ากล้อง อ่านสถานะ หรือดาวน์โหลดผลลัพธ์ โดยไม่ต้องให้ทั้งสองอุปกรณ์เชื่อมต่อกับเครือข่าย Wi-Fi เดียวกันก่อน โทรศัพท์ส่วนใหญ่รองรับ Bluetooth Low Energy โดยตรง ดังนั้นประสบการณ์ใช้งานของผู้ใช้คือ "เปิดแอปแล้วกดเชื่อมต่อ" ไม่ใช่ "เข้าร่วมเครือข่ายนี้ก่อน"

  • อุปกรณ์สวมใส่หรือเซนเซอร์รายงานข้อมูลไปยังกล้อง สายคาดอกวัดอัตราการเต้นของหัวใจ เทอร์โมมิเตอร์ บีคอน สวิตช์สัมผัส ล้วนเป็นอุปกรณ์ที่ใช้แบตเตอรีซึ่งออกแบบมาสำหรับ Bluetooth Low Energy กล้องเชื่อมต่อในฐานะไคลเอนต์ อ่านค่าต่างๆ และนำข้อมูลไปรวมกับสิ่งที่กำลังประมวลผลอยู่

  • กล้องเผยแพร่ฟีดสถานะขนาดเล็ก ระดับแบตเตอรี วัตถุที่ตรวจจับล่าสุด อัตราเฟรม ตัวเลขเหล่านี้เปิดให้อุปกรณ์ใกล้เคียงอ่านได้ การจับคู่เป็นทางเลือก สำหรับข้อมูลที่ไม่ละเอียดอ่อน กล้องสามารถโฆษณาค่าต่างๆ โดยตรงโดยไม่ต้องเชื่อมต่อเลย

  • กล้องสองตัว (หรือกล้องกับไมโครคอนโทรลเลอร์) แชร์ข้อมูลโดยไม่ผ่านเครือข่าย ทั้งสองฝั่งรู้จักกัน อยู่ในอาคารเดียวกัน และไม่มีเหตุผลที่ข้อมูลต้องเดินทางขึ้นไปยังคลาวด์แล้วย้อนกลับมาเพียงเพื่อข้ามห้อง

11.1.2. เมื่อการเชื่อมต่อเครือข่ายคือเครื่องมือที่เหมาะสมกว่า

ข้อจำกัดของ Bluetooth ทำให้ไม่เหมาะกับหลายกรณีทั่วไป:

  • คู่สื่อสารที่อยู่ไกลเกินระยะ Bluetooth Low Energy ใช้งานได้จริงในระยะสองสามเมตร และในที่โล่งดีที่สุดก็แค่หลายสิบเมตร อุปกรณ์ที่อยู่คนละฝั่งของอาคาร คนละเมือง หรือบนอินเทอร์เน็ต ต้องใช้ Wi-Fi หรือ Ethernet

  • การเชื่อมต่อที่ต้องการแบนด์วิดท์สูง Bluetooth Low Energy ส่งข้อมูลได้จริงในอัตราหลักสิบถึงไม่กี่ร้อยกิโลบิตต่อวินาที การสตรีมเฟรมหรือวิดีโอที่มีความหมายต้องใช้ Wi-Fi

  • การสื่อสารแบบกลุ่มหลายต่อหลายบนโครงสร้างพื้นฐานร่วมกัน อุปกรณ์จำนวนมากในห้องที่ต่างสื่อสารกับเซิร์ฟเวอร์เดียว หรือกล้องหลายตัวที่แชร์ผลลัพธ์กัน รูปแบบนี้เหมาะสำหรับเครือข่าย IP

11.1.3. Low Energy ไม่ใช่ Classic

"Bluetooth" ในการใช้งานทั่วไปครอบคลุมสแต็กวิทยุสองแบบที่แตกต่างกัน Classic Bluetooth คือแบบที่ใช้ในหูฟังไร้สาย ระบบเสียงในรถยนต์ และการเชื่อมต่อคีย์บอร์ด/เมาส์ ซึ่งเป็นวิทยุระดับเสียงและเสียง สแต็กที่ซับซ้อนพอสมควร และใช้พลังงานสังเกตเห็นได้ชัด Bluetooth Low Energy (BLE) เป็นโปรโตคอลแยกต่างหากและใหม่กว่า ที่ใช้ชื่อแบรนด์เดียวกันและย่านความถี่ 2.4 GHz เหมือนกัน แต่มีสิ่งอื่นที่เหมือนกันน้อยมาก ออกแบบมารอบการส่งวิทยุที่สั้นและไม่บ่อยนักเพื่อให้การใช้พลังงานเฉลี่ยต่ำมาก และใช้โมเดลข้อมูลแบบ key/value แทนการสตรีมเสียง

MicroPython บนกล้องรองรับเฉพาะ BLE เท่านั้น Classic Bluetooth ไม่ได้เป็นส่วนหนึ่งของ API เลย คำว่า "Bluetooth" ด้านล่างหมายถึง BLE

11.1.4. สิ่งที่เปลี่ยนแปลงไปจากโมเดลเครือข่าย

BLE มีสแต็กห้าชั้นเหมือนกับเครือข่าย แต่ชั้นบนทำงานแตกต่างกัน:

  • ไม่มีนามธรรมแบบ "เปิดซ็อกเก็ตแล้วส่งไบต์" BLE สร้างขึ้นรอบ ฐานข้อมูล key/value ขนาดเล็กที่ฝั่งหนึ่งเป็นเจ้าของและอีกฝั่งอ่าน เขียน หรือสมัครรับการแจ้งเตือน กล้องเผยแพร่ค่าที่มีชื่อ (ระดับแบตเตอรี อุณหภูมิ รีจิสเตอร์คำสั่ง) และเพียร์อ่านหรือติดตามค่าเหล่านั้น

  • ไม่มีการระบุที่อยู่ตามชื่อ อุปกรณ์ระบุตัวเองโดยการ โฆษณา การส่งสัญญาณสั้นๆ ที่อธิบายว่าตัวเองคืออะไร และเพียร์ สแกน หาสัญญาณเหล่านั้นแล้วเลือกเชื่อมต่อ

  • วิทยุส่วนใหญ่อยู่นิ่ง ทั้งสองฝั่งตกลงกันในเวลาเชื่อมต่อว่าจะตื่นขึ้นมาสื่อสารบ่อยแค่ไหน ระหว่างนั้นทั้งสองกลับไปสู่สถานะสลีป

ความแตกต่างสามประการนี้คือสิ่งที่ทำให้ BLE API ห่างจากโมเดลซ็อกเก็ต