สารบัญ:

R Pi -รีโมทคอนโทรล PA และระบบไฟ: 4 ขั้นตอน (พร้อมรูปภาพ)
R Pi -รีโมทคอนโทรล PA และระบบไฟ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: R Pi -รีโมทคอนโทรล PA และระบบไฟ: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: R Pi -รีโมทคอนโทรล PA และระบบไฟ: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Raspberry Pi Automation #1: Mains Relay HAT 2024, พฤศจิกายน
Anonim
R Pi -รีโมทคอนโทรล PA และระบบไฟ
R Pi -รีโมทคอนโทรล PA และระบบไฟ
R Pi -รีโมทคอนโทรล PA และระบบไฟ
R Pi -รีโมทคอนโทรล PA และระบบไฟ
R Pi -รีโมทคอนโทรล PA และระบบไฟ
R Pi -รีโมทคอนโทรล PA และระบบไฟ

นี่เป็นโครงการง่ายๆ สำหรับการประกาศด้วยเสียงและการเปิดและปิดไฟบน PI จากระยะไกลจากเว็บเบราว์เซอร์ นี่คือสิ่งที่คุณต้องการ:

1) Raspberry Pi พร้อม Apache และ PhP ที่ติดตั้งไว้ล่วงหน้า ฉันใช้ Pi v1 ตัวเก่าที่ฉันนอนอยู่ ฉันคิดว่าคุณเชื่อมต่อกับเครือข่ายในบ้านของคุณผ่าน wi-fi หรืออีเธอร์เน็ต

2) ลำโพงเสียงที่สามารถเชื่อมต่อกับ Pi ผ่านการเชื่อมต่อลำโพงเอาท์พุต ฉันใช้ชุดลำโพงเก่าจากระบบสเตอริโอแบบโบราณ

3) ชุดไฟต้นคริสต์มาส - ฉันซื้อของฉันจากพาวน์แลนด์

4) คลิปจระเข้และสายเขียงหั่นขนมสำหรับเชื่อมต่อ / ทดสอบ Pi กับลำโพงและไฟ (ดู 7)

5) พีซีหรือแล็ปท็อปที่มีโปรแกรมจำลองเทอร์มินัล Putty สำหรับเข้าถึง Raspberry Pi

6) ลวดหดความร้อน

7) ปืนลมร้อนสำหรับต่อสายลำโพงและสายไฟ

แนวคิดพื้นฐานคือ ฉันใช้เว็บฟอร์มเพื่อประกาศทางไกลผ่านลำโพงของฉัน และเปิดและปิดไฟด้วย ฉันใช้สคริปต์ PHP ซึ่งจะรัน Espeak สำหรับบิตข้อความเป็นคำพูดและคำสั่ง GPIO สำหรับไฟ ฉันถือว่าคุณรู้วิธีติดตั้ง Apache และ PhP บน Raspberry Pi ของคุณ เป็นเอกสารที่ดีมาก

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

หลังจากการทดสอบและตรวจสอบ ต่อมาฉันเชื่อมต่อสายไฟทั้งหมดด้วยลวดหดด้วยความร้อนโดยใช้ปืนลมร้อน

ขั้นตอนที่ 1: ตั้งค่าและทดสอบฮาร์ดแวร์

ตั้งค่าและทดสอบฮาร์ดแวร์
ตั้งค่าและทดสอบฮาร์ดแวร์
ตั้งค่าและทดสอบฮาร์ดแวร์
ตั้งค่าและทดสอบฮาร์ดแวร์
ตั้งค่าและทดสอบฮาร์ดแวร์
ตั้งค่าและทดสอบฮาร์ดแวร์

ฉันขับเคลื่อน Pi และเชื่อมต่อลำโพงกับแจ็คเอาต์พุตเสียงของ Pi ฉันเชื่อมต่อไฟโดยเชื่อมต่อปลายด้านหนึ่งเข้ากับ GPIO17 (หมุดที่ 6 อยู่ที่เสาด้านใน) และ GND (หมุดที่ 3 ที่คอลัมน์ด้านนอก) - ดูรูปด้านบน โปรดทราบว่าฉันใช้ PI เวอร์ชัน 1 ดังนั้นโปรดเปลี่ยน PIN ตามลำดับ หากคุณใช้ PI เวอร์ชันที่ใหม่กว่า

ด้านบนเป็น Heat Shrink Wire และ Hot Air gun สำหรับต่อลำโพงและสายไฟ

