สารบัญ:

เต้ารับไฟฟ้าที่เปิดใช้งานอินเทอร์เน็ต: 13 ขั้นตอน
เต้ารับไฟฟ้าที่เปิดใช้งานอินเทอร์เน็ต: 13 ขั้นตอน

วีดีโอ: เต้ารับไฟฟ้าที่เปิดใช้งานอินเทอร์เน็ต: 13 ขั้นตอน

วีดีโอ: เต้ารับไฟฟ้าที่เปิดใช้งานอินเทอร์เน็ต: 13 ขั้นตอน
วีดีโอ: แนะนำขั้นตอนวิธีการ เปิด/ปิดไฟด้วยโทรศัพท์มือถือ ผ่านWIFI ทำง่ายทำได้ด้วยตัวเอง 2024, พฤศจิกายน
Anonim
Image
Image
วัสดุที่จำเป็น
วัสดุที่จำเป็น

โครงการเว็บเซิร์ฟเวอร์ PowerHub & คำแนะนำในการตั้งค่า Outlet ที่เปิดใช้งานอินเทอร์เน็ต

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

ขั้นตอนที่ 1: โปรเจ็กต์เว็บเซิร์ฟเวอร์ PowerHub และคำแนะนำในการตั้งค่า Outlet ที่เปิดใช้งานอินเทอร์เน็ต

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

แฟลช RaspberriPi Hard Disk / ติดตั้งซอฟต์แวร์ที่จำเป็น (โดยใช้ Ubuntu Linux) ดาวน์โหลด "RASPBIAN JESSIE LITE"

สร้างฮาร์ดดิสก์ใหม่ของคุณสำหรับ DashboardPI

ใส่ microSD เข้ากับคอมพิวเตอร์ของคุณผ่านอะแดปเตอร์ USB และสร้างภาพดิสก์โดยใช้คำสั่ง dd

ค้นหาการ์ด microSD ที่ใส่ของคุณโดยใช้คำสั่ง df -h ยกเลิกการต่อเชื่อมและสร้างภาพดิสก์ด้วยคำสั่งคัดลอกดิสก์ dd

$ df -h /dev/sdb1 7.4G 32K 7.4G 1% /สื่อ/XXX/1234-5678

$ umount /dev/sdb1

ข้อควรระวัง: ตรวจสอบให้แน่ใจว่าคำสั่งนั้นถูกต้องอย่างสมบูรณ์ คุณสามารถทำให้ดิสก์อื่นเสียหายได้ด้วยคำสั่งนี้

if=ตำแหน่งของไฟล์รูปภาพ RASPBIAN JESSIE LITE ของ=ตำแหน่งของการ์ด microSD ของคุณ

$ sudo dd bs=4M if=/path/to/raspbian-jessie-lite.img of=/dev/sdb (หมายเหตุ: ในกรณีนี้ คือ /dev/sdb, /dev/sdb1 เป็นพาร์ติชั่นโรงงานที่มีอยู่บน ไมโครเอสดี)

การตั้งค่า RaspberriPi. ของคุณ

ใส่การ์ด microSD ใหม่ของคุณเข้ากับ raspberrypi และเปิดเครื่องด้วยจอภาพที่เชื่อมต่อกับพอร์ต HDMI

เข้าสู่ระบบ

ผู้ใช้: pi pass: raspberry

เปลี่ยนรหัสผ่านบัญชีของคุณเพื่อความปลอดภัย

sudo passwd pi

ขั้นตอนที่ 2: เปิดใช้งานตัวเลือกขั้นสูง RaspberriPi

sudo raspi-config

เลือก: 1 ขยายระบบไฟล์

9 ตัวเลือกขั้นสูง

A2 Hostname เปลี่ยนเป็น "WIFI-OUTLET"

A4 SSH เปิดใช้งานเซิร์ฟเวอร์ SSH

A7 I2C เปิดใช้งานอินเทอร์เฟซ i2c

เปิดใช้งานแป้นพิมพ์ภาษาอังกฤษ/สหรัฐอเมริกา

sudo nano /etc/default/keyboard

เปลี่ยนบรรทัดต่อไปนี้: XKBLAYOUT="us"

รีบูต PI สำหรับการเปลี่ยนแปลงรูปแบบแป้นพิมพ์ / การปรับขนาดระบบไฟล์เพื่อให้มีผล

$ sudo shutdown -r ตอนนี้

เชื่อมต่ออัตโนมัติกับ WiFi ของคุณ

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

เพิ่มบรรทัดต่อไปนี้เพื่อให้ raspberrypi ของคุณเชื่อมต่อกับ WiFi ที่บ้านของคุณโดยอัตโนมัติ (หากเครือข่ายไร้สายของคุณชื่อ "linksys" ในตัวอย่างต่อไปนี้)

network={ ssid="linksys" psk="WIRELESS PASSWORD HERE" } รีบูต PI เพื่อเชื่อมต่อกับเครือข่าย WiFi

$ sudo shutdown -r ตอนนี้

ตอนนี้ PI ของคุณอยู่ในเครือข่ายท้องถิ่นแล้ว คุณสามารถเข้าสู่ระบบจากระยะไกลผ่าน SSH ได้ แต่ก่อนอื่นคุณต้องได้รับที่อยู่ IP ที่มีอยู่ในปัจจุบัน

$ ifconfig ค้นหา "inet addr: 192.168. XXX. XXX" ในผลลัพธ์ของคำสั่งต่อไปนี้สำหรับที่อยู่ IP ของ PI ของคุณ

ไปที่เครื่องอื่นและลงชื่อเข้าใช้ raspberrypi ของคุณผ่าน ssh

$ ssh [email protected]. XXX. XXX

ขั้นตอนที่ 3: เริ่มการติดตั้งแพ็คเกจที่จำเป็น

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install vim git python-requests python-gpiozero python-smbus i2c-tools python-imaging python-smbus build-essential python-dev rpi.gpio python3 python3-pip python-smbus-dev spi.py

อัปเดตการตั้งค่าเขตเวลาท้องถิ่น

$ sudo dpkg-reconfigure tzdata

เลือกเขตเวลาของคุณโดยใช้อินเทอร์เฟซ

ตั้งค่าคำสั่ง l ไดเร็กทอรีอย่างง่าย [ตัวเลือก]

vi ~/.bashrc

เพิ่มบรรทัดต่อไปนี้:

นามแฝง l='ls -lh'

ที่มา ~/.bashrc

แก้ไขการเน้นไวยากรณ์เริ่มต้นของ VIM [ตัวเลือก]

sudo vi /etc/vim/vimrc

uncomment บรรทัดต่อไปนี้:

ไวยากรณ์บน

ติดตั้งไดรเวอร์ i2c Python

ขั้นตอนที่ 4: สร้างเว็บ API

คำแนะนำต่อไปนี้จะช่วยให้คุณสร้างฮับกลางที่อธิบายเกี่ยวกับเต้ารับที่เปิดใช้งาน wifi และสวิตช์ผนังต่างๆ ที่คุณอาจสร้างขึ้น ซึ่งอุปกรณ์จะเปิดและปิด นี่เป็นสคริปต์ PHP ขนาดเล็กสำหรับวางบนโฮสต์เว็บที่คุณเลือก มี API ต่อไปนี้เพื่อรับและตั้งค่าข้อมูล หมายเหตุ: อย่าลืมรวมไฟล์.htaccess เพื่อให้มีการกำหนดเส้นทาง URL ที่เหมาะสม

ติดตั้งโฟลเดอร์ "index.php", "values/" และ settings.php (กำหนดค่าของคุณเอง) ลงในเว็บเซิร์ฟเวอร์ที่เปิดใช้งาน PHP ที่คุณเลือก ค่าคีย์ลับในไฟล์ "settings.php" ต้องตรงกับค่าคีย์ลับที่คุณจะตั้งค่าในไฟล์ "settings.py" การดำเนินการนี้ในระดับพื้นฐานจะป้องกันทราฟฟิกเว็บอื่น ๆ จากการตั้งค่า/เขียนค่า เมื่อเปิดอุปกรณ์ของคุณ ตอนนี้คุณต้องใช้คีย์ API ที่แฮชนี้ในส่วนหัวคำขอ HTTP เพื่อดำเนินการดังกล่าว

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

รับรหัส

โคลนโปรเจ็กต์ต่อไปนี้จาก GitHub เพื่อรับรหัสเพื่อเรียกใช้เว็บเซิร์ฟเวอร์และ RaspberryPI

github.com/khinds10/PowerHub

API Endpoints เมื่อทำงานบนเว็บเซิร์ฟเวอร์

myhost/message (รับชุดข้อความปัจจุบัน)

myhost/message/set (HTTP POST ค่าสตริงดิบไปยัง URL นี้เพื่อตั้งค่าข้อความใหม่)

myhost/flag/{id} (รับสถานะบูลีนปัจจุบันของแฟล็กเป็นจำนวนเต็ม: {id})

myhost/flag/all (รับสถานะบูลีนปัจจุบันทั้งหมดของแฟล็กทั้งหมดเป็นอาร์เรย์)

myhost/flag/{id}/set (ตั้งค่าสถานะบูลีนปัจจุบันเป็น 'จริง' สำหรับแฟล็กตามจำนวนเต็ม: {id})

myhost/flag/{id}/unset (ตั้งค่าสถานะบูลีนปัจจุบันเป็น 'เท็จ' สำหรับแฟล็กตามจำนวนเต็ม: {id})

myhost/reading/{id} (รับค่าเฉลี่ยปัจจุบันสำหรับการอ่านเป็นจำนวนเต็ม: {id})

myhost/reading/all (รับค่าเฉลี่ยปัจจุบันสำหรับการอ่านทั้งหมดเป็นอาร์เรย์)

myhost/reading/{id}/set (HTTP POST ค่าตัวเลขดิบไปยัง URL นี้เพื่อเพิ่มค่าใหม่ให้กับค่าเฉลี่ยที่คำนวณในปัจจุบัน) -- ดูด้านล่างสำหรับจำนวนค่าทั้งหมดที่รวบรวมเป็นค่าเฉลี่ย การกำหนดค่า ค่า 'การอ่าน' จะคำนวณเป็นค่าเฉลี่ยของค่าตัวเลขการอ่านล่าสุดที่คงอยู่จำนวนหนึ่ง ตั้งค่าคงที่ต่อไปนี้เป็นจำนวนการอ่านล่าสุดที่ควรรวมเพื่อสร้างค่าเฉลี่ย

$readingsAverageLimit = 5;

Datastore Server จะคงค่าไว้กับไฟล์อย่างง่ายที่อยู่โดยการตั้งชื่อแบบแผนการด้านล่าง หมายเหตุ: {id} จะถูกแทนที่ด้วยจำนวนเต็มจริงที่แสดงโดย URL ของคำขอที่เข้ามา

$valueFileFolder = 'values' (ชื่อโฟลเดอร์ที่มีไฟล์การวัด) $messageFileName = 'message.msg' (ชื่อไฟล์ข้อความ) $readingsFilesNames = 'reading{id}.avg' (ชื่อของ CSV โดยเฉลี่ย ไฟล์การอ่าน) $flagFilesNames = 'flag{id}.flg' (ชื่อของไฟล์แฟล็กค่าแฟล็กบูลีน)

ตรวจสอบให้แน่ใจว่าไฟล์ค่าทั้งหมดสามารถเขียนได้โดย systemchmod 777 ค่า/*

ขั้นตอนที่ 5: อุปกรณ์ที่จำเป็น

วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น
วัสดุที่จำเป็น

ใบเลื่อยวงเดือน 1 นิ้ว (สำหรับสว่าน)

โมดูลรีเลย์ 5V 2 ช่อง

แผ่นผนังรองรับดูเพล็กซ์

เต้ารับดูเพล็กซ์

Pi Zero W

Surface Mount Backbox Dual Gang

ปุ่มกดเรืองแสงสีขาว

ขั้นตอนที่ 6: การสร้าง Outlet

การสร้างเอาท์เล็ท
การสร้างเอาท์เล็ท

แบ่ง Outlet Tabs

ทุบแถบด้านข้างของเต้ารับเพื่อให้แต่ละเต้ารับเปิด/ปิดแยกกัน

ขั้นตอนที่ 7: ติดตั้งปุ่ม

ติดตั้งปุ่ม
ติดตั้งปุ่ม
ติดตั้งปุ่ม
ติดตั้งปุ่ม

บนแผ่นปิดหน้าเต้ารับโดยใช้รูเลื่อย 1 ตัด 2 รูสำหรับปุ่มที่จะวางไว้ถัดจากเต้ารับ

ทดสอบขนาดของส่วนประกอบ

ตรวจสอบให้แน่ใจว่าส่วนประกอบทั้งหมดจะพอดีกับกล่องยึดพื้นผิวของเต้าเสียบ

ขั้นตอนที่ 8: รีเลย์สายไฟ

รีเลย์สายไฟ
รีเลย์สายไฟ
รีเลย์สายไฟ
รีเลย์สายไฟ

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

ขั้นตอนที่ 9: รูปภาพการเดินสายไฟและการประกอบเพิ่มเติม

รูปภาพการเดินสายไฟและการประกอบเพิ่มเติม
รูปภาพการเดินสายไฟและการประกอบเพิ่มเติม

ขั้นตอนที่ 10: แผนภาพการเดินสายไฟ

แผนภาพการเดินสายไฟ
แผนภาพการเดินสายไฟ

ใช้ไดอะแกรมเพื่อต่อสายส่วนประกอบให้ทำงานกับโค้ด RaspberryPI Python ได้อย่างถูกต้อง

ขั้นตอนที่ 11: ทดสอบ Dry Run

ทดสอบการวิ่งแบบแห้ง
ทดสอบการวิ่งแบบแห้ง
ทดสอบการวิ่งแบบแห้ง
ทดสอบการวิ่งแบบแห้ง
ทดสอบการวิ่งแบบแห้ง
ทดสอบการวิ่งแบบแห้ง

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

ขั้นตอนที่ 12: ตั้งค่าสคริปต์เริ่มต้น

crontab -e

เพิ่มบรรทัดต่อไปนี้

@reboot python /home/pi/PowerHub/device/outlet/buttons.py @reboot python /home/pi/PowerHub/device/outlet/relay.py

แนะนำ: