วิธีการสร้าง IOT Smart Garage Opener โดยใช้ Raspberry Pi
ในยุคนี้ที่เทคโนโลยีล่าสุดทำให้เราบุกรุกอินเทอร์เน็ตของสิ่งต่าง ๆ (IoT) ได้ทุกวัน เมื่อเร็ว ๆ นี้ได้กลายเป็นวิธีการที่ทันสมัยที่สุดในการทำให้อุปกรณ์อิเล็กทรอนิกส์ทำงานอัตโนมัติและด้วยเหตุนี้จึงลดการรบกวนของมนุษย์ได้ในระดับที่ดี เทคโนโลยีมากมายรองรับการควบคุมอุปกรณ์แบบไร้สายเช่น ระบุความถี่คลื่นวิทยุ (อาร์เอฟไอดี) บลูทูธ, ไวไฟ, ฯลฯ ในโครงการนี้ เราจะสร้างเครื่องเปิดประตูโรงรถอัจฉริยะโดยใช้ Raspberry Pi เว็บเซิร์ฟเวอร์ Raspberry pi จะถูกสร้างขึ้นเพื่อเปิดและปิดประตูโรงรถโดยใช้สมาร์ทโฟนของคุณ
วิธีการตั้งค่า Raspberry Pi และส่วนประกอบฮาร์ดแวร์อื่น ๆ
เนื่องจากเราเข้าใจจุดมุ่งหมายพื้นฐานของโครงการนี้แล้ว เรามาก้าวต่อไปในการรวบรวมส่วนประกอบและประกอบเข้าด้วยกัน
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
ขั้นตอนที่ 2: การเลือกรุ่น Raspberry Pi
ราสเบอร์รี่ pi หลายรุ่นมีจำหน่ายในท้องตลาด ยกเว้นราสเบอร์รี่ pi zero สามารถเลือกรุ่นใดก็ได้ เนื่องจากการตั้งค่าเครือข่าย Pi zero เป็นงานที่เหนื่อยมาก สามารถซื้อรุ่นล่าสุดเช่น 3A+, 3B+ หรือ 4 ได้ Raspberry Pi 3 ใหม่เป็นอุปกรณ์ที่เร็วและโดดเด่นที่สุดที่ Raspberry Pi Foundation ได้เปิดตัวจนถึงปัจจุบัน ในโครงการนี้ เราจะใช้ Raspberry Pi 3B+
ขั้นตอนที่ 3: การเลือกระบบปฏิบัติการ
ประการแรก เราจะต้องมีการ์ด SD ที่มีระบบปฏิบัติการที่เหมาะสม เมื่อเลือกระบบปฏิบัติการ ทุกวันนี้มีทางเลือกมากมาย ตั้งแต่ Raspbian "แบบธรรมดา" ไปจนถึงเฟรมเวิร์กการทำงานของสื่อโดยเฉพาะ และแม้แต่ Windows 10 IoT เป็นที่ต้องการของ Raspbian เพราะมันมาพร้อมกับแพ็คเกจมากกว่า 35,000 แพ็คเกจ Raspbian เป็นโครงการชุมชนภายใต้การพัฒนาอย่างแข็งขัน โดยเน้นที่การปรับปรุงความเสถียรและประสิทธิภาพของแพ็คเกจ Debian ให้ได้มากที่สุด
ขั้นตอนที่ 4: เชื่อมต่อ Raspberry กับแล็ปท็อป
จอภาพภายนอกหรือ LCD โดยใช้สาย HDMI สามารถใช้เป็นจอแสดงผลเพื่อเชื่อมต่อกับ Raspberry Pi หากใครไม่มี LCD ก็สามารถใช้แล็ปท็อปเชื่อมต่อ Pi ได้ แต่ต้องมีการกำหนดค่าบางอย่างเพื่อเชื่อมต่อ เราจะใช้ a เซฟเชลล์ (SSH) ไคลเอนต์ที่เรียกว่า สีโป๊ว เพื่อเชื่อมต่อ Pi โดยใช้แล็ปท็อป การเชื่อมต่ออธิบายไว้ในขั้นตอนที่กล่าวถึงด้านล่าง:
- การติดตั้ง Advanced IP Scanner: Advanced IP Scanner เป็นเครื่องมือที่ใช้ในการตรวจจับ IP ที่กำหนดให้กับอุปกรณ์โดยเราเตอร์ Wifi ของคุณ เราจะติดตั้งซอฟต์แวร์นี้โดยคลิกที่นี่
- การตรวจจับ IP ที่กำหนดให้กับ Raspberry Pi: ตอนนี้เราจะตรวจสอบ IP แบบคงที่ที่กำหนดให้กับ Raspberry Pi ของเรา
ที่อยู่ IP ที่กำหนดให้กับ Raspberry Pi ของเราคือ 192.168.1.16. จดบันทึกที่อยู่ IP นี้ไว้ เนื่องจากจำเป็นต้องใช้ในการกำหนดค่าเพิ่มเติม บันทึก: ทุกคนจะได้รับที่อยู่ IP ที่แตกต่างกันขึ้นอยู่กับเราเตอร์ไร้สาย
- ดาวน์โหลด Putty และป้อนที่อยู่ IP ในนั้น: Putty เป็นไคลเอนต์ SSH และเป็นซอฟต์แวร์โอเพ่นซอร์สที่ใช้ได้กับซอร์สโค้ด สามารถดาวน์โหลดได้จากที่นี่ หลังจากดาวน์โหลด Putty ให้เปิดและป้อนที่อยู่ IP แบบคงที่ "192.168.1.16" เพื่อเชื่อมต่อกับแล็ปท็อป
- เข้าสู่ระบบ:หลังจากป้อนที่อยู่ IP หน้าจอจะปรากฏขึ้นและจะถามชื่อผู้ใช้และรหัสผ่าน ชื่อผู้ใช้เริ่มต้นคือ “ปี่” และรหัสผ่านคือ “ราสเบอร์รี่“. เราสามารถเปลี่ยนรายละเอียดการเข้าสู่ระบบได้เช่นกันหากต้องการ
ขั้นตอนที่ 5: แผนภาพวงจร
เมื่อเรารู้แล้วว่าส่วนประกอบทำงานอย่างไร มาประกอบส่วนประกอบเหล่านี้และสร้างวงจรดังที่แสดงด้านล่าง
รีเลย์ขับเคลื่อนโดย 5 V ของ Raspberry Pi และ เอาต์พุตอินพุตวัตถุประสงค์ทั่วไป (GPIO-14) เชื่อมต่อกับ ใน ของรีเลย์ มันจะบอกรีเลย์เมื่อต้องเปลี่ยน บน และ ปิด เราได้เชื่อมต่อหลอดไฟ AC 12V เข้ากับเอาต์พุตของรีเลย์เพื่อให้หลอดไฟเปิดขึ้นเมื่อประตูโรงรถเปิดขึ้น บน และเมื่อประตูโรงรถปิด หลอดไฟก็จะหมุน ปิด.
ขั้นตอนที่ 6: การตั้งค่าขวดใน Pi สำหรับควบคุมประตูโรงรถ
เราจะสร้างเว็บเซิร์ฟเวอร์โดยใช้ Flask ซึ่งจะเป็นการปูทางสำหรับการส่งคำสั่งจากหน้าเว็บไปยัง Raspberry Pi เพื่อควบคุมต้นแบบของเราผ่านเครือข่าย Flask ช่วยให้เราสามารถเรียกใช้เนื้อหาหลามของเราผ่านหน้าเว็บไซต์และเราสามารถส่งและรับข้อมูลจาก Raspberry Pi ไปยังอินเทอร์เน็ตเบราว์เซอร์และในทางกลับกัน เป็นไมโครเฟรมเวิร์คสำหรับ ไพทอน. เครื่องมือนี้ใช้ Unicode ซึ่งมีเซิร์ฟเวอร์การพัฒนาและดีบักเกอร์ในตัว รองรับการทดสอบหน่วยแบบรวม รองรับคุกกี้ที่ปลอดภัย และใช้งานง่าย สิ่งเหล่านี้ทำให้มีค่าสำหรับผู้เชี่ยวชาญ สำหรับการติดตั้ง กระติกน้ำ บน Raspberry Pi ของคุณให้พิมพ์คำสั่งต่อไปนี้:
sudo apt-get update sudo apt-get ติดตั้ง python-pip python-flask
ตอนนี้รันคำสั่ง pip เพื่อติดตั้ง Flask และเป็นการพึ่งพา:
sudo pip ติดตั้งขวด
ขั้นตอนที่ 7: สร้างสคริปต์ Python สำหรับผู้เปิดประตู
สคริปต์นี้จะร่วมมือกับ Raspberry Pi GPIO และตั้งค่าเว็บเซิร์ฟเวอร์ เป็นสคริปต์หลักสำหรับโครงการของเรา สคริปต์ Python จะอธิบายในส่วนด้านล่าง:
ประการแรกเราจะสร้างโฟลเดอร์ โฟลเดอร์ที่จำเป็นอื่นๆ ทั้งหมดควรอยู่ในโฟลเดอร์นี้เท่านั้น เรียกใช้คำสั่งด้านล่างเพื่อสร้างโฟลเดอร์แล้วสร้างไฟล์ python ชื่อ app.pyภายในโฟลเดอร์นี้:
mkdir garage_door cd garage_door nano app.py
คำสั่งข้างต้นจะเปิดโปรแกรมแก้ไข Nano ซึ่งจะเขียนสคริปต์ด้านล่าง รวมห้องสมุดที่สำคัญ:
นำเข้า RPi.GPIO เป็น GPIO จากขวดนำเข้า Flask, render_template, แอปคำขอ = Flask(__name__, static_url_path='/static')
ตอนนี้สร้างพจนานุกรมเป็นหมุดเพื่อจัดเก็บ PIN ชื่อ และสถานะพิน คุณสามารถใช้ได้มากกว่าหนึ่งพินตามความต้องการของคุณ:
หมุด = {14: {'ชื่อ' : 'ประตูโรงรถ', 'สถานะ': GPIO.LOW} }
จากนั้นตั้งค่าพินเป็นเอาต์พุตและตั้งไว้ที่ระดับต่ำในตอนแรก:
สำหรับพินอินพิน: GPIO.setup(pin, GPIO.OUT) GPIO.output(pin, GPIO.LOW)
เราจะสร้างฟังก์ชันเพื่ออ่านสถานะพินและเก็บสถานะนี้ไว้ในตัวแปร:
@app.route("/") def main(): สำหรับพินในพิน: pins[pin]['state'] = GPIO.input(pin) ..
เราจะส่งข้อมูลนี้ไปยัง .ของเรา HTML หน้าเพื่อให้เราสามารถควบคุมสถานะปุ่มป้อนข้อมูลได้:
ส่งคืน render_template('main.html', **templateData)
สำหรับการจัดการคำขอจาก URL สร้างฟังก์ชันด้วย PIN และการดำเนินการในนั้น:
@app.route("// ', method=['GET', 'POST']) def action(changePin, action):
หลังจากนั้นแปลงพินจาก URL เป็นจำนวนเต็ม
changePin = int (เปลี่ยนพิน)
หากส่วนการดำเนินการของ URL คือ “เปิด” ณ จุดนั้น ให้ทำดังต่อไปนี้:
ถ้า action == "open": GPIO.output(changePin, GPIO.HIGH) if action == "close": GPIO.output(changePin, GPIO.LOW)
ผมจะแนบสคริปฉบับสมบูรณ์ท้ายบทไว้ และหากใครต้องการคัดลอกก็สามารถทำได้โดยกด ctrl+x แล้วกด ป้อน ตอนนี้เราเสร็จสิ้นด้วยสคริปต์ python และเราจะสร้าง an HTML หน้าเพื่อโต้ตอบกับสคริปต์หลาม
ขั้นตอนที่ 8: การสร้างหน้า HTML สำหรับ Raspberry Pi Server
เราจะทำการเปลี่ยนแปลงในโฟลเดอร์ garage_door ที่เราสร้างไว้ก่อนหน้านี้ เราจะสร้างโฟลเดอร์ใหม่ชื่อ แม่แบบ และภายในโฟลเดอร์นี้สร้างไฟล์ .html โดยใช้คำสั่งต่อไปนี้:
เทมเพลต mkdir เทมเพลต cd nano main.html
ตอนนี้เปิดโปรแกรมแก้ไขข้อความนาโนแล้วเขียน HTML รหัส. เราสามารถแก้ไข ส่วนของหน้าและแก้ไขตามที่เราเลือก เราใช้รูปแบบ CSS ของบุคคลที่สามโดยใช้แท็กลิงก์ รหัสที่สมบูรณ์ได้รับด้านล่าง:
คลิกที่นี่เพื่อดาวน์โหลดโค้ด HTML เพื่อสร้างหน้าเว็บ
ขั้นตอนที่ 9: การสร้างปุ่มสำหรับเปิดและปิดประตู
เราจะต้องกำหนดสถานะการเปิดและปิดปุ่ม ปุ่มนั้นจะส่งและดึงสถานะ GPIO จากสคริปต์หลาม เนื่องจากเราได้ทำโค้ด HTML ข้างต้นเสร็จแล้ว เราจึงสามารถใช้โค้ดนี้ในตัวแก้ไขและบันทึกได้ และในที่สุด เว็บเซิร์ฟเวอร์ของเราก็พร้อมที่จะเปิดตัว เปิดเทอร์มินัลแล้วไปที่ประตูโรงรถ โฟลเดอร์และเรียกใช้คำสั่งด้านล่างที่กล่าวถึงด้านล่าง:
sudo python app.py
เปิดเบราว์เซอร์และป้อนที่อยู่ IP ของ Raspberry Pi แล้วกด Enter หน้าประเภทนี้จะแสดง:
ขั้นตอนที่ 10: การตั้งค่าฮาร์ดแวร์
เมื่อตั้งค่าซอฟต์แวร์เสร็จแล้ว เรามาก้าวไปข้างหน้าและประกอบฮาร์ดแวร์กัน ตรวจสอบให้แน่ใจว่าโมดูลรีเลย์เชื่อมต่อกับ Raspberry Pi สำหรับการทดสอบให้กดปุ่มเปิดเพื่อเปลี่ยน บน รีเลย์และปุ่มปิดสวิตช์ ปิด รีเลย์ ทันทีที่เปิดรีเลย์ไฟหลอดไฟ AC จะสว่างขึ้นและเรารู้ว่าประตูเปิดอยู่และเมื่อปิดหลอดไฟเราก็รู้ว่าประตูปิด หากต้องการหยุดเซิร์ฟเวอร์ ให้กด ctrl+c
คลิกที่นี่เพื่อดาวน์โหลดรหัสเพื่อติดตั้งฮาร์ดแวร์