ต่อไปเมื่อเปิดเครื่องทุกอย่างแล้ว ฉันเข้าสู่ระบบ Pi โดยใช้ Putty จากแล็ปท็อป Windows ของฉัน หากต้องการค้นหาที่อยู่ IP ของ Pi ให้เปิดที่อยู่ IP ของเราเตอร์ของคุณบนเว็บเบราว์เซอร์ (โดยทั่วไปจะเหมือนกับ 192.168.1.254) ซึ่งจะแสดงรายการอุปกรณ์ที่เชื่อมต่อรวมถึงชื่อโฮสต์ Pi และที่อยู่ IP คุณสามารถใช้อย่างใดอย่างหนึ่งเหล่านี้เพื่อเข้าสู่ระบบ Putty ได้ แต่ฉันมักจะใช้ที่อยู่ IP เพราะฉันมี PI จำนวนหนึ่ง หรือคุณสามารถเข้าสู่ระบบ Putty โดยลองใช้ชื่อโฮสต์ เช่น pi หรือ raspberrypi เมื่อได้รับแจ้งบน Putty ให้ใส่ชื่อผู้ใช้และรหัสผ่าน ให้ลองใช้ pi/raspberry ซึ่งเป็นค่าเริ่มต้น (การใช้ค่าเริ่มต้นนั้นไม่ปลอดภัยอย่างยิ่ง และเปิดโอกาสให้คุณโจมตีจากแฮ็กเกอร์ได้ แม้ว่าจะอยู่ในเครือข่ายส่วนตัวก็ตาม) จากประสบการณ์ของผม โปรแกรม Pi, Espeak และไลบรารี GPIO ได้รับการติดตั้งตามค่าเริ่มต้นบนอิมเมจ Pi ส่วนใหญ่

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

sudo /usr/local/bin/gpio -g โหมด 17 outsudo /usr/local/bin/gpio -g เขียน 17 1

แล้วปิดไฟ

(NB ปัญหาใด ๆ เพียงแค่ลองเพียง sudo gpio ฯลฯ - ตรวจสอบว่ามีการติดตั้ง gpio หรือไม่โดยพิมพ์ gpio -v - หากคุณต้องการติดตั้งให้ดูที่

sudo /usr/local/bin/gpio -g เขียน 17 0

ตอนนี้ทดสอบว่าการพูดได้ผล

~ $ sudo espeak "นี่คือการทดสอบ"

ฉันไม่ค่อยมีปัญหากับ Espeak แต่พบปัญหาเมื่อระดับเสียง Alsamixer เหลือน้อย และบางครั้งโปรแกรมอื่นๆ ก็ดึงการ์ดเสียงออก คุณต้องเรียกใช้ ps -ef และดูว่ากระบวนการสื่ออื่นๆ กำลังทำงานอยู่ คุณสามารถใช้บางอย่างเช่น sudo kill -9 $(sudo ps aux | sudo grep -v grep | sudo grep mplayer | sudo awk '{print $2}') เพื่อฆ่าพวกมัน - เราใช้สิ่งนี้ในภายหลังในสคริปต์ PHP

ขั้นตอนที่ 2: การตั้งค่าเว็บเซิร์ฟเวอร์

การตั้งค่าเว็บเซิร์ฟเวอร์
การตั้งค่าเว็บเซิร์ฟเวอร์
การตั้งค่าเว็บเซิร์ฟเวอร์
การตั้งค่าเว็บเซิร์ฟเวอร์

มีหลายขั้นตอนที่เราต้องดำเนินการ

1) ค้นหาเจ้าของบริการเว็บ / เซิร์ฟเวอร์ apache2 - เรียกใช้ sudo ps aux | egrep '(apache|httpd)' และคุณควรเห็น www-data2) เพิ่ม www-data ในกลุ่ม sudo - เรียกใช้ sudo nano /etc/sudoers --- เพิ่มบรรทัด www-data ALL=(ALL) NOPASSWD: ALL

3) เพิ่ม www-data ในกลุ่มเสียง - sudo adduser www-data audio

4) ขั้นตอนทางเลือกคือการสร้างไฟล์ phpinfo ซึ่งจะบอกคุณถึงฟังก์ชัน PHP ทั้งหมดที่คุณมีและตำแหน่งของ

ไฟล์ conf หากคุณต้องการเปลี่ยนแปลงสิ่งต่างๆ ตัวอย่างเช่น PHP บางเวอร์ชันบล็อกฟังก์ชัน shell_exec() ซึ่งเราต้องเรียกใช้โปรแกรมบรรทัดคำสั่ง เช่น Espeak จากเว็บเซิร์ฟเวอร์ นี่คือวิธีการตั้งค่า phpinfo..

ไปที่ไดเร็กทอรีเว็บเริ่มต้นของคุณโดยปกติ /var/www หรือ /var/www/html….. เป็นไฟล์ที่มีไฟล์ index.html แล้วพิมพ์ sudo nano phpinfo.php จากนั้นพิมพ์ข้อความต่อไปนี้ในโปรแกรมแก้ไข nano แล้วกด control O เพื่อ บันทึกและออก

อย่าลืมทำให้ปฏิบัติการได้ด้วยการพิมพ์ sudo chmod 755 phpinfo.php - หากต้องการดู ให้เปิด URL ต่อไปนี้ในเว็บเบราว์เซอร์ของคุณโดยใช้ชื่อโฮสต์แทนชื่อของฉัน เช่น raspberrypi -

?>

ขั้นตอนที่ 3: โค้ด PHP และเว็บสคริปต์

โค้ด PHP และสคริปต์เว็บ
โค้ด PHP และสคริปต์เว็บ

ฉันใช้สองโปรแกรมที่นี่ - หนึ่งโปรแกรมสำหรับเว็บฟอร์ม (espeak_form.php) และอีกโปรแกรมหนึ่งซึ่งประมวลผลข้อมูลแบบฟอร์ม (my_espeak.php) ฉันได้รวมสิ่งเหล่านี้ไว้ด้านบนเป็นไฟล์ข้อความและเพื่อถ่ายโอนไปยัง Pi ของคุณโดยใช้ Putty สร้างทั้ง php ไฟล์แล้วตัดและวางจากไฟล์ข้อความที่เกี่ยวข้องที่แสดงด้านบน

pi@raspberrypi /var/www $ sudo nano /var//www/my_espeak.php

pi@raspberrypi /var/www $ sudo nano /var//www/espeak_form.php

อย่าลืมทำให้ไฟล์เรียกทำงานได้โดยพิมพ์ sudo chmod 755 *.php

สคริปต์ PHP ของแบบฟอร์มบนเว็บ (espeak_form.php) ที่ฉันเขียนจะไม่ได้รับรางวัลการออกแบบใดๆ แต่มี 2 รูปแบบย่อย หนึ่งเพื่อประกาศ (ข้อความเป็นคำพูด) และอีกรูปแบบหนึ่งใช้เพื่อสลับไฟหนึ่งและปิด แบบฟอร์มย่อยการพูดช่วยให้คุณสามารถเลือกสำเนียงต่างๆ เสียงผู้หญิง และฟังก์ชันกระซิบได้

แกนหลักของ my_espeak.php คือการใช้ฟังก์ชัน php - shell_exec() อย่างที่คุณเห็น สิ่งนี้ทำให้ PHP สามารถรันคำสั่ง Linux ได้โดยไม่ต้องใช้ไลบรารี่อื่น ดังที่คุณจะต้องพูดใน Python

ขั้นตอนที่ 4: บทสรุป

นี่เป็นวิธีแก้ปัญหาที่ซับซ้อนพอสมควรในการที่คุณใช้องค์ประกอบหลายอย่างของสภาพแวดล้อม Pi เช่น PHP, ฟังก์ชันบรรทัดคำสั่ง, Apache, GPIO เป็นต้น ฉันหวังว่ามันจะแสดงสิ่งที่คุณสามารถทำได้กับ PI โดยเฉพาะและ IOT โดยรวม มีหลายวิธีในการบรรลุเป้าหมายนี้ และคุณยังสามารถควบคุมได้จากอินเทอร์เน็ตหากคุณเข้าใจการส่งต่อพอร์ต ไฟร์วอลล์ และ/หรือ VPN ฉันหวังว่าคุณจะสนุกกับมัน แต่นี่คือข้อจำกัดความรับผิดชอบของฉัน:

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

นี่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้มากมายเกี่ยวกับ IOT และอย่าลืมคิดเกี่ยวกับแอปพลิเคชันเชิงพาณิชย์โดยใช้วิธีการเช่นนี้ Raspberry Pi นั้นดีพอๆ กับการ์ด SD เท่านั้น ฉันจะบอกว่าใช้งานปกติหนึ่งปีเมื่อเทียบกับเซิร์ฟเวอร์บางตัวที่ฉันใช้ซึ่งทำงานมานานกว่า 10 ปี

ยังไงก็ขอให้โชคดี

แนะนำ: