Mündəricat:
Video: Enerji Hesabınız: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
BU PROJE HAQQINDA
Həqiqətən evinizi daha ağıllı etmək istəyirsinizsə, ehtimal ki, aylıq hesablarınızdan (yəni enerji, qaz və s.) Başlamaq istəyəcəksiniz. Bəzilərinin dediyi kimi, Planet, Cüzdan və Alt Xətt üçün yaxşıdır. Açıq mənbəli aparat, ev şəraitində davamlılığa çatmağın yoludur! Bu fikir, MQTT üzərindəki məlumatları ifşa etdiyi üçün hər hansı bir ev avtomatlaşdırma proqramı ilə inteqrasiyası asan olan sadə və etibarlı bir həll qurmağımıza səbəb oldu (bizim vəziyyətimizdə bunu Home Assistant -a necə inteqrasiya edəcəyinizi göstərəcəyik).
Baxış
Elektrik enerjisi istehlakını ölçmək üçün Finder Enerji Ölçmə cihazını istifadə etməyi seçdik, çünki DIN dəmir yolu istifadəsi üçün nəzərdə tutulmuşdur və evimizin əsas kabinetinə mükəmməl uyğun gəlir. Bu məhsulun ən maraqlı tərəfi, bir Arduino ilə danışmağı həqiqətən asanlaşdıran sənaye standart bir əlaqə protokolu olan RS485 Modbus interfeysinə sahib olmasıdır. Əslində, Arduino protokolu deşifr etmək üçün rəsmi bir qalxan, MKR485 və iki kitabxana buraxdı. Anakart olaraq, Arduino MKR WiFi 1010 seçdik, çünki MKR form faktorunu paylaşır və WiFi bağlantısı var.
Quraşdırma xəbərdarlığı! Evinizin elektrik sistemi ilə əlaqədar ölkə qaydalarını yoxlayın və son dərəcə diqqətli olun, çünki ölümcül ola bilər! Bilmirsinizsə, elektrikçiyə müraciət edin. İlk addım sayğacı elektrik kabinetinizə quraşdırmaqdır. Təhlükəsiz bir mühitdə çalışdığınızdan əmin olmaq üçün sisteminizdən qabaq elektrik terminalının gücünü söndürün və terminallar arasında gərginlik olmadığını multimetrlə iki dəfə yoxlayın. Sonra enerji sayğacınızı kabinetinizin içinə qoyun və əsas kəsicidən sayğacın girişinə canlı və neytral tellər bağlayın, rəng konvensiyasından istifadə etməyi unutmayın (neytral üçün mavi, AB -də yaşamaq üçün qəhvəyi/qara/boz). Çıxış sistemin qalan hissəsinə qoşulmalıdır.
Əsas gərginlik əlaqələri. Yuxarıdakı tellər giriş, kənardakı tellər isə çıxışdır.
Addım 1: Lazım olan hissələr
Addım 2: Proqram Needes
Proqram təminatı
Kompüterinizi işə salın və IDE -ni açın. Arduino IDE və ya Arduino Create Redaktorundan istifadə edə bilərsiniz. Kod aşağıdakı tələblərə cavab verir: Modbus rabitəsi, WiFi idarəetməMQTT protokolu Modbus sənaye sensorlar və maşınlar üçün açıq mənbəli protokoldur. Arduino Modbus danışmaq üçün Arduino Modbus kitabxanasından istifadə edəcəyik. Bu kitabxana bütün işləyiciləri yığır və hər hansı bir Modbus cihazını bağlamağı həqiqətən sürətli edir. Sayğacların məlumat cədvəlini izləyərək qeydləri oxumağa hazırlaşdığımız üçün funksiya kodları, reyestrin ünvanı və reyestrin ölçüsü kimi lazım olan bütün məlumatları sözlə tapa bilərik. Ancaq daha aydın olmaq üçün Modbusun necə işlədiyini izah edək: Modbus mesajları sadə bir quruluşa uyğundur: 01 03 04 00 16 00 02 25 C7 0x01 Cihaz Ünvanı 0x03, məlumat oxumaq və ya yazmaq istədiyimizi cihaza bildirən İş Kodudur. *, bu halda, Bayt Count00 16 üçün 0x04 tutma qeydlərini oxuyun - Cihaza oxumaq istədiyimizi söyləyən 4 02 bayt qeyd ünvanı (00 16) göndəririk 00 02- sonra qeydin ölçüsünü (00 02) sözlə (hər söz 2 bayt uzunluğundadır) Son 4 bayt CRC kodudur. Bu kod, əvvəlki baytlar üzərində bir riyazi funksiyadan yaradılır və bu, mesajın düzgün alınmasını təmin edir.
Ev köməkçisinə ev sayğacını əlavə etmək olduqca sadədir. Konfiqurasiya edilmiş bir MQTT brokeriniz olduğunu düşünsəniz (burada bələdçi budur), etməniz lazım olan şey, configuration.yaml faylının altına yeni təriflər əlavə etməkdir. sensor: - platform: mqtt adı: "Ana Gərginlik" status_topik: "enerji/əsas/gərginlik" vahidi_of_ölçmə: "V" Burada ölçmənin adını, oxumaq üçün MQTT mövzusunu və miqdarın ölçü vahidini qoymalısınız. Dosyanı qeyd edin, konfiqurasiyanı yoxlayın və Home Assistant -ı yenidən yükləyin, indi ölçülər ana səhifədə görünəcək.
Cari oxunuşları göstərən Ev köməkçisi istehlak paneli
Ev köməkçisi qrafiklərin yaradılmasına və oxunuşlarınızın səbəb olduğu proseslərin avtomatlaşdırılmasına diqqət yetirəcəkdir. Bu təlimat bitdi, indi xüsusiyyətlər əlavə etmək və öz məqsədlərinizə uyğunlaşdırmaq sizin ixtiyarınızdadır!
Addım 3: Montaj edin
Bitdi? RS485 bağlantısını sındırmağın vaxtı gəldi! Tipik olaraq telefon xətləri üçün istifadə olunan yerlə birlikdə bükülmüş tək cüt kabeldən istifadə edəcəyik. Bu kabel ilə uzun məsafəni (1,2 km) ötürə bilərsiniz. Ancaq kabinetdən çıxmaq və Arduino -nu əlçatan bir yerə yerləşdirmək üçün kifayət qədər uzun bir kabel istifadə edirik.
Finder RS485 bağlantısı
RS485 interfeysi terminallarını A, B və COM adlandırır. Ümumi de-fakto standart TX+/RX+ və ya D+ üçün B (MARK üçün yüksəkdir, yəni boş), TX-/RX- və ya D- üçün alternativ olaraq istifadə olunur (MARK üçün aşağı yəni boş). MKR qalxanı Tam Dupleksi də dəstəkləyir, Y və Z iki digər terminal görəcəksən. Burada, məlumat cədvəlindən yarı dubleks ünsiyyətin yalnız Y və Z terminallarında baş verdiyini bildiyimiz üçün kabelin digər ucunu vidalayacağıq. COM terminalı ISOGND -ə qoşulmalıdır. Yarım dupleks bir əlaqə istifadə etdiyimizdən və kabellər həmyaşıd olduğu üçün, MKR485 qalxanındakı açarları qurulumumuza uyğun olaraq qurmalıyıq: YARI (2-ni söndür) və YZ-də (3-ə qədər) ON); birincisinin əhəmiyyəti yoxdur. Sonlandırma, müdaxiləni azaltmaq üçün iki məlumat terminalını birləşdirən bir müqavimətdir.
Bu odur. İndi kabineti bağlaya və proqram tərəfinə diqqət edə bilərsiniz!
Addım 4: Kod
#daxil edin
#include #include #include // wifi etimadnamənizi const char ssid = "**********"; const char pass = "**********";
WiFi müştəri şəbəkəsi; MQTTClient müştəri; imzasız uzun faiz = 60000; // ms göstərilməmiş standart yeniləmə dərəcəsi işarəsiz long lastMillis = 0;
// əlaqə funksiyası void connect () {Serial.print ("wifi yoxlanılır…"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); gecikmə (1000); } Serial.print ("\ nbağlanır…"); while (! client.connect ("cihaz_adı", "istifadəçi_adı", "user_pw"))) gecikmə (1000); } Serial.println ("\ n bağlı!"); client.subscribe ("enerji/əsas/yeniləmə"); // yeniləmə sürətini uzaqdan təyin etmək üçün mövzu} // mqtt geri çağırma funksiyasını qəbul et void mesajı Alındı (String & mövzu, String & payload) {Serial.println ("gələn:" + mövzu + " -" + yük); if (mövzu == "enerji/əsas/yeniləmə") {// yeniləmə sürəti işləyicisinin dərəcəsi = payload.toInt ()*1000; Serial.println ("yeni nisbət"+String (faiz)); }}
void setup () {Serial.begin (115200); WiFi.begin (ssid, pass); while (! Serial); client.begin ("broker_ip", net); // SETUP SİZİN MATÇINA DƏYİŞMƏK client.onMessage (mesaj Alındı); // Modbus RTU müştərisini işə salın, əgər (! ModbusRTUClient.begin (9600)) {Serial.println ("Modbus RTU Müştəri işə salınmadı!"); isə (1); }}
boşluq döngəsi () {client.loop (); if (! client.connected ()) {// şəbəkə bağlantısını yoxlayın connect (); } // yeniləmə başa çatdıqdan sonra (millis () - lastMillis> dərəcəsi) {lastMillis = millis (); // bütün oxunan zəngləri float volt = readVoltage () et; gecikmə (100); float amp = readCurrent (); gecikmə (100); ikiqat vat = readPower (); gecikmə (100); float hz = readFreq (); gecikmə (100); cüt wh = readEnergy (); // əlaqəli mövzular altında nəticələr dərc edin client.publish ("enerji/əsas/gərginlik", String (volt, 3)); client.publish ("enerji/əsas/cərəyan", String (amp, 3)); client.publish ("enerji/əsas/güc", String (vatt, 3)); client.publish ("enerji/əsas/tezlik", String (hz, 3)); client.publish ("enerji/əsas/enerji", String (wh, 3)); Serial.print (String (volt, 3)+"V"+String (amp, 3)+"A"+String (watt, 3)+"W"); Serial.println (String (hz, 3)+"Hz"+String (wh, 3)+"kWh"); gecikmə (100); }}
/ * Finder Energy Meter qeydlərini oxumaq üçün funksiyalar * * Kodu başa düşmək üçün modbus protokol təlimatına baxın * https://gfinder.findernet.com/public/attachments/7E/EN/PRT_Modbus_7E_64_68_78_86EN.pdf */float readVoltage () {float volt = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x000C, 2)) {// Serial.print reyestrinə zəng edin ("gərginlik oxunmadı!"); Serial.println (ModbusRTUClient.lastError ()); // səhv işləyicisi} başqa {uint16_t word1 = ModbusRTUClient.read (); // tampondan məlumatları oxuyun uint16_t word2 = ModbusRTUClient.read (); uint32_t millivolt = word1 << 16 | söz 2; // bit riyazi volt = millivolt/1000.0; } geri dönmə volt; } float readCurrent () {float amper = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {Serial.print ("cari oxumaq alınmadı!"); Serial.println (ModbusRTUClient.lastError ()); } başqa {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); int32_t milliamp = word1 << 16 | söz 2; amper = milliamp/1000.0; } qayıt amper; }
ikiqat oxu gücü () {ikiqat vat = 0.; if (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0025, 3)) {Serial.print ("gücü oxuya bilmədi!"); Serial.println (ModbusRTUClient.lastError ()); } başqa {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); uint16_t word3 = ModbusRTUClient.read (); uint64_t milliwatt; əgər (söz1 >> 7 == 0) {milliwatt = söz1
Tövsiyə:
9v batareya istifadə edərək simsiz enerji ötürülməsi: 10 addım
9v batareya istifadə edərək simsiz enerji ötürülməsi: Giriş. Telefonlarımızın, lampamızın, televizorumuzun, soyuducumuzun və digər bütün elektronik cihazlarımızın simsiz olaraq bağlanacaq, doldurulacaq və istifadə ediləcəyini simli bağlantısı olmayan bir dünya düşünün. Əslində bu, bir çoxlarının arzusu idi, hətta elektrik elektronikası
DIY Çox Fonksiyonlu Enerji Ölçən V2.0: 12 Addım (Şəkillərlə birlikdə)
DIY Çox Fonksiyonlu Enerji Ölçən V2.0: Bu Təlimat kitabında sizə Wemos (ESP8266) əsaslı Çox Fonksiyonlu Enerji Ölçəninin necə hazırlanacağını göstərəcəyəm. Bu kiçik Metr, gərginliyi, cərəyanı, gücü, enerjini və tutumu izləyən çox faydalı bir cihazdır. Bunlardan başqa havanı da izləyir
USB-C ilə işləyən tezgahın enerji təchizatı: 10 addım (şəkillərlə birlikdə)
USB-C Powered Bench Güc Təchizatı: Bir dəzgah elektrik təchizatı, elektronika ilə işləyərkən, layihənizin ehtiyaclarını dəqiq olaraq təyin edə bilməyinizdə və işlərin həqiqətən faydalı olacağı zaman cərəyanını məhdudlaşdırmaqda vacib bir vasitədir. Bu mənim Portativ USB-C Gücümdür
DIY Arduino Çox Fonksiyonlu Enerji Ölçən V1.0: 13 Addım (Şəkillərlə birlikdə)
DIY Arduino Çox Fonksiyonlu Enerji Ölçən V1.0: Bu Təlimat kitabında sizə Arduino əsaslı Çox Fonksiyonlu Enerji Ölçəninin necə hazırlanacağını göstərəcəyəm. Bu kiçik Meter, elektrik parametrləri haqqında vacib məlumatları göstərən çox faydalı bir cihazdır. Cihaz 6 faydalı elektrik parametrini ölçə bilər
Hesabınız üçün bir şəkil qoyun: 4 addım
Hesabınız üçün bir şəkil qoyun: Avatar olaraq və ya təlimatlandırmaq üçün bir şəkil əlavə etmək üçün yardıma ehtiyacı olan insanlardan bəzilərinə göstərəcəyəm. Bunun necə ediləcəyi ilə bağlı bəzi addım-addım təlimatlar. Zəhmət olmasa hər hansı bir şərh əlavə etməkdən çəkinməyin və bu təlimat üçün bəzi məsləhətlər verin. Aşağıda