สารบัญ:

วิธีควบคุมเต้าเสียบโดยใช้ Raspberry Pi: 6 ขั้นตอน
วิธีควบคุมเต้าเสียบโดยใช้ Raspberry Pi: 6 ขั้นตอน

วีดีโอ: วิธีควบคุมเต้าเสียบโดยใช้ Raspberry Pi: 6 ขั้นตอน

วีดีโอ: วิธีควบคุมเต้าเสียบโดยใช้ Raspberry Pi: 6 ขั้นตอน
วีดีโอ: สอนการใช้ Home Assistant ควบคุมอุปกรณ์ไฟฟ้าด้วยสมาร์ทโฟนและคอมพิวเตอร์ 2024, กรกฎาคม
Anonim
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi
วิธีการควบคุมเต้ารับโดยใช้ Raspberry Pi

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

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

โปรเจ็กต์นี้ใช้เต้ารับควบคุมความถี่วิทยุที่ 433MHz ร่วมกับเครื่องส่งสัญญาณ RF ที่เชื่อมต่อกับ Raspberry Pi ของคุณ ปลั๊กไฟมาพร้อมกับรีโมทที่สามารถเปิด/ปิดเต้ารับได้ แต่นั่นไม่สนุก! เราจะใช้เว็บเซิร์ฟเวอร์ที่ทำงานบน raspberry pi แทน ซึ่งช่วยให้ทุกคนที่เชื่อมต่อกับเครือข่ายสามารถเปิดหรือปิดเต้ารับบางตัวได้ เว็บฟรอนต์เอนด์สำหรับโปรเจ็กต์นี้เหมาะอย่างยิ่งเนื่องจากอุปกรณ์ที่เชื่อมต่อเว็บบนเครือข่ายของคุณสามารถใช้เป็นรีโมตได้

นี่เป็นโครงการที่ฉันใฝ่ฝันว่าจะสำเร็จมาหลายปีแล้ว และถึงแม้จะยังมีที่ว่างให้เพิ่มเติม โครงการที่อธิบายดังต่อไปนี้เป็นระบบการทำงาน

เสบียง

  • Raspberry Pi (ฉันใช้ RPi 3 Model B+)
  • ตัวส่งและตัวรับ 433MHz (ฉันใช้อันนี้)
  • เต้ารับ 433MHz (ฉันใช้สิ่งนี้)
  • จัมเปอร์หญิงต่อหญิง (ฉันซื้อพวงนี้)
  • คอมพิวเตอร์หรืออุปกรณ์พกพาที่สามารถเข้าถึงอินเทอร์เน็ตได้

ขั้นตอนที่ 1: ตั้งค่า Raspberry Pi. ของคุณ

ตั้งค่า Raspberry Pi. ของคุณ
ตั้งค่า Raspberry Pi. ของคุณ

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

python3

ลงในบรรทัดคำสั่ง หากคุณมี Python 3 คุณควรเห็นเทอร์มินัลหลามเปิดอยู่ ออกจากเทอร์มินัลโดยปิดหรือพิมพ์

ทางออก()

เมื่อคุณยืนยันสิ่งนี้แล้ว คุณต้องติดตั้งขวดบน Pi ของคุณ Flask ช่วยให้เราสามารถสร้างเว็บเซิร์ฟเวอร์ของเราได้ จากบรรทัดคำสั่ง Pi ให้พิมพ์

sudo pip3 ติดตั้งขวด

ในกรณีที่คุณไม่ได้ติดตั้ง pip บน Pi คุณจะต้องพิมพ์

sudo apt-get ติดตั้ง python3-pip

ฉันชอบที่จะพัฒนาบน Raspberry Pi ของฉันจากความสะดวกสบายของคอมพิวเตอร์เดสก์ท็อปของฉัน หากคุณต้องการตัวเลือกนี้เช่นกัน คุณต้องติดตั้งสภาพแวดล้อมบางอย่างให้กับ SSH ลงใน Pi PuTTY ใช้งานได้ แต่ฉันชอบที่จะมี GUI (ส่วนต่อประสานกราฟิกกับผู้ใช้) ซึ่งทำให้ดูเหมือนว่าคุณอยู่บน Pi โดยตรง สำหรับตัวเลือก GUI คุณจะต้องติดตั้ง VNC Viewer ลงในคอมพิวเตอร์ที่คุณวางแผนจะใช้งาน นอกจากนี้ยังมีการตั้งค่าที่คุณต้องปรับบน Pi ของคุณ ดูคำแนะนำสำหรับการปรับเปลี่ยนการตั้งค่าได้ที่นี่

ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์ของคุณ

เชื่อมต่อฮาร์ดแวร์ของคุณ
เชื่อมต่อฮาร์ดแวร์ของคุณ

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

pinout

ต่อไปนี้เป็นการเชื่อมต่อที่ฉันทำ คุณอาจมีการกำหนดค่าที่แตกต่างออกไป หากคุณซื้อฮาร์ดแวร์ตัวส่ง/ตัวรับที่แตกต่างจากที่ฉันระบุไว้ในบทนำ หากคุณตัดสินใจที่จะเลือกหมายเลขพินที่แตกต่างจากที่ฉันระบุไว้ด้านล่าง ไม่ต้องกลัว! เมื่อคุณดาวน์โหลดซอร์สโค้ด เพียงแก้ไขหมายเลขพินตามต้องการในไฟล์ RxTx.py

ตัวรับ (ชิปใหญ่):

  • GND - พินกราวด์ที่กำหนดใดๆ
  • ข้อมูล - พิน 11
  • DER - ไม่เชื่อมต่อ
  • +5V - พิน +5V ที่กำหนดใดๆ
  • ------
  • +5V - พิน +5V ที่กำหนดใดๆ
  • GND - พินกราวด์ที่กำหนดใดๆ
  • GND - ไม่ได้เชื่อมต่อ
  • ANT - ไม่เชื่อมต่อ

หมายเหตุ: คุณสามารถเชื่อมต่อเสาอากาศได้ตามต้องการ แต่ฉันพบว่าไม่จำเป็น ชิปตัวเล็กตัวนี้มีความไวอย่างน่าประหลาดใจและตรวจจับสัญญาณได้อย่างแม่นยำจากจุดที่มันนั่งอย่างน้อย 50 ฟุต และผ่านกำแพงอย่างน้อยสองกำแพง

เครื่องส่ง:

  • P - พิน 3.3V
  • DA - พิน 7
  • G - หมุดกราวด์ที่กำหนดใด ๆ
  • AN - ไม่ได้เชื่อมต่อ

หมายเหตุ: อีกครั้ง คุณสามารถเชื่อมต่อเสาอากาศกับเครื่องส่งสัญญาณได้ตามต้องการ แต่ฉันพบว่าไม่จำเป็น ช่วงนั้นมากเกินพอ (50+ ฟุต)

ขั้นตอนที่ 3: เพิ่มรหัส

นี่เป็นส่วนที่ฉันใช้เวลาส่วนใหญ่ในการพัฒนาโครงการนี้ ฉันพยายามแสดงความคิดเห็นให้มากที่สุด แต่ฉันอาจทิ้งช่องว่างที่อาจต้องมีคำอธิบายหากคุณคนใดใช้เวลาพยายามทำความเข้าใจ หากสิ่งนี้เกิดขึ้นกับคุณโปรดแสดงความคิดเห็น!

ภาษาที่เกี่ยวข้องที่นี่คือ:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python ถูกใช้ในเซิร์ฟเวอร์ขวดและใน

RxTx.py

ไฟล์ซึ่งจัดการการส่งรหัสและใบเสร็จรับเงิน ใช้ CSS ในการสร้างสไตล์ของหน้าเว็บ ใครอยากได้เว็บน่าเบื่อ!? Javascript ถูกใช้ในการจัดการเหตุการณ์ใดๆ (การกดปุ่ม ฯลฯ) HTML เป็นส่วนประกอบหลักของหน้าเว็บ สุดท้ายนี้ใช้ JQuery/Ajax เพื่อสื่อสารระหว่างหน้าเว็บและส่วนหลังของ Python

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

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

Outlet Switch-> comm-- DataRW.py-- keys.py-- RxTx.py-> หน้าเว็บ-- คงที่ ----- favicon.ico ----- style.css-- เทมเพลต ----- index.html ----- schedule.html-- app.py-- data.file

คุณสามารถวางโฟลเดอร์ Outlet Switch ไว้ที่ใดก็ได้บน Pi ของคุณ เมื่อคุณพร้อมที่จะเรียกใช้เว็บเซิร์ฟเวอร์ของคุณ ให้เปิดเทอร์มินัลบน Pi ของคุณและ

ซีดี

(เปลี่ยนไดเร็กทอรี) ไปยังไดเร็กทอรีเว็บเพจ แล้วพิมพ์

python3 app.py

เข้าไปในเทอร์มินัล หากไม่มีข้อผิดพลาดคุณควรไปได้ดี!

ป.ล. โปรดอดใจรอหากคุณพบข้อบกพร่องใด ๆ ฉันพยายามสควอชทั้งหมดก่อนที่จะอัปโหลด

ขั้นตอนที่ 4: ให้มันยิง

ให้มันยิง!
ให้มันยิง!

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

  • คุณสามารถเพิ่มร้านได้มากเท่าที่คุณต้องการโดยใช้เว็บอินเตอร์เฟส
  • การลบทำได้ง่ายเพียงแค่คลิกแก้ไข เลือกช่องทางที่คุณต้องการลบ แล้วคลิกลบ

วิดีโอ YouTube ด้านบนแสดงวิธีการเพิ่มช่องทางใหม่ในรายการของคุณ เพื่อสรุปสิ่งที่แสดง:

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

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

ขั้นตอนที่ 5: การดีบักและไฟล์ RxTx.py

การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py
การดีบักและไฟล์ RxTx.py

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

  • ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง matplotlib บน Pi ของคุณแล้ว คุณสามารถทำได้โดยพิมพ์ข้อความต่อไปนี้ลงในเทอร์มินัลของ Pi:

    • python3

    • นำเข้า matplotlib

    • หากคุณได้รับข้อผิดพลาด คุณต้องติดตั้ง matplotlib
    • ออกจากเปลือกหลามโดยใช้

      ทางออก()

  • ในการติดตั้ง matplotlib ให้พิมพ์

    sudo pip3 ติดตั้ง matplotlib

  • เข้าไปในเทอร์มินัล
  • ดาวน์โหลดไฟล์ test.py ที่แนบมา และวางไว้ข้างไฟล์ RxTx.py บน Pi. ของคุณ
  • เปิดเทอร์มินัล python และเปลี่ยนไดเร็กทอรีลงในโฟลเดอร์ comm
  • พิมพ์

    python3 test.py

  • เมื่อขึ้นว่า "**เริ่มการบันทึก** " ให้กดปุ่มเปิดหรือปิดบนรีโมทค้างไว้จนกว่าการบันทึกจะสิ้นสุดลง
  • โปรแกรมจะโหลดตัวเลข matplotlib ที่มีลักษณะคล้ายกับด้านบน ซูมเข้าจนกว่าคุณจะเห็นสัญญาณซ้ำตามที่แสดงในรูปภาพด้านบน
  • นับลอจิคัล 1 และโลจิคัล 0 ทั้งหมดสำหรับแต่ละข้อความ โดยที่ข้อความเป็นการวนซ้ำของสัญญาณซ้ำๆ ที่เห็นด้านบน หากรวมเป็น 25 ไฟล์ RxTx.py ไม่น่าจะผิดพลาด หากคุณพบสิ่งอื่นที่ไม่ใช่ 25 โปรดแสดงความคิดเห็นด้านล่าง แล้วฉันจะปรับแต่งไฟล์ RxTx.py ให้เปิดกว้างมากขึ้น (หรือลองใช้มือของคุณดูก็ได้)

จะเกิดอะไรขึ้นหากฉันไม่เห็นสัญญาณซ้ำๆ

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

ขั้นตอนที่ 6: สนุก

คุณทราบดีว่ามีความสามารถในการเปิด/ปิดเต้ารับจากโทรศัพท์ แท็บเล็ต คอมพิวเตอร์ หรืออุปกรณ์อื่นๆ ที่ใช้งานเว็บได้! แจ้งให้เราทราบว่าคุณคิดอย่างไรในความคิดเห็น!

แนะนำ: