DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi: 11 ขั้นตอน (พร้อมรูปภาพ)
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi: 11 ขั้นตอน (พร้อมรูปภาพ)
Anonim
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi
DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi

ทำไม?

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

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

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

รับทราบ:

TheFreeElectron - เว็บอินเตอร์เฟสที่เรียบง่ายและใช้งานง่ายสำหรับ Raspberry Pi ของคุณ - หากคุณวางสายบนเว็บ ให้ตรวจสอบที่นี่ แรงบันดาลใจสำหรับฝั่งเซิร์ฟเวอร์

CodePen - แหล่งข้อมูลที่ยอดเยี่ยมสำหรับแรงบันดาลใจและการเรียนรู้ CSS

Code Academy - ฉันเป็นคนใช้ HTML ของโรงเรียนเก่า โดยมี. NET & C# เข้ามาด้วย Python, CSS, Javascript, PHP - ทั้งหมดได้รับการส่งเสริมให้อยู่ในระดับที่ใช้งานได้/แฮ็กได้ด้วยความช่วยเหลือจาก Code Academy

ภาพรวมพื้นฐาน:

พลังงานแรงดันต่ำ (ไฟ/รีเลย์ 12V และ RPi 5V/รีเลย์) มาจากแหล่งจ่ายไฟ ATX ตัวเดียว

การตั้งค่า Raspberry Pi ด้วย Apache (เว็บเซิร์ฟเวอร์), WiringPi (การจัดการ GPIO) โดยใช้หน้าหลักของ PHP (ฝั่งเซิร์ฟเวอร์) พร้อม Javascript (ฝั่งผู้ใช้) & Python (สคริปต์) สำหรับตรวจสอบสถานะ GPIO และแสดงข้อมูลที่เกี่ยวข้องสำหรับหน้าเว็บหลัก ช่องทำเครื่องหมาย (ปลอมตัว) ใช้เพื่อควบคุมหมุด GPIO ซึ่งควบคุมรีเลย์ซึ่งควบคุมไฟ! มันเป็นเวทมนตร์โดยทั่วไป

ระหว่างทาง คุณจะเห็นรูปภาพโครงสร้างพื้นฐาน (ท่อร้อยสาย กล่องรวมสัญญาณ ฯลฯ) ซึ่งอยู่นอกเหนือขอบเขตของคำแนะนำนี้เล็กน้อย ฉันจะมุ่งเน้นไปที่ความกล้าอิเล็กทรอนิกส์ของระบบ ขึ้นอยู่กับคุณว่าจะทนต่อสภาพอากาศ (ถ้าจำเป็น) หรือสวย (ถ้าจำเป็น) หรือทั้งสองอย่าง (ตามต้องการ)

ตื่นเต้นที่จะแบ่งปันและรอคอยความคิดเห็นของชุมชนนี้ มาเริ่มกันเลย - เริ่มจนจบ

ขั้นตอนที่ 1: ฮาร์ดแวร์ ชิ้นส่วนและเครื่องมือ

ฮาร์ดแวร์ ชิ้นส่วน และเครื่องมือ
ฮาร์ดแวร์ ชิ้นส่วน และเครื่องมือ

มีชิ้นส่วนที่ดีกว่าที่จะใช้? ใช่.

ฉันทำให้ระบบทำงานอย่างเพียงพอกับชิ้นส่วนเหล่านี้หรือไม่? ใช่.

คุณควรลองสิ่งที่แตกต่างออกไปเล็กน้อยหรือไม่? ทำไมไม่?!ฮาร์ดแวร์/ซอฟต์แวร์

  1. RaspberryPi - ยิ่งสะอาดยิ่งดี และ RPi3 ยอดเยี่ยมเพราะคุณต้องการ wifi

    • สมมติว่า: คุณมี Rasbian จำนวนมาก
    • สมมติว่า: คุณเปลี่ยนรหัสผ่านเริ่มต้น & คุณได้เปิดใช้งาน SSH (พร้อมหน้าจอ)
    • หรือไม่มีหน้าจอ (ดูขั้นตอนที่ 1)
  2. แหล่งจ่ายไฟ ATX - การนำกลับมาใช้ใหม่ดีที่สุด ฉันมีของฉันจากอุปกรณ์เล่นเกมรุ่นเก่า - ให้ความสนใจกับวัตต์เมื่อคำนวณจำนวนไฟที่คุณต้องการและตามหลักแล้ว มองหารางไฟ [email protected]+Amp - นี่คือสายไฟสีม่วงและ จะจ่ายไฟให้ RPi โดยไม่ต้องรันระบบดูดทั้งระบบ
  3. ไฟภายนอกอาคาร (12v) - ดีมาก กำลังไฟต่ำ กำลังดี ราคาสมเหตุสมผล
  4. โมดูลรีเลย์ 5v และ/หรือ 12v
  5. ตัวเรือนบางประเภท - ฉันใช้กล่องรวมสาย PVC 8X8X4
  6. Notepad++ w/ NppFTP - ใช้เพื่อโหลดและแก้ไขไฟล์ RPi อย่างรวดเร็ว
  7. สีโป๊ว - ใช้เพื่อติดตั้งแพ็คเกจพิเศษสองสามตัวบน RPi

อะไหล่

  1. สายไฟ 12v พิกัดกลางแจ้ง
  2. ลวดเย็บกระดาษ
  3. PVC 1/2" และข้อต่อมุมฉากบางส่วน - 2 ฟุตและ 2 มุมฉากสำหรับแต่ละเส้นที่คุณวางแผนจะวิ่ง
  4. สายอีเทอร์เน็ตบางสาย
  5. จัมเปอร์ลวด - คอมโบชาย / หญิงต่างๆ
  6. สร้างตัวเชื่อมต่อ Molex ของคุณเอง
  7. ท่อหดความร้อน
  8. เทปพันสายไฟ
  9. สาย MicroUSB
  10. ทางเลือก: ขั้วต่อสายไฟเหล่านี้ยอดเยี่ยม - ใช้ได้ตลอดเวลา (รถยนต์ไฟฟ้าสำหรับเด็ก สวนอัจฉริยะ (ขั้วต่อโซลินอยด์) และสายไฟ USB ที่เชื่อมต่อ ATX กับ RPi)

เครื่องมือ

  1. คีมตัดลวดอย่างดี - ด้านที่เล็กกว่า
  2. ไขควงฟิลลิป
  3. คีมปากเข็มคู่เล็ก
  4. ทางเลือก: โวลต์มิเตอร์พร้อมเครื่องทดสอบความต่อเนื่อง - มีสายไฟจำนวนมากและมีประโยชน์มากสำหรับการวินิจฉัยปัญหา…
  5. บางเวลา

ขั้นตอนที่ 2: ทำความรู้จักกับพาวเวอร์ซัพพลายของคุณ

ทำความรู้จักกับพาวเวอร์ซัพพลายของคุณ
ทำความรู้จักกับพาวเวอร์ซัพพลายของคุณ
ทำความรู้จักกับพาวเวอร์ซัพพลายของคุณ
ทำความรู้จักกับพาวเวอร์ซัพพลายของคุณ

ดูสายไฟที่ยุ่งเหยิงทั้งหมดที่ออกจากแหล่งจ่ายไฟ ATX ของคุณ ขึ้นอยู่กับอายุของคุณ คุณจะมีคอนเน็กเตอร์ mobo หลัก (20-22 พิน - ในรูปพินเอาต์) พร้อมพลังงานสำหรับสิ่งอื่น ๆ ทุกประเภท - ไดรฟ์ กราฟิกการ์ด พลังงานเสริม ฯลฯ

  • +5VSB (Stand By) เส้นสีม่วง สิ่งนี้จะทุ่มเทให้กับ RPi ของคุณ - พลังตลอดเวลา
  • บรรทัด PS_ON เป็นสีเขียว เมื่อเชื่อมต่อกับกราวด์แล้วจะเปิดเสบียงสีแดงและสีเหลือง
  • เส้น +5V เป็นสีแดง หนึ่งบรรทัดสามารถจ่ายไฟรีเลย์ 2-3 5v ได้
  • เส้น +12V เป็นสีเหลือง คุณจะต้องใช้ 3-4 ในการจ่ายไฟให้กับแสงกลางแจ้ง
  • เส้น GROUND/COMMON เป็นสีดำ คุณจะต้องใช้สิ่งเหล่านี้สองสามสีสำหรับสีอื่นแต่ละสี
  • โปรเจ็กต์นี้จะไม่ใช้สีอื่นๆ ทั้งหมด

ขั้นตอนที่ 3: เตรียมพาวเวอร์ซัพพลาย

ก่อนอื่นฉันขอปฏิเสธความรับผิดชอบ:

คุณกำลังจัดการกับสายไฟ หากคุณไม่รู้/หรือเคารพในสิ่งที่คุณทำ - คุณสามารถทำร้ายตัวเองได้จริงๆ หรือแย่กว่านั้น… ก่อนที่คุณจะดำเนินการต่อ ตรวจสอบให้แน่ใจว่าครั้งนี้และทุกครั้ง คุณกำลังทำงานกับพลังงาน ATX ที่ไม่ได้เสียบปลั๊ก จัดหาและให้เวลาปล่อยก่อนที่คุณจะเปิดมัน ฉันไม่รับผิดชอบต่อความล้มเหลวของคุณในการเคารพและปฏิบัติตามกฎง่ายๆ บางอย่างเพื่อให้คุณปลอดภัย

ตกลง! กำลังเดินทางไป!

  1. ถอดปลั๊กไฟและรอ 10-15 นาทีเพื่อให้ตัวเก็บประจุคลายประจุ
  2. ใช้ไขควงปากแฉกและถอดสกรูออกจากกล่องจ่ายไฟ (FYI การรับประกันเป็นโมฆะ - เหตุผลที่ดีในการอัพไซเคิล)
  3. ตัด Molex/ตัวเชื่อมต่อทั้งหมดออก เพื่อให้คุณมีสายฟรีจำนวนมาก
  4. แยกและจัดระเบียบสายสีม่วง เขียว เหลือง แดง และดำ
  5. ตัดสายไฟอื่น ๆ ทั้งหมดภายในเคสอย่างระมัดระวัง - คุณไม่จำเป็นต้องใช้มันและจะช่วยประหยัดพื้นที่
  6. ปิดปลายสายไฟที่ตัดด้วยเทปพันสายไฟ
  7. ปิดผนึกเคสสำรองด้วยเฉพาะสายไฟที่คุณต้องการจากแหล่งจ่าย ตรวจสอบให้แน่ใจว่าไม่ได้ตัดสายไฟใกล้กับฮีทซิงค์หรือพัดลม

ขั้นตอนที่ 4: พลังสู่ Pi

พลังสู่ Pi!
พลังสู่ Pi!
พลังสู่ Pi!
พลังสู่ Pi!
พลังสู่ Pi!
พลังสู่ Pi!

ก่อนที่คุณจะเริ่มควบคุมรีเลย์ มาทำให้ RPi มีกำลังทั้งหมดก่อน

จำไว้ว่าฉันไม่ได้ครอบคลุมพื้นฐานของการตั้งค่าเริ่มต้น RPi (กำลังโหลดระบบปฏิบัติการไปยังการ์ด SD ตั้งค่ารหัสผ่านใหม่ & เปิดใช้งาน SSH) - กลับมาตรวจสอบในส่วนฮาร์ดแวร์/ซอฟต์แวร์ (ขั้นตอนที่ 2) เพื่อดูลิงก์ไปยังลิงก์ที่ยอดเยี่ยม สิ่งเหล่านั้น.

ดูภาพแรก - มาสร้างสายไฮบริดที่จะนำเส้นสีม่วงจาก ATX ไปยัง RPi:

สายไฟ USB เป็น ATX

  1. ใช้ที่ตัดสายไฟ ตัดสายไมโคร USB ให้ใกล้กับปลาย USB มากกว่าปลายไมโคร USB
  2. ดึงปลอกสายด้านนอกออกอย่างระมัดระวัง
  3. ควรมี 4 เส้น (ดำ แดง เขียว ขาว)
  4. ปล่อยให้ 1/2 "ถึง 3/4" ของสีดำและสีแดงแล้วดึงปลายเหล่านั้นออกเพื่อให้เห็นทองแดง
  5. ตัด Green & White ออกให้หมด คุณไม่ต้องการมัน - นี่เป็นเพียงเพื่อพลังงานเท่านั้น ไม่มีข้อมูล
  6. ใช้สายไฟสองสามเส้นที่คุณตัดจากแหล่งจ่ายไฟ ATX (สีแดงและสีดำ)
  7. เชื่อมต่อเข้ากับสาย USB

    • ทำได้สองสามวิธี - ตามลำดับอายุขัย:

      • (A) ลอกปลายทั้งสองข้าง บัดกรีเข้าด้วยกัน แล้วใช้ความร้อนหดให้หมด
      • (B) บิดปลายทั้งสองข้างที่ถอดออกตามยาวแล้วหดด้วยความร้อน
      • (C) ต่อปลายทั้งสองข้างที่ถอดออกด้วยน็อตลวดเล็กๆ
      • (D) บิดปลายทั้งสองข้างที่ปอกแล้วพันด้วยเทปพันสายไฟ
  8. หากคุณกำลังใช้ขั้วต่อ ให้ดึงปลายอีกด้านออกแล้วดันเข้าไปที่ขั้วต่อ 1/4" - 3/8" (ต้องแน่ใจว่าด้านบวกและด้านลบตรงกัน)
  9. หากคุณใช้คอนเน็กเตอร์ ให้ดึงสายสีม่วงออกจาก ATX และดึงสายสีดำออกอีกครั้ง ให้มองเป็นขั้วบวกและขั้วลบ (สีม่วงเป็นสีแดง และสีดำเป็นสีดำ)
  10. หากคุณไม่ได้ใช้คอนเนคเตอร์ ก็แค่ต่อสายให้แน่น

เมื่อเชื่อมต่อกับแหล่งจ่ายไฟและ RPi แล้ว ให้ตรวจสอบอีกครั้งเพื่อให้แน่ใจว่าคุณไม่มีสายไฟอื่นๆ ที่ถอดออกแล้วเสียบปลั๊กไฟกลับเข้าไป เมื่อคุณเปิดแหล่งจ่ายไฟ คุณควรมี Raspberry Pi ที่ใช้งานได้!

ถ้าไม่ - ตรวจสอบการเชื่อมต่อของคุณ บวก กราวด์ ฯลฯ ของคุณอีกครั้ง

ไม่มีลูกเต๋า? ใช้เครื่องทดสอบความต่อเนื่องของโวลต์มิเตอร์เพื่อตรวจสอบสายไฟ ควรได้ยินเสียงบี๊บเมื่อสัมผัสปลายทั้งสองข้าง นอกจากนี้ ให้ตรวจสอบว่าเส้นสีม่วงจากพาวเวอร์ซัพพลาย ATX คือ +5v

ยังไม่ไป? ลองใช้สายสีแดง +5v ก็ใช้ได้ แต่จะเปลี่ยนขั้นตอนต่อไปหน่อยและกินไฟเยอะกว่า

ตอนนี้เรามาพักจากฮาร์ดแวร์และทำงานกับ soft skillz ของเรา

ขั้นตอนที่ 5: SSH เข้าสู่ RPi & หยิบซอฟต์แวร์บางตัว

SSH เข้าสู่ RPi & หยิบซอฟต์แวร์บางอย่าง
SSH เข้าสู่ RPi & หยิบซอฟต์แวร์บางอย่าง

อา ความงามของโอเพ่นซอร์ส… เยี่ยมมาก…

เริ่มต้นด้วยสีโป๊วเล็กน้อย

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

โอเพ่นซอร์สคือแหล่งที่ดีที่สุด

เริ่มต้นด้วยสิ่งสำคัญทั้งหมด:

$ sudo apt-get update

$ sudo apt-get upgrade

ใช่สำหรับคำถามทั้งหมด

มาดู WiringPi Library กันเถอะ - ทำให้ GPIO สามารถจัดการได้มากขึ้น

$ sudo apt-get ติดตั้ง git-core

ใช่สำหรับคำถามทั้งหมด - ตอนนี้เพื่อสร้าง:

$ git โคลน git://git.drogon.net/wiringPi

$ cd ~/wiringPi $./build

สุดท้าย แต่ไม่ท้ายสุด - หนึ่งเว็บเซิร์ฟเวอร์ที่น่าทึ่ง:

$ sudo apt-get ติดตั้ง apache2 php5 libapache2-mod-php5

หากทุกอย่างเป็นไปด้วยดี คุณควรพิมพ์ที่อยู่ IP ของ RPi และดู "ใช้งานได้!"

จากนั้นให้สิทธิ์เข้าถึง:

$ sudo chown pi:pi /var/www/html/ $ sudo chmod 755 /var/www/html/

หมายเหตุด้านข้างเกี่ยวกับที่อยู่ IP

เหตุผลหนึ่งที่ฉันชอบการออกแบบ IoT นี้คือการออกแบบของฉัน iIoT หากคุณต้องการ ไม่ต้องกังวลกับ 'คลาวด์' หรือบริการอื่นๆ แต่คุณจะต้องกำหนดว่าคุณต้องการให้มันทำงานด้วยตัวเองอย่างไร กุญแจสู่ตัวเลือกใดๆ คือความต้องการที่อยู่ IP ที่มั่นคงและมั่นคง ไม่เช่นนั้น คุณจะไม่มีทางรู้ว่าต้องเปิดและปิดไฟที่ไหน ส่วนตัวฉันใช้ตัวเลือก (C) แต่การโทรของคุณ

ไม่กี่ตัวเลือก:

  • (A) ที่อยู่ IP แบบคงที่สำหรับ RPi
  • (B).local การกำหนดโดเมน
  • (C) อนุญาตให้เราเตอร์ของคุณกำหนดตัวเดียวกันทุกครั้ง ขึ้นอยู่กับความสามารถของเราเตอร์ของคุณ - มองหาการตั้งค่าที่เรียกว่า 'Address Reservation' ซึ่งมักจะอยู่ภายใต้การตั้งค่า LAN ขั้นสูง

ขั้นตอนที่ 6: เชื่อมต่อกับ RPi ผ่าน NotePad++ SSH

เชื่อมต่อกับ RPi ผ่าน NotePad++ SSH
เชื่อมต่อกับ RPi ผ่าน NotePad++ SSH
เชื่อมต่อกับ RPi ผ่าน NotePad++ SSH
เชื่อมต่อกับ RPi ผ่าน NotePad++ SSH

ฉันจะใช้ Notepad++ เพื่อแก้ไขไฟล์ HTML, PHP, Python, Javascript & CSS และปลั๊กอินที่เรียกว่า NppFTP เพื่อรับการเปลี่ยนแปลงเหล่านั้นบน RPi ของคุณอย่างรวดเร็วและง่ายดาย - สวยงาม เรียบง่าย และรวดเร็ว NppFTP เป็นค่าเริ่มต้นในเวอร์ชัน 32 บิต แต่ถ้าคุณใช้ 64 บิต จะได้รับการสนับสนุนในขณะนี้เช่นกัน แต่คุณจะต้องติดตั้งด้วยตนเอง

  1. เปิด Notepadd++
  2. ปลั๊กอิน NppFTP แสดงหน้าต่าง NppFTP (สามารถเลือกโฟลเดอร์เล็กๆ ที่มีไอคอนลูกโซ่ได้)
  3. ในหน้าต่าง NppFTP เลือกไอคอน COG และ 'การตั้งค่าโปรไฟล์'
  4. สิ่งนี้ควรว่างเปล่าสำหรับคุณ หากคุณไม่เคยใช้ตัวเลือกนี้ ให้เลือก 'เพิ่มใหม่'
  5. ชื่อโฮสต์ = RPi IP Address บนเครือข่ายท้องถิ่นของคุณ
  6. SFTP เป็นประเภทที่มีพอร์ต 22 (SSH)
  7. ชื่อผู้ใช้คือ 'Pi' และรหัสผ่านคือรหัสผ่านที่อัปเดตใหม่ของคุณ…ใช่ไหม!
  8. นอกจากนี้ ให้ตั้งค่าไดเร็กทอรีเริ่มต้นของคุณเป็น '/var/www/html/' - จะทำให้สิ่งต่างๆ ง่ายขึ้น
  9. กดไอคอนเชื่อมต่อและเลือกโปรไฟล์ที่คุณเพิ่งสร้าง - ควรซิปคุณไปที่ไดเร็กทอรีใหม่ของคุณ

การเปิดไฟล์จะนำไฟล์ในเครื่องมาที่เครื่องของคุณ การบันทึกจะโหลดการเปลี่ยนแปลงของคุณไปที่ RPi โดยอัตโนมัติ

เปิด index.php, gpio.php, css.css และ script.js ใน Notepad++ จากนั้นคุณสามารถอัปโหลดไปยังโฟลเดอร์ html ได้

ทำการทดสอบโดยป้อนที่อยู่ IP ของ RPi ของคุณ - คุณควรเห็นการโหลดหน้าควบคุมเริ่มต้นของคุณ

หากไม่ ให้ตรวจสอบและตรวจดูให้แน่ใจว่าไฟล์ทั้งหมดอยู่ใน RPi จริง ๆ และตรวจสอบให้แน่ใจว่าไม่มี 'ดัชนี' อื่นในโฟลเดอร์ html

หากคุณเห็นการโหลดหน้าสำเร็จ! มาพูดคุยกันมากขึ้นเกี่ยวกับไฟล์ที่คุณวางบน RPi และวิธีที่มันช่วยคุณควบคุมแสงของคุณ!

ขั้นตอนที่ 7: ภาพรวมอินเทอร์เฟซ & Index.php

ภาพรวมอินเทอร์เฟซ & Index.php
ภาพรวมอินเทอร์เฟซ & Index.php
ภาพรวมอินเทอร์เฟซ & Index.php
ภาพรวมอินเทอร์เฟซ & Index.php

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

ดังที่คุณเห็นจากภาพแรก - Javascript ที่รวมอยู่ใน index.php ใช้เพื่อเรียก gpio.php เมื่อสถานะของช่องกาเครื่องหมายของเรา (เช่น สวิตช์) เปลี่ยนไป gpio.php เขียนและอ่านพิน gpio

เริ่มต้นด้วย index.php ในไฟล์แนบ ฉันจะอธิบายทีละส่วน โดยจะชี้ให้เห็นพื้นที่และหมายเหตุเฉพาะบางส่วนเพื่อช่วยเหลือคุณ

ลิงก์แรกไปยังสไตล์ชีต CSS และไอคอนที่กำหนดเองซึ่งเป็นบิตแมป 32X32 พร้อมส่วนขยาย '.ico'

อย่างที่สองคือ Javascript เล็กน้อย ตัวอย่างการปรับ clocked จาก w3schools ที่ปรับแต่งเพื่อเพิ่ม AM/PM และเครื่องหมายทวิภาคที่กะพริบ (ฉันต้องการให้แสดงอย่างไร บางทีคุณอาจต้องการให้มันแตกต่างออกไป)

ก่อนอื่น PHP เล็กน้อย - สิ่งนี้จะทำงานก่อน - เฉพาะบนเซิร์ฟเวอร์ (ไม่สามารถเห็นได้ในซอร์สเมื่อโหลดหน้าแล้ว) - เหตุผลไม่สามารถใช้เพื่อเขียนสถานะพินต่อไปได้

$nm_array = array("Your Switch 1", "Your Switch 2", ฯลฯ.);

//นี่คือที่ที่คุณเพิ่มพื้นที่ที่คุณต้องการแยกการควบคุมไฟ //คุณสามารถเพิ่มได้มากเท่าที่คุณต้องการ/ต้องการ - มันถูกตั้งค่าให้นับและสร้างสวิตช์ตามลำดับ

$wthr_array = อาร์เรย์ (); // ตอนนี้ว่างเปล่า แต่มีจุดข้อมูลที่สร้างโดยสคริปต์ Python

ลูปถัดไปจะใช้ฟังก์ชัน 'ระบบ' และ 'exec' ของ PHP เพื่อตั้งค่าโหมดพินทั้งหมดโดยใช้ WiringPi (เอาต์พุตทั้งหมด) แล้วอ่าน เนื่องจากมีหลายแหล่งที่มาที่สามารถทำการเปลี่ยนแปลงได้ ฉันต้องการให้แน่ใจว่าหน้าใหม่จะเห็นสถานะปัจจุบันที่แท้จริง Javascript ในภายหลังจะอ่านข้อความเหล่านี้และตั้งค่าช่องทำเครื่องหมายให้เลือกหรือยกเลิกการเลือกตามนั้น

สุดท้าย หากคุณต้องการรันสคริปต์ Python เพื่อดึงจุดข้อมูลและเติม $wthr_array

ถัดไป "ส่วนหัว" ของคลาส div - แต่ละรายการแสดงเนื้อหาของคอนเทนเนอร์ในส่วนหัวของหน้าเว็บ (เวลา ชื่อเรื่อง & Temp.)

ลูป PHP ที่จะวนซ้ำตามจำนวนชื่อสวิตช์ที่คุณเพิ่มใน $nm_array

สิ่งสำคัญที่นี่คือการกำหนดหมายเลข PIN ตามลำดับ เริ่มต้นด้วย PIN0 จนถึงตัวเลขใดๆ แต่จำกัดจริงๆ ตามจำนวนพิน GPIO ที่มีอยู่ใน RPi ของคุณ ดังนั้น 16 สิ่งนี้จะมีความสำคัญมากในขั้นตอนต่อไปเมื่อเราเริ่มควบคุมสิ่งต่างๆ จริงๆ

บันทึกย่อสั้นๆ เกี่ยวกับไฟล์อื่นๆ บางไฟล์:

base.css

สีของคุณ (เว็บ, rgb ฯลฯ) สำหรับหน้าถูกกำหนดในบรรทัด 68, 111 และ 134 ฉันเลือกสิ่งเหล่านี้เนื่องจากเป็นสีเดียวกับที่ผู้สร้างที่ยอดเยี่ยมของฉันที่ภรรยาเลือกให้ฉันทาสีระเบียงหลังใหม่ ดังนั้นจึงช่วยเชื่อมโยงอินเทอร์เฟซเข้ากับที่ซึ่งโดยทั่วไปจะใช้งานอินเทอร์เฟซ

เริ่มต้นที่บรรทัดที่ 194 เป็นที่ที่คุณสามารถปรับแต่งรูปลักษณ์ของสวิตช์สลับได้

gettemp.py

สคริปต์ Python ที่ใช้งานง่ายสุด ๆ นี้พร้อมจะเขย่าขวัญทันทีที่คุณได้รับคีย์ API ของคุณเองจาก Weather Underground และจะแสดงสถิติบางอย่างเกี่ยวกับการใช้งานหน้าเว็บของคุณ (ทุกครั้งที่หน้าเว็บโหลดการโทร - ดังนั้นคุณจึงสามารถดูข้อมูลบางส่วนได้)

ขั้นตอนที่ 8: ควบคุมสิ่งของด้วย 12V

ควบคุมสิ่งของด้วย12V
ควบคุมสิ่งของด้วย12V
ควบคุมสิ่งของด้วย12V
ควบคุมสิ่งของด้วย12V
ควบคุมสิ่งของด้วย12V
ควบคุมสิ่งของด้วย12V

คุณอาจสังเกตเห็นว่าแหล่งจ่ายไฟของคุณไม่ส่งเสียงมากนัก พัดลมไม่เปิด ไม่มีแรงดันไฟที่เส้นสีเหลืองหรือสีแดง ฯลฯ

นั่นเป็นเพราะเราจะต้องเชื่อมต่อ GREEN (PS_ON) กับกราวด์เพื่อเปิดไฟหลัก

ลองเอารีเลย์ตัวใดตัวหนึ่งออกมา

  1. ถอดและต่อสายสีเขียวเข้ากับขั้วรีเลย์ตัวใดตัวหนึ่ง
  2. ปอกและเชื่อมต่อสายสีดำเข้ากับขั้วรีเลย์ตัวใดตัวหนึ่งถัดจากสายสีเขียว

ตกลง ตอนนี้ใช้สายจัมเปอร์ของคุณ - สีแดงและสีดำ ทั้งตัวเมียและตัวเมียสีใดๆ ที่ด้านหนึ่งและตัวผู้อยู่อีกด้านหนึ่ง

  1. ถอดปลายด้านหนึ่งของทั้งสีแดงและสีดำออกจากด้านหนึ่งของผู้หญิงแล้วต่อด้วยน็อตลวดสีแดงกับสีม่วง (ตัวเดียวกับ RPi ของคุณที่เชื่อมต่ออยู่) และสีดำเป็นสีดำ
  2. ฝ่ายหญิงของเหล่านี้จะไปที่รีเลย์ RED เป็นค่าบวก และ BLACK ไปที่ค่าลบ
  3. COLOR ที่คุณเลือกจะเป็น GPIO ตัวผู้ (ดูรูป - ใช้ WiringPi PIN 0)

    หมายเหตุ: ฉันใช้สายแพเพื่อเชื่อมต่อ GPIO แต่คุณสามารถไปที่ส่วนหัวของ RPi ได้โดยตรง

  4. ฝ่ายหญิงจะไปที่ "สัญญาณ" หรือขา S ของรีเลย์

กลับไปที่หน้าหลักของคุณ (ที่อยู่ IP ของ RPi ของคุณ) - สวิตช์แรก อาจเป็นสวิตช์เดียว ตอนนี้ควรนำ ATX PS ออกจากโหมดสแตนด์บาย เปิดพัดลมแล้วเริ่มส่งน้ำผลไม้ไปยัง 12V, 5V & 3.3 ทั้งหมด สายวี.

ที่เจ๋งคือหยุดตรงนี้ได้ เพียงต่อไฟของคุณเข้ากับสายไฟ 12V สองเส้น คุณก็จะมีสวิตช์ดิจิตอลที่เรียบง่ายเพื่อควบคุม

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

ขั้นตอนที่ 9: ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)

ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)
ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)
ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)
ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)
ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)
ควบคุมได้มากขึ้นด้วยพลังงาน (และข้อมูล) ผ่านอีเทอร์เน็ต (P(&D)oE)

คุณอาจเคยสงสัยว่าสายเคเบิลอีเธอร์เน็ตทั้งหมดที่ฉันเพิ่มลงในรายการวัสดุสิ้นเปลืองคืออะไร

เมื่อใช้อีเธอร์เน็ต เราสามารถส่ง 5V พร้อมกับสัญญาณ GPIO ไปพร้อมกับการเชื่อมต่อรีเลย์อื่นๆ เพื่อเพิ่มการควบคุมระบบไฟส่องสว่างของเรา บางทีคุณอาจต้องการแยกการควบคุมบางส่วนของสนาม? หรือส่วนหน้าและส่วนหลัง? สิ่งนี้จะเปิดใช้งานสิ่งนั้น

ฉันจะวางแนวคิดและแนวทางปฏิบัติที่ดีที่สุดบางส่วน และคุณสามารถปรับแต่งให้เหมาะกับความต้องการของคุณได้

ดูภาพแรกและภาพที่สอง ใช้สาย +5V จากแหล่งจ่ายไฟของเรา ฉันส่งสายอีเทอร์เน็ตแบบบิดเกลียวลงมาหนึ่งชุด

  1. ดึงปลอกหุ้มด้านนอกออกจากสายเคเบิลอีเทอร์เน็ตอย่างระมัดระวัง - คุณไม่ต้องการทำลายสาย 24-23 AWG
  2. เลือกชุดสีสองชุดและคลายเกลียวออกอย่างระมัดระวัง - ชุดหนึ่งจะเป็นแรงดันไฟฟ้าและอีกชุดคือกราวด์

    หมายเหตุ: เป็นความคิดที่ดีที่จะจดบันทึกว่าสีอะไรเมื่อคุณต่อสายอีกด้านหนึ่ง

  3. ปอกปลายสายไฟทั้งสองข้างและต่อสายให้เป็นสีแดง (+5v) และกราวด์สีดำบนแหล่งจ่ายไฟของคุณ (ภาพที่ 2)
  4. ทำเช่นเดียวกันกับสีลวดอื่น แต่ต่อจัมเปอร์จาก GPIO Pin แทน

ตัวเชื่อมต่อ Molex ที่ฉันเชื่อมโยงไว้ในส่วนวัสดุสิ้นเปลืองมีประโยชน์จริง ๆ ที่นี่ นำชุดบิดเกลียว 3 ชุด ขันให้เข้ากับขั้วต่อ Molex ตัวเมียพร้อมกับขั้วต่อ 3 แฉก แล้วพวกเขาจะต่อเข้ากับรีเลย์โดยตรง (ภาพที่ 3). ตรวจสอบให้แน่ใจว่าคุณได้ดูการสั่งซื้อ รีเลย์ของฉันต้องการให้มันอยู่ใน +, - & Sหากคุณสร้างสายเคเบิล Molex ไม่อยู่ในลำดับนั้น อาจเป็นการยากที่จะจัดเรียงใหม่

หากคุณ "หางเปีย" รางไฟฟ้าอีเทอร์เน็ตไปยังรีเลย์ของคุณ คุณสามารถเรียกใช้สายนี้ได้ทุกที่ที่ต้องการและแตะไปที่ตำแหน่งต่างๆ

ฉันได้ทดสอบสิ่งนี้กับอีเธอร์เน็ตมากกว่า 100 ฟุตโดยมีแรงดันไฟฟ้าตก จำกัด และสัญญาณ GPIO ที่ดีเนื่องจากคู่บิดเบี้ยวจึงค่อนข้างเสถียรและได้รับการปกป้องจากการรบกวน

ขั้นตอนที่ 10: สว่างขึ้นที่ลานนั้น

สว่างขึ้นที่ลาน!
สว่างขึ้นที่ลาน!
สว่างขึ้นที่ลาน!
สว่างขึ้นที่ลาน!
สว่างขึ้นที่ลาน!
สว่างขึ้นที่ลาน!

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

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

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

ก่อนอื่นฉันวิ่งสาย 12V ผ่านกล่องรวมสัญญาณ (ภาพที่ 2)

ลวดนั้นวิ่งลงไปที่พื้น ผ่านท่อพีวีซี 1/2" ที่มีมุมฉากที่ด้านล่าง ลงไปที่พื้นประมาณ 6-8" ร่องลึกที่แข็งกับดินที่เป็นหินของเรา (ต้องใช้เสียม) แต่บางทีคุณอาจอาศัยอยู่ที่ไหนสักแห่งที่มีดินจริงๆ…

เส้นขึ้นมา (ภาพที่ 4) อีกครั้งด้วยมุมฉากและพีวีซี 1/2 แล้วติดกับต้นไม้ ฉันลงเอยด้วยการเติมซิลิโคนด้านบนสุดของ PVC ด้วยซิลิกอนเล็กน้อยเพื่อป้องกันไม่ให้ลวดถูกดึง โดย kiddos

สำหรับการติดตั้งบางอย่าง คุณสามารถหยุดที่นี่และให้แสงของคุณชี้ไปที่ต้นไม้ ทดสอบตอนกลางคืนเพื่อให้ได้ลุคที่คุณต้องการ หากคุณต้องการให้แสงสว่างลดลง… ทำต่อ

