Mikrokontrolör tabanlı bir Güç Ölçümü Neden Oluşturun?

Ev enerji faturaları yükselmeye devam ediyor ve tam olarak elektrik tüketilmesinin ilk adım, atıkların azaltılmasına yönelik ilk adımdır. Ticari enerji monitörleri genellikle yüzlerce dolara mal oluyor ve özel ev otomasyon sistemleri ile arayüze esneklikten yoksundur. Mikrokontrolcü tabanlı bir güç sayacı, belirli ihtiyaçlarınıza göre düşük maliyetli bir alternatif sunuyor.In voltajı ölçüm, mevcut ve gerçek bir güç kullanarak, bu cihazlar ESP32 veya benzeri bir platform kullanarak hareket edilebilir öngörüler sağlıyor.

Core components: İhtiyacınız olan ve Neden Olanlar

Her güç sayacı birkaç kritik bileşene bağlıdır. Kaliteli parçalar doğrudan doğruyu, güvenliği ve kullanım kolaylığı etkiler. Aşağıda her elementi kırıyoruz, ortak seçenekleri tartışın ve birlikte nasıl çalıştıklarını açıklayın.

Mikrodenetleyiciler (MCU) – Beyin

Mikrokontrolör örnekleri analog sinyalleri, hesaplamaları gerçekleştirir ve iletişim kurar.Ev enerji izleme için ESP32 güçlü bir seçimdir çünkü WiFi ve Bluetooth'u entegre eder, 3.3V'de çalışır ve iki çekirdekli işlem sunar.Eğer basitliği tercih ederseniz, bir Arduino Uno (5V mantığı) prototyping için iyi çalışır, ancak bağlantı için dış bir WiFi kalkanı gerektirir. Anahtar özellikler ADC kararı (10-bit yaygın ama 12bit veya daha yüksek hassasiyet sunar.

Gerilme Sensing

Temel gerilim (tipik olarak 110-240 VAC) güvenli bir şekilde ilk meydan okumadır. Doğrudan olarak mikrokontrolörün ADC tehlikeli ve yasadışı olacaktır.En güvenli yaklaşım, ikincil tarafla birlikte bir başlangıç dönüştürücü bölmek için kullanılır).

Şu anki Cümle

Mevcut ölçüm için, bölünmüş ekranlı mevcut transformatörler (CTs) idealdir çünkü ACS712 veya ACS758 gibi canlı bir telin etrafında akıp gidiyorlar, ancak devreyi kesmeli ve sensör sürümlerini 0–1V AC'nin kalıcı yüklemeler için uygun olmayan ve tercih edilir.ADC, ACS712 veya ACS758 kompakt bir IC paketinde DC/AC ölçümünü sunar.

Analog-to-Dijital Dönüşüm (ADC)

Mikrokontrolün inşa edilmiş ADC temel metre için yeterli, ancak sınırlı kararı (10 bit Arduino, ESP32) ve gürültü zemininde 12 bit hata tanıtabilir. Daha yüksek doğruluk için, MCP3208 (12-bit, SPI) veya ADS1115 (16-bit, I2C) ADS1115 gibi dışsal bir ölçümde bulunabilir çünkü programlanabilir kazanç sağlar (daha düşük gürültüyü göz önünde bulundurun.

Ekran ve Connectivity

Yerel bir ekran (OLED 128×64, ekran LCD veya karakter LCD) gerçek zamanlı gücü watt, kilovat saatlerinde ve maliyetle gösterir. Uzak erişim için, WiFi (ESP32 yerleşik enerji tasarrufunun bulunduğu noktaya kadar veriye zorlayabileceğiniz anlamına gelir.For smart-yearsheet, or a simple web server. Bluetooth BLE is an seçenektir.

Devre Tasarımı ve Güvenliği Tahminleri

Bir şeyi bir araya getirmeden önce, kağıt üzerinde devre tasarlayın.Dürt ve mevcut ölçüm yolları, beklenen gerilim ve mevcut yüksek çözünürlükte tamamen izole edilmelidir. 5V veya 3.3V, küçük bir duvar adaptöründen elde edilen tedariki, analardan gelen tüm bağlantılardan vazgeçilmemelidir ve PCB izlerini azaltmak için kısa sürede kapatılmalıdır.

Tek fazlı bir metre için tipik bir devre:

  • [FONT=0)Voltage kanalı: Step-down transformer (e.g., 9V AC çıktı) → DC dengeleme (Vcc/2) → RC filtre (100VO/10μF) → ADC girişi.
  • [FONT=0)Current kanalı: [Dönetici: [Dönetici: [Düzdüncü, SCT-013 inşa edilmiş yük direnişçisi ile) → DC dengeleme (Vcc/2) → RC filtre → ADC girişi.
  • [FONT=0)Power tedarik:[Dönetici: [Dönetici: 0,3V veya 3V, USB güç bankası veya özel adaptörden düzenlenmiş bir USB güç bankasından veya özel adaptörden oluşan bir sistemden oluşan bir sistemden oluşan bir sistemdir.

DC'yi tam olarak ADC referansını ayarlamak için 10kULLÇ ekleyin. Bu, AC dalgaformunun merkezi olmasını sağlar ve mikrokontroller hem olumlu hem de olumsuz halleri okuyabilmektedir.

Şirketware: Sampling, RMS Hesaplama ve Güç Ücreti

Donanım hem kanal senkronizasyonlu hem de gerçek RMS değerleri (geçmiş güç malzemeleri gibi sineroid olmayan yükler için), ve aktif güç, belirgin güç ve güç faktörü elde etmelidir. Aşağıda algoritmanın genişletilmiş bir açıklaması vardır.

Sampling Strategy

Bir Beam Hz anas için, döngü başına en az 64 puan (örneğin, 3840 örnek / 60 Hz için) hesaplama RMS'yi ortalama gürültüye kadar yakalamaya kadar.

Gerilmeyi ve Şimdiki RMS'yi hesaplamak

Her kanal için aşağıdaki formülü kullanın:

sum_squared = 0;
for (int i = 0; i < N; i++) {
 read = analogRead(pin);
 // Remove DC offset
 sample = read - DC_OFFSET;
 sum_squared += sample * sample;
}
rms = sqrt(sum_squared / N) * (ADC_VREF / ADC_RESOLUTION) * SCALE_FACTOR;

ADC okumasını (yeniden dijital değeri) voltlara veya amplere geri dönüştürür: Bilinen bir referans (örneğin, 10V AC) beslemek ve faktörü gerçek bir RMS multimeter'e kadar ayarlamak.

Güç Hesaplama

Apbaba gücü (S = V rms × I rms) basit, ancak aktif güç (P) anında çok fazla uygulama ve bir şekilde ifade gerektirir:

sum_active = 0;
for (int i = 0; i < N; i++) {
 v = (analogRead(V_PIN) - V_OFFSET) * V_SCALE;
 i = (analogRead(I_PIN) - I_OFFSET) * I_SCALE;
 sum_active += v * i;
}
active_power = sum_active / N;

Güç faktörü = aktif power / belirgin power. Tamamen dirençli yükler için PF ⁇ 1.0; indüktif yükler (motorlar), PF 1.0'ın altında düşer ve aktif gücün gerçek ölçümü doğru fatura için önemlidir.

Enerji Accumulation (kWh)

Enerji tüketimini takip etmek için, aktif gücü zamanında entegre etmek:

uint32_t lastMillis = 0;
float energy_Wh = 0;
void loop() {
 if (millis() - lastMillis >= 1000) { // every second
 float power_watts = compute_active_power();
 energy_Wh += power_watts * (1.0 / 3600.0);
 lastMillis = millis();
 }
}

EEPROM veya RTC hafızasında birikmiş değeri depolayın, böylece güç kaybı hayatta kalır. Tüm evli bir metre için, kullanım alanına bağlı olarak 500-2000 Wh aralığındaki değerleri bekleyin.

Kalibrasyon: Güvenilir verilere güvenmek için Gizli

Kalibrasyon olmadan, okumalarınız% 10-20 veya daha fazla olabilir. Süreç üç adım içerir:

  • [FONT:0)Zero kalibrasyon: [Dönetici: [Dönekli: 0,0] DC her kanal için DC dengelemeyi okuyun ve RMS mümkün olduğunca yakın okumasına kadar sürekli olarak (tipsiz velt;0.1 W).
  • [FONT:0)Gain kalibrasyonu gerilim için:) Bilinen bir stabil gerilim uygulayın (örneğin, bir multimeter ile ölçülen 12V AC adaptörü ve sayacı maça kadar gerilim ölçeği faktörü ayarlama.
  • [FONT=0) Mevcut içinGain kalibrasyonu:) Bilinen bir direnç yükü (örneğin, 100W incandescent bulb) ve mevcut ölçek faktörü ayarlamak.

Kaynak kodundaki son kalibrasyon sabitlerini kaydetmek veya onları onsuz hafızada saklamak, böylece bilgisayarınızı yeniden birleştirmeksizin iyi bir şekilde tamamlayabilirsiniz.

Data Logging ve Görselleştirme

Bir seri monitörü üzerindeki Raw numaraları kullanıcı dostu değildir.Gerçek zamanlı güç, günlük enerji ve tahmin edilen maliyet göstermek için yerel bir ekran ekleyin. Uzaktan izleme için, EmonCMS, ThingsBoard veya özel Node-RED panoları gibi platformlara veri gönderin. ESP32 bu önemsiz yapar - sadece MQTT üzerinden JSON'u yayınlayın.

Uzun süreli kayıt için, SD kart modülü CSV dosyaları yazar. WiFi güvenilmez veya çevrimdışı analiz için kullanışlıdır. Kartın düzgün bir şekilde formatlanmış olmasını sağlayın ve SD kütüphane dosya yolsuzluklarından kaçınmak için güvenli bir şekilde yapılır.

One Stage'den daha fazlası: Three-Phase ve Polyfa Systems

Üç fazlı güçle evler (Avrupa ve daha büyük ABD evleriyle) üç gerilim ve üç mevcut kanal gerektirir. Yeterli analog girişler (örneğin, ESP32, her aşamasına bağımsız olarak iki ADC'ye sahiptir, ancak analog gürültü birden fazla kanal kullanırken artar).

Zaman senkronizasyonu

Aşama başına doğru aktif güç için, örneğin tüm gerilim ve mevcut çiftler tek bir patlamada ( mikrosaniyeler ile) faz ilişkilerini korumak için.Eğer örnek kanallarda eşdeğer bir şekilde (çok sayıdaxer ile olduğu gibi), her aşamadaki zaman skew, daha yüksek frekanslarla artıran bir aşama hatası sağlayacaktır.

Cihazınızı genişletmek için Gelişmiş Özellikler

Temel güç sayacı çalışırken, bu geliştirmeleri eklemeyi düşünün:

  • [[0)Power faktör düzeltme uyarıları:[Dönetici:0)[DüzDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜ: 0, Kullanıcının olası reaktif yükleri incelemesini bayrağı.
  • [FONT:0)Uygulamalı kimlik:[Döneticileri analiz ederek (FFT) bir buzdolabı, mikrodalga ve çamaşır makinesi arasında ayırt edebilirsiniz. Bu aktif bir araştırma alanıdır, ancak ESP32 ve yeterli RAM ile yapılabilir.
  • [FONT:0)Solar nesli izleme:[Dönder:[Dönder:) Güneş besleme hattında ikinci bir akım dönüştürücü ekin (biyy CT) net ihracat / ihracat/import ölçmek için.
  • [0]Auto-calibration:[Dönetici:[Dönetici:0)[Dönetici:0)[Dönetici:[Dönetici:[Dönemli))) Tanıklık sırasında kendini tanımlayan bir referans direncine geçiş yapmak için bir röle kullanın.
  • [FONT:0)Over-power kapanması:[Dön-Döntgen:[Dön-Döntgen:[Dön-Döntme:0)[Dön- Güç kapanması:[Dönetici:[Dön-Dön-Dönetici: 1 ), tüketim bir eşiği aştığında yükleri kesmek için sağlam bir devlet röleğe geç.

Ticari Enerji İzlemeleriyle Karşılaştırma

Sense, Emporia Vue veya Shelly EM gibi ticari ürünler, bulut entegrasyonu ve UL listelenmiş güvenlik sunar. Ancak, sizi özel bir ekosisteme kilitler ve genellikle tarihi veriler için aylık bir abonelik gerektirir. A DIY size tüm veri mülkiyetini verir, tekrarlanan maliyetler ve herhangi bir akıllı ev standardına arayüze arayüzebilme yeteneği verir (Home Asistan, OpenHAB).

Kaynaklar ve daha fazla okuma

Daha derin anlayış için aşağıdaki kaynakları ele alalım:

  • [FONT=0)AçıkEnergyMonitor Dokümantasyon[[Dönetici: 1) CENGT: CENGT: CUMH sensörleri, AC-AC adaptörleri ve kalibrasyonları.
  • [FONT=0]Adatis INA219 mph - Düşük Güç DC uygulamaları için I2C mevcut / gerilim sensörü kullanarak.
  • [FONT=0)Analog Cihazları Güç Ölçümü Kılavuzu[[Dönetici: 1) AC güç ölçüm ve hataları üzerine teorik arka plan.

Tüm Birlikte Getirmek: Pratik Bir Kontrol Listesi

Başlamanıza yardımcı olmak için, burada tek bir fazlı, ESP32 tabanlı bir metre için bir adım önde gelen kontrol listesi:

  1. Select ve sipariş bileşenleri: ESP32 DevKitC, SCT-013-000 (100A/50) , 230V-9V AC dönüştürücü, 1kULL ve 10kULL direnççiler, 10μF/25V kapasiteliler, perfboard, muhafaza.
  2. DC dengelemeyi doğrulamak için bir çok metre ile test ilk önce bir ekmek dolabında gerilim ve mevcut bölme devreleri tamamen Vcc/2.
  3. Basit bir çizer yaz ki ham ADC değerleri. Bilinen AC gerilimi (dönüşümçü) uygulayın ve seri bir arsa üzerinde dalgaform şeklini doğrulayın.
  4. Implement RMS 50 döngüden fazla bir şekilde hesaplamak. Multimeter'a okumakla karşılaştırın.
  5. Mevcut sensör ekleyin ve tekrar kalibrasyon yapın. 100W bir hatayla test edin (~0.43A'yı 230V'de okuyun).
  6. Bir döngüye gerilim ve mevcut örneklemeyi bir döngüye ekleyin. Aktif bir güçle kontrol edin (aktif güç ⁇ belirgin güç).
  7. WiFi bağlantı ve MQTT yayınını ekleyin. Veriler akışını doğrulamak için MQTT Explorer gibi bir araç kullanın.
  8. Tasarım ve 3Dprint hava akışını sağlayan ve ana kablolama ile kazara temasını engelleyen bir dava.Rektör panelinde son sürüm (önden kapalı).
  9. 24 saat boyunca metreyi çalıştırın ve günlük enerji toplamını 2-5% arasında doğruyu doğrulamak için sizin faydalı faturanızla karşılaştırın.

Mikrokontrolör tabanlı bir güç sayacı inşa etmek, acil pratik faydalar sağlayan bir ödüllendirici bir projedir. Dikkatli tasarım ve kalibrasyonla, ev yapımı monitörünüz, atıkları azaltmanıza ve para tasarrufuna yardımcı olacaktır.