พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ดสำหรับตัวควบคุมพลังงาน WiFi
ฮาร์ดแวร์ประกอบด้วย (ส่วนประกอบส่วนใหญ่สามารถเปลี่ยนได้ง่าย และบางส่วนมีมากเกินไปสำหรับแอปพลิเคชันปัจจุบันที่ต่ำกว่า):
กล่องขนมเป็นตู้ที่ดี
โปรดใช้ความระมัดระวังหากสั่งซื้อ ACS712 จาก Banggood.com เซ็นเซอร์ 20A ของฉันถูกส่งมาพร้อมกับขั้วต่อที่มีพิกัดกระแสไฟเพียง 10A เท่านั้น
ควรเลือก R1 และ R2 เพื่อลดเอาต์พุต 5V ของ ACS712 ลงเหลือช่วง 3.3V ที่อินพุตอะนาล็อกของ M0 อ่านได้ (เช่น R1 ควรมีค่าประมาณสองเท่าของค่า R2)
เขียนโดยใช้ Arduino โดยใช้ไลบรารี Wifi101 และ ArduinoJson ควรเพิ่ม Wifi SSID และรหัสผ่านใน Secrets.h serverAddress
และ port
ควรได้รับการอัปเดตเป็นที่อยู่ของเซิร์ฟเวอร์
รวบรวมการอ่านจากตัวควบคุมและจัดเก็บไว้ในฐานข้อมูล MySQL นอกจากนี้ยังมี REST API สำหรับไคลเอ็นต์อีกด้วย
ในการเริ่มต้น:
.env
และตั้งค่า MYSQL_USERNAME
, MYSQL_PASSWORD
และ MYSQL_DB
npm install
npm run dev
controllers
เพื่อตั้งค่าปัจจัยการแปลง ปัจจัยการแปลงจะถูกคูณด้วยค่าที่ตัวควบคุมอ่านเพื่อให้ได้ค่าที่อ่านได้ในหน่วยมิลลิแอมป์ รีสตาร์ทเซิร์ฟเวอร์หลังจากตั้งค่าการเปลี่ยนแปลงฐานข้อมูลเพื่อให้เซิร์ฟเวอร์อ่านการเปลี่ยนแปลงตัวอย่างเช่น หากใช้กระแส 20A ACS712 1A จะให้เอาต์พุต 100mV
หาก R1 คือ 10kΩ และ R2 คือ 20kΩ จะแปลงเป็นเอาต์พุต 67mV ( 20/(20+10)*100
) จากตัวแบ่งแรงดันไฟฟ้า
อินพุตของ M0 เป็นแบบ 12 บิต ดังนั้นช่วงตั้งแต่ 0 - 4095 สำหรับ 0 - 3.3v
ปัจจัยการแปลงจึงสามารถคำนวณได้ดังนี้:
c = 3.3 / S * (R1 + R2) / R2 / 4096 * 1000
โดยที่ S
คือความไวของ ACS712 มีหน่วยเป็นโวลต์ต่อแอมป์
ในตัวอย่างนี้:
c = 3.3 / 0.1 * (10 + 20) / 20 / 4096 * 1000
c = 12.85
ใช้ REST API ของเซิร์ฟเวอร์เพื่อกำหนดเวลาและแสดงการใช้พลังงาน
ในการเริ่มต้น:
npm install
npm run serve