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 ห่างจากโมเดลซ็อกเก็ต