สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: ตั้งค่า Raspberry Pi. ของคุณ
- ขั้นตอนที่ 2: เชื่อมต่อฮาร์ดแวร์ของคุณ
- ขั้นตอนที่ 3: เพิ่มรหัส
- ขั้นตอนที่ 4: ให้มันยิง
- ขั้นตอนที่ 5: การดีบักและไฟล์ RxTx.py
- ขั้นตอนที่ 6: สนุก
วีดีโอ: วิธีควบคุมเต้าเสียบโดยใช้ Raspberry Pi: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นถึงวิธีสร้างเว็บอินเตอร์เฟสเพื่อควบคุมเต้ารับในบ้านของคุณโดยใช้ Raspberry Pi ฉันเลือกเขียนโปรเจ็กต์นี้เมื่อเห็นการประกวด Sensors และเนื่องจากโปรเจ็กต์นี้เกี่ยวข้องกับการใช้เซ็นเซอร์เพื่ออ่านโค้ดจากรีโมทที่จัดมาให้พร้อมกับร้านที่คุณซื้อ ฉันคิดว่าโปรเจ็กต์นี้น่าจะเหมาะสมที่สุด
ฉันจะพยายามรักษาระดับนี้ไว้ให้สูงที่สุดเท่าที่จะเป็นไปได้และจัดเตรียมรหัสเพื่อให้ทุกอย่างทำงานได้ สำหรับคุณ Code Monkeys ทุกคน อย่าลังเลที่จะขุดโค้ดและพิจารณาฉันในความคิดเห็น! ฉันมักจะมองหาการปรับปรุง มีอะไรเกิดขึ้นบ้างในเรื่องนี้ ดังนั้นหากคุณมีคำถามเกี่ยวกับขั้นตอนใดๆ โปรดแสดงความคิดเห็นเพื่อให้ฉันสามารถอัปเดตคำแนะนำที่มีรายละเอียดที่จำเป็น
โปรเจ็กต์นี้ใช้เต้ารับควบคุมความถี่วิทยุที่ 433MHz ร่วมกับเครื่องส่งสัญญาณ RF ที่เชื่อมต่อกับ Raspberry Pi ของคุณ ปลั๊กไฟมาพร้อมกับรีโมทที่สามารถเปิด/ปิดเต้ารับได้ แต่นั่นไม่สนุก! เราจะใช้เว็บเซิร์ฟเวอร์ที่ทำงานบน raspberry pi แทน ซึ่งช่วยให้ทุกคนที่เชื่อมต่อกับเครือข่ายสามารถเปิดหรือปิดเต้ารับบางตัวได้ เว็บฟรอนต์เอนด์สำหรับโปรเจ็กต์นี้เหมาะอย่างยิ่งเนื่องจากอุปกรณ์ที่เชื่อมต่อเว็บบนเครือข่ายของคุณสามารถใช้เป็นรีโมตได้
นี่เป็นโครงการที่ฉันใฝ่ฝันว่าจะสำเร็จมาหลายปีแล้ว และถึงแม้จะยังมีที่ว่างให้เพิ่มเติม โครงการที่อธิบายดังต่อไปนี้เป็นระบบการทำงาน
เสบียง
- Raspberry Pi (ฉันใช้ RPi 3 Model B+)
- ตัวส่งและตัวรับ 433MHz (ฉันใช้อันนี้)
- เต้ารับ 433MHz (ฉันใช้สิ่งนี้)
- จัมเปอร์หญิงต่อหญิง (ฉันซื้อพวงนี้)
- คอมพิวเตอร์หรืออุปกรณ์พกพาที่สามารถเข้าถึงอินเทอร์เน็ตได้
ขั้นตอนที่ 1: ตั้งค่า 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
ข้อจำกัดเดียวที่ทราบของระบบคือมีโอกาสเกิดความไม่ลงรอยกันระหว่างร้านค้าของผู้จำหน่ายต่างๆ ข้อความรหัสเปิดและปิดคือ 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: สนุก
คุณทราบดีว่ามีความสามารถในการเปิด/ปิดเต้ารับจากโทรศัพท์ แท็บเล็ต คอมพิวเตอร์ หรืออุปกรณ์อื่นๆ ที่ใช้งานเว็บได้! แจ้งให้เราทราบว่าคุณคิดอย่างไรในความคิดเห็น!
แนะนำ:
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
LED กะพริบด้วย Raspberry Pi - วิธีใช้พิน GPIO บน Raspberry Pi: 4 ขั้นตอน
LED กะพริบด้วย Raspberry Pi | วิธีใช้ GPIO Pins บน Raspberry Pi: สวัสดีทุกคนในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ GPIO ของ Raspberry pi หากคุณเคยใช้ Arduino คุณอาจรู้ว่าเราสามารถเชื่อมต่อสวิตช์ LED ฯลฯ เข้ากับหมุดของมันและทำให้มันทำงานได้ ทำให้ไฟ LED กะพริบหรือรับอินพุตจากสวิตช์ดังนั้น
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: 4 ขั้นตอน
อินเทอร์เฟซ ADXL335 Sensor บน Raspberry Pi 4B ใน 4 ขั้นตอน: ในคำแนะนำนี้ เราจะเชื่อมต่อเซ็นเซอร์ ADXL335 (accelerometer) บน Raspberry Pi 4 กับ Shunya O/S
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 - เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: 4 ขั้นตอน
การติดตั้ง Raspbian Buster บน Raspberry Pi 3 | เริ่มต้นใช้งาน Raspbian Buster ด้วย Raspberry Pi 3b / 3b+: สวัสดี องค์กร Raspberry pi ที่เพิ่งเปิดตัว Raspbian OS ใหม่ที่เรียกว่า Raspbian Buster เป็นเวอร์ชันใหม่ของ Raspbian สำหรับ Raspberry pi ดังนั้นวันนี้ในคำแนะนำนี้ เราจะได้เรียนรู้วิธีติดตั้ง Raspbian Buster OS บน Raspberry pi 3 ของคุณ
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI - เริ่มต้นใช้งาน Raspberry Pi 3B - การตั้งค่า Raspberry Pi ของคุณ 3: 6 ขั้นตอน
การติดตั้ง Raspbian ใน Raspberry Pi 3 B โดยไม่ต้องใช้ HDMI | เริ่มต้นใช้งาน Raspberry Pi 3B | การตั้งค่า Raspberry Pi ของคุณ 3: อย่างที่พวกคุณบางคนรู้ว่าคอมพิวเตอร์ Raspberry Pi นั้นยอดเยี่ยมมากและคุณสามารถรับคอมพิวเตอร์ทั้งหมดได้บนบอร์ดเล็ก ๆ ตัวเดียว Raspberry Pi 3 Model B มี ARM Cortex A53 แบบ 64 บิตแบบ quad-core โอเวอร์คล็อกที่ 1.2 GHz ทำให้ Pi 3 ประมาณ 50