สารบัญ:
- ขั้นตอนที่ 1: ติดตั้ง Raspbian OS โดยใช้ Windows
- ขั้นตอนที่ 2: ติดตั้ง Raspbian OS โดยใช้ Mac OS X
- ขั้นตอนที่ 3: การตั้งค่า Pi
- ขั้นตอนที่ 4: ตั้งค่า Wifi
- ขั้นตอนที่ 5: เชื่อมต่อกับ Pi ของคุณจากระยะไกลโดยใช้ Windows
- ขั้นตอนที่ 6: เชื่อมต่อกับ Pi ของคุณจากระยะไกลโดยใช้ Mac
- ขั้นตอนที่ 7: การติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 8: การเดินสายไฟ
- ขั้นตอนที่ 9: การเดินสาย Mosfets และเชื่อมต่อ Pi
- ขั้นตอนที่ 10: ดาวน์โหลดและทดสอบ Led Strip
- ขั้นตอนที่ 11: การเขียนโปรแกรมสคริปต์ฝั่งเซิร์ฟเวอร์
- ขั้นตอนที่ 12: การเขียนโปรแกรมเว็บเซิร์ฟเวอร์
- ขั้นตอนที่ 13: ทำให้มันใช้งานได้กับ Apache2
- ขั้นตอนที่ 14: การตั้งค่า Tasker และ Ifttt และบริการอื่นๆ
- ขั้นตอนที่ 15: การสร้างเอฟเฟกต์แบบกำหนดเอง
วีดีโอ: Wifi ควบคุม 12v Led Strip โดยใช้ Raspberry Pi พร้อม Tasker, การรวม Ifttt: 15 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในโครงการนี้ ฉันจะแสดงวิธีควบคุมแถบนำอนาล็อก 12v แบบง่ายผ่าน wifi โดยใช้ raspberry pi
สำหรับโครงการนี้ คุณจะต้อง:
- 1x Raspberry Pi (ฉันใช้ Raspberry Pi 1 รุ่น B+)
- 1x RGB 12v Led Strip [อีเบย์ออสเตรเลีย]
- 3x IRFZ44N N-Channel Mosfet's [อีเบย์ ออสเตรเลีย]
- อะแดปเตอร์แจ็คไฟ DC หญิง 1x [อีเบย์ออสเตรเลีย]
- บางสาย
- จอแสดงผล คีย์บอร์ด (สำหรับการตั้งค่าเท่านั้น)
ขั้นตอนที่ 1: ติดตั้ง Raspbian OS โดยใช้ Windows
ในการติดตั้ง Raspbian ด้วย windows คุณจะต้อง:
- Win32 Disk Imager: [ดาวน์โหลด]
- Raspbian OS Lite: [Zip], [ฝนตกหนัก]
**ข้อสำคัญ หากทำผิด ข้อมูลอาจสูญหาย โปรดสำรองข้อมูลก่อนดำเนินการต่อ**
- เสียบการ์ด SD ของคุณเข้ากับเครื่องอ่านการ์ดแล้วเปิด My Computer
- มองหาอักษรระบุไดรฟ์
- คลิกขวาที่ Win32DiskImager แล้วคลิก "เรียกใช้ในฐานะผู้ดูแลระบบ"
- จากนั้นคลิกโฟลเดอร์สีน้ำเงินเล็ก ๆ และเรียกดูรูปภาพ RaspbianOS. ของคุณ
- คลิกกล่องดรอปดาวน์ภายใต้อุปกรณ์และเปลี่ยนเป็นอักษรระบุไดรฟ์ของการ์ด SD
- จากนั้นคลิก "เขียน"
- กล่องโต้ตอบจะเปิดขึ้นก่อนที่จะกดใช่ตรวจสอบว่าอุปกรณ์เป้าหมายถูกต้อง
- จากนั้นนำการ์ด SD ออกแล้วใส่ลงใน pi
ขั้นตอนที่ 2: ติดตั้ง Raspbian OS โดยใช้ Mac OS X
ในการติดตั้ง Raspbian ด้วย Mac คุณจะต้อง:
- ApplePi-Baker [ดาวน์โหลด]
- Raspbian OS Lite: [Zip], [ฝนตกหนัก]
**ข้อสำคัญ หากทำผิด ข้อมูลอาจสูญหาย โปรดสำรองข้อมูลก่อนดำเนินการต่อ**
- เปิด Disk Utility แล้วมองหา SD Card ของคุณทางด้านซ้ายมือ จากนั้นคลิก
- มองหา "อุปกรณ์" ที่ด้านล่างของหน้าต่าง คุณจะเห็นบางอย่างเช่น diskXsX โดยที่ x เป็นตัวเลข
- จำหมายเลข "อุปกรณ์" แล้วเปิด ApplePi-Baker
- มันจะถามรหัสผ่านของคุณเนื่องจากต้องฟอร์แมต SD-Card ของคุณ
- คลิกหมายเลข "อุปกรณ์" ที่อยู่หลัง /dev/ ทางด้านซ้ายมือ
- คลิก "กู้คืน-สำรองข้อมูล" เรียกดูรูปภาพ RaspbianOS ของคุณ
- มันจะเริ่มลบ SD-Card และติดตั้ง Raspbian ลงไป
- เมื่อเสร็จแล้วกล่องแจ้งเตือนจะปรากฏขึ้นเพื่อแจ้งให้คุณทราบว่าคุณสามารถนำการ์ด SD ออก นำออกแล้วใส่ลงใน pi ของคุณ
ขั้นตอนที่ 3: การตั้งค่า Pi
ก่อนเปิดเครื่อง pi คุณจะต้องเสียบจอแสดงผล HDMI, คีย์บอร์ด และสายอีเธอร์เน็ตหรือ usb wifi (เราจะตั้งค่านี้ในขั้นตอนต่อไป)
เพิ่มพลังให้กับ pi คุณจะเห็นข้อความจำนวนมากเต็มหน้าจอ ซึ่งถือเป็นเรื่องปกติและเป็นส่วนหนึ่งของการเริ่มต้นเคอร์เนล linux อดใจรอกันอีกนิดนะคะ
เข้าสู่ระบบราสเบอร์รี่:
ชื่อผู้ใช้ของคุณคือ pi และรหัสผ่านคือราสเบอร์รี่ (คุณจะไม่เห็นสิ่งที่พิมพ์บนหน้าจอแต่ยังถูกป้อนอยู่)
จากนั้นเมื่อคุณเข้าสู่ระบบ คุณจะเห็น:
จากนั้นคุณต้องป้อน:
sudo raspi-config
หน้าจอของคุณจะเต็มไปด้วยหน้าจอสีน้ำเงินพร้อมตัวเลือกในกล่องสีเทาตรงกลาง
- ใช้ปุ่มขึ้นและลง ไฮไลต์แล้วกด Enter ที่ตัวเลือก "ขยายระบบไฟล์" หลังจากนั้นไม่กี่วินาที ระบบจะนำคุณไปยังการแจ้งเตือนว่า "ระบบไฟล์รูทได้รับการปรับขนาดแล้ว" คลิก Enter
- จากนั้นกดลูกศรลงและไปที่ Boot Options แล้วคลิก Enter จากนั้นคลิก Enter เมื่อเลือก 'Desktop / CLI' จากนั้นเลือก 'Console Autologin' แล้วคลิก Enter
- จากนั้นเลือก ตัวเลือกขั้นสูง แล้วคลิก Enter
- จากนั้นเลื่อนลงไปที่ ssh แล้วคลิก Enter จากนั้นเลือกใช่
- แล้วกดลูกศรขวาจนขึ้นเงาแล้วกด enter
- จากนั้นไปที่ด้านล่างอีกครั้งแล้วคลิกเสร็จสิ้นแล้วพูดว่าใช่เพื่อรีบูต
หลังจากรีบูตหากคุณเชื่อมต่อผ่านอีเธอร์เน็ต คุณต้องป้อนคำสั่งนี้เพื่อค้นหาที่อยู่ IP ของคุณ เพื่อให้เราสามารถ ssh ลงใน pi ได้
ค้นหาไอพี:
ชื่อโฮสต์ -I
ขั้นตอนที่ 4: ตั้งค่า Wifi
ในการตั้งค่า wifi บน pi เราจำเป็นต้องแก้ไขไฟล์
1. เข้าสู่บรรทัดคำสั่ง
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
2. ไปที่ท้ายไฟล์และป้อน
เครือข่าย={
ssid="Your_Wifi_Name" psk="Your_wifi_password" }
3. จากนั้นรีบูต pi ของคุณด้วย
sudo รีบูต
หลังจากที่ pi ของคุณรีบูตแล้วจะได้รับที่อยู่ IP โดยพิมพ์
ชื่อโฮสต์ -I
คุณควรได้รับที่อยู่ IP ของคุณ แต่ถ้าข้อความที่ปรับแต่งใหม่ว่างเปล่าแสดงว่า pi ไม่สามารถเชื่อมต่อกับเครือข่ายของคุณได้ ตรวจสอบอีกครั้งว่าคุณได้ป้อนชื่อ wifi และรหัสผ่านถูกต้องหรือไม่ เนื่องจากต้องคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
ขั้นตอนที่ 5: เชื่อมต่อกับ Pi ของคุณจากระยะไกลโดยใช้ Windows
ตอนนี้เรามี pi ที่เชื่อมต่อกับอินเทอร์เน็ตแล้ว เราสามารถลบเมาส์คีย์บอร์ดและจอแสดงผล และเชื่อมต่อจากระยะไกลโดยใช้ "ssh"
หากต้องการ ssh ลงใน pi ด้วย windows คุณต้องดาวน์โหลด
สีโป๊ว: [ดาวน์โหลด]
- เปิด putty ในกล่องที่อยู่ IP ให้ป้อน raspberry pi ip จากนั้นกด open
- จะได้กรอบข้อความตามรูปที่ 2 กด yes
- จากนั้นคุณจะเห็นกล่องโต้ตอบใหม่ที่ระบุว่า "เข้าสู่ระบบในฐานะ" ป้อน "pi"
- แล้วมันจะถามรหัสผ่านใส่ "ราสเบอร์รี่"
ตอนนี้คุณเชื่อมต่อกับ pi บน ssh. แล้ว
ขั้นตอนที่ 6: เชื่อมต่อกับ Pi ของคุณจากระยะไกลโดยใช้ Mac
ตอนนี้เรามี pi ที่เชื่อมต่อกับอินเทอร์เน็ตแล้ว เราสามารถลบแป้นพิมพ์และเมาส์และเชื่อมต่อจากระยะไกลโดยใช้ "ssh"
1. เปิด "เทอร์มินัล"
2. พิมพ์
ssh pi@IP_ADDRESS
3. จากนั้นคุณอาจได้รับข้อความแจ้งว่าไม่ได้บันทึกรหัสโฮสต์ เพียงพิมพ์ "ใช่"
4. จากนั้นเมื่อเลื่อนขั้นให้ป้อนรหัสผ่าน raspberry pi ซึ่งก็คือ "Raspberry"
ตอนนี้คุณเชื่อมต่อกับ pi บน ssh. แล้ว
ขั้นตอนที่ 7: การติดตั้งซอฟต์แวร์
เนื่องจากตอนนี้เราสามารถเข้าถึง pi ได้จากระยะไกล เราจึงต้องติดตั้งซอฟต์แวร์บางตัวเพื่อควบคุมแถบนำ
เราจะต้องติดตั้ง
- pigpio (ซึ่งจะเปลี่ยนพิน GPIO ทั้งหมดจากดิจิตอลเป็น PWM)
- ขวด (สคริปต์ฝั่งเซิร์ฟเวอร์ที่คุยกับ pigpio และเว็บเซิร์ฟเวอร์)
- apache2 (เว็บเซิร์ฟเวอร์)
ติดตั้ง pigpio
1. ก่อนอื่น เราต้องดาวน์โหลดโฟลเดอร์ zip ที่มีซอฟต์แวร์ pigpio ที่ไม่ได้คอมไพล์ โดยใช้คำสั่งนี้
wget
2. จากนั้นเราต้องเปิดเครื่องรูดและไปที่ไดเร็กทอรี
เปิดเครื่องรูด pigpio.zip && cd PIGPIO
3.ตอนนี้เราอยู่ในไดเร็กทอรีแล้ว เราต้องคอมไพล์และติดตั้งซอฟต์แวร์
make -j4 && sudo ทำการติดตั้ง
4. ตอนนี้เปิด rc.local เพื่อให้เราสามารถบอก pi ให้เรียกใช้ pigpiod เมื่อเริ่มต้น
sudo nano /etc/rc.local
จากนั้นก่อนถึงเส้นทางออกเข้า
sudo pigpiod
คุณได้ติดตั้งซอฟต์แวร์ pigpio แล้ว
ติดตั้งขวด
ขั้นแรกเราต้องอัปเดตรายการซอฟต์แวร์เพื่อทำสิ่งนี้ เข้าสู่
sudo apt update && sudo apt upgrade -y
จากนั้นติดตั้ง pip
sudo apt-get ติดตั้ง python-pip
ตอนนี้เราสามารถติดตั้ง flask. ได้แล้ว
sudo pip ติดตั้งขวด
ติดตั้ง Apache2
sudo apt-get ติดตั้ง apache2 -y
sudo apt-get ติดตั้ง libapache2-mod-wsgi -y
ติดตั้ง git
sudo apt ติดตั้ง git -y
หลังจากที่ทุกอย่างเสร็จสิ้นการติดตั้ง ปิดระบบ pi ด้วย
sudo ปิดตอนนี้
ขั้นตอนที่ 8: การเดินสายไฟ
ก่อนอื่นเราต้องต่อสายไฟเข้ากับบอร์ดขนมปัง
- ต่อสายสีดำเข้ากับขั้วลบของแจ็คไฟ
- ต่อสายสีแดงเข้ากับขั้วบวกบนแจ็คไฟ
- เชื่อมต่อปลายอีกด้านของสายสีแดงเข้ากับด้านบวกของเขียงหั่นขนม
- เชื่อมต่อปลายอีกด้านของสายสีดำเข้ากับด้านบวกของเขียงหั่นขนม
- จากนั้นเชื่อมต่อพินกราวด์จาก pi (ตามที่เห็นในภาพ) เข้ากับพินเชิงลบบนเขียงหั่นขนม
ตอนนี้เราต้องเชื่อมต่อ the mostfet
ขั้นตอนที่ 9: การเดินสาย Mosfets และเชื่อมต่อ Pi
Mosfet ช่วยให้คุณควบคุมปริมาณพลังงานที่สามารถเดินทางไปยังไฟ LED ได้ เราต้องใช้ mosfet สามตัว เนื่องจากเราจำเป็นต้องควบคุมไฟสีแดง สีเขียว และสีน้ำเงินแยกกัน
มอสเฟตมีสามพินทางด้านซ้ายมีพิน "เกต" ซึ่งจะเชื่อมต่อกับ pi เพื่อควบคุมปริมาณพลังงานที่สามารถไหลไปยังไฟ LED ได้
หมุดตรงกลางเรียกว่า "Drain" ซึ่งจะไปที่ไฟ LED และจ่ายแรงดันไฟฟ้าที่ประตูอนุญาตให้ผ่านไปได้
และหมุดทางด้านขวาคือหมุด "แหล่งที่มา" พินนี้ลงไปที่พื้นบนเขียงหั่นขนม
การเชื่อมต่อไฟ Led สีแดง
- ใส่มอสเฟตหนึ่งตัวลงในเขียงหั่นขนม
- เชื่อมต่อสายสีดำจาก GND บนเขียงหั่นขนมกับแหล่งสัญญาณ (พินขวา)
- จากนั้นต่อสายสีแดงจากพินตรงกลางของมอสเฟตกับพินสีแดงบนแถบไฟ LED
- จากนั้นต่อสายสีแดงจากพินซ้ายเข้ากับ GPIO 17 บน pi
การเชื่อมต่อไฟ LED สีเขียว
- ใส่มอสเฟตตัวที่ 2 ลงในเขียงหั่นขนม
- จากนั้นเหมือนก่อนเชื่อมต่อสายสีดำจาก GND บนเขียงหั่นขนมกับแหล่งสัญญาณ (พินขวา)
- จากนั้นต่อสายสีเขียวจากพินตรงกลางของมอสเฟตกับพินสีเขียวบนแถบไฟ LED
- จากนั้นต่อสายสีเขียวจากพินซ้ายเข้ากับ GPIO 22 บน pi
การเชื่อมต่อไฟ LED สีน้ำเงิน
- ใส่มอสเฟตตัวสุดท้ายลงในเขียงหั่นขนม
- เชื่อมต่อสายสีดำอีกเส้นจาก GND บนเขียงหั่นขนมเข้ากับแหล่งสัญญาณ (พินขวา)
- จากนั้นต่อสายสีน้ำเงินจากพินตรงกลางของมอสเฟตกับพินสีน้ำเงินบนแถบไฟ LED
- จากนั้นต่อสายสีน้ำเงินจากพินซ้ายเข้ากับ GPIO 24 บน pi
จากนั้นคุณจะมีพินเพิ่มเติมบนแถบไฟ LED หนึ่งอันที่จะเป็นสีขาวหรือสีดำ เพียงแค่เชื่อมต่อสายจากพินที่เป็นบวกบนเขียงหั่นขนมกับพินพิเศษนั้นบนแถบไฟ LED
เมื่อเสร็จแล้วเราสามารถเริ่มทดสอบได้
ขั้นตอนที่ 10: ดาวน์โหลดและทดสอบ Led Strip
ในการดาวน์โหลดซอร์สโค้ดสำหรับควบคุมแถบไฟ LED
โคลน git https://github.com/DavidMontesin/Raspberry-PI-Wifi-Led-Strip.git && cd Raspberry-PI-Wifi-Led-Strip/
ในการทดสอบแถบไฟ LED ให้รันไฟล์ test.py
หลาม Test.py
หากสีบางส่วนไม่สว่างขึ้นด้วยเหตุผลบางประการ โปรดตรวจสอบว่าเสียบปลั๊กทุกอย่างถูกต้องหรือไม่
สคริปต์นี้ทำงานอย่างไร
หากคุณเปิดสคริปต์ python คุณอาจสงสัยว่ามันทำงานอย่างไร ในบรรทัดแรก คุณจะเห็น:
เวลานำเข้า
ห้องสมุดเล็กๆ แห่งนี้ช่วยให้เราหยุดสคริปต์ชั่วคราวเพื่อให้เปิดไฟได้เร็วขึ้น
นำเข้า pigpio
ห้องสมุดนี้ช่วยให้เราสื่อสารกับแถบนำ
pi = pigpio.pi()
ตั้งค่าตัวแปรเพื่อให้เราใช้ pi.set_pw… insted ของ pigpio.pi().set_pw…
RedPin = 17
กรีนพิน = 22
BluePin = 24
นี่เป็นเพียงตัวแปรที่ช่วยให้เราสามารถบอกสคริปต์ว่า led เชื่อมต่อกับอะไร
print("ทดสอบสีแดง")
นี่จะพิมพ์ข้อความไปยังบรรทัดคำสั่ง
pi.set_PWM_dutycycle (หมุดสีแดง, 255)
คำสั่งนี้เป็นส่วนหนึ่งของ pigpio libary และกำลังบอกให้ตั้งค่า "RedPin" ซึ่งจะค้นหาหมายเลขที่เราตั้งไว้ก่อนหน้านี้และตั้งค่าความสว่างเป็น "255" ซึ่งเป็นค่าสูงสุด
เวลานอน(2)
นี่เป็นส่วนหนึ่งของไลบรารีเวลาและจะหยุดสคริปต์ชั่วคราวเป็นเวลา 2 วินาที
คำสั่งที่นุ่มนวลเหล่านี้จะทำซ้ำสำหรับไฟ LED อื่น ๆ จนกระทั่ง
pi.stop()
ซึ่งจะหยุดพูดคุยกับแถบนำและปิดสีทั้งหมด
ขั้นตอนที่ 11: การเขียนโปรแกรมสคริปต์ฝั่งเซิร์ฟเวอร์
**ก่อนที่คุณจะเริ่ม ฉันแนะนำให้คุณอ่านเกี่ยวกับ python และ flask:
นี่คือคำแนะนำบางส่วน:
www.pythonforbeginners.com
docs.python-guide.org/en/latest/intro/learn…
flask.pocoo.org
เนื่องจาก Main.py อยู่ใน git โดยตรง ขั้นตอนนี้เป็นเพียงการอธิบายโค้ด
อันดับแรกเรามีห้องสมุด
จากขวดนำเข้า Flask, render_template, ขอ
นำเข้า pigpio จากการนำเข้าเธรด start_new_thread
จากนั้นเราต้องตั้งค่าตัวแปรบางตัว
แอพ = ขวด (_name_)
CurrentColour = "สีขาว" RedColourCode = 0 BlueColourCode = 0 GreenColourCode = 0 RedBeforeEffect = 0 BlueBeforeEffect = 0 GreenBeforeEffect = 0 pi = pigpio.pi ()
ตัวแปรแรกคือสำหรับ flask ซึ่งเป็นเว็บเซิร์ฟเวอร์ของเรา เราจะเรียกมันว่า app เพื่อให้เรียกใช้และเรียกใช้ได้ง่ายขึ้น จากนั้นมีตัวแปร 6 ตัวที่ 3 ตัวแรกจะประกอบด้วยสีอะไรที่จะเปลี่ยน 2 และอีก 3 ตัวจะมีสีก่อนหน้า
@app.route('/', วิธี=['GET'])
บรรทัดนี้บอกว่าถ้ามีคนพิมพ์ที่อยู่ IP ของ pi ในเว็บเบราว์เซอร์ มันจะเรียกใช้สคริปต์ด้านล่าง มันยังมีเมธอด GET เมื่อหมายความว่าข้อความใด ๆ หลังจาก ?Colour= จะถูกส่งต่อไปยังเว็บเซิร์ฟเวอร์และจะเป็น ใช้ในการเปลี่ยนสีของแถบนำ
def หลัก ():
ทั่วโลก CurrentColour
ข้อความ def Main() หมายความว่าจะสร้างฟังก์ชันที่เรียกว่า main ซึ่งสามารถเรียกได้จากทุกที่ในสคริปต์ และเส้นโกลบอลหมายความว่าจะอัปเดตตัวแปรในสคริปต์ทั้งหมด
ถ้า request.args.get('สี'):
CurrentColour=request.args.get('Colour') ถ้า CurrentColour == "White": FadeTORGB(255, 255, 255) elif CurrentColour == "Red": FadeTORGB(255, 0, 0) elif CurrentColour == "สีเขียว ": FadeTORGB(0, 255, 0) elif CurrentColour == "DarkBlue": FadeTORGB(0, 0, 255) elif CurrentColour == "LightBlue": FadeTORGB(0, 255, 255) elif CurrentColour == "สีส้ม": FadeTORGB(255, 15, 0) elif CurrentColour == "Pink": FadeTORGB(255, 0, 192) elif CurrentColour == "Yellow": FadeTORGB(255, 157, 0) elif CurrentColour == "สีม่วง": FadeTORGB(123, 0, 255) elif CurrentColour == "Black": FadeTORGB(0, 0, 0) ส่งคืน render_template('index.html')
สคริปต์นี้จะได้รับชื่อตามหลังเมธอด GET "Colour" และบันทึก จากนั้นจะตรวจสอบชื่อนั้นและจะเรียกใช้ฟังก์ชันที่จะสามารถ 3 ฟังก์ชันอื่น ๆ เพื่อเปลี่ยนไฟสีแดง สีเขียว และสีน้ำเงินได้พร้อมกัน
def FadeTORGB (RedNum, BlueNum, GreenNum):
start_new_thread(FadeUpRed, (RedNum,)) start_new_thread(FadeUpBlue, (BlueNum,)) start_new_thread(FadeUpGreen, (GreenNum,))
สิ่งนี้จะเรียกฟังก์ชันอื่นอีกสามฟังก์ชันที่จะเปลี่ยนปริมาณพลังงานที่ส่งไปยังแต่ละอันที่นำด้วยเอฟเฟกต์จาง
def FadeUpRed (REDUpNum):
Global RedColourCode ถ้า RedColourCode < REDUpNum: while RedColourCode REDUpNum: while RedColourCode > REDUpNum: RedColourCode -=1 pi.set_PWM_dutycycle(RedPin, RedColourCode)
def FadeUpBlue (BlueUpNum):
Global BlueColourCode ถ้า BlueColourCode < BlueUpNum: ในขณะที่ BlueColourCode BlueUpNum: ในขณะที่ BlueColourCode > BlueUpNum: BlueColourCode - = 1 pi.set_PWM_dutycycle (BluePin, BlueColourCode)
def FadeUpGreen (GreenUpNum):
Global GreenColourCode ถ้า GreenColourCode < GreenUpNum: while GreenColourCode GreenUpNum: while GreenColourCode > GreenUpNum: GreenColourCode -=1 pi.set_PWM_dutycycle (GreenPin, GreenColourCode)
ถ้า _name_ == "_main_":
app.run(host="0.0.0.0")
ขั้นตอนที่ 12: การเขียนโปรแกรมเว็บเซิร์ฟเวอร์
ตอนนี้เรามีเซิร์ฟเวอร์แล้ว เราต้องออกแบบเว็บไซต์
เนื่องจากเซิร์ฟเวอร์อยู่ในเทมเพลตและโฟลเดอร์สแตติกใน git โดยตรง ขั้นตอนนี้เป็นเพียงการอธิบายโค้ด
ฉันยังแนะนำให้คุณอ่านเกี่ยวกับ html, css, javascript
HTML
ขั้นแรกเราต้องเขียนโปรแกรม html ซึ่งเป็นที่ที่เนื้อหาทั้งหมดจะถูกจัดรูปแบบโดยใช้ css
1. การสร้างส่วนหัว (ชื่อ, ลิงก์ไฟล์,)
Wifi Led Strip
แท็กสองแท็กแรกบอกเว็บเบราว์เซอร์ว่าเป็นหน้าเว็บ จากนั้นบรรทัดที่สามบอกให้เบราว์เซอร์ซ่อนข้อความใด ๆ ในบล็อกและใต้นั้นเป็นชื่อที่จะปรากฏในแท็บ
ทำให้หน้าเว็บเต็มหน้าจอบน iOS
หากต้องการให้หน้าเต็มหน้าจอ ให้ป้อนรหัสนี้ใต้แท็ก
ต่อไปเราจะเพิ่มการอ้างอิงไปยังไฟล์ css ที่เราจะทำในภายหลังซึ่งจะเป็นวิธีที่แตกต่างไปจากปกติเนื่องจากขวดเป็นวิธีการจัดการไฟล์
หลังจากนี้คุณต้องปิดแท็กและสร้างแท็กเนื้อหา
แท็กเนื้อความหมายความว่าแท็กใด ๆ ที่อยู่ภายในนั้นจะปรากฏบนหน้าเว็บ
ตอนนี้เรากำลังจะสร้างปุ่มสีที่สามารถเปลี่ยนแถบไฟ LED ได้
เราจะสร้างหนึ่งสีสำหรับแต่ละสีและใส่ไว้ในตาราง
Javascript
ตอนนี้ เราต้องเพิ่มฟังก์ชัน "SendColour" ที่เราเคยอ้างอิงมาก่อนเพื่อทำสิ่งนี้ ก่อนอื่นเราต้องเพิ่มแท็กที่บอกเว็บเบราว์เซอร์ว่ามีจาวาสคริปต์อยู่บ้าง
แล้วสร้างฟังก์ชัน
ฟังก์ชัน SendColour (ClickedColour) {
ฟังก์ชันนี้จะส่งคำขอ Ajax ไปยัง raspberry pi เพื่อบอกให้เปลี่ยนเป็นสีที่คุณคลิก
xhttp = XMLHttpRequest ใหม่ ();
xhttp.open("GET", "?Colour=" + ClickedColour, false); xhttp.send(); }
ตอนนี้เราต้องปิดจาวาสคริปต์และ html
CSS
ตอนนี้เรากำลังจะออกแบบเว็บไซต์
cd แรกออกจากโฟลเดอร์ templates และไปที่โฟลเดอร์สแตติก
cd.. && cd คงที่
ตอนนี้สร้างไฟล์ Style.css
นาโน Style.css
ขั้นแรกให้ทำให้ตารางเต็มหน้าจอ
.สี {
ความกว้าง: 100%; }
.ปุ่ม {
ช่องว่างภายใน: 25px 35px; รัศมีเส้นขอบ: 4px; }
ทดสอบเซิฟเวอร์
เพื่อทดสอบเซิร์ฟเวอร์ให้ไปที่โฟลเดอร์เว็บเซิร์ฟเวอร์
ซีดี..
แล้วป้อน
หลาม Main.py
นี่จะเป็นการเริ่มต้นเซิร์ฟเวอร์ จากนั้นบนคอมพิวเตอร์ของคุณให้เปิดเว็บเบราว์เซอร์และไปที่
YOUR_PI_PI:5000ส่วนท้าย:5000 มีความสำคัญสำหรับตอนนี้ เนื่องจากเป็นพอร์ตที่เว็บเซิร์ฟเวอร์ทำงานอยู่
หากคุณไปที่หน้าเว็บและได้รับ "Internal Server Error" ให้ดูที่คอนโซล (putty หรือ terminal) และคุณจะเห็นข้อความจำนวนมาก เพียงแค่ดูที่บรรทัดสุดท้ายและควรเป็น บอกคุณว่าเกิดอะไรขึ้น คุณสามารถ google เพื่อค้นหาคำตอบ
แต่ถ้าเห็นสีบนหน้าจอ คุณสามารถคลิกได้หนึ่งสีและคุณจะเห็นแถบไฟ LED ไปที่สีนั้น หากไม่เป็นเช่นนั้นให้ตรวจสอบว่าเสียบปลั๊กและเปิดเครื่องแล้วหรือป้อนรหัส html ถูกต้อง.
ขั้นตอนที่ 13: ทำให้มันใช้งานได้กับ Apache2
ตอนนี้เราได้ทดสอบแล้ว เราต้องให้มันคุยกับ apache เพื่อให้สามารถทำงานเมื่อเริ่มต้นและบนพอร์ต 80 (เว็บพอร์ตมาตรฐาน)
1. ภายในโฟลเดอร์ WebServer ของคุณ สร้างไฟล์ wsgi
nano wifiled.wsgi
จากนั้นในไฟล์ให้ป้อน
นำเข้าsys
sys.path.insert(0, '/home/pi/Webserver/') จากแอปนำเข้าหลักเป็นแอปพลิเคชัน
จากนั้นเพิ่มผู้ใช้ pi ในกลุ่มชื่อ www-data ซึ่งจะทำให้ apache สามารถดูในโฟลเดอร์เว็บเซิร์ฟเวอร์ได้
sudo usermod -a -G www-data pi
จากนั้นลบการกำหนดค่าเริ่มต้น
sudo a2dissite 000-default
จากนั้นสร้างไฟล์ในโฟลเดอร์กำหนดค่า Apache
sudo nano /etc/apache2/sites-available/wifiled.conf
และป้อน
ชื่อเซิร์ฟเวอร์ WifiLed ServerAdmin [email protected] WSGIScriptAlias / /home/pi/Webserver/wifiled.wsgi สั่งอนุญาต ปฏิเสธ อนุญาตจากทั้งหมด ต้องการ ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel เตือน CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน
จากนั้นบอก apache ให้อ่านการกำหนดค่าโดยป้อน
sudo a2ensite wifiled.conf
ตอนนี้รีสตาร์ท pi เมื่อรีบูตเข้าสู่เว็บเบราว์เซอร์ของคุณ
YOUR_PI_IP
ขั้นตอนที่ 14: การตั้งค่า Tasker และ Ifttt และบริการอื่นๆ
ก่อนที่เราจะติดตั้งโปรแกรมเหล่านี้ คุณต้องตั้งค่าพอร์ต fording บนเราเตอร์ของคุณ เนื่องจากเราเตอร์แต่ละตัวมีความแตกต่างกัน คุณสามารถอ่านวิธีการได้ที่นี่
ทาซเคอร์
บนอุปกรณ์ Android ของคุณ open taker
จากนั้นสร้างโปรไฟล์ใหม่ตามเหตุการณ์ คุณสามารถเลือกทริกเกอร์ใดก็ได้ ฉันเลือก "เสียงเรียกเข้าโทรศัพท์" และตั้งค่าสีให้ใครก็ได้ "C:ANY" จากนั้นระบบจะขอให้คุณเลือกงาน คลิก "งานใหม่" และตั้งชื่อตามการกระทำของคุณ ฉันจะเรียกมันว่า "การโทร" จากนั้นกดเพิ่มการกระทำแล้วมองหา "HTTP Head" และตั้งค่า Server:Port เป็น your_raspberry_pi_IP จากนั้นภายใต้เส้นทางคุณสามารถตั้งค่าสีทึบด้วย "/?Colour=Green" หรือคุณสามารถสร้าง ผลที่เราจะทำในขั้นตอนต่อไป จากนั้นคลิกย้อนกลับและย้อนกลับอีกครั้ง
IFTTT
ไปที่ ifttt ก่อนแล้วสร้างแอปเพล็ตใหม่ เลือกทริกเกอร์ใดๆ (ฉันเลือกปุ่ม) จากนั้นสำหรับการดำเนินการ ให้เลือกช่องผู้ผลิตและบอกว่าเราจะขอ จากนั้นสำหรับ URL ให้ป้อน YOUR_PUBLIC_PI/?Colour=LightBlue หากคุณไม่รู้จักสาธารณะของคุณ ip เพียงป้อน "My Ip" บน google จากนั้นสำหรับวิธีการป้อน HEAD จากนั้นคลิก "สร้างการกระทำ" ตอนนี้เมื่อการกระทำของคุณเกิดขึ้น ifttt ขอให้ pi ของคุณเปลี่ยนสี
บริการอื่นๆ
คุณยังสามารถเชื่อมต่อบริการอื่นๆ ที่สร้างคำขอ HTTP HEAD หรือ GET
ขั้นตอนที่ 15: การสร้างเอฟเฟกต์แบบกำหนดเอง
ใน Main.py เพิ่มคำสั่งนำเข้าภายใต้การนำเข้าระบบปฏิบัติการ enter
เวลานำเข้า
ก่อนที่เราจะสร้างเอฟเฟกต์ เราจำเป็นต้องเพิ่มตัวแปรภายใต้ GreenBeforeEffect add
CanChangeColour = จริง
จากนั้นเปลี่ยนถ้า request.args.get('Colour'):
ถึง
ถ้า request.args.get('Colour') และ CanChangeColour:
ส่วนภายใต้การส่งคืน render_template('Main.html') add
@app.route('/Effect', วิธี=['GET'])
def ผลกระทบ ():
จากนั้นตั้งค่าตัวแปรเป็น global
x = 0
RedColourCode ทั่วโลก Global BlueColourCode ทั่วโลก GreenColourCode
มาสร้างเอฟเฟกต์แรกของเรากันเถอะ
ถ้า request.args.get('Call'):
RedBeforeEffect = RedColourCode สีน้ำเงินBeforeEffect = BlueColourCode GreenBeforeEffect = GreenColourCode FadeTORGB(0, 0, 0) time.sleep(2)
การดำเนินการนี้จะทำงานเมื่อ pi ได้รับคำขอเช่น "/?Effect=Call" และจะบันทึกสีปัจจุบันเพื่อให้เราสามารถโทรกลับได้ จากนั้นเราจะทำให้แถบนำเป็นสีดำและรอจนกว่าจะเกิดขึ้น
ตอนนี้เรากำลังจะทำให้ไฟ LED จางจากสีดำเป็นสีเขียวแล้วเป็นสีดำอีกครั้งและฉันต้องการทำสิ่งนี้ห้าครั้ง
ขณะที่ x <= 5: FadeTORGB(0, 255, 0) x +=1 time.sleep(1) FadeTORGB(0, 0, 0) time.sleep(1) CanChangeColour = True time.sleep(2) FadeTORGB(RedBeforeEffect, BlueBeforeEffect, GreenBeforeEffect)
จะนับถึงห้า แต่ทุกครั้งที่สีจะจางลงเป็นสีเขียว จากนั้นรอสักครู่แล้วเปลี่ยนเป็นสีดำ จากนั้นสิ่งที่ทำเสร็จแล้วจะเปลี่ยนสีกลับเป็นสีที่คุณมีก่อนที่จะเปลี่ยน
ตอนนี้เราเพิ่งสร้างการตอบสนอง
กลับ ""
ยังรีบูตคุณราสเบอร์รี่pi
sudo รีบูต
แนะนำ:
ควบคุม Ws2812 Neopixel LED STRIP ผ่าน Bluetooth โดยใช้ Arduino Uno: 4 ขั้นตอน
ควบคุม Ws2812 Neopixel LED STRIP ผ่าน Bluetooth โดยใช้ Arduino Uno: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีควบคุม neopixel ด้วย arduino โดยพื้นฐานแล้ว Arduino จะเชื่อมต่อผ่าน Bluetooth โดยใช้โมดูล Bluetooth hc05 กับสมาร์ทโฟน และสมาร์ทโฟนจะส่งคำสั่งเปลี่ยนสีของแถบนำนีโอพิกเซล
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก
ESP8266 RGB LED STRIP WIFI ควบคุม - NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi - RGB LED STRIP การควบคุมสมาร์ทโฟน: 4 ขั้นตอน
ESP8266 RGB LED STRIP WIFI ควบคุม | NODEMCU เป็นรีโมท IR สำหรับ Led Strip ที่ควบคุมผ่าน Wifi | การควบคุมสมาร์ทโฟน RGB LED STRIP: สวัสดีทุกคนในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ nodemcu หรือ esp8266 เป็นรีโมท IR เพื่อควบคุมแถบ LED RGB และ Nodemcu จะถูกควบคุมโดยสมาร์ทโฟนผ่าน wifi โดยพื้นฐานแล้ว คุณสามารถควบคุม RGB LED STRIP ได้ด้วยสมาร์ทโฟนของคุณ
เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi: 9 ขั้นตอน (พร้อมรูปภาพ)
เว็บไซต์/แถบ LED ที่ควบคุมด้วย WiFi พร้อม Raspberry Pi: ความเป็นมา: ฉันเป็นวัยรุ่น และได้ออกแบบและเขียนโปรแกรมโครงการอิเล็กทรอนิกส์ขนาดเล็กในช่วงไม่กี่ปีที่ผ่านมา พร้อมกับเข้าร่วมการแข่งขันหุ่นยนต์ เมื่อเร็ว ๆ นี้ฉันกำลังปรับปรุงการตั้งค่าโต๊ะทำงานของฉัน และฉันตัดสินใจว่าตัวเลือกที่ดี
Smart LED พร้อม Node Mcu และ Tasker: 9 ขั้นตอน (พร้อมรูปภาพ)
Smart LED พร้อม Node Mcu และ Tasker: ดาวน์โหลด tasker