ฉันใช้ลวดเย็บกระดาษ ระวังอย่าเจาะลวดเข้าไปหลังต้นไม้ (ภาพที่ 5)

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

ล้างและทำซ้ำสำหรับไฟจำนวนเท่าใดก็ได้ที่คุณต้องการวิ่ง!

ทดสอบโดยเปิดโทรศัพท์ iPad หรือคอมพิวเตอร์ แล้วไปที่ที่อยู่ IP RPi ของคุณ

สิ่งสุดท้ายที่ต้องทำคือทำให้แน่ใจว่า RPi ของคุณและการเชื่อมต่อนั้นดีและกระชับในกล่องรวมสัญญาณหรือการจัดประเภทอื่น - อีกครั้งที่อยู่นอกเหนือขอบเขตที่นี่

ขั้นตอนที่ 11: การปรับปรุงที่กำลังดำเนินการ & สรุป

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

กำลังอัปเดตบริการสภาพอากาศ

เริ่มใช้ Accuweather API แทน WeatherUnderground (บริการ API ที่ถูกยกเลิก) - เพิ่ม 'gettemp.py' เพื่อแสดงให้เห็นว่า!

การเพิ่มปุ่มทางกายภาพ

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

ข้อมูลที่แตกต่างจาก Weather Underground

ฉันเริ่มดึงข้อมูลโหราศาสตร์จาก WU (พระอาทิตย์ขึ้น พระอาทิตย์ตก ฯลฯ) ฉันกำลังทำงานเพื่อให้ไฟเปิดและปิด 30 นาทีก่อนพระอาทิตย์ตกและปิดในบางช่วงเวลาเช่นกัน สามารถใช้เซ็นเซอร์แอนะล็อกสำหรับสิ่งนี้ แต่ไม่ใช่การใช้งานที่ดีที่สุดของ RPi ดังนั้นให้เล่นกับโซลูชันซอฟต์แวร์

การเพิ่มเปิด/ปิดอัตโนมัติ

ระเบียงหลังของฉันเป็นคอนกรีตแข็ง 10 หลา ที่เราเทเมื่อประมาณ 2 ปีที่แล้ว ปีที่ผ่านมาเรามีสภาพอากาศที่ไม่แน่นอน - วันหนึ่งจะอยู่ที่ 35-40F จากนั้นต่อไปที่ 70-80F ที่มีความชื้น 60-80% ทำให้เกิดการควบแน่นบนแผ่นพื้นทำให้ลื่นมาก เพื่อต่อสู้กับปัญหานี้ ฉันได้เพิ่มสคริปต์หลามเพื่อดึงอุณหภูมิวันก่อน (เพื่อกำหนดอุณหภูมิโดยประมาณสำหรับแผ่นพื้น) และจุดน้ำค้างเพื่อตรวจสอบว่าเงื่อนไขเหมาะสมที่จะสร้างการควบแน่นบนระเบียงหรือไม่ (https://www. weatherquestions.com/What_is_condensati… หากอุณหภูมิต่ำกว่าจุดน้ำค้าง - จากนั้นพัดลมก็จะเปิดขึ้น ถ้าไม่ก็ดับ มันจะไม่เขียนทับหากเปิดพัดลมด้วยตนเองและอินเทอร์เฟซของหน้าเว็บเปลี่ยนไปเล็กน้อย ถ้า 'AI' เปิดพัดลม ฉันได้เพิ่ม 4 ไฟล์: dryout.py, auto_on.py & auto_off.py (วางในโฟลเดอร์ python) และ index.php ที่อัปเดต (วางในโฟลเดอร์หลัก) - คุณ' จะต้องอัปเดตคีย์ weatherunderground API ของคุณ

ในเทอร์มินัล:

$ sudo crontab -e

จากนั้นเพิ่มสิ่งต่อไปนี้ที่ด้านล่าง:

#เช็ค temp/dewpoint ทุกชั่วโมง ว่าต้องเปิดพัดลมไหม

0 * * * * /usr/bin/python /var/www/html/python/dryout.py

ตอนนี้ dryout.py จะทำงานทุกชั่วโมง หรือคุณสามารถใช้สิ่งนี้เป็นเทมเพลตสำหรับฟังก์ชันอื่น บางทีอาจเปิดและปิดไฟโดยใช้ทริกเกอร์อื่น เวลาพระอาทิตย์ตก/พระอาทิตย์ขึ้น? หรือถ้าข้างนอกร้อนและคุณต้องการให้พัดลมเปิดโดยอัตโนมัติหากอุณหภูมิ ถึง XX องศา?

การเพิ่ม Motion Sensors

การวางเซ็นเซอร์ตรวจจับความเคลื่อนไหวสองสามตัวใกล้กับทางเข้า การใช้โครงสร้างอีเทอร์เน็ตเพื่อกำหนดเส้นทางพลังงานและ I/O ข้อมูลจะเป็นเรื่องง่าย จากนั้นใช้สคริปต์หลามอย่างง่ายเพื่อตรวจสอบและเปิดและปิดไฟ อาจเป็นโครงการเสริมเล็กๆ น้อยๆ ที่สนุกสนาน

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