สารบัญ:

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

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

วีดีโอ: DIY โคมไฟกลางแจ้งแรงดันต่ำควบคุมโดยใช้ Raspberry Pi: 11 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: [Project] ทำโคมไฟล้ำๆ ควบคุมด้วย WiFi ตอบสนองอย่างไว ไร้การรีเฟรชหน้าเพจโดยใช้ Websocket กันเถอะ 2024, กรกฎาคม
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 ข้อมูลจะเป็นเรื่องง่าย จากนั้นใช้สคริปต์หลามอย่างง่ายเพื่อตรวจสอบและเปิดและปิดไฟ อาจเป็นโครงการเสริมเล็กๆ น้อยๆ ที่สนุกสนาน

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

แนะนำ: