Përmbajtje:
Video: Monitori juaj i faturës së energjisë: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:15
P ABR KIST PROJEKT
Nëse vërtet dëshironi ta bëni shtëpinë tuaj më të zgjuar, me siguri do të dëshironi të filloni nga faturat tuaja mujore (pra energjia, gazi, etj …). Siç thonë disa, Mirë për Planetin, Portofolin dhe Bottom Line. Pajisjet kompjuterike me burim të hapur janë mënyra jonë për të arritur qëndrueshmërinë në mjedisin e shtëpisë! Kjo ide na solli për të ndërtuar një zgjidhje të thjeshtë dhe të sigurt, të lehtë për tu integruar me çdo softuer të automatizimit të shtëpisë pasi ekspozon të dhëna mbi MQTT (në rastin tonë ne do t'ju tregojmë se si t'i integroni ato në Home Assistant).
Vështrim i përgjithshëm
Për të matur konsumin e energjisë elektrike, ne zgjodhëm të përdorim Finder Energy Meter, pasi është projektuar për përdorim hekurudhor DIN dhe përshtatet në mënyrë të përkryer në kabinetin kryesor të shtëpisë sonë. Gjëja interesante e këtij produkti është se ai ka një ndërfaqe RS485 Modbus, një protokoll standard komunikimi industrial i cili e bën bisedën me një Arduino vërtet të lehtë. Në fakt, Arduino ka lëshuar një mburojë zyrtare, MKR485 dhe dy biblioteka për të deshifruar protokollin. Si tabelë kryesore, ne zgjodhëm Arduino MKR WiFi 1010, pasi ajo ndan faktorin e formës MKR dhe ka lidhje WiFi.
SetupWarning! Kontrolloni rregulloret e vendit tuaj në lidhje me sistemin elektrik të shtëpisë tuaj dhe jini jashtëzakonisht të kujdesshëm sepse mund të jetë vdekjeprurës! Nëse nuk dini si, telefononi një elektricist. Hapi i parë është instalimi i njehsorit në kabinetin tuaj elektrik. Për të siguruar që jeni duke punuar në një mjedis të sigurt, fikni energjinë nga terminali elektrik përpara sistemit tuaj dhe kontrolloni dy herë me multimetër që nuk ka tension midis terminaleve. Pastaj vendosni njehsorin e energjisë brenda kabinetit tuaj dhe lidhni telat e gjalla dhe neutrale nga ndërprerësi kryesor në hyrjen e njehsorit, mos harroni të përdorni konventën e ngjyrave (blu për neutrale dhe kafe/të zezë/gri për të jetuar në BE). Dalja duhet të lidhet me pjesën tjetër të sistemit.
Lidhjet kryesore të tensionit. Telat e mësipërm janë hyrje, telat përtej janë dalje.
Hapi 1: Pjesët e nevojshme
Hapi 2: Nevojat për softuer
Softuer
Filloni kompjuterin tuaj dhe hapni IDE -në tuaj. Ju mund të përdorni Arduino IDE ose Arduino Krijoni Editor. Kodi po plotëson kërkesat e mëposhtme: Komunikimi Modbus, menaxhimi i WiFi Protokolli MQTT Modbus është dhe protokoll me burim të hapur për sensorë dhe makina industriale. Për ta bërë Arduino të flasë për Modbus, ne do të përdorim bibliotekën Arduino Modbus. Kjo bibliotekë paketon të gjithë përdoruesit dhe bën lidhjen me çdo pajisje Modbus me të vërtetë të shpejtë. Meqenëse do të lexojmë regjistra, duke ndjekur fletën e të dhënave të njehsorit, ne mund të gjejmë të gjithë informacionin që na nevojiten si kodet e funksionit, adresën e regjistrit dhe madhësinë e regjistrit me fjalë. Por për ta bërë më të qartë, le të shpjegojmë se si funksionon Modbus: Mesazhet Modbus ndjekin një strukturë të thjeshtë: 01 03 04 00 16 00 02 25 C7 0x01po Adresa e Pajisjes 0x03 është Kodi i Funksionit që tregon pajisjen nëse duam të lexojmë ose shkruajmë të dhëna *, në këtë rast, lexoni regjistrat e mbajtjes 0x04 për Byte Count00 16 - Ne dërgojmë 4 byte të adresës së regjistrit (00 16) që i tregon pajisjes atë që duam të lexojmë 00 02- pastaj madhësinë e regjistrit (00 02) me fjalë (çdo fjalë është 2 bajtë e gjatë) 4 bajtët e fundit janë kod CRC. Ky kod gjenerohet nga një funksion matematikor mbi bajtët e mëparshëm, kjo siguron që mesazhi të jetë marrë në mënyrë korrekte.
Integrimi i Asistentit në Shtëpi Shtimi i njehsorit te Asistenti i Shtëpisë është mjaft i drejtpërdrejtë. Duke supozuar se keni një ndërmjetës MQTT të konfiguruar (Këtu është udhëzuesi), gjithçka që duhet të bëni është të shtoni përkufizime të reja nën skedarin configuration.yaml. sensori: - platforma: emri mqtt: "Tensioni Kryesor" gjendja_tema: "njësia e energjisë/kryesore/tensioni" e matjes: "V" Këtu ju duhet të vendosni emrin e matjes, temën MQTT për të lexuar dhe njësinë matëse të sasisë. Ruani skedarin, kontrolloni konfigurimin dhe ringarkoni Home Assistant, tani matjet do të shfaqen në faqen kryesore.
Paneli i konsumit të Asistentit në shtëpi që tregon leximet aktuale
Home Assistant do të kujdeset për krijimin e grafikëve dhe automatizimin e proceseve të shkaktuara nga leximet tuaja. Ky tutorial ka përfunduar, tani ju takon të shtoni veçori dhe ta personalizoni atë për qëllimet tuaja!
Hapi 3: Mblidhni
U krye? Timeshtë koha për të vidhosur lidhjen RS485! Ne do të përdorim kabllo të përdredhur me një palë të vetme me tokën, e përdorur zakonisht për linjat telefonike. Me këtë kabllo, ju mund të transmetoni në një distancë të gjatë (1.2 km). Sidoqoftë, ne thjesht përdorim një kabllo mjaft të gjatë për të dalë nga kabineti dhe për ta vendosur Arduino në një vend të arritshëm.
Lidhja Finder RS485
Ndërfaqja RS485 emërton terminalet e saj A, B dhe COM. Një standard i zakonshëm de-fakto është përdorimi i TX+/RX+ ose D+ si një alternativë për B (e lartë për MARK dmth boshe), TX-/RX- ose D- si një alternativë për A (e ulët për MARK dmth boshe) Meqenëse Mburoja MKR mbështet edhe Full Duplex, do të shihni dy terminale të tjerë, Y dhe Z. Këtu do të vidhosim skajin tjetër të kabllit pasi ne e dimë nga fleta e të dhënave se komunikimi gjysmë dupleks ndodh vetëm në terminalet Y dhe Z. Terminali COM duhet të lidhet me ISOGND. Meqenëse ne përdorim një lidhje gjysmë dupleks dhe meqenëse kabllot janë peer-to-peer, ne duhet të vendosim çelsat në mburojën MKR485 që të përputhen me konfigurimin tonë: vendosim HALF (2 në çaktivizim) dhe përfundimin në YZ (3 në ON); e para nuk ka rendesi. Përfundimi është një rezistencë që lidh dy terminalet e të dhënave, për zbutjen e ndërhyrjeve.
Kjo eshte. Tani mund të mbyllni kabinetin dhe të përqendroheni në anën e softuerit!
Hapi 4: Kodi
#përfshi
#include #include #include // kredencialet tuaja wifi const char ssid = "**********"; const char pass = "**********";
Rrjeti WiFiClient; Klienti MQTTClient; normë e gjatë e pa firmosur = 60000; // norma e parazgjedhur e rifreskimit në ms pa shenjë long last Millis = 0;
// funksioni i lidhjes void lidh () {Serial.print ("kontrollimi i wifi …"); ndërsa (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); vonesa (1000); } Serial.print ("\ n po lidhet …"); ndërsa (! client.connect ("emri i pajisjes", "emri i përdoruesit", "përdoruesi_pw")) {// NDRYSHO P TOR TAT PATRBASHNI SETUPIN TUAJ Serial.print ("."); vonesa (1000); } Serial.println ("\ nlidhur!"); client.subscribe ("energjia/kryesore/rifreskim"); // tema për të vendosur shkallën e rifreskimit në distancë} // mqtt të marrë funksionin e kthimit të thirrjes mesazh i pavlerëRreceptuar (String & topic, String & payload) {Serial.println ("hyrëse:" + temë + " -" + ngarkesë); nëse (tema == "energjia/kryesore/rifreskimi") {// shkalla e rifreskimit të nivelit të trajtimit = ngarkesa.toInt ()*1000; Serial.println ("norma e re"+String (norma)); }}
void setup () {Serial.begin (115200); WiFi.filloni (ssid, kaloni); ndërsa (! Serial); client.begin ("broker_ip", neto); // NDRYSHO P TOR TAT PATRBASHKT klientin TUAJ SETUP.onMessage (messageReived); // filloni klientin Modbus RTU nëse (! ModbusRTUClient.begin (9600)) {Serial.println ("Dështoi në fillimin e Modbus RTU Client!"); ndërsa (1); }}
void loop () {client.loop (); nëse (! client.connected ()) {// kontrolloni lidhjen e rrjetit (); } // publikoni një mesazh pasi të ketë përfunduar rifreskimi (rutina jo -bllokuese) nëse (millis () - lastMillis> norma) {lastMillis = millis (); // bëni të gjitha thirrjet e lexuara të notojnë volt = readVoltage (); vonesë (100); float amp = readCurrent (); vonesë (100); dy vat = readPower (); vonesë (100); float hz = readFreq (); vonesë (100); dyfishtë wh = readEnergy (); // publikoni rezultatet sipas temave të lidhura client.publish ("energjia/kryesore/tensioni", String (volt, 3)); client.publish ("energjia/kryesore/aktuale", String (amp, 3)); client.publish ("energjia/kryesore/fuqia", String (watt, 3)); client.publish ("energjia/kryesore/frekuenca", String (hz, 3)); client.publish ("energjia/kryesore/energjia", 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"); vonesë (100); }}
/ * Funksionet për të lexuar regjistrat Finder Energy Meter * * Kontrolloni manualin e protokollit modbus për të kuptuar kodin * https://gfinder.findernet.com/public/attachments/7E/EN/PRT_Modbus_7E_64_68_78_86EN.pdf */float readVoltage () {float volt = 0.; nëse (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x000C, 2)) {// bëni thirrjen në regjistër Serial.print ("dështoi në leximin e tensionit!"); Serial.println (ModbusRTUClient.lastError ()); // mbajtës gabimi} tjetër {uint16_t word1 = ModbusRTUClient.read (); // lexoni të dhëna nga tamponi uint16_t word2 = ModbusRTUClient.read (); uint32_t millivolt = word1 << 16 | fjalë2; // bit matematikë volt = millivolt/1000.0; } volt i kthimit; } float readCurrent () {float amper = 0.; nëse (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {Serial.print ("nuk lexoi rrymën!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); int32_t milliamp = word1 << 16 | fjalë2; amper = miliamp/1000.0; } kthehu amper; }
double readPower () {double watt = 0.; nëse (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0025, 3)) {Serial.print ("nuk lexoi fuqinë!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); uint16_t word3 = ModbusRTUClient.read (); uint64_t milivat; nëse (word1 >> 7 == 0) {milliwatt = word1
Recommended:
FATURIMI I FATURES DHE SISTEMI I KONTROLLIT TV INVENTORIT: 3 hapa
SISTEMI I FATURIMIT TILL FATURIMIT DHE KONTROLLIT TV INVENTORIT: Me këtë udhëzues, unë do t'ju jap një ide për të krijuar një sistem kontrolli të Faturës dhe Inventarit. Duke përdorur qasjen në MS. Veryshtë shumë e lehtë dhe nuk ka nevojë për më shumë njohuri kompjuterike ose programimi. Nëse keni njohuri bazë të Znj. Qasja, Tabelat. format dhe raportet t
Monitori i Zbutjes së Radonit: 4 Hapa
Monitori i Zbutjes së Radonit: PërmbledhjeRadoni vjen natyrshëm nga gurët dhe toka nën shtëpitë tona në të gjithë Shtetet e Bashkuara dhe Bashkimin Evropian. Alwaysshtë gjithmonë rreth nesh një gaz radioaktiv pa erë, pa shije dhe i padukshëm. Radoni është problematik sepse rrjedh në shtëpinë tonë
ITea - Monitori juaj personal i çajit: 8 hapa
ITea | Monitoruesi juaj personal i çajit: Përshëndetje, miq lexues dhe mirë se erdhët në projektin iTea! Para fillimit të këtij projekti, mendova për diçka që mund të përmirësoja në jetën time duke përdorur robotikë të zakonshëm dhe komponentë elektronikë që kam në shtëpinë time. Disa javë para se të shkruani këtë artikull
Si të matni saktë konsumin e energjisë të moduleve të komunikimit pa tel në epokën e konsumit të ulët të energjisë?: 6 hapa
Si të matni saktë konsumin e energjisë të moduleve të komunikimit pa tel në epokën e konsumit të ulët të energjisë?: Konsumi i ulët i energjisë është një koncept jashtëzakonisht i rëndësishëm në internetin e gjërave. Shumica e nyjeve IoT duhet të mundësohen nga bateritë. Vetëm duke matur saktë konsumin e energjisë të modulit pa tel mund të vlerësojmë me saktësi sa bateri kam
Projektet e energjisë nga kompjuteri juaj: 5 hapa
Projektet e energjisë nga kompjuteri juaj: Ju mund të godisni disa pjesë që ndoshta keni shtrirë në një kabllo që do t'ju lejojë të furnizoni projektet elektronike nga një kompjuter. Fillimisht e bëra këtë artikull në faqen time në uC Hobby por kuptova se do ta provoja si udhëzuesja ime e parë. Me njofto