- การติดตั้งและกำหนดค่า 'Motion' เพื่อรับฟีดวิดีโอ:
- การตั้งค่าขวดใน Raspberry Pi สำหรับการควบคุมหุ่นยนต์ผ่านหน้าเว็บ:
- รหัส HTML สำหรับหน้าเว็บ:
- หุ่นยนต์เฝ้าระวัง
- แผนภาพวงจรและการตั้งค่า:
- วิธีใช้งาน:
ในเซสชั่น DIY ครั้งนี้เราจะสร้างเว็บควบคุมการเฝ้าระวังรถหุ่นยนต์โดยใช้ปี่ราสเบอร์รี่และเว็บแคมนี่อาจเป็นเครื่องมือรักษาความปลอดภัยและสอดแนมที่มีประโยชน์และราคาไม่แพงซึ่งมีตัวเลือกที่กำหนดค่าได้มากมายและสามารถสร้างได้ภายในไม่กี่ชั่วโมง ในโครงการ IoT นี้ส่วนใหญ่เราใช้ Raspberry Pi, เว็บแคม USB และมอเตอร์ DC สองตัวพร้อมโครงหุ่นยนต์เพื่อสร้างรถหุ่นยนต์คันนี้
มีกล้องเว็บติดตั้งอยู่ซึ่งเราจะได้รับฟีดวิดีโอสดและส่วนที่น่าสนใจตรงนี้คือเราสามารถควบคุมและเคลื่อนย้ายหุ่นยนต์ตัวนี้จากเว็บเบราว์เซอร์ผ่านอินเทอร์เน็ต เนื่องจากสามารถควบคุมได้โดยใช้หน้าเว็บจึงสามารถควบคุมได้โดยใช้หน้าเว็บในมือถือ เราสร้างหน้าเว็บด้วย HTML ซึ่งมีลิงก์ซ้ายขวาไปข้างหน้าและถอยหลังคลิกที่เราสามารถเคลื่อนหุ่นยนต์ไปในทิศทางใดก็ได้ ที่นี่เราใช้"Motion" เพื่อรับฟีดวิดีโอสดจากกล้อง USB และใช้"Flask" ในการส่งคำสั่งจากหน้าเว็บไปยัง Raspberry Pi โดยใช้ pythonเพื่อเคลื่อนย้ายหุ่นยนต์ซึ่งจะอธิบายโดยละเอียดในส่วนต่อไปของบทช่วยสอนนี้ เราติดตั้ง Raspbian Jessie OS บนบอร์ด Raspberry Pi ของเราแล้ว คุณสามารถตรวจสอบบทความนี้เพื่อติดตั้ง Raspbian OS และเริ่มต้นกับ Raspberry Pi
การติดตั้งและกำหนดค่า 'Motion' เพื่อรับฟีดวิดีโอ:
Motion (Surveillance Software)เป็นซอฟต์แวร์ CCTV ตรวจจับการเคลื่อนไหวแบบโอเพนซอร์สที่พัฒนาขึ้นสำหรับ Linux ตรวจจับการเคลื่อนไหวและเริ่มบันทึกวิดีโอ กับ 'โมชั่น' ที่ติดตั้งในราสเบอร์รี่ Pi ของคุณคุณอย่างน่าอัศจรรย์สามารถ เปิด Raspberry Pi ของคุณให้เป็นกล้องรักษาความปลอดภัย ใช้สำหรับรับฟีดวิดีโอสดสร้างวิดีโอตามเวลาและถ่ายภาพรวมในช่วงเวลาปกติ บันทึกและบันทึกวิดีโอทุกครั้งที่ตรวจพบการเคลื่อนไหวหรือสิ่งรบกวนใด ๆ ในพื้นที่ดู คุณสามารถดูฟีดวิดีโอสดบนเว็บเบราว์เซอร์ได้โดยป้อนที่อยู่ IP ของ Pi พร้อมกับพอร์ต
เราได้สร้างบทช่วยสอนโดยละเอียดเกี่ยวกับการใช้ Motion กับ Raspberry Pi และกล้อง USB แล้วที่นี่เราจะอธิบายสั้น ๆ เกี่ยวกับการติดตั้งบน Raspberry pi เพื่อให้ Robot ของเราส่งสตรีมมิ่งวิดีโอสดไปยังหน้าเว็บ
ที่นี่คุณต้องเรียกใช้เพียงไม่กี่คำสั่งเพื่อเริ่มรับฟีดวิดีโอแรกผ่านเครือข่าย ก่อนหน้านั้นตรวจสอบให้ถูกต้องว่า Raspberry Pi ของคุณเชื่อมต่อกับอินเทอร์เน็ตโดยใช้ LAN หรือ Wi-Fi จากนั้นทำตามขั้นตอนด้านล่าง:
ขั้นตอนที่ 1:ขั้นแรกให้เรียกใช้คำสั่งด้านล่างเพื่ออัปเดต Raspbian OSบน Raspberry Pi:
อัปเดต sudo apt-get
ขั้นตอนที่ 2:จากนั้นติดตั้งไลบรารี 'Motion'โดยใช้คำสั่งด้านล่าง:
sudo apt-get install motion
ขั้นตอนที่ 3:ตอนนี้ตั้งเคลื่อนไหวภูตใช่โดยการแก้ไขไฟล์: / etc / default / การเคลื่อนไหว เพื่อที่จะอยู่เสมอที่จะทำงาน แก้ไขไฟล์นี้โดยใช้ตัวแก้ไข 'nano' ด้วย 'sudo' ตามที่ระบุด้านล่าง:
sudo nano / etc / default / motion
จากนั้นบันทึกไฟล์โดยกด 'CTRL + X' จากนั้น 'Y' และปุ่ม Enter
ขั้นตอนที่ 4:ตอนนี้เราจำเป็นต้องตั้งค่าการอนุญาตสำหรับ Target Directory (/ var / lib / motion /) ซึ่ง Motion จะบันทึกการบันทึกวิดีโอและไฟล์รูปภาพทั้งหมด เราจำเป็นต้องตั้งค่า 'Motion' เป็นเจ้าของไดเรกทอรีนี้โดยออกคำสั่งด้านล่าง:
การเคลื่อนไหว sudo chown: การเคลื่อนไหว / var / lib / การเคลื่อนไหว /
การอนุญาตนี้จำเป็นไม่เช่นนั้นคุณจะได้รับข้อผิดพลาดเมื่อคุณตรวจสอบสถานะบริการ Motion
คุณสามารถตรวจสอบสถานะการบริการได้โดยใช้คำสั่งนี้: sudo service motion status
ขั้นตอนที่ 5:ตอนนี้เราเกือบเสร็จแล้วเพียงแค่เราต้องเปลี่ยนตัวเลือก config หนึ่งตัวในไฟล์การกำหนดค่า Motion (/etc/motion/motion.conf ) ซึ่ง ปิด stream_localhost เราต้องปิดการสตรีมโฮสต์ภายในเครื่องมิฉะนั้นเราจะไม่สามารถเข้าถึงฟีดวิดีโอบนเครือข่ายของเราได้และจะเข้าถึงได้จาก Raspberry Pi เท่านั้น ในการดำเนินการดังกล่าวให้แก้ไขไฟล์ Motion Configuration ด้วยตัวแก้ไข 'nano' และปิดไฟล์ดังที่แสดงด้านล่าง:
sudo nano /etc/motion/motion.conf
ตอนนี้เราทำเสร็จแล้วและพร้อมที่จะรับฟีดสดจากเว็บแคม USB ที่เชื่อมต่อกับ Pi เพียงเริ่ม (หรือรีสตาร์ท) บริการ Motion โดยใช้คำสั่งด้านล่างและเปิด IP ของ Raspberry Pi ด้วยพอร์ต 8081ในเบราว์เซอร์ของคุณ (เช่น 192.168.43.199:8081) ในโครงการนี้เราได้ฝัง IP นี้ไว้ในโค้ด HTML ของเราในแท็ก img src
sudo /etc/init.d/motion เริ่มต้นใหม่
และคุณจะเห็นฟีดสดจากเว็บแคมของคุณ ที่นี่เราใช้เว็บแคม USB ราคาประหยัดซึ่งทำงานร่วมกับ Raspberry Pi ของเราได้อย่างราบรื่น แต่คุณสามารถใช้กล้องคุณภาพดีเพื่อความละเอียดที่ดีขึ้นได้ เนื่องจากจะแสดงในเบราว์เซอร์คุณสามารถใช้อุปกรณ์ใดก็ได้เพื่อดูฟีดซึ่งรองรับเว็บเบราว์เซอร์เช่นมือถือแท็บเล็ตเป็นต้น
ลองรีบูต Raspberry Pi เป็นขั้นตอนการแก้ไขปัญหาเมื่อจำเป็น:
sudo รีบูต
ทั้งหมดนี้เกี่ยวกับการใช้ Motion สำหรับ Surveillance Robot ของเรานอกเหนือจากนั้นยังมีตัวเลือกการกำหนดค่าต่างๆที่เราได้พูดถึงไปแล้วในบทช่วยสอนก่อนหน้านี้
หมายเหตุ: หากคุณเป็นรุ่น Raspberry Pi ที่ต่ำกว่าเวอร์ชัน 3 คุณอาจต้องใช้ดองเกิล Wi-Fi เพื่อเชื่อมต่อราสเบอร์รี่ Pi กับเราเตอร์แบบไร้สาย
การตั้งค่าขวดใน Raspberry Pi สำหรับการควบคุมหุ่นยนต์ผ่านหน้าเว็บ:
ที่นี่เราได้สร้างเว็บเซิร์ฟเวอร์โดยใช้Flaskซึ่งมีวิธีการส่งคำสั่งจากหน้าเว็บไปยัง Raspberry Piเพื่อควบคุม Robot ผ่านเครือข่าย Flask ช่วยให้เราสามารถเรียกใช้สคริปต์ python ของเราผ่านหน้าเว็บและเราสามารถส่งและรับข้อมูลจาก Raspberry Pi ไปยังเว็บเบราว์เซอร์และในทางกลับกัน Flask เป็นไมโครเฟรมเวิร์คสำหรับ Python เครื่องมือนี้ใช้ Unicode ที่มีเซิร์ฟเวอร์การพัฒนาและดีบักเกอร์ในตัวการสนับสนุนการทดสอบหน่วยรวมรองรับคุกกี้ที่ปลอดภัยและใช้งานง่ายสิ่งเหล่านี้ทำให้เป็นประโยชน์สำหรับมือสมัครเล่น
ติดตั้งแพ็คเกจรองรับขวดลงใน Raspberry Pi โดยใช้คำสั่งที่กำหนด:
$ pip ติดตั้ง Flask
จากนั้นเราสามารถใช้ Flask ได้โดยเพียงแค่นำเข้าในโปรแกรมของเราเช่นเราได้นำเข้าแพ็คเกจขวดต่อไปนี้สำหรับโครงการนี้:
จากขวดนำเข้า Flask from flask import Flask, render_template, request
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโปรแกรมโดยใช้ Flask ได้ที่นี่และตรวจสอบโครงการก่อนหน้าของเราที่เราใช้ Flask เพื่อส่งข้อความจากเว็บเพจไปยัง Raspberry Pi และส่งค่าน้ำหนักไปยัง Raspberry Pi ใน Smart Container
รหัส HTML สำหรับหน้าเว็บ:
เราได้สร้างหน้าเว็บโดยใช้ภาษา HTML สำหรับแสดงลิงก์ควบคุม (ซ้าย, ขวา, เดินหน้า, ถอยหลัง) เพื่อย้าย Robot จากเว็บเบราว์เซอร์ เราใช้สคริปต์ jQuery เพื่อเรียกใช้ฟังก์ชันในโปรแกรม Python ของเรา มีฟังก์ชันห้าอย่างใน Python Code เพื่อย้าย Robot ไปทางซ้ายขวาเดินหน้าถอยหลังและหยุด ได้รับรหัส Python ที่สมบูรณ์ในตอนท้าย ฟังก์ชันเหล่านี้จะทำงานโดยคลิกที่ลิงค์ควบคุมบนหน้าเว็บและมอเตอร์จะเคลื่อนที่ขึ้นอยู่กับลิงค์ที่คลิก ที่นี่เราได้เขียนรหัสในลักษณะดังกล่าวว่าหุ่นยนต์จะย้ายไปในทิศทางที่แน่นอนในขณะที่การคลิกและการถือครองการเชื่อมโยงและทันทีที่เราปล่อยหุ่นยนต์ปุ่มเมาส์จะหยุดด้านล่างนี้คือโค้ด HTML สำหรับหน้าเว็บรวมถึง jQuery:
ที่นี่คุณจะเห็นว่าเราได้ฝังที่อยู่ IP ซึ่งสตรีมมิ่งวิดีโอลงในหน้าเว็บโดยใช้แท็ก img src เปลี่ยนที่อยู่ IP ตาม Raspberry Pi ของคุณ แต่คงพอร์ตไว้เหมือนเดิม
ผู้ใช้ต้องคัดลอกและวางโค้ด HTML ที่ระบุข้างต้นในโปรแกรมแก้ไขข้อความ (notepad) และบันทึกไฟล์ด้วยนามสกุล. HTML (robot.html) จากนั้นใส่ไฟล์ HTML นี้ในโฟลเดอร์ / template ตามตำแหน่งสคริปต์ python ของคุณ หมายความว่าคุณต้องสร้างโฟลเดอร์ชื่อแม่แบบที่คุณใส่ไฟล์ Python Code สำหรับ Raspberry Surveillance Robot ตัวนี้จากนั้นใส่ไฟล์ robot.html ในโฟลเดอร์แม่แบบนี้ ขั้นตอนนี้มีความสำคัญมิฉะนั้นโครงการของเราจะไม่ทำงาน คุณสามารถเปิดไฟล์ robot.html ได้โดยตรงโดยดับเบิลคลิกที่ไฟล์เพื่อดูว่าลิงก์ควบคุมของคุณจะเป็นอย่างไร ตรวจสอบกระบวนการทั้งหมดเพิ่มเติมใน วิดีโอสาธิต ในตอนท้าย หลังจากที่เราเขียนโปรแกรมเสร็จแล้วเราก็สามารถรันโค้ด Python ใน Raspberry Pi และเปิด IP_address_of_your_Pi: 5010 ในเว็บเบราว์เซอร์ (เช่น
คุณสามารถตรวจสอบที่อยู่ IP ของ Raspberry Pi ของคุณได้โดยใช้ คำ สั่ง ifconfig :
ifconfig
แผนภาพวงจรและการตั้งค่า:
หลังจากทดสอบฟีดวิดีโอสดและโค้ด HTML เราจำเป็นต้องสร้างหุ่นยนต์โดยใช้โครงหุ่นยนต์ที่ทำด้วยมือหรือสำเร็จรูปล้อและน็อตสลักเกลียว จากนั้นวาง Power bank ทับเพื่อเปิด Raspberry Pi จากนั้นวาง Raspberry Pi และกล้องเว็บไว้บนพาวเวอร์แบงค์และแก้ไขการตั้งค่าโดยใช้เทป Cello หรือแถบยางเชื่อมต่อกล้อง USB กับ Raspberry Pi
ในโครงการ IOT นี้เราไม่จำเป็นต้องทำเช่นการเชื่อมต่อมากเราจะต้องเชื่อมต่อสายไฟบางอย่างสำหรับการขับมอเตอร์ IC L293D และ DC มอเตอร์ การเชื่อมต่อแสดงในแผนภาพวงจรด้านล่าง ที่นี่เราได้ใช้ PCB สำหรับการติดตั้ง L293D IC เพื่อลดพื้นที่ แต่คุณยังสามารถใช้ Breadboard ขนาดเล็กสำหรับเชื่อมต่อมอเตอร์กระแสตรงกับ L293D
วิธีใช้งาน:
การใช้งานและการทำงานของหุ่นยนต์เฝ้าระวังนี้ง่ายมาก สร้างไฟล์ python (นามสกุล. py) และคัดลอกโค้ดด้านล่างลงในไฟล์จากนั้นบันทึกลงใน Raspberry Pi ของคุณ จากนั้นใส่ไฟล์ HTML ในโฟลเดอร์ เทมเพลต ตามที่อธิบายไว้ข้างต้น อย่าลืมเปลี่ยนที่อยู่ IP ในไฟล์ HTML
จากนั้นเรียกใช้รหัส Python โดยป้อนคำสั่งด้านล่าง:
python name_of_file.py
จากนั้นเปิดที่อยู่ IP Raspberry Pi ของคุณด้วยพอร์ต 5010 เช่น http://192.168.43.199:5010 (แทนที่ที่อยู่ IP ด้วยที่อยู่ของคุณอีกครั้ง) ตอนนี้คุณจะเห็นหน้าเว็บที่มีลิงค์ควบคุมหุ่นยนต์สี่ตัวและวิดีโอสตรีมมิงแบบสด ผู้ใช้สามารถควบคุมหุ่นยนต์ได้โดยคลิกที่ลิงค์ค้างไว้ หากผู้ใช้คลิกลิงก์ค้างไว้หุ่นยนต์จะเคลื่อนที่ตามลิงก์ที่คลิกและเมื่อใดที่ผู้ใช้จะปล่อยลิงก์จากนั้นหุ่นยนต์จะหยุดโดยอัตโนมัติ
รหัส Python ที่สมบูรณ์จะได้รับด้านล่างซึ่งเราได้เขียนฟังก์ชันต่างๆเพื่อควบคุม Robot เมื่อคลิกลิงก์บนหน้าเว็บ คุณสามารถเข้าใจได้อย่างง่ายดายหรือหากคุณเป็นมือใหม่ลองดูบทแนะนำ Raspberry Pi ก่อนหน้านี้ของเรา ไปที่ส่วนหุ่นยนต์ของเราเพื่อดูหุ่นยนต์ที่น่าสนใจและสร้างง่ายขึ้น