สารบัญ:

Switch-it, เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์: 6 ขั้นตอน
Switch-it, เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์: 6 ขั้นตอน

วีดีโอ: Switch-it, เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์: 6 ขั้นตอน

วีดีโอ: Switch-it, เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์: 6 ขั้นตอน
วีดีโอ: ⚡SONOFF POW Elite : สวิตช์อัจฉริยะ ควบคุมการใช้พลังงานไฟฟ้า พร้อมจอแสดงผล 2024, พฤศจิกายน
Anonim
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์
Switch-it เต้ารับอัตโนมัติพร้อมการวัดกระแสแบบเรียลไทม์

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

องค์ประกอบที่จำเป็นสำหรับโครงการนี้คือ:

เสบียง

ก่อนที่เราจะเริ่มต้นสิ่งเหล่านี้คือสิ่งที่คุณจะต้องสร้างกล่อง Switch-IT อย่างของฉัน อุปกรณ์เหล่านี้จะมีราคาประมาณ 50 ถึง 100 ยูโร ขึ้นอยู่กับภูมิภาคและราคาปัจจุบันของคุณ

ฮาร์ดแวร์

อิเล็กทรอนิกส์

  • ราสเบอร์รี่ pi 4
  • 16gb (หรือมากกว่า) Micro SD-Card
  • Arduino Uno
  • ตัวเปลี่ยนระดับ 5V-3.3V
  • โมดูลรีเลย์ 5V
  • ACS712 20A - โมดูลปัจจุบัน
  • 1838 IR-Receiver 37.9 kHz โมดูล
  • รีโมท IR (ฉันใช้ Elegoo)
  • แคโทดทั่วไป RGB
  • ตัวต้านทาน 3 * 330Ω
  • ปุ่มกด
  • RFID-RC522
  • จอแอลซีดี 1602A-1
  • เต้ารับติดผนัง Niko
  • 10K Ω พอตมิเตอร์
  • 230 ถึง 5V - แหล่งจ่ายไฟ 7A

สายเคเบิล

  • สาย USB-B เป็น USB-A
  • สายไฟ USB-C
  • สายอีเธอร์เน็ต

หลากหลาย

  • Jumperwires ชาย-หญิง
  • Jumperwires ชาย-ชาย
  • บัดกรีดีบุก
  • ท่อหด

ชิ้นส่วนเฉพาะของเคส (อุปกรณ์เสริม)

  • 50 * ถั่วและตัวหนา
  • ตัวเรือนโลหะ 40x40x5 ซม. พร้อมฝาปิด
  • เทปสองหน้า
  • สเปเซอร์สูง 6*1 ซม.
  • ผู้ถือนำ
  • เทปเวลโคร
  • คู่มือสายเคเบิล

ซอฟต์แวร์

  • balenaEtcher:
  • PuTty
  • แรสเบียน
  • รหัส Visual Studio
  • Arduino IDE

ขั้นตอนที่ 1: ตั้งค่า Rasbian

ตั้งค่า Rasbian
ตั้งค่า Rasbian
ตั้งค่า Rasbian
ตั้งค่า Rasbian

ก่อนอื่นเราจะแฟลช Rasbian ลงใน SD-Card เราจะทำอย่างนั้นโดยใช้ balenaEtcher

  1. เปิด balenaEtcher
  2. เลือกภาพ Rasbian
  3. เลือก SD-Card ของคุณ
  4. กด Flash รอสักครู่จนกว่าจะกะพริบ

การเพิ่ม APIPA ในไดเร็กทอรีบูต: เราจะใช้ที่อยู่ APIPA เพื่อตั้งโปรแกรมและกำหนดการตั้งค่าบน RPI เพื่อทำสิ่งนี้:

  1. เข้าถึงไดเร็กทอรีสำหรับบูตใน SD-Card
  2. เปิด "cmdline.txt"
  3. เพิ่ม "169.254.10.1" ที่ท้ายเอกสารแล้วบันทึก
  4. เพิ่มไฟล์ชื่อ "ssh" ลงในไดเร็กทอรีบูต (อย่าให้ไฟล์นี้ขยาย)
  5. หลังจากที่คุณทำเสร็จแล้ว คุณสามารถนำการ์ด SD ออกจากพีซีของคุณได้

เข้าถึง RPI โดยใช้ PuTTy

ตอนนี้ เราสามารถเสียบการ์ด SD เข้ากับ RPI ของเรา แล้วเชื่อมต่อ RPI กับพีซีของคุณโดยใช้สายอีเทอร์เน็ต

ในการเชื่อมต่อกับ RPI เราจะใช้ PuTTy กับที่อยู่ APIPA ของเรา

  1. เปิด PuTTy
  2. กรอกที่อยู่ APIPA ของเราเป็นชื่อโฮสต์ (169.254.10.1)
  3. ตรวจสอบให้แน่ใจว่าพอร์ตเป็น 22 และเลือก SSH ไว้
  4. ตอนนี้คุณสามารถเปิดการเชื่อมต่อ
  5. ชื่อผู้ใช้เริ่มต้นคือ: pi
  6. ด้วยรหัสผ่านเริ่มต้น: raspberry

การตั้งค่า raspi-config

เปิด raspi-config โดยใช้:

sudo raspi-config

  • เปลี่ยนรหัสผ่านผู้ใช้
  • ในตัวเลือกการแปล เลือกเขตเวลาของคุณ
  • ตั้งค่า WiFi โดยใช้ตัวเลือกเครือข่าย จากนั้นเลือกตัวเลือก Wi-Fi ที่คุณต้องกรอก SSID และรหัสผ่าน

ติดตั้ง Python 3

ในโครงการนี้ เราใช้ Python ดังนั้นเราจะตั้งค่าเริ่มต้นเป็น Python3 แทน Python2 โดยใช้คำสั่งต่อไปนี้

อัพเดตทางเลือก -- ติดตั้ง /usr/bin/python python /usr/bin/python2.7 1

อัพเดตทางเลือก -- ติดตั้ง /usr/bin/python python /usr/bin/python3 2

แพ็คเกจ Python

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

pip ติดตั้ง Flask

pip ติดตั้ง Flask_cors pip ติดตั้ง Flask_socketio pip ติดตั้ง Python-mysql-connecton

ฐานข้อมูล

ต่อไปเราจะติดตั้งระบบจัดการฐานข้อมูล (MariaDB) ของเราโดยใช้:

sudo apt ติดตั้ง mariadb-server

พิมพ์ "Y" และ Enter เพื่อดำเนินการต่อ หลังจากนั้นไม่กี่วินาที กระบวนการติดตั้งจะเสร็จสมบูรณ์ และ MariaDB ก็เกือบจะพร้อมใช้งานแล้ว

ในการตั้งรหัสผ่านให้ฐานข้อมูลใช้คำสั่ง:

sudo mysql_secure_installation

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

ตอนนี้ กด "Y" 3 ครั้งเพื่อ: ลบผู้ใช้ที่ไม่ระบุชื่อ ไม่อนุญาตให้รูทล็อกอินจากระยะไกล และลบฐานข้อมูลทดสอบ สุดท้ายกด “Y” อีกครั้งเพื่อโหลดสิทธิ์ใหม่

ตอนนี้ MariaDB และแพ็คเกจที่จำเป็นทั้งหมดได้รับการติดตั้งสำเร็จแล้ว

ขั้นตอนที่ 2: คว้ารหัสและตั้งค่า

คว้ารหัสและตั้งค่า
คว้ารหัสและตั้งค่า
คว้ารหัสและตั้งค่า
คว้ารหัสและตั้งค่า

ตอนนี้เราได้ติดตั้งแพ็คเกจทั้งหมดแล้ว เราสามารถคว้ารหัสได้

รหัสมีอยู่ใน Github เพื่อให้คุณสามารถโคลนได้โดยใช้:

โคลน git

นี่คือส่วนหน้า

โคลน git

นี่คือแบ็กเอนด์

การติดตั้งฐานข้อมูลเอง

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

mysql

สร้างฐานข้อมูล switchit ออกจาก mysql -u root -p switchit < Your_Path_to_Backend_Repo/switchit.sql

การติดตั้ง Apache

ตอนนี้ เรามีโค้ดและการตั้งค่าฐานข้อมูลทั้งหมดแล้ว เราสามารถติดตั้ง Apache และเรียกใช้แบ็กเอนด์ของเราได้ เราจะทำโดยใช้:

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

จากนั้นแทนที่ไฟล์ใน /var/ww/html ด้วยไฟล์ในโฟลเดอร์จากโฟลเดอร์ส่วนหน้า

หากทุกอย่างเป็นไปด้วยดี คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์ของคุณโดยใช้ที่อยู่ APIPA: 169.254.10.1 ในเบราว์เซอร์ของคุณ

ขั้นตอนที่ 3: การสื่อสาร Arduino

Arduino Communication
Arduino Communication

ในการอ่านเซ็นเซอร์ปัจจุบันและเซ็นเซอร์ RFID ของเราเราใช้ Arduino ให้ใช้รหัส Arduino ที่ระบุด้านล่าง อัปโหลดโดยใช้สาย USB-A เป็น USB-B และซอฟต์แวร์ arduino IDE เมื่ออัพโหลดแล้ว ส่วนของ Arduino ก็เสร็จเรียบร้อย

ตอนนี้เราต้องค้นหาชื่ออุปกรณ์ซีเรียลบน PI โดยต้องแน่ใจว่าใน /boot/config.txt "enable_uart=1" ถูกตั้งค่าไว้ถูกต้อง ตรวจสอบให้แน่ใจด้วยว่า "console=serial0, 115200" ถูกลบออกจาก cmdline.txt

จากนั้นตรวจสอบพอร์ตโดยใช้

ls -l /dev

หนึ่งในชื่ออนุกรมควรเป็น Arduino กรอกชื่อนี้ที่ฟังก์ชัน arduinocom ใน app.py

ser = serial. Serial('/dev/ttyS0', 9600)

ทำอย่างนั้นก็ต่อเมื่อการสื่อสารแบบอนุกรมไม่ทำงาน

ขั้นตอนที่ 4: การเดินสายไฟ Switch-it

การเดินสายไฟ Switch-it
การเดินสายไฟ Switch-it
การเดินสายไฟ Switch-it
การเดินสายไฟ Switch-it

การเดินสายไฟทุกอย่างค่อนข้างตรงไปตรงมา แม้ว่าคุณควรคำนึงถึงสิ่งต่อไปนี้:

  • ระวังด้วยเต้ารับที่ผนัง 230 โวลต์อาจถึงตายได้
  • ตรวจสอบให้แน่ใจว่าใช้ตัวแปลงระดับสำหรับการสื่อสารระหว่าง RPI และ Arduino
  • ก่อนบัดกรี RGB ตรวจสอบให้แน่ใจว่าคุณใช้พินสีแดงและสีเขียว ทดสอบก่อน!
  • ทดสอบว่าไม่มีสิ่งใดลัดวงจรก่อนเปิดเครื่อง

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

ตอนนี้ทุกอย่างเชื่อมต่ออย่างถูกต้องแล้ว เราสามารถเรียกใช้โปรแกรมของเราได้

เพื่อให้ทำงานโดยอัตโนมัติเมื่อเริ่มต้นสร้างไฟล์โดยใช้:

sudo nano myscript.service

จากนั้นวาง (ตรวจสอบให้แน่ใจว่าใช้ไดเรกทอรี app.py ของคุณเอง:

[หน่วย]Description=Switchit After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=//change to app.py directory// StandardOutput=inherit StandardError=inherit Restart=always User= pi [ติดตั้ง] WantedBy=multi-user.target

จากนั้นกด "ctrl + X" แล้วคัดลอกไปที่ /etc/systemd/system.

จากนั้นคำสั่ง follwing เพื่อให้ทำงานโดยอัตโนมัติ:

sudo systemctl เปิดใช้งาน myscript.service

คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้จากเว็บไซต์ RaspBerry Pi

รีบูตและทำ

ตอนนี้รีบูต PI ของคุณโดยใช้:

sudo รีบูต -h ตอนนี้

นี่คือวิธีที่คุณทำ Switch-it!

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

ขั้นตอนที่ 6: (ไม่บังคับ) ที่อยู่อาศัย

(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย
(ตัวเลือก) ที่อยู่อาศัย

คุณสามารถสร้างที่อยู่อาศัยได้ทั้งหมดตามความชอบของคุณเอง ฉันใช้กล่องโลหะขนาด 40x40x5 ซม. พร้อมฝาปิด เนื่องจากฉันใช้อันที่เป็นโลหะ ฉันจึงต้องเจาะรูและใช้สเปเซอร์เพื่อเอาทุกอย่างออกจากเพลตพื้น ฉันเลือกใช้จุดศูนย์กลางที่มี 5V, 3.3V และ gnd ทุกการเชื่อมต่อทางไฟฟ้าถูกบัดกรีด้วยชิ้นส่วนของ Shrinking Tube ที่ด้านบน ในการจัดการสายเคเบิล ฉันใช้แผ่นรองที่มีสายรัด

แนะนำ: