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

Lytko รวมตัว

เกี่ยวกับระบบอัตโนมัติ

ตามอัตภาพ ระบบอัตโนมัติทั้งหมดสามารถแบ่งออกเป็นสามประเภท:
หมวด 1 — แยกอุปกรณ์ "อัจฉริยะ" คุณซื้อหลอดไฟ กาน้ำชา ฯลฯ จากผู้ผลิตหลายราย ข้อดี: แต่ละอุปกรณ์ขยายขีดความสามารถและเพิ่มความสะดวกสบาย จุดด้อย: ผู้ผลิตรายใหม่แต่ละรายต้องการแอปพลิเคชันของตนเอง โปรโตคอลของอุปกรณ์จากผู้ผลิตหลายรายมักจะเข้ากันไม่ได้

หมวด 2 — การติดตั้งพีซีบอร์ดเดี่ยวหรือรองรับ x86 ซึ่งจะช่วยขจัดข้อจำกัดด้านพลังการประมวลผล และ MajorDoMo หรือเซิร์ฟเวอร์อื่นๆ สำหรับการจัดการสมาร์ทโฮมก็ได้รับการติดตั้งบนเครื่องนี้แล้ว ดังนั้นอุปกรณ์จากผู้ผลิตส่วนใหญ่จึงเชื่อมต่อกันในพื้นที่ข้อมูลเดียว เหล่านั้น. เซิร์ฟเวอร์ของคุณเองสำหรับบ้านอัจฉริยะจะปรากฏขึ้น ข้อดี: ความเข้ากันได้ภายใต้ศูนย์เดียว ซึ่งช่วยเพิ่มความสามารถในการจัดการ จุดด้อย: หากเซิร์ฟเวอร์ล้มเหลว ระบบทั้งหมดจะกลับสู่ระยะที่ 1 กล่าวคือ แตกกระจายหรือไร้ประโยชน์

หมวด 3 - ตัวเลือกที่ฮาร์ดคอร์ที่สุด ในขั้นตอนการซ่อมแซม การสื่อสารทั้งหมดจะถูกวาง และระบบทั้งหมดจะถูกทำซ้ำ ข้อดี: ทุกอย่างได้รับการปรับปรุงให้สมบูรณ์แบบ จากนั้นบ้านก็จะกลายเป็นสมาร์ทอย่างแท้จริง ข้อเสีย: มีราคาแพงมากเมื่อเทียบกับประเภท 1 และ 2 ต้องคิดทุกอย่างล่วงหน้าและคำนึงถึงรายละเอียดเล็กน้อยทุกประการ

ผู้ใช้ส่วนใหญ่เลือกตัวเลือกที่หนึ่ง จากนั้นจึงไปยังตัวเลือกที่สองได้อย่างราบรื่น แล้วคนที่ดื้อรั้นที่สุดก็จะไปถึงตัวเลือกที่ 3

แต่มีตัวเลือกที่สามารถเรียกได้ว่าเป็นระบบแบบกระจาย: แต่ละอุปกรณ์จะเป็นทั้งเซิร์ฟเวอร์และไคลเอนต์ โดยพื้นฐานแล้ว นี่เป็นความพยายามที่จะรวมตัวเลือกที่ 1 และตัวเลือกที่ 2 เข้าด้วยกัน นำข้อดีทั้งหมดและกำจัดข้อเสียเพื่อให้ได้ค่าเฉลี่ยสีทอง

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

ลองดูการรวมเข้ากับระบบของเราโดยใช้ตัวอย่าง

สมมติว่าเรามีโมดูล Sonoff 8 โมดูลบนเครือข่ายของเรา สำหรับผู้ใช้บางราย การควบคุมผ่านคลาวด์ Sonoff (หมวด 1) ก็เพียงพอแล้ว บางส่วนจะเริ่มใช้เฟิร์มแวร์ของบริษัทอื่น และจะย้ายไปยังหมวดหมู่ 2 ได้อย่างราบรื่น เฟิร์มแวร์ของบริษัทภายนอกจำนวนมากทำงานบนหลักการเดียวกัน นั่นคือ การถ่ายโอนข้อมูลไปยังเซิร์ฟเวอร์ MQTT OpenHub, Majordomo หรือบริการอื่นใดมีจุดประสงค์เดียว - เพื่อรวมอุปกรณ์ที่แตกต่างกันเข้าไว้ในพื้นที่ข้อมูลเดียวที่อยู่บนอินเทอร์เน็ตหรือบนเครือข่ายท้องถิ่น ดังนั้นการมีอยู่ของเซิร์ฟเวอร์จึงเป็นสิ่งจำเป็น นี่คือจุดที่ปัญหาหลักเกิดขึ้น - หากเซิร์ฟเวอร์ล้มเหลว ระบบทั้งหมดจะหยุดทำงานโดยอัตโนมัติ เพื่อป้องกันสิ่งนี้ ระบบจึงมีความซับซ้อนมากขึ้น โดยมีการเพิ่มวิธีการควบคุมด้วยตนเองซึ่งเป็นระบบอัตโนมัติซ้ำซ้อนในกรณีที่เซิร์ฟเวอร์ขัดข้อง

เราใช้เส้นทางที่แตกต่างกัน โดยที่แต่ละอุปกรณ์สามารถพึ่งพาตนเองได้ ดังนั้นเซิร์ฟเวอร์ไม่ได้มีบทบาทชี้ขาด แต่เพียงขยายฟังก์ชันการทำงานเท่านั้น

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

"ssdpList": 
	{
		"id": 94967291,  
		"ip": "192.168.x.x",
                "type": "thermostat"
	}, 
	{
		"id": 94967282,
		"ip": "192.168.x.x",
                "type": "thermostat"
	}

ดังที่คุณเห็นจากตัวอย่าง รายการประกอบด้วยรหัสอุปกรณ์ ที่อยู่ IP บนเครือข่าย ประเภทหน่วย (ในกรณีของเราคือเทอร์โมสตัทแบบ Sonoff) รายการนี้อัปเดตทุกๆ สองนาที (ช่วงเวลานี้เพียงพอที่จะตอบสนองต่อการเปลี่ยนแปลงแบบไดนามิกของจำนวนอุปกรณ์บนเครือข่าย) ด้วยวิธีนี้ เราจะติดตามอุปกรณ์ที่เพิ่ม เปลี่ยนแปลง และปิดใช้งานโดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ รายการนี้ถูกส่งไปยังเบราว์เซอร์หรือแอปพลิเคชันมือถือ และสคริปต์จะสร้างเพจตามจำนวนบล็อกที่กำหนด แต่ละบล็อกสอดคล้องกับอุปกรณ์/เซ็นเซอร์/ตัวควบคุมหนึ่งตัว สายตารายการมีลักษณะดังนี้:

Lytko รวมตัว

แต่จะเกิดอะไรขึ้นถ้าเซ็นเซอร์วิทยุอื่นๆ เชื่อมต่อกับ esp8266/esp32 ผ่าน cc2530 (ZigBee) หรือ nrf24 (MySensors)?

เกี่ยวกับโครงการ

มีระบบกระจายที่หลากหลายในตลาด ระบบของเราช่วยให้คุณสามารถบูรณาการกับระบบที่ได้รับความนิยมมากที่สุดได้

ด้านล่างนี้เป็นโครงการที่ไม่ทางใดก็ทางหนึ่งที่พยายามเปลี่ยนสถานการณ์ด้วยความที่ผู้ผลิตแต่ละรายไม่เข้ากัน นี่คือตัวอย่างเช่น เกตเวย์ SLS, MySensor หรือ ZESP32. ZigBee2MQTT เชื่อมโยงกับเซิร์ฟเวอร์ MQTT จึงไม่เหมาะกับตัวอย่าง

ทางเลือกหนึ่งสำหรับการนำ MySensors ไปใช้ก็คือเกตเวย์ที่ใช้ ESP8266 ตัวอย่างที่เหลืออยู่ใน ESP32 และในนั้นคุณสามารถใช้หลักการทำงานของเราในการตรวจจับและสร้างรายการอุปกรณ์ได้

เรามาทำการทดลองทางความคิดกันอีกครั้ง เรามีเกตเวย์ ZESP32 หรือเกตเวย์ SLS หรือ MySensors พวกเขาสามารถรวมเข้าด้วยกันในพื้นที่ข้อมูลเดียวได้อย่างไร? เราจะเพิ่มไลบรารีโปรโตคอล SSDP ให้กับฟังก์ชันมาตรฐานของเกตเวย์เหล่านี้ เมื่อเข้าถึงคอนโทรลเลอร์นี้ผ่าน SSDP คอนโทรลเลอร์จะเพิ่มรายการอุปกรณ์ที่เชื่อมต่อเข้ากับการตอบสนองมาตรฐาน จากข้อมูลนี้ เบราว์เซอร์จะสร้างเพจ โดยทั่วไปจะมีลักษณะดังนี้:

Lytko รวมตัว
เว็บอินเตอร์เฟส

Lytko รวมตัว
ใบสมัคร กปภ

"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 เฉพาะ

ดังนั้นตัวเลือกข้างต้นไม่มีข้อเสียของแนวทางเซิร์ฟเวอร์และยังมีข้อดีหลายประการในรูปแบบของความยืดหยุ่นในการเชื่อมต่ออุปกรณ์ใหม่

เกี่ยวกับเทอร์โมสตัท

มาดูระบบควบคุมโดยใช้เทอร์โมสตัทของเราเป็นตัวอย่าง

ที่ให้ไว้:

  1. การควบคุมอุณหภูมิสำหรับเทอร์โมสตัทแต่ละตัว (แสดงเป็นบล็อกแยกกัน)
  2. การตั้งค่าตารางการทำงานของเทอร์โมสตัท (เช้า บ่าย เย็น กลางคืน)
  3. การเลือกเครือข่าย Wi-Fi และเชื่อมต่ออุปกรณ์เข้ากับเครือข่ายนั้น
  4. การอัปเดตอุปกรณ์ "ทางอากาศ";
  5. การตั้งค่า MQTT;
  6. กำหนดค่าเครือข่ายที่อุปกรณ์เชื่อมต่ออยู่

Lytko รวมตัว

นอกเหนือจากการควบคุมผ่านอินเทอร์เฟซเว็บแล้ว เรายังมอบเวอร์ชันคลาสสิกด้วยการคลิกบนหน้าจอ มีจอภาพ Nextion NX3224T024 ขนาด 2.4 นิ้วอยู่บนเครื่อง ทางเลือกตกอยู่กับเขาเนื่องจากความง่ายในการทำงานกับอุปกรณ์ แต่เรากำลังพัฒนาจอภาพของเราเองโดยใช้ STM32 ฟังก์ชันการทำงานของมันไม่ได้เลวร้ายไปกว่า Nextion แต่จะมีราคาถูกกว่าซึ่งจะส่งผลดีต่อราคาสุดท้ายของอุปกรณ์

Lytko รวมตัว

เช่นเดียวกับหน้าจอเทอร์โมสตัทที่เคารพตนเอง Nextion ของเราสามารถ:

  • ตั้งอุณหภูมิที่ผู้ใช้ต้องการ (โดยใช้ปุ่มทางด้านขวา)
  • เปิดและปิดโหมดการทำงานตามกำหนดเวลา (ปุ่ม H)
  • แสดงการทำงานของรีเลย์ (ลูกศรด้านซ้าย);
  • มีการป้องกันเด็ก (การคลิกทางกายภาพถูกบล็อกจนกว่าจะถอดล็อคออก)
  • แสดงความแรงของสัญญาณ WiFi

นอกจากนี้ เมื่อใช้จอภาพ คุณสามารถ:

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

Lytko รวมตัว

เมื่อคลิกที่แถบ WiFi ผู้ใช้จะค้นหาข้อมูลเกี่ยวกับเครือข่ายที่เชื่อมต่อ รหัส QR ใช้เพื่อจับคู่อุปกรณ์ในเฟิร์มแวร์ HomeKit

Lytko รวมตัว

การสาธิตการทำงานกับจอแสดงผล:

Lytko รวมตัว

เราได้พัฒนา หน้าสาธิต ด้วยเทอร์โมสตัทที่เชื่อมต่อกันสามตัว

คุณอาจถามว่า “ตัวควบคุมอุณหภูมิของคุณมีความพิเศษอย่างไร” ขณะนี้ในตลาดมีเทอร์โมสตัทจำนวนมากพร้อมฟังก์ชัน Wi-Fi การทำงานตามกำหนดเวลา และระบบควบคุมแบบสัมผัส และผู้ที่ชื่นชอบได้เขียนโมดูลเพื่อโต้ตอบกับระบบสมาร์ทโฮมยอดนิยมส่วนใหญ่ (Majordomo, HomeAssistant ฯลฯ)

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

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

เมื่อเชื่อมต่อเทอร์โมสตัทหรืออุปกรณ์อื่น ๆ จะปรากฏทุกที่พร้อมกันทั้งบนเว็บอินเทอร์เฟซและในแอปพลิเคชัน PWA การเพิ่มอุปกรณ์เกิดขึ้นโดยอัตโนมัติ คุณเพียงแค่ต้องเชื่อมต่อกับเครือข่าย Wi-Fi

ระบบของเราไม่ต้องการเซิร์ฟเวอร์ และหากล้มเหลว ระบบจะไม่กลายเป็นฟักทอง แม้ว่าส่วนประกอบตัวใดตัวหนึ่งจะล้มเหลว ระบบจะไม่เริ่มทำงานในสถานการณ์ฉุกเฉิน ตัวควบคุม เซ็นเซอร์ อุปกรณ์ - แต่ละองค์ประกอบเป็นทั้งเซิร์ฟเวอร์และไคลเอนต์ ดังนั้นจึงเป็นอิสระอย่างสมบูรณ์

สำหรับผู้ที่สนใจโซเชียลเน็ตเวิร์กของเรา: Telegram, Instagram, ข่าวโทรเลข, VK, Facebook.

mail: [ป้องกันอีเมล]

PS เราไม่สนับสนุนให้คุณละทิ้งเซิร์ฟเวอร์ เรายังรองรับเซิร์ฟเวอร์ MQTT และมีคลาวด์ของเราเอง เป้าหมายของเราคือการนำความเสถียรและความน่าเชื่อถือของระบบไปสู่อีกระดับหนึ่ง เพื่อให้ Server ไม่ใช่จุดอ่อน แต่เสริมฟังก์ชันการทำงานและทำให้ระบบสะดวกยิ่งขึ้น

ที่มา: will.com

เพิ่มความคิดเห็น