เมื่อไม่นานมานี้เราได้แนะนำคุณ
เกี่ยวกับระบบอัตโนมัติ
ตามอัตภาพ ระบบอัตโนมัติทั้งหมดสามารถแบ่งออกเป็นสามประเภท:
หมวด 1 — แยกอุปกรณ์ "อัจฉริยะ" คุณซื้อหลอดไฟ กาน้ำชา ฯลฯ จากผู้ผลิตหลายราย ข้อดี: แต่ละอุปกรณ์ขยายขีดความสามารถและเพิ่มความสะดวกสบาย จุดด้อย: ผู้ผลิตรายใหม่แต่ละรายต้องการแอปพลิเคชันของตนเอง โปรโตคอลของอุปกรณ์จากผู้ผลิตหลายรายมักจะเข้ากันไม่ได้
หมวด 2 — การติดตั้งพีซีบอร์ดเดี่ยวหรือรองรับ x86 ซึ่งจะช่วยขจัดข้อจำกัดด้านพลังการประมวลผล และ MajorDoMo หรือเซิร์ฟเวอร์อื่นๆ สำหรับการจัดการสมาร์ทโฮมก็ได้รับการติดตั้งบนเครื่องนี้แล้ว ดังนั้นอุปกรณ์จากผู้ผลิตส่วนใหญ่จึงเชื่อมต่อกันในพื้นที่ข้อมูลเดียว เหล่านั้น. เซิร์ฟเวอร์ของคุณเองสำหรับบ้านอัจฉริยะจะปรากฏขึ้น ข้อดี: ความเข้ากันได้ภายใต้ศูนย์เดียว ซึ่งช่วยเพิ่มความสามารถในการจัดการ จุดด้อย: หากเซิร์ฟเวอร์ล้มเหลว ระบบทั้งหมดจะกลับสู่ระยะที่ 1 กล่าวคือ แตกกระจายหรือไร้ประโยชน์
หมวด 3 - ตัวเลือกที่ฮาร์ดคอร์ที่สุด ในขั้นตอนการซ่อมแซม การสื่อสารทั้งหมดจะถูกวาง และระบบทั้งหมดจะถูกทำซ้ำ ข้อดี: ทุกอย่างได้รับการปรับปรุงให้สมบูรณ์แบบ จากนั้นบ้านก็จะกลายเป็นสมาร์ทอย่างแท้จริง ข้อเสีย: มีราคาแพงมากเมื่อเทียบกับประเภท 1 และ 2 ต้องคิดทุกอย่างล่วงหน้าและคำนึงถึงรายละเอียดเล็กน้อยทุกประการ
ผู้ใช้ส่วนใหญ่เลือกตัวเลือกที่หนึ่ง จากนั้นจึงไปยังตัวเลือกที่สองได้อย่างราบรื่น แล้วคนที่ดื้อรั้นที่สุดก็จะไปถึงตัวเลือกที่ 3
แต่มีตัวเลือกที่สามารถเรียกได้ว่าเป็นระบบแบบกระจาย: แต่ละอุปกรณ์จะเป็นทั้งเซิร์ฟเวอร์และไคลเอนต์ โดยพื้นฐานแล้ว นี่เป็นความพยายามที่จะรวมตัวเลือกที่ 1 และตัวเลือกที่ 2 เข้าด้วยกัน นำข้อดีทั้งหมดและกำจัดข้อเสียเพื่อให้ได้ค่าเฉลี่ยสีทอง
บางทีอาจมีคนบอกว่าตัวเลือกดังกล่าวได้รับการพัฒนาแล้ว แต่การตัดสินใจดังกล่าวเน้นที่แคบ สำหรับผู้ที่เชี่ยวชาญด้านการเขียนโปรแกรม เป้าหมายของเราคือการลดอุปสรรคในการเข้าสู่ระบบแบบกระจายดังกล่าว ทั้งในรูปแบบของอุปกรณ์ปลายทางและในรูปแบบของการรวมอุปกรณ์ที่มีอยู่เข้ากับระบบของเรา ในกรณีของเทอร์โมสตัท ผู้ใช้เพียงแค่ถอดเทอร์โมสตัทตัวเก่าออก ติดตั้งตัวควบคุมอุณหภูมิอัจฉริยะ และเชื่อมต่อเซ็นเซอร์ที่มีอยู่เข้ากับเทอร์โมสตัท โดยไม่มีขั้นตอนเพิ่มเติมใดๆ
ลองดูการรวมเข้ากับระบบของเราโดยใช้ตัวอย่าง
สมมติว่าเรามีโมดูล Sonoff 8 โมดูลบนเครือข่ายของเรา สำหรับผู้ใช้บางราย การควบคุมผ่านคลาวด์ Sonoff (หมวด 1) ก็เพียงพอแล้ว บางส่วนจะเริ่มใช้เฟิร์มแวร์ของบริษัทอื่น และจะย้ายไปยังหมวดหมู่ 2 ได้อย่างราบรื่น เฟิร์มแวร์ของบริษัทภายนอกจำนวนมากทำงานบนหลักการเดียวกัน นั่นคือ การถ่ายโอนข้อมูลไปยังเซิร์ฟเวอร์ MQTT OpenHub, Majordomo หรือบริการอื่นใดมีจุดประสงค์เดียว - เพื่อรวมอุปกรณ์ที่แตกต่างกันเข้าไว้ในพื้นที่ข้อมูลเดียวที่อยู่บนอินเทอร์เน็ตหรือบนเครือข่ายท้องถิ่น ดังนั้นการมีอยู่ของเซิร์ฟเวอร์จึงเป็นสิ่งจำเป็น นี่คือจุดที่ปัญหาหลักเกิดขึ้น - หากเซิร์ฟเวอร์ล้มเหลว ระบบทั้งหมดจะหยุดทำงานโดยอัตโนมัติ เพื่อป้องกันสิ่งนี้ ระบบจึงมีความซับซ้อนมากขึ้น โดยมีการเพิ่มวิธีการควบคุมด้วยตนเองซึ่งเป็นระบบอัตโนมัติซ้ำซ้อนในกรณีที่เซิร์ฟเวอร์ขัดข้อง
เราใช้เส้นทางที่แตกต่างกัน โดยที่แต่ละอุปกรณ์สามารถพึ่งพาตนเองได้ ดังนั้นเซิร์ฟเวอร์ไม่ได้มีบทบาทชี้ขาด แต่เพียงขยายฟังก์ชันการทำงานเท่านั้น
กลับมาที่การทดลองทางความคิดกันดีกว่า ลองใช้โมดูล Sonoff 8 ตัวเดียวกันอีกครั้งแล้วติดตั้งเฟิร์มแวร์ Lytko ลงไป เฟิร์มแวร์ Lytko ทั้งหมดมีฟังก์ชั่น
"ssdpList":
{
"id": 94967291,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967282,
"ip": "192.168.x.x",
"type": "thermostat"
}
ดังที่คุณเห็นจากตัวอย่าง รายการประกอบด้วยรหัสอุปกรณ์ ที่อยู่ IP บนเครือข่าย ประเภทหน่วย (ในกรณีของเราคือเทอร์โมสตัทแบบ Sonoff) รายการนี้อัปเดตทุกๆ สองนาที (ช่วงเวลานี้เพียงพอที่จะตอบสนองต่อการเปลี่ยนแปลงแบบไดนามิกของจำนวนอุปกรณ์บนเครือข่าย) ด้วยวิธีนี้ เราจะติดตามอุปกรณ์ที่เพิ่ม เปลี่ยนแปลง และปิดใช้งานโดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ รายการนี้ถูกส่งไปยังเบราว์เซอร์หรือแอปพลิเคชันมือถือ และสคริปต์จะสร้างเพจตามจำนวนบล็อกที่กำหนด แต่ละบล็อกสอดคล้องกับอุปกรณ์/เซ็นเซอร์/ตัวควบคุมหนึ่งตัว สายตารายการมีลักษณะดังนี้:
แต่จะเกิดอะไรขึ้นถ้าเซ็นเซอร์วิทยุอื่นๆ เชื่อมต่อกับ esp8266/esp32 ผ่าน cc2530 (ZigBee) หรือ nrf24 (MySensors)?
เกี่ยวกับโครงการ
มีระบบกระจายที่หลากหลายในตลาด ระบบของเราช่วยให้คุณสามารถบูรณาการกับระบบที่ได้รับความนิยมมากที่สุดได้
ด้านล่างนี้เป็นโครงการที่ไม่ทางใดก็ทางหนึ่งที่พยายามเปลี่ยนสถานการณ์ด้วยความที่ผู้ผลิตแต่ละรายไม่เข้ากัน นี่คือตัวอย่างเช่น
ทางเลือกหนึ่งสำหรับการนำ MySensors ไปใช้ก็คือเกตเวย์ที่ใช้ ESP8266 ตัวอย่างที่เหลืออยู่ใน ESP32 และในนั้นคุณสามารถใช้หลักการทำงานของเราในการตรวจจับและสร้างรายการอุปกรณ์ได้
เรามาทำการทดลองทางความคิดกันอีกครั้ง เรามีเกตเวย์ ZESP32 หรือเกตเวย์ SLS หรือ MySensors พวกเขาสามารถรวมเข้าด้วยกันในพื้นที่ข้อมูลเดียวได้อย่างไร? เราจะเพิ่มไลบรารีโปรโตคอล SSDP ให้กับฟังก์ชันมาตรฐานของเกตเวย์เหล่านี้ เมื่อเข้าถึงคอนโทรลเลอร์นี้ผ่าน SSDP คอนโทรลเลอร์จะเพิ่มรายการอุปกรณ์ที่เชื่อมต่อเข้ากับการตอบสนองมาตรฐาน จากข้อมูลนี้ เบราว์เซอร์จะสร้างเพจ โดยทั่วไปจะมีลักษณะดังนี้:
เว็บอินเตอร์เฟส
ใบสมัคร กปภ
"ssdpList":
{
"id": 94967291, // уникальный идентификатор устройства
"ip": "192.168.x.x", // ip адрес в сети
"type": "thermostat" // тип устройства
},
{
"id": 94967292,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 94967293,
"ip": "192.168.x.x",
"type": "thermostat"
},
{
"id": 13587532,
"type": "switch"
},
{
"id": 98412557,
"type": "smoke"
},
{
"id": 57995113,
"type": "contact_sensor"
},
{
"id": 74123668,
"type": "temperature_humidity_pressure_sensor"
},
{
"id": 74621883,
"type": "temperature_humidity_sensor"
}
ตัวอย่างแสดงให้เห็นว่ามีการเพิ่มอุปกรณ์แยกจากกัน มีการเชื่อมต่อเทอร์โมสตัท 3 ตัวพร้อมที่อยู่ IP ของตัวเองและเซ็นเซอร์ 5 ตัวที่มีรหัสเฉพาะเข้าด้วยกัน หากเซ็นเซอร์เชื่อมต่อกับเครือข่าย Wi-Fi เซ็นเซอร์จะมี IP ของตัวเอง หากเชื่อมต่อกับเกตเวย์ ที่อยู่ IP ของอุปกรณ์จะเป็นที่อยู่ IP ของเกตเวย์
เราใช้ WebSocket เพื่อสื่อสารกับอุปกรณ์ สิ่งนี้ช่วยให้คุณลดต้นทุนทรัพยากรให้เหลือน้อยที่สุดเมื่อเทียบกับการรับคำขอและรับข้อมูลแบบไดนามิกเมื่อเชื่อมต่อหรือเปลี่ยนแปลง
ข้อมูลจะถูกดึงโดยตรงจากอุปกรณ์ที่เป็นของบล็อก โดยข้ามเซิร์ฟเวอร์ ดังนั้นหากอุปกรณ์ตัวใดเสีย ระบบก็ยังคงทำงานต่อไป เว็บอินเตอร์เฟสไม่แสดงอุปกรณ์ที่หายไปจากรายการ แต่สัญญาณการสูญเสียหากจำเป็นจะมาในรูปแบบของการแจ้งเตือนในแอปพลิเคชันของผู้ใช้
ความพยายามครั้งแรกในการนำแนวทางนี้ไปใช้คือแอปพลิเคชัน PWA วิธีนี้ช่วยให้คุณสามารถจัดเก็บฐานบล็อกบนอุปกรณ์ของผู้ใช้และขอเฉพาะข้อมูลที่จำเป็นเท่านั้น แต่เนื่องจากลักษณะเฉพาะของโครงสร้างตัวเลือกนี้จึงไม่สมบูรณ์ และมีทางเดียวเท่านั้น - แอปพลิเคชันเนทิฟสำหรับ Android และ IOS ซึ่งขณะนี้อยู่ระหว่างการพัฒนา ตามค่าเริ่มต้น แอปพลิเคชันจะทำงานบนเครือข่ายภายในเท่านั้น หากจำเป็น คุณสามารถถ่ายโอนทุกอย่างไปยังการควบคุมภายนอกได้ ดังนั้นเมื่อผู้ใช้ออกจากเครือข่ายท้องถิ่น แอปพลิเคชันจะสลับไปที่คลาวด์โดยอัตโนมัติ
การควบคุมภายนอก - การทำสำเนาเพจให้สมบูรณ์ เมื่อเปิดใช้งานเพจแล้ว ผู้ใช้สามารถล็อกอินเข้าสู่เซิร์ฟเวอร์และจัดการอุปกรณ์ผ่านบัญชีส่วนตัวของตนได้ ดังนั้น เซิร์ฟเวอร์จึงขยายฟังก์ชันการทำงาน ช่วยให้คุณสามารถจัดการอุปกรณ์ขณะอยู่นอกบ้าน และไม่ผูกกับการส่งต่อพอร์ตหรือ IP เฉพาะ
ดังนั้นตัวเลือกข้างต้นไม่มีข้อเสียของแนวทางเซิร์ฟเวอร์และยังมีข้อดีหลายประการในรูปแบบของความยืดหยุ่นในการเชื่อมต่ออุปกรณ์ใหม่
เกี่ยวกับเทอร์โมสตัท
มาดูระบบควบคุมโดยใช้เทอร์โมสตัทของเราเป็นตัวอย่าง
ที่ให้ไว้:
- การควบคุมอุณหภูมิสำหรับเทอร์โมสตัทแต่ละตัว (แสดงเป็นบล็อกแยกกัน)
- การตั้งค่าตารางการทำงานของเทอร์โมสตัท (เช้า บ่าย เย็น กลางคืน)
- การเลือกเครือข่าย Wi-Fi และเชื่อมต่ออุปกรณ์เข้ากับเครือข่ายนั้น
- การอัปเดตอุปกรณ์ "ทางอากาศ";
- การตั้งค่า MQTT;
- กำหนดค่าเครือข่ายที่อุปกรณ์เชื่อมต่ออยู่
นอกเหนือจากการควบคุมผ่านอินเทอร์เฟซเว็บแล้ว เรายังมอบเวอร์ชันคลาสสิกด้วยการคลิกบนหน้าจอ มีจอภาพ Nextion NX3224T024 ขนาด 2.4 นิ้วอยู่บนเครื่อง ทางเลือกตกอยู่กับเขาเนื่องจากความง่ายในการทำงานกับอุปกรณ์ แต่เรากำลังพัฒนาจอภาพของเราเองโดยใช้ STM32 ฟังก์ชันการทำงานของมันไม่ได้เลวร้ายไปกว่า Nextion แต่จะมีราคาถูกกว่าซึ่งจะส่งผลดีต่อราคาสุดท้ายของอุปกรณ์
เช่นเดียวกับหน้าจอเทอร์โมสตัทที่เคารพตนเอง Nextion ของเราสามารถ:
- ตั้งอุณหภูมิที่ผู้ใช้ต้องการ (โดยใช้ปุ่มทางด้านขวา)
- เปิดและปิดโหมดการทำงานตามกำหนดเวลา (ปุ่ม H)
- แสดงการทำงานของรีเลย์ (ลูกศรด้านซ้าย);
- มีการป้องกันเด็ก (การคลิกทางกายภาพถูกบล็อกจนกว่าจะถอดล็อคออก)
- แสดงความแรงของสัญญาณ WiFi
นอกจากนี้ เมื่อใช้จอภาพ คุณสามารถ:
- เลือกประเภทของเซ็นเซอร์ที่ผู้ใช้ติดตั้ง
- จัดการคุณสมบัติล็อคป้องกันเด็ก
- อัพเดตเฟิร์มแวร์
เมื่อคลิกที่แถบ WiFi ผู้ใช้จะค้นหาข้อมูลเกี่ยวกับเครือข่ายที่เชื่อมต่อ รหัส QR ใช้เพื่อจับคู่อุปกรณ์ในเฟิร์มแวร์ HomeKit
การสาธิตการทำงานกับจอแสดงผล:
เราได้พัฒนา
คุณอาจถามว่า “ตัวควบคุมอุณหภูมิของคุณมีความพิเศษอย่างไร” ขณะนี้ในตลาดมีเทอร์โมสตัทจำนวนมากพร้อมฟังก์ชัน Wi-Fi การทำงานตามกำหนดเวลา และระบบควบคุมแบบสัมผัส และผู้ที่ชื่นชอบได้เขียนโมดูลเพื่อโต้ตอบกับระบบสมาร์ทโฮมยอดนิยมส่วนใหญ่ (Majordomo, HomeAssistant ฯลฯ)
เทอร์โมสตัทของเราเข้ากันได้กับระบบดังกล่าวและมีคุณสมบัติทั้งหมดที่กล่าวมาข้างต้น แต่คุณสมบัติที่โดดเด่นคือเทอร์โมสตัทได้รับการปรับปรุงอย่างต่อเนื่องเนื่องจากความยืดหยุ่นของระบบ ในการอัปเดตแต่ละครั้ง ฟังก์ชันการทำงานจะขยายออกไป สำหรับวิธีมาตรฐานของการจัดการระบบ (ตามกำหนดเวลา) เราจะเพิ่มวิธีปรับเปลี่ยน แอปพลิเคชันช่วยให้คุณได้รับตำแหน่งทางภูมิศาสตร์ของผู้ใช้ ด้วยเหตุนี้ระบบจะเปลี่ยนโหมดการทำงานแบบไดนามิกขึ้นอยู่กับตำแหน่งของมัน และโมดูลสภาพอากาศจะช่วยให้คุณปรับตัวเข้ากับสภาพอากาศได้
และความสามารถในการขยาย ใครๆ ก็สามารถเปลี่ยนเทอร์โมสตัทแบบเดิมที่มีอยู่ด้วยของเราได้ ด้วยความพยายามเพียงเล็กน้อย เราได้เลือกเซ็นเซอร์ยอดนิยม 5 ตัวในตลาดและเพิ่มการรองรับสำหรับเซ็นเซอร์เหล่านั้น แม้ว่าเซ็นเซอร์จะมีลักษณะเฉพาะ แต่ผู้ใช้ก็สามารถเชื่อมต่อกับเทอร์โมสตัทของเราได้ ในการดำเนินการนี้ คุณจะต้องปรับเทียบเทอร์โมสตัทให้ทำงานกับเซ็นเซอร์เฉพาะได้ เราจะให้คำแนะนำ
เมื่อเชื่อมต่อเทอร์โมสตัทหรืออุปกรณ์อื่น ๆ จะปรากฏทุกที่พร้อมกันทั้งบนเว็บอินเทอร์เฟซและในแอปพลิเคชัน PWA การเพิ่มอุปกรณ์เกิดขึ้นโดยอัตโนมัติ คุณเพียงแค่ต้องเชื่อมต่อกับเครือข่าย Wi-Fi
ระบบของเราไม่ต้องการเซิร์ฟเวอร์ และหากล้มเหลว ระบบจะไม่กลายเป็นฟักทอง แม้ว่าส่วนประกอบตัวใดตัวหนึ่งจะล้มเหลว ระบบจะไม่เริ่มทำงานในสถานการณ์ฉุกเฉิน ตัวควบคุม เซ็นเซอร์ อุปกรณ์ - แต่ละองค์ประกอบเป็นทั้งเซิร์ฟเวอร์และไคลเอนต์ ดังนั้นจึงเป็นอิสระอย่างสมบูรณ์
สำหรับผู้ที่สนใจโซเชียลเน็ตเวิร์กของเรา:
mail: [ป้องกันอีเมล]
PS เราไม่สนับสนุนให้คุณละทิ้งเซิร์ฟเวอร์ เรายังรองรับเซิร์ฟเวอร์ MQTT และมีคลาวด์ของเราเอง เป้าหมายของเราคือการนำความเสถียรและความน่าเชื่อถือของระบบไปสู่อีกระดับหนึ่ง เพื่อให้ Server ไม่ใช่จุดอ่อน แต่เสริมฟังก์ชันการทำงานและทำให้ระบบสะดวกยิ่งขึ้น
ที่มา: will.com