สารบัญ:

ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)
ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How to make a Raspberry Pi smart garage door opener 2024, พฤศจิกายน
Anonim
ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi
ที่เปิดประตูโรงรถโดยใช้ Raspberry Pi

ควบคุมมอเตอร์โรงรถจากสมาร์ทโฟนหรืออุปกรณ์ใดๆ ที่สามารถเรียกดูเว็บเพจได้ (ด้วย AJAX!) โปรเจ็กต์นี้เริ่มต้นขึ้นเนื่องจากฉันมีรีโมทเพียงตัวเดียวสำหรับโรงรถของฉัน มันสนุกแค่ไหนที่ได้ซื้ออันที่สอง? ไม่พอ. เป้าหมายของฉันคือสามารถควบคุมและตรวจสอบประตูโรงรถของฉันจากสมาร์ทโฟนได้ด้วยหน้าเดียว ฉันไม่ได้ใส่การรักษาความปลอดภัยแฟนซีไว้รอบ ๆ เนื่องจาก RPi ไม่ได้ถูกเปิดเผยนอก LAN ของฉัน ดังนั้นฉันจึงพึ่งพา VPN เพื่อเข้าถึงหน้าเว็บ การใช้สมาร์ทโฟน Android เป็นเรื่องง่ายมากในการติดตั้ง VPN และเพิ่มเว็บเพจลงในหน้าจอหลักของฉัน ทั้งหมดที่ฉันต้องการคือซอฟต์แวร์สำหรับมัน

หากคุณต้องการสนับสนุนฉันในการเขียนคำแนะนำอื่นๆ โปรดซื้อฮาร์ดแวร์จากลิงก์ผู้สนับสนุนของ Amazon

นอกจากนี้ คำแนะนำนี้ยังสามารถใช้ได้จากหน้าส่วนตัวของฉัน:

ขั้นตอนที่ 1: พื้นหลังบางส่วน

สิ่งที่ฉันพบทางออนไลน์

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

  • ที่เปิดประตูโรงรถ Raspberry Pi โดย quartarian ที่ที่ฉันเริ่มต้น ปุ่มง่ายๆ เพื่อสั่งการรีเลย์ ไม่มีปุ่มเปิด/ปิด ไม่มีการตอบกลับ อย่างไรก็ตาม การทำความเข้าใจแนวคิดเกี่ยวกับ RPi เฉพาะเพื่อควบคุมมอเตอร์จากรีเลย์ก็มีประโยชน์มาก สายเคเบิลที่ฉันใช้ตอนนี้ยังคงเหมือนเดิมสำหรับส่วนคำสั่ง
  • ที่เปิดประตูโรงรถ Raspberry Pi พร้อม GaragePi โดย Chase Chou การตั้งค่าแบบเดียวกันแต่ใช้รีโมทไร้สายแบบพิเศษ ฉันไม่เต็มใจที่จะฆ่ารีโมทเพียงตัวเดียวของฉัน มันพิสูจน์แล้วว่าใช้การตั้งค่าไฟฟ้าแบบเดียวกันสำหรับส่วนคำสั่ง ระหว่างทาง ฉันได้เรียนรู้เกี่ยวกับ WebIOPi เพื่อตรวจสอบ GPIO ของฉันผ่านหน้าเว็บ นั่นคือฉันยังได้เรียนรู้เกี่ยวกับการวางทางลัดไปยังหน้าจอหลักของ Android นอกจากนี้ยังเริ่มจุดประกายความคิดในการพึ่งพาบริการด้วย ฉันต้องการให้มันเชื่อถือได้
  • สร้างอีเมล ทวีต หรือ SMS ที่ประตูโรงรถของคุณ: ตอนที่ 1 โดย Richard L. Lynch อันนี้เพิ่มแนวคิดในการใช้ Magnetic Sensor เพื่อควบคุมสถานะของประตู อย่างไรก็ตาม ฉันไม่ได้ใช้งานอะไรมากเพราะไม่ได้สร้างระบบเตือนภัย แต่เป็นระบบสั่งการ/ตรวจสอบ
  • ที่เปิดประตูโรงรถแบบไร้สายโดยสมบูรณ์ / กล้องรักษาความปลอดภัยโดย DeckerEgo สิ่งนี้ทำให้ฉันตระหนักดีถึงการสตรีมเว็บแคมเพื่อเฝ้าสังเกตประตู ฉันยังต้องใช้ความพยายามบางอย่างในสิ่งนั้น บางทีฉันอาจต้องรีไซเคิลฮับ USB หรือดึงเว็บแคมอื่น
  • การควบคุม Raspberry Pi จากอุปกรณ์มือถือหรือเว็บเบราว์เซอร์เดสก์ท็อปโดยFrédérick Blais นี่คือฐานของฉันสำหรับซอฟต์แวร์สแต็ค ใช้ Flask เพื่อเรียกใช้หน้าเว็บที่ง่ายมากพร้อมกับ AJAX นี่เป็นสิ่งพิเศษสำหรับฉัน เนื่องจากมีการตรวจสอบและตัวเลือกคำสั่งแบบเรียลไทม์ อ่านด้านล่าง.

เกี่ยวกับ RPi. ของฉัน

ขณะที่ฉันยังคงเรียนรู้เกี่ยวกับ RPi และอุปกรณ์อิเล็กทรอนิกส์โดยทั่วไป ฉันซื้อของหลายอย่างสำหรับ Raspberry Pi ที่เพิ่งซื้อมาใหม่: สายเคเบิลสองสามเส้น, T-cobbler, ไฟ LED บางตัว, โมดูลรีเลย์เดียว, แปดรีเลย์ โมดูล จอ LCD และอื่นๆ ฉันไม่ใช่ช่างอิเล็กทรอนิกส์และสิ่งนี้พิสูจน์แล้วว่าให้คำแนะนำได้ดีมาก ในการซื้อฮาร์ดแวร์เสริม Amazon และ Ebay เป็นเพื่อนที่ดีที่สุดของคุณ

สถานะปัจจุบันของโครงการรวมถึงฮาร์ดแวร์ต่อไปนี้:

  • Raspberry Pi (FR/DE) ที่ใช้ Raspbian Wheezy 2014-09-09 พร้อมอัปเดตล่าสุด
  • 8GB (FR/DE) หรือ 16GB (FR/DE) หรือ 32GB (FR/DE) micro SD Card Class 10 เพื่อเก็บ OS, ไฟล์และอื่นๆ
  • สวิตช์กกโรงรถโลหะผสมสังกะสี 2 ตัว (FR/DE) เพื่อตรวจจับสถานะเปิด/ปิด
  • โมดูลรีเลย์ 3v (FR/DE) หนึ่งตัวเพื่อส่งคำสั่งไปยังมอเตอร์ประตู (ของฉันมี LED ในตัวเพื่อตรวจสอบสถานะรีเลย์ มีประโยชน์มาก!)
  • เขียงหั่นขนมแบบบัดกรี (FR/DE) และสวิตช์ชั่วขณะ 2 อัน (FR/DE) เพื่อจำลองประตูบนโต๊ะของฉัน (หรือรับชุดสตาร์ท (FR/DE))
  • ดองเกิล wifi (FR/DE) เพื่อถอดสายเพิ่มเติมเมื่อจะห้อยลงมาจากเพดานโรงรถ

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

ขั้นตอนที่ 2: ซอฟต์แวร์ Stack

ซอฟต์แวร์กอง
ซอฟต์แวร์กอง

เรื่องทั่วไป

ซอฟต์แวร์ใช้โมดูล Python, Flask และ WiringPi GPIO Python ตามที่อธิบายไว้ในเบื้องหลัง ฉันเริ่มต้นจากการสอน Raspberry Pi ควบคุมจากอุปกรณ์มือถือหรือเว็บเบราว์เซอร์เดสก์ท็อปที่เผยแพร่โดยFrédérick Blais ซอฟต์แวร์ปัจจุบันประกอบด้วย:

  • ไฟล์เทมเพลต HTML ที่มีโค้ดและตัวควบคุม jQuery Mobile บางส่วน
  • โมดูล Python Pins เพื่อเข้าถึง GPIO ของ Raspberry Pi
  • โมดูล Python go เพื่อเรียกใช้ Flask และรองรับการสืบค้น AJAX

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

อินเทอร์เฟซปัจจุบัน

ขณะนี้สถานะสำหรับประตูอ่านทุก 0.5 วินาที สวิตช์สองตัวใช้สำหรับสถานะเปิด/ปิด ใช้รีเลย์เพื่อสั่งการมอเตอร์ รหัสปัจจุบันยังคงแสดงผลการดีบักบางอย่าง ด้านล่างภาพหน้าจอมาจาก Nexus 5

ขั้นตอนที่ 3: ฮาร์ดแวร์ - Alpha

ฮาร์ดแวร์ - Alpha
ฮาร์ดแวร์ - Alpha
ฮาร์ดแวร์ - Alpha
ฮาร์ดแวร์ - Alpha

เตียงทดสอบ

เตียงทดสอบของฉันค่อนข้างเรียบง่าย RPi รีเลย์และสวิตช์สองตัว ผูกเชือกเล็กน้อย (FR/DE) เพื่อยึดสิ่งของไว้แน่น นี่คือภาพของมัน สาย LAN RJ45 (FR/DE) ใช้สำหรับดีบักเดสก์ท็อปและดองเกิล WIFI สำหรับการใช้งานในโรงรถ

ระบบถ่ายทอดสด

RPi เชื่อมต่อกับมอเตอร์ประตูเท่านั้นในตอนนี้ สวิตช์จะตามมา ฉันต้องรออีกสักพักกว่าจะได้ท่อหดความร้อน (FR/DE) ฉันควรจะมั่นคงมากกว่านี้ ขอโทษที่เบลอ

สายสีน้ำเงิน เหลือง และเขียวทางด้านซ้ายมีไว้สำหรับสวิตช์แม่เหล็ก

  • สีน้ำเงินคือ GND
  • สีเหลืองและสีเขียวคือหมุด 18 (สถานะเปิด) และ 27 (สถานะปิด)

ขั้นตอนที่ 4: ฮาร์ดแวร์ - เบต้า

ฮาร์ดแวร์ - เบต้า
ฮาร์ดแวร์ - เบต้า
ฮาร์ดแวร์ - เบต้า
ฮาร์ดแวร์ - เบต้า
ฮาร์ดแวร์ - เบต้า
ฮาร์ดแวร์ - เบต้า

เตียงทดสอบ

ตอนนี้เป็นกระดาษแข็งที่มีซิปผูก LCD และรีเลย์รวมอยู่ในชุดด้วย LCD มีขนาด 20x4 (20 ตัวอักษรสำหรับแถว 4 บรรทัด) (FR/DE) เหนือ I²C

2 บรรทัดแรกแสดงคำทักทายและวันที่/เวลา 2 บรรทัดสุดท้ายหมุนเวียนระหว่างสถานะหมุดและสถานะเครือข่าย (eth0/wan0 IPs) บรรทัดสถานะของประตูเป็น GFX ที่ดีที่จะพูดว่า:

  • | | เปิด
  • |-| กำลังดำเนินการ
  • |.| ถูกปิด

แผนผัง Fritzing

แผนผังสุดล้ำพร้อมจอ LCD I2C ขนาด 20x4 สวิตช์เปิด/ปิดและรีเลย์ การเพิ่มเพียงอย่างเดียวคือหน้าจอ LCD I2C ฉันชอบสิ่งนั้นมากกว่า 18x2 ที่ฉันมี

ระบบถ่ายทอดสด

เบต้า HW ตอนนี้เป็น "ระดับการผลิต" เนื่องจากพอดีกับกล่องสกรูเก่า ฉันเก็บตัวคั่นไว้หนึ่งตัวเพื่อโฮสต์รีเลย์และสายเคเบิลอื่น ๆ ในขณะที่ RPi อยู่ที่ระดับต่ำกว่า คุณอาจสังเกตเห็น Synology NAS (FR/DE) ทางด้านขวา ซึ่งใช้สำหรับจ่ายไฟให้กับ RPi โดยตรง ในเวลากลางคืนด้วยโมเด็ม สวิตช์ และ NAS

มุมมองแบบปิดของกล่องสกรู จอ LCD จะแสดงสถานะของประตูและพินเอาต์เปิด/ปิด/รีเลย์

ในเวลากลางคืนมุมมองภายในจากด้านบน

ขั้นตอนที่ 5: ซอร์สโค้ดและทรัพยากร

คุณสามารถค้นหาทรัพยากรทั้งหมดได้ที่ที่เก็บ GitHub นี้:

github.com/amayii0/GarageOpenerR1

แนะนำ: