สารบัญ:

เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi: 9 ขั้นตอน (พร้อมรูปภาพ)
เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Control Raspberry Pi LED with Webpage : Using Python and Flask 2024, ธันวาคม
Anonim
เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi
เว็บไซต์ / แถบ LED ควบคุม WiFi พร้อม Raspberry Pi

พื้นหลัง:

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

ฉันเพิ่งกำลังปรับปรุงการตั้งค่าโต๊ะทำงานของฉัน และตัดสินใจว่าการเพิ่มที่ดีควรเป็นการจัดแสงตามอารมณ์ ตอนแรกฉันเพิ่งซื้อแถบ LED ที่ใช้พลังงานจากแบตเตอรี่ขนาด 5 โวลต์ที่ควบคุมโดยรีโมต แต่ก็ไม่ใช่กระบวนการที่สำเร็จลุล่วงและฉันก็มีความคิด ฉันมีอะไหล่สองสามชิ้นวางอยู่รอบๆ และพยายามคิดว่าจะทำอะไรกับ Raspberry Pi ที่ฉันมีในวันคริสต์มาส ระหว่างวันที่น่าเบื่อเป็นพิเศษในชั้นเรียนวิทยาศาสตร์ ฉันรู้ว่าฉันสามารถใช้หมุด GPIO ของ Raspberry Pi เพื่อควบคุมไฟ LED ได้ ตราบใดที่ฉันมีเอาต์พุตค่า RGB

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

โปรเจ็กต์นี้เปิดกว้างสำหรับการปรับปรุงมากมาย และแม้ว่า html + php ของฉันจะค่อนข้างคร่าวๆ พวกเขาก็สามารถทำงานให้เสร็จได้

หัวข้อ:

ประเด็นหลักที่คู่มือนี้จะกล่าวถึงคือ---

  1. การควบคุม GPIO บน Raspberry Pi
  2. การโฮสต์เว็บเซิร์ฟเวอร์ Apache บน Pi
  3. การใช้เว็บเซิร์ฟเวอร์เพื่อควบคุมแถบไฟ LED RGB

ขั้นตอนที่ 1: วัสดุและวัสดุที่จำเป็น

  • 1 x Raspberry Pi (ฉันใช้ Pi 2 Model B)
  • การ์ด MicroSD
  • สิ่งที่จะเพิ่มพลังให้กับ Pi ของคุณ (สาย USB และอะแดปเตอร์ไฟ AC)
  • 1 x อะแดปเตอร์ USB WiFi หรือการเชื่อมต่ออีเธอร์เน็ต
  • 1 x สายเคเบิล USB เป็นซีเรียล -
  • 1 x GPIO ฝ่าวงล้อม -
  • 1 x เขียงหั่นขนมขนาดเล็ก -
  • USB เป็น MicroSD -
  • ลวดแกนแข็งหลายสี
  • กรงขัง
  • ทรานซิสเตอร์ชนิด NPN 3 x (ฉันใช้ทรานซิสเตอร์ BC547b)
  • แถบไฟ LED 1x 5V
  • สายจัมเปอร์หญิง - ชาย -

ขั้นตอนที่ 2: การตั้งค่าสภาพแวดล้อมของ Pi

การตั้งค่าสภาพแวดล้อมของ Pi
การตั้งค่าสภาพแวดล้อมของ Pi
การตั้งค่าสภาพแวดล้อมของ Pi
การตั้งค่าสภาพแวดล้อมของ Pi

ฉันใช้กล่องพลาสติกแบบเอียงเพื่อปิดโปรเจ็กต์เพื่อไม่ให้ดูโดดเด่นบนชั้นวางของฉัน ฉันเจาะรูที่ด้านข้างสำหรับสาย USB แบบอนุกรม และวาง Pi ไว้ข้างๆ เขียงหั่นขนมและ Pi Wedge

ขั้นตอนที่ 3: ตั้งค่า Pi ของคุณ (ตอนที่ 1)

ตั้งค่า Pi ของคุณ (ตอนที่ 1)
ตั้งค่า Pi ของคุณ (ตอนที่ 1)

สำหรับโปรเจ็กต์นี้ ฉันใช้ Raspbian. ที่ไม่ใช่เดสก์ท็อปเวอร์ชันล่าสุด

คำแนะนำเกี่ยวกับวิธีการติดตั้ง Raspbian สามารถพบได้ที่นี่:

(คุณอาจต้องใช้อะแดปเตอร์ USB เป็น microSD สำหรับคอมพิวเตอร์ของคุณ)

เมื่อติดตั้ง Raspbian ลงในการ์ด SD แล้ว คุณสามารถต่อเข้ากับ Raspberry Pi และต่อสายอีเทอร์เน็ตหรืออแด็ปเตอร์ USB WiFi กับ Pi

ถัดไป ติดตั้ง Tera Term ลงในคอมพิวเตอร์ของคุณ ซึ่งช่วยให้คุณเชื่อมต่อกับเทอร์มินัลของ Raspberry Pi ผ่านพีซีของคุณได้:

จากนั้นเสียบสายเคเบิลอนุกรม USB จากลิ่ม Pi เข้ากับพีซี สามารถเข้าถึงได้ผ่าน Tera Term ตรวจสอบให้แน่ใจว่าได้ตั้งค่าอัตรารับส่งข้อมูลของพอร์ตอนุกรมไว้ที่ 115200

ขั้นแรก Pi จะโพสต์ข้อความแจ้งให้ลงชื่อเข้าใช้หากระบบปฏิบัติการได้รับการติดตั้งอย่างถูกต้อง

ชื่อผู้ใช้และรหัสผ่านเริ่มต้นคือ:

ชื่อผู้ใช้: pi

รหัสผ่าน: ราสเบอร์รี่

ขั้นตอนที่ 4: ตั้งค่า Pi ของคุณ (ตอนที่ 2)

กำลังตั้งค่า WiFi

ในเทอร์มินัล ให้รันคำสั่ง

sudo nano /etc/network/interfaces

จากนั้นวางรหัสนี้และแทนที่ SSID และ PSK ด้วยชื่อและรหัสผ่านของเราเตอร์ของคุณ

รถยนต์

iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcp wpa-ssid "ssid" wpa-psk "รหัสผ่าน"

ไฟล์นี้อนุญาตให้ Pi เชื่อมต่อกับ WiFi ของคุณ

ถัดไป รีสตาร์ท Pi ด้วยบรรทัด

sudo รีบูต

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

เข้าสู่ระบบ แล้วติดตั้งเซิร์ฟเวอร์ Apache ด้วย

sudo apt-get ติดตั้ง apache2 -y

และ

sudo apt-get ติดตั้ง php libapache2-mod-php -y

หากต้องการค้นหาที่อยู่ IP ของ Pi ให้เรียกใช้คำสั่ง

ชื่อโฮสต์ -I

ใช้การเรียกดูของคุณเพื่อเข้าถึง IP ที่แสดงเพื่อตรวจสอบว่าใช้งานได้หรือไม่

ตัวอย่างเช่น ใน Google Chrome ฉันจะพิมพ์ 192.168.1.72 ลงในแถบที่อยู่

สามารถดูเอกสารประกอบที่คุณควรติดตามได้ที่

ต้องติดตั้งไลบรารี PiGPIO ด้วย ซึ่งช่วยให้คุณควบคุมข้อมูลที่ส่งผ่านพิน GPIO ได้

sudo apt-get ติดตั้ง build-essential unzip wget

และ

wget https://abyz.me.uk/rpi/pigpio/pigpio.zip && unzip pigpio.zip && cd PIGPIO && sudo ทำการติดตั้ง

ขั้นตอนที่ 5: การเขียนโค้ด

ไปที่ /var/www/html ด้วยบรรทัด

cd /var/www/html

ในไดเร็กทอรี จะมีไฟล์ html เริ่มต้น ซึ่งคุณจะต้องแก้ไข

sudo nano index.html

ภายใน Nano ให้ลบทุกอย่างที่มีอยู่แล้วแทนที่ด้วยรหัสต่อไปนี้

(Tera Term อาจดูขี้ขลาดเล็กน้อยเมื่อคัดลอกและวาง แต่โดยปกติเมื่อคุณคัดลอกข้อความแล้ว alt+v ควรทำงาน)

ฟังก์ชัน readRGB(สี){ ถ้า (color.length == 0) { document.getElementById ("txtHint").innerHTML = ""; กลับ; } อื่น { var xmlhttp = XMLHttpRequest ใหม่ (); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 400) { document.getElementById("txtHint").innerHTML = this.responseText; } }; temp = encodeURIComponent (สี); xmlhttp.open("GET", "action_page.php?q=" + อุณหภูมิ, จริง); xmlhttp.send(); } } เลือกสี:

จากนั้นบันทึกเป็น main.html แทน index.html

โค้ดด้านบนทำหน้าที่เป็นปุ่มที่คุณกด และเป็นโค้ดที่ส่งสีที่คุณเลือกไปยังไฟล์อื่น

จากนั้นรันคำสั่ง

sudo นาโน

และวางใน

$r $g $b ;

exec("หมูหน้า 17 $g"); exec("หมู หน้า 22 $r"); exec("หมู หน้า 22 $b"); ?>

และบันทึกเป็น action_page.php

รหัสนี้รับค่า RGB และตั้งค่า PWM บนแถบ LED

ขั้นตอนที่ 6: การออกแบบวงจร

การออกแบบวงจร
การออกแบบวงจร

เมื่อตั้งค่าซอฟต์แวร์ทั้งหมดแล้ว ก็ถึงเวลาทำงานกับฮาร์ดแวร์

เป้าหมายของวงจรคือการส่งสัญญาณ PWM (Pulse Width Modulated) จาก Pi ไปยังอาร์เรย์ LED

แถบ LED มีสี่พิน: แดง เขียว น้ำเงิน และไฟ (5 โวลต์ในกรณีของฉัน)

พิน PWM แต่ละตัวควบคุมหนึ่งในสามสีผ่านทรานซิสเตอร์ ซึ่งทำหน้าที่เป็นสวิตช์

ทรานซิสเตอร์แต่ละตัวมีสามพิน: ตัวสะสม ฐาน และอีซีแอล

สัญญาณ PWM ควบคุมรอบการทำงาน (ระยะเวลาที่สวิตช์เปิดและปิด)

รอบการทำงานส่งผลให้ไฟมืดขึ้นหรือสว่างขึ้น

เนื่องจากไฟเปิดและปิดเร็วมาก ผู้คนจึงมองว่าเป็นไฟสว่างคงที่และมีความสว่างต่างกัน

หมายเหตุ: ในแผนผัง สัญลักษณ์ LED แสดงถึงอาร์เรย์ LED และตัวต้านทานจำกัดกระแสภายในสายไฟ

ขั้นตอนที่ 7: การทาขนมปังของคุณ.. กระดาน

เนยขนมปังของคุณ.. กระดาน
เนยขนมปังของคุณ.. กระดาน

ขณะทำการเชื่อมต่อ ตรวจสอบให้แน่ใจว่าได้ปิด Pi

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

วางทรานซิสเตอร์ไว้ที่ครึ่งบนของเขียงหั่นขนม (คอลัมน์ A) และเชื่อมต่ออาร์เรย์ LED ที่ครึ่งล่าง (แถว H, I หรือ J)

เชื่อมต่อรางพลังงานเชิงลบกับพิน GND บนลิ่ม และรางบวกกับพิน 5V

เชื่อมต่อรางจ่ายไฟบวกกับพินแหล่งจ่ายไฟของอาร์เรย์ LED

สำหรับทรานซิสเตอร์แต่ละตัว ให้เชื่อมต่อพินอีซีแอลกับรางพลังงานเชิงลบและเชื่อมต่อพินของตัวสะสมเพื่อแยกแถวที่สอดคล้องกับพินของอาร์เรย์ LED (ฉันใช้แถวที่ 1 เป็น 5v และ 2, 3 และ 4 เป็นสีเขียว สีแดง และสีน้ำเงิน ในคอลัมน์ f) จากนั้นเชื่อมต่อสายจัมเปอร์ตัวผู้กับตัวเมียสี่ตัวจากเขียงหั่นขนมกับแถบ LED

สุดท้าย เชื่อมต่อพินฐานของทรานซิสเตอร์สีเขียวกับพิน 17 บนลิ่ม ฐานทรานซิสเตอร์สีแดงกับพิน 22 และฐานทรานซิสเตอร์สีน้ำเงินกับพิน 24

ขั้นตอนที่ 8: การทดสอบ

การทดสอบ
การทดสอบ

ในเว็บเบราว์เซอร์ นำทางไปยังที่อยู่ IP ของ Pi และหลังจากนั้นเขียน /main.html

เลือกสีและทึ่งกับ "ความมหัศจรรย์ของเทคโนโลยีสมัยใหม่"!

ขั้นตอนที่ 9: ติดต่อฉันหากคุณมีคำถาม/คำติชม

หากคุณมีคำถามหรือข้อเสนอแนะโปรดแสดงความคิดเห็นหรือ DM ฉันที่นี่และฉันจะพยายามตอบกลับโดยเร็วที่สุด

ขอให้โชคดี!

แนะนำ: