สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: มันทำงานอย่างไร
- ขั้นตอนที่ 2: ติดตั้งและตั้งค่า Home Assistant บน Raspberry PI
- ขั้นตอนที่ 3: บอร์ดอิเล็กทรอนิกส์แบบกำหนดเองเพื่อเพิ่มประสิทธิภาพประตูบานเลื่อนอัตโนมัติ
- ขั้นตอนที่ 4: ESPHome Firmware เพื่อเรียกใช้บน PCB Prototype
- ขั้นตอนที่ 5: เปิดเผยผู้ช่วยในบ้านของคุณสู่โลก
วีดีโอ: ควบคุมประตูบานเลื่อนอัตโนมัติของคุณด้วย Home Assistant และ ESPHome: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
บทความต่อไปนี้เป็นข้อเสนอแนะบางส่วนเกี่ยวกับประสบการณ์ส่วนตัวของฉันในการควบคุมประตูเลื่อนอัตโนมัติที่ฉันติดตั้งไว้ที่บ้าน ประตูนี้มีชื่อว่า "V2 Alfariss" มีรีโมท Phox V2 สองสามตัวเพื่อควบคุม ฉันยังมีกริ่งประตู Google Nest Hello ซึ่งโชคไม่ดีที่ไม่สามารถเสียบเข้ากับตัวควบคุมประตูบานเลื่อนเพื่อเปิดประตูจากแอปบนอุปกรณ์เคลื่อนที่จากระยะไกลได้ สำหรับฉัน วิธีหนึ่งในการแก้ไขข้อจำกัดนี้คือค้นหาวิธีเชื่อมต่อตัวควบคุมประตูเลื่อนอัตโนมัติกับอินเทอร์เน็ต ด้วยประตูที่เชื่อมต่อใหม่นี้ ฉันสามารถตอบกรณีการใช้งานต่างๆ เช่น การควบคุมประตูบานเลื่อนด้วยโทรศัพท์มือถือของฉัน ฉันทำได้โดยใช้ Home Assistant, ESPhome และชิ้นส่วนอิเล็กทรอนิกส์บางส่วน
แนวคิดเบื้องหลังบทความนี้ไม่ใช่การให้บางสิ่งที่พร้อมใช้งาน แต่ให้แรงบันดาลใจแก่คุณ โปรดจำไว้ว่า หากคุณไม่มีประตูอัตโนมัติที่เหมือนกันทุกประการ อย่าลืมดาวน์โหลดและอ่านเอกสารทางเทคนิคสำหรับแบบจำลองของคุณ ปรับมันและปรับปรุงมัน คำเตือน: โปรดใช้ความระมัดระวังและอย่าลืมปิดสวิตช์ไฟฟ้าก่อนเปิดตัวควบคุมหลัก สนุก!
เสบียง
-
เครื่องมือ:
- ไขควง
- หัวแร้ง
- มัลติมิเตอร์
-
อะไหล่:
- Raspberry PI 3 (ครบชุด: 2A alim + 32gb sd card)
- ESP8266 Wemos D1 mini
- 2 โมดูลรีเลย์
- ตัวต้านทาน 2 ตัว 10k
- PCB สำหรับการสร้างต้นแบบ
- สายไฟ
ขั้นตอนที่ 1: มันทำงานอย่างไร
ความท้าทายหลักที่นี่คือการเชื่อมต่อประตูเลื่อนอัตโนมัติกับสมาร์ทโฟน ในการทำเช่นนี้ ให้เปลี่ยนประตูบานเลื่อนอัตโนมัติเป็นอุปกรณ์ IOT แน่นอนว่ามีหลายวิธีในการบรรลุเป้าหมายนี้ ในกรณีของฉัน หลังจากการทดลอง ฉันตัดสินใจใช้:
- การใช้ Home Assistant เป็นฮับสำหรับควบคุมพอร์ทัลและรับคำขอจากผู้ใช้
- การติดตั้ง ESPHome เป็นเฟิร์มแวร์ภายใน ESP8266
-
ชิ้นส่วนอิเล็กทรอนิกส์:
- PCB ต้นแบบเพื่อประสานส่วนประกอบและเชื่อมต่อเข้าด้วยกัน
- รีเลย์สองตัวจำลองปุ่มกดเพื่อเปิดหรือปิดประตู
- แหล่งจ่ายไฟ 5V เก่าเพื่อจ่ายไฟให้กับ ESP8266
- ตัวต้านทานสองตัวเพื่อแบ่งแรงดันจากเซ็นเซอร์เปิด/ปิด
- การเชื่อมต่ออินเทอร์เน็ตกับเราเตอร์ (ต้องใช้คุณสมบัติการกำหนดค่ากฎ NAT)
- บัญชี DuckDNS เพื่ออนุญาตให้แก้ไขชื่อกับ Home Assistant ของคุณ
- โทรศัพท์มือถือสำหรับติดตั้ง Home Assistant App และวิดเจ็ตบนหน้าจอ
การไหล
ดูสคีมาเพื่อความเข้าใจที่ดีขึ้น
- จากโทรศัพท์มือถือของคุณ คุณกดวิดเจ็ตแอพมือถือ Home Assistant
- คำขอจะถูกส่งไปยังที่อยู่เว็บของ Home Assistant (แก้ไขโดย DuckDNS และ TLS โดยมาเข้ารหัสกันเถอะ)
- เราเตอร์อินเทอร์เน็ตของคุณกำหนดเส้นทางคำขอไปยังแอปพลิเคชัน Home Assistant
- Home Assistant ส่งการดำเนินการคำขอไปที่ ESPHome
- ESPHome เรียกมอเตอร์ประตูบานเลื่อนอัตโนมัติ
- แชมเปญ !
ขั้นตอนที่ 2: ติดตั้งและตั้งค่า Home Assistant บน Raspberry PI
Home Assistant สามารถถูกมองว่าเป็นศูนย์กลางสำหรับทุกสิ่ง IOT ในบ้านของคุณ จะเป็นที่ที่ดีในการควบคุมอุปกรณ์ที่เชื่อมต่อทั้งหมดและเพิ่มคุณสมบัติมากมาย คุณสมบัติหลักที่ฉันชอบมากที่สุดคือแดชบอร์ด, API และความหลากหลายของส่วนเสริม
การติดตั้ง
ฉันไม่มีค่าเพิ่มใดๆ ที่จะบอกวิธีตั้งค่าและติดตั้ง Home Assistant ให้คุณ อันที่จริง ก่อนหน้าโครงการนี้ ฉันไม่รู้จักซอฟต์แวร์นี้มาก่อน บทความสำคัญคือ:
- ติดตั้ง Home Assistant ด้วยบทความนี้
-
การกำหนดค่าเครือข่ายสำหรับ Home Assistant สามารถพบได้ที่นี่:
github.com/home-assistant/operating-system…
- ติดตั้ง ESPHome ด้วยสิ่งนี้:
- ติดตั้ง DuckDNS Add-on สำหรับ Home Assistant:
- ติดตั้งปลั๊กอิน File Editor (มีประโยชน์):
หลังจากจุดเหล่านี้ทั้งหมด คุณมี Home Assistant ที่ดีที่ทำงานบน Raspberry PI ของคุณ คุณต้องสามารถเข้าถึงได้ผ่าน HTTP และ IP ในพื้นที่ หรือลอง
การกำหนดค่า
กำหนดค่า DuckDNS กับโดเมนของคุณและโทเค็น ตัวอย่างเช่น คุณสามารถเห็นในรูปภาพ ชิ้นส่วนของการกำหนดค่าของฉัน อย่าลืม accept_terms ด้วย "จริง"
let_encrypt:
accept_terms: true certfile: fullchain.pem keyfile: privkey.pem โทเค็น: 92f56bb2-2c26-4802-8d4d-xxxxxxxxxxxx โดเมน: - nameofyourchoice.duckdns.org วินาที: 300
ฉันตัดสินใจกำหนดค่า HA ด้วย IP แบบคงที่เพราะมันง่ายกว่า และคุณแน่ใจว่า IP จะเหมือนเดิมหลังจากรีบูต จากนั้นกฎการส่งต่อพอร์ตของคุณจะยังคงทำงานต่อไป: https://github.com/home-assistant/ ระบบปฏิบัติการ…
ในกรณีของฉัน ฉันเพิ่มการกำหนดค่าบางส่วนในไฟล์ configuration.yaml เนื่องจาก DuckDNS ไม่ได้จัดการ https เป็นเพียงการเข้ารหัสใบรับรองและการอัปเดต DuckDns:
http:
ssl_certificate: /ssl/fullchain.pem ssl_key: /ssl/privkey.pem base_url:
ขั้นตอนที่ 3: บอร์ดอิเล็กทรอนิกส์แบบกำหนดเองเพื่อเพิ่มประสิทธิภาพประตูบานเลื่อนอัตโนมัติ
บางทีอาจเป็นส่วนที่ผิดปกติมากที่สุดสำหรับฉันเพราะฉันมักจะปรับแต่งซอฟต์แวร์มากกว่าฮาร์ดแวร์ ฉันเริ่มต้นด้วยเขียงหั่นขนมและวงจรพื้นฐานเพียงเพื่อตรวจสอบว่าฉันสามารถอัปโหลดโปรแกรมภายใน Wemos D1 mini และไฟ LED กะพริบได้หรือไม่ จากนั้น ฉันได้เปลี่ยนเฟิร์มแวร์สำหรับ ESPhome และปฏิบัติตามบทความการเริ่มต้นใช้งานที่สมบูรณ์แบบนี้:
หลังจากวนซ้ำเพื่อหาวงจรที่ถูกต้อง ฉันได้บันทึกกับ Fritzing แล้ว อย่าลืมใช้เวลาในขั้นตอนนี้เพราะจะไม่มีการย้อนกลับเมื่อทุกอย่างถูกบัดกรี (ไม่ใช่ว่าจะย้อนกลับอย่างง่ายทั้งหมด) ฉันได้พยายามจำลองเซ็นเซอร์อินพุตจากประตูเลื่อนอัตโนมัติแล้ว แต่นี่เป็นความล้มเหลว (ฉันอธิบายในภายหลังว่าทำไม) โดยส่วนตัวแล้ว ฉันพบว่า Fritzing เป็นเครื่องมือที่ดีในการจัดทำเอกสารสิ่งที่คุณต่อสายบนเขียงหั่นขนม
หมายเหตุ: คุณจะพบจุดเริ่มต้นที่ดีที่นี่ในคำถามที่พบบ่อยของ ESPhome หากคุณไม่สามารถเสียบ ESPHome กับ Home Assistant สำหรับการเริ่มต้นครั้งแรก หลังจากอัปโหลดเฟิร์มแวร์แล้ว คุณจะสามารถอัปโหลด "ผ่านทางอากาศ" (OTA) ได้
รีเลย์เพื่อเปิดใช้งานทริกเกอร์เปิด/ปิด
ในข้อกำหนดทางเทคนิคของประตูเลื่อนอัตโนมัติ ระบุว่าคุณต้องปิดวงจรระหว่าง "START" และ "COM" เพื่อทริกเกอร์การดำเนินการเปิด/ปิดประตู (การเปิดแบบเต็ม) วงจรปิดระหว่าง "START. P" และ "COM" ทริกเกอร์การดำเนินการเปิด/ปิดประตูสำหรับคนเดินเท้า ฉันไม่ได้ใช้ "STOP" แต่นี่เป็นแนวคิดเดียวกันแต่เพื่อหยุดประตูเมื่อเปิดหรือปิด
ในการเลือกชิ้นส่วนอิเล็กทรอนิกส์ ฉันได้ตัดสินใจเลือกใช้รีเลย์แทนทรานซิสเตอร์ ทรานซิสเตอร์นั้นดี แต่ไม่ได้รับประกันว่าวงจรจะปิดสนิท ฉันคิดว่าพวกเขาสามารถปล่อยให้กระแสไฟต่ำมากเข้ามาในวงจรได้ ข้อดีอีกประการของรีเลย์คือเมื่อคุณทดสอบวงจร คุณจะได้ยินเมื่อหน้าสัมผัสอยู่ใกล้กับเสียง "คลิก"
รับสถานะเซ็นเซอร์เปิด
ตอนแรกฉันคิดว่าจะใช้เซ็นเซอร์แม่เหล็กเพื่อตรวจจับสถานะการเปิดหรือปิดของประตู แต่ฉันได้รู้ว่ามีปลั๊กที่กล่าวถึง "เซ็นเซอร์จำกัด" บนตัวควบคุม เห็นได้ชัดว่าไม่ได้ใช้ (โดยเกินบรรยายเช่นฉัน) ฉันพบผู้ทดสอบการติดต่อที่ฉันสามารถอ่านสถานะเปิดหรือปิดได้เมื่อฉันเปิดประตู ฉันทำผิดพลาดครั้งใหญ่โดยคิดว่าสถานะนั้นเป็นแรงดันลอจิก TTL (3.3v) ในกรณีนี้ คุณสามารถเสียบปลั๊กเข้ากับ Wemos Input ได้โดยตรง แต่ในความเป็นจริง เมื่อประตูเปิดออก มีแรงดันเอาต์พุต 6.3v ในการใช้สัญญาณนี้ คุณต้องแบ่งแรงดันไฟฟ้าด้วยวงจรประเภทนี้ https://www.learningaboutelectronics.com/Articles/H… วิธีแก้ปัญหาค่อนข้างตรงไปตรงมาเพราะแรงดันต้องหารด้วยสอง ดังนั้นฉันจึงใช้ตัวต้านทาน 10 Kohms สองตัวระหว่างเอาต์พุตเซ็นเซอร์ลิมิตและอินพุต Wemos (ดูสคีมาในรูปภาพที่แนบมาอีกครั้ง)
แหล่งจ่ายไฟ 5v ราคาถูก
ในการจ่ายไฟให้กับส่วนประกอบเหล่านี้ ฉันใช้แหล่งจ่ายไฟของโทรศัพท์มือถือรุ่นเก่า ฉันเปิดมันและเปลี่ยนปลั๊กเป็นสายปลั๊กขนาดเล็กพร้อมสกรู ฉันยังตัดสินใจที่จะรวมสอง pcb (esp และแหล่งจ่ายไฟ) ด้วยกาวร้อน (ใช่ฉันรู้ว่ามันค่อนข้างสกปรก แต่ใช้งานได้:-) ไม่ใช่สิ่งที่สะอาดที่สุดเท่าที่เคยมีมา แต่ง่ายต่อการจัดการและหลีกเลี่ยงการสัมผัส 220v
นั่นคือทั้งหมดสำหรับส่วนฮาร์ดแวร์
ขั้นตอนที่ 4: ESPHome Firmware เพื่อเรียกใช้บน PCB Prototype
ตรรกะภายใน ESP8266 ถูกฉีดผ่านส่วนเสริมของ Home Assistant ESPHome คุณเขียนโค้ดตรรกะที่ ESPHome ดำเนินการ แอปพลิเคชันขนาดเล็กมากต้องเป็นโค้ดที่มีไวยากรณ์ ESPHome เป็นเรื่องง่ายและสนุกเพราะด้วย YAML เพียงไม่กี่บรรทัด ทำให้ ESP8266 ของคุณกลายเป็นสิ่งที่ชาญฉลาดได้อย่างรวดเร็ว ซอร์สโค้ดแบบเต็มมีอยู่ที่นี่: https://gist.github.com/toomone/819112ea1b04937912… มาเน้นที่ส่วนสำคัญของโค้ดกัน
การควบคุมรีเลย์
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ ตัวควบคุมประตูบานเลื่อนอัตโนมัติสามารถกระตุ้นการเปิดหรือปิดด้วยแรงกระตุ้นสั้น ๆ (วงจรปิด) ระหว่างสองอินพุต ในการทำเช่นนั้น คุณต้องกำหนดค่าส่วนสวิตช์ด้วยการกำหนดค่าเพียงเล็กน้อย ตัวอย่างเช่น ให้โฟกัสไปที่ส่วนที่เปิดใช้งาน (เปิดหรือปิด) การเปิดประตูบางส่วน (จำเป็นสำหรับคนเดินเท้า เป็นต้น)
สวิตซ์:
- แพลตฟอร์ม: gpio pin: D3 // หมายเลข PIN ที่สัญญาณจะถูกส่งออกบน Wemos id: relay restore_mode: ALWAYS_OFF - แพลตฟอร์ม: ชื่อเทมเพลต: "Gate Pedestrian Remote" ไอคอน: "mdi:walk" turn_on_action: // the ตรรกะที่จะดำเนินการโดย ESPHome เพื่อจำลองพัลส์ - switch.turn_on: รีเลย์ - หน่วงเวลา: 500ms - switch.turn_off: รีเลย์
รหัสก่อนหน้าจะสร้างสวิตช์และเทมเพลต แนวคิดทั้งสองนี้ช่วยให้ ESPHome สามารถเสนอกลไกที่ได้รับการปรับปรุงโดยไม่ต้องเข้ารหัสจริง ฉันขอเชิญคุณอ่านเอกสารประกอบของ ESPHome เพื่อเจาะลึกคุณสมบัติที่มีให้ https://esphome.io/cookbook/relay.html และ
กำลังอ่านสถานะเซ็นเซอร์เปิดปิด
binary_sensor:
- แพลตฟอร์ม: gpio พิน: หมายเลข: D1 คว่ำ: ชื่อจริง: "เซ็นเซอร์เปิด" id: open_sensor อุปกรณ์_คลาส: Garage_door
สคริปต์ส่วนนี้บอกให้บอร์ด wemos อ่านสถานะบนเซ็นเซอร์เปิดบน D1 ในการค้นหา D1 คุณเพียงแค่อ่านบน Wemos PCB ของคุณ ฉันใช้พารามิเตอร์ "inverted" เป็น true เพื่อกลับค่าสัญญาณ ฉันจำเหตุผลที่ชัดเจนไม่ได้ แต่ฉันคิดว่ามันง่ายในการแสดงการปิดหรือเปิดตามสถานะพอร์ทัลบนแดชบอร์ด HA
อนุญาตให้เรียก API ไปที่ ESPHome
หากคุณต้องการใช้วิดเจ็ต Home Assistant บนโทรศัพท์ของคุณ คุณต้องเพิ่มโค้ดเล็กๆ นี้:
# เปิดใช้งาน Home Assistant API
api: บริการ: - บริการ: open_portal_pedestrian จากนั้น: - switch.turn_on: รีเลย์ - ล่าช้า: 500ms - switch.turn_off: รีเลย์
ด้วยวิธีนี้ ตัวกำหนดค่าแอพ Home Assistant จะแสดงรายการการดำเนินการเพื่อเปิดประตู ฉันเลือกเพียงอันเดียวสำหรับคนเดินเท้าเพราะเป็นอันที่ฉันใช้บ่อยที่สุด
ขั้นตอนที่ 5: เปิดเผยผู้ช่วยในบ้านของคุณสู่โลก
เพราะคุณต้องการเปิดประตูบานเลื่อนอัตโนมัติได้จากทุกที่บนโลก ไม่ใช่แค่จากบ้านเท่านั้น คุณต้องเปิดเผย HA ของคุณให้โลกเห็น อย่าลืมใช้การพิสูจน์ตัวตนด้วยรหัสผ่านที่รัดกุม บนเราเตอร์อินเทอร์เน็ตของคุณ คุณต้องกำหนดค่ากฎเพื่อกำหนดเส้นทางการรับส่งข้อมูลทั้งหมดที่มาจากพอร์ตเฉพาะไปยัง IP เฉพาะและพอร์ต ตัวอย่างเช่น คุณจะพบการกำหนดค่าที่ฉันทำบนเราเตอร์ผู้ให้บริการของฉัน (ขออภัย เป็นภาษาฝรั่งเศส) แต่คุณจะสังเกตเห็นว่าการกำหนดค่านั้นง่ายมาก กฎต้องบอกให้เราเตอร์ของคุณยอมรับโปรโตคอลทั้งหมดบนพอร์ต xxxx เพื่อไปยัง Home Assistant IP ด้วยพอร์ต 8123 (หากคุณไม่ได้เปลี่ยน)
นั่นคือทั้งหมดที่ อย่าลังเลที่จะถามคำถามเพราะฉันลืมเพิ่มรายละเอียดในส่วนที่เฉพาะเจาะจง ระบบทำงานทุกวันไม่มีปัญหา ฉันยังชอบความจริงที่ว่าฉันสามารถให้สถานะเปิดหรือปิดพอร์ทัลจากโทรศัพท์ของฉัน
แนะนำ:
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY Smart Home ด้วย Google Assistant และ Arduino: 6 ขั้นตอน
DIY Smart Home ด้วย Google Assistant และ Arduino ใครไม่อยากมีบ้านอัจฉริยะ ? สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือเปลี่ยนไฟหรืออุปกรณ์อื่นๆ ในบ้านด้วยการควบคุมด้วยเสียง ด้วยความช่วยเหลือของแอป Google Home และผู้ช่วยของ Google นี่เป็นเรื่องง่ายๆ ……คุณทำไม่ได้
เริ่มต้นใช้งาน Home Automation: การติดตั้ง Home Assistant: 3 ขั้นตอน
เริ่มต้นใช้งาน Home Automation: การติดตั้ง Home Assistant: ตอนนี้เรากำลังจะเริ่มชุด Home Automation ซึ่งเราสร้างบ้านอัจฉริยะที่จะช่วยให้เราควบคุมสิ่งต่างๆ เช่น ไฟ ลำโพง เซ็นเซอร์ และอื่นๆ โดยใช้ศูนย์กลางร่วมกับ ผู้ช่วยเสียง ในโพสต์นี้ เราจะมาเรียนรู้วิธีอิน
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): 25 ขั้นตอน (พร้อมรูปภาพ)
วิธีการสร้าง Quadcoptor (NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS 3DR Radio และ FlySky TH9X): นี่คือบทแนะนำเกี่ยวกับวิธีการสร้าง Quadcopter โดยใช้มอเตอร์ NTM 28-30S 800kV 300W และ Arducopter APM 2.6 & 6H GPS & วิทยุ 3DR ฉันพยายามอธิบายแต่ละขั้นตอนด้วยรูปภาพจำนวนหนึ่ง หากคุณมีคำถามหรือความคิดเห็นใด ๆ โปรดตอบกลับ