Բովանդակություն:
Video: Ձեր էներգախնայողության մոնիտորը `4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
Այս նախագծի մասին
Եթե իսկապես ցանկանում եք ձեր տունը դարձնել ավելի խելացի, ապա հավանաբար կցանկանաք սկսել ձեր ամսական հաշիվներից (այսինքն ՝ էներգիա, գազ և այլն …): Ինչպես ասում են ոմանք ՝ Good for Planet, The Wallet and The Bottom Line: Բաց կոդով սարքավորումները տան միջավայրում կայունության հասնելու մեր միջոցն են: Այս գաղափարը մեզ ստիպեց կառուցել մի պարզ և ապահով լուծում, որը հեշտ է ինտեգրվել ցանկացած տան ավտոմատացման ծրագրակազմի հետ, քանի որ այն բացահայտում է տվյալները MQTT- ով (մեր դեպքում մենք ձեզ ցույց կտանք, թե ինչպես այն ինտեգրվել Home Assistant- ում):
Ակնարկ
Էլեկտրաէներգիայի սպառումը չափելու համար մենք ընտրեցինք օգտագործել Finder Energy Meter- ը, քանի որ այն նախատեսված է DIN երկաթուղու օգտագործման համար և հիանալի տեղավորվում է մեր տան գլխավոր պահարանում: Այս ապրանքի հիանալի բանն այն է, որ այն ունի RS485 Modbus ինտերֆեյս, արդյունաբերական ստանդարտ հաղորդակցության արձանագրություն, որն իսկապես հեշտացնում է Arduino- ի հետ խոսելը: Փաստորեն, Arduino- ն թողարկել է պաշտոնական վահանը ՝ MKR485- ը և երկու գրադարան ՝ արձանագրությունը վերծանելու համար: Որպես մայր տախտակ, մենք ընտրեցինք Arduino MKR WiFi 1010 -ը, քանի որ այն կիսում է MKR ձևի գործոնը և ունի WiFi միացում:
SetupWarning! Ստուգեք ձեր երկրի էլեկտրական համակարգի հետ կապված ձեր երկրի կանոնակարգերը և չափազանց զգույշ եղեք, քանի որ դա կարող է մահացու լինել: Եթե չգիտեք, թե ինչպես, զանգահարեք էլեկտրիկի: Առաջին քայլը հաշվիչի տեղադրումն է ձեր էլեկտրական պահարանում: Անվտանգ միջավայրում աշխատելն ապահովելու համար անջատեք ձեր համակարգից առաջ գտնվող էլեկտրական տերմինալը և բազմաչափով կրկնակի ստուգեք, որ տերմինալների միջև լարվածություն չկա: Այնուհետև տեղադրեք էներգիայի հաշվիչը ձեր պահարանի ներսում և միացրեք կենդանի և չեզոք լարերը հիմնական անջատիչից մինչև հաշվիչի մուտքը, հիշեք, որ օգտագործեք գունային պայմանագիրը (կապույտը ՝ չեզոք, իսկ շագանակագույնը ՝ սև/մոխրագույնը ՝ ԵՄ -ում ապրելու համար): Ելքը պետք է միացված լինի մնացած համակարգին:
Հիմնական լարման միացումներ: Վերևի լարերը մուտքային են, այն կողմը `ելքեր:
Քայլ 1: Անհրաժեշտ մասեր
Քայլ 2: Softwareրագրային ապահովման կարիքները
Ծրագրային ապահովում
Գործարկեք ձեր համակարգիչը և բացեք ձեր IDE- ն: Դուք կարող եք օգտագործել Arduino IDE կամ Arduino Ստեղծել խմբագիր: Կոդը բավարարում է հետևյալ հարցումները. Modbus հաղորդակցություն, WiFi- ի կառավարում MQTT արձանագրություն Modbus- ը և բաց կոդով արձանագրություն արդյունաբերական տվիչների և մեքենաների համար: Որպեսզի Arduino- ն խոսի Modbus- ի մասին, մենք պատրաստվում ենք օգտագործել Arduino Modbus գրադարանը: Այս գրադարանը փաթեթավորում է բոլոր մշակողները և իսկապես արագ միացնում ցանկացած Modbus սարք: Քանի որ մենք մտադիր ենք ընթերցել գրանցամատյաններ ՝ հաշվիչի տվյալների թերթիկին հետևելով, մենք կարող ենք գտնել մեզ անհրաժեշտ բոլոր տեղեկությունները ՝ գործառույթի կոդերը, գրանցամատյանի հասցեն և գրանցիչի չափը բառերով: Ավելի պարզ դարձնելու համար բացատրենք, թե ինչպես է աշխատում Modbus- ը. Modbus հաղորդագրությունները հետևում են պարզ կառուցվածքին. *, այս դեպքում, կարդացեք 0x04 պահող գրանցամատյանները Byte Count00 16 -ի համար - Մենք ուղարկում ենք 4 բայթ գրանցման հասցե (00 16), որը սարքին ասում է, թե ինչ ենք ուզում կարդալ 00 02 - այնուհետև գրանցիչի չափը (00 02) բառերով (յուրաքանչյուր բառը 2 բայթ է) Վերջին 4 բայթերը CRC կոդ են: Այս ծածկագիրը ստեղծվում է մաթեմատիկական գործառույթից ՝ նախորդ բայթերի համեմատ, ինչը երաշխավորում է, որ հաղորդագրությունը ստացվել է ճիշտ:
Տնային օգնականի ինտեգրումՀաշվիչը տան օգնականին ավելացնելը բավականին պարզ է: Ենթադրելով, որ դուք ունեք MQTT բրոքեր կազմաձևված (ահա ուղեցույցը), այն ամենը, ինչ ձեզ հարկավոր է անել, նոր սահմանումներ ավելացնել configuration.yaml ֆայլի տակ: սենսոր. Պահեք ֆայլը, ստուգեք կազմաձևը և վերաբեռնեք Home Assistant- ը, այժմ չափումները կհայտնվեն հիմնական էջում:
Home Assistant սպառման վահանակը ցույց է տալիս ընթացիկ ընթերցումները
Home Assistant- ը կհոգա գրաֆիկների ստեղծման և ձեր ընթերցումների արդյունքում առաջացած գործընթացների ավտոմատացման մասին: Այս ձեռնարկն ավարտվեց, այժմ ձեզնից է կախված ավելացնել գործառույթները և հարմարեցնել այն ձեր սեփական նպատակների համար:
Քայլ 3: Հավաքեք
Կատարած? 48ամանակն է պտուտակել RS485 կապը: Մենք կօգտագործենք ոլորված մեկ զույգ մալուխ գետնին, որը սովորաբար օգտագործվում է հեռախոսագծերի համար: Այս մալուխի միջոցով կարող եք փոխանցել մեծ հեռավորության վրա (1,2 կմ): Այնուամենայնիվ, մենք պարզապես մալուխ ենք օգտագործում բավական երկար ՝ կաբինետից դուրս գալու և Arduino- ն հասանելի վայրում տեղադրելու համար:
Finder RS485 կապ
RS485 ինտերֆեյսը անվանում է իր տերմինալները A, B և COM: Ընդհանուր դե-ֆակտո ստանդարտը TX+/RX+ կամ D+- ի օգտագործումն է որպես B- ի այլընտրանք (բարձր MARK- ի դեպքում `անգործուն), TX-/RX- կամ D- որպես A- ի այլընտրանք (ցածր MARK- ի համար, այսինքն` անգործուն) MKR վահանը աջակցում է նաև Full Duplex- ին, դուք կտեսնեք երկու այլ տերմինալ ՝ Y և Z: Այստեղ մենք պատրաստվում ենք պտուտակել մալուխի մյուս ծայրը, քանի որ տվյալների թերթիկից մենք գիտենք, որ կիսատ երկկողմանի հաղորդակցությունը տեղի է ունենում միայն Y և Z տերմինալներում: COM տերմինալը պետք է միացված լինի ISOGND- ին: Քանի որ մենք օգտագործում ենք կիսատ դուպլեքս միացում, և քանի որ մալուխը peer-to-peer է, մենք պետք է անջատիչներ տեղադրենք MKR485 վահանի վրա ՝ մեր կարգավորմանը համապատասխանելու համար. Մենք սահմանում ենք HALF (2-ից անջատված) և վերջավորությունը YZ (3-ից մինչև) ՎՐԱ); առաջինը նշանակություն չունի: Դադարեցումը երկու տվյալների տերմինալները միացնող դիմադրություն է `միջամտությունների թուլացման համար:
Սա այն է: Այժմ կարող եք փակել կաբինետը և կենտրոնանալ ծրագրակազմի վրա:
Քայլ 4: Կոդ
#ներառում
#ներառել #ներառել #ներառել // ձեր WiFi հավատարմագրերը const char ssid = "**********"; const char pass = "**********";
WiFiClient ցանց; MQTTClient հաճախորդ; անստորագիր երկար դրույք = 60000; // լռելյայն թարմացման արագություն ms- ում անստորագիր long lastMillis = 0;
// միացնել գործառույթը void connect () {Serial.print ("ստուգում wifi …"); while (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); ուշացում (1000); } Serial.print ("\ n միացում…"); while (! client.connect ("device_name", "user_name", "user_pw")) {// ՓՈՓՈԽՈ TOԹՅՈՆ ՔՈ ԿԱՐԳԱՎՈՐՈՄԸ ՀԱՎԱՍԱՐԿԵԼ Serial.print ("."); ուշացում (1000); } Serial.println ("\ n միացված է"); client.subscribe («էներգիա/հիմնական/թարմացում»); // թեման հեռակա կարգով թարմացման արագություն սահմանելու համար} // mqtt ստանալ հետադարձման գործառույթ void messageReceived (String & topic, String & payload) {Serial.println ("incoming:" + topic + " -" + payload); եթե (թեմա == "էներգիա/հիմնական/թարմացում") {// թարմացման արագության կառավարիչ տոկոսադրույք = բեռնվածություն. դեպի ինտեր ()*1000; Serial.println («նոր փոխարժեք»+լարային (տոկոսադրույք)); }}
void setup () {Serial.begin (115200); WiFi.begin (ssid, pass); իսկ (! Սերիա); client.begin ("բրոքերային_իպ", զուտ); // ՓՈՓՈԽԵԼ ՔՈ ԿԱՐԳԱՎՈՐՈՄԸ ՀԱՎԵԼՎԵԼ client.onMessage (messageReceived); // գործարկեք Modbus RTU հաճախորդը, եթե (! ModbusRTUClient.begin (9600)) {Serial.println ("Չհաջողվեց գործարկել Modbus RTU Client!"); մինչդեռ (1); }}
void loop () {client.loop (); եթե (! client.connected ()) {// ստուգեք ցանցի կապի միացումը (); } // հաղորդագրություն հրապարակել թարմացումն ավարտվելուց հետո (չարգելափակող ռեժիմ) if (millis () - lastMillis> rate) {lastMillis = millis (); // բոլոր կարդացած զանգերը դարձնել float volt = readVoltage (); ուշացում (100); float amp = readCurrent (); ուշացում (100); կրկնակի վտ = readPower (); ուշացում (100); float hz = readFreq (); ուշացում (100); կրկնակի wh = readEnergy (); // արդյունքները հրապարակել համապատասխան թեմաներով client.publish («էներգիա/հիմնական/լարում», լարային (վոլտ, 3)); client.publish («էներգիա/հիմնական/ընթացիկ», լարային (ուժեղացուցիչ, 3)); client.publish («էներգիա/հիմնական/հզորություն», լարային (վտ, 3)); client.publish («էներգիա/հիմնական/հաճախականություն», լարային (հզ, 3)); client.publish («էներգիա/հիմնական/էներգիա», լարային (wh, 3)); Serial.print (լարային (վոլտ, 3)+"V"+լարային (ամպ, 3)+"A"+լարային (վտ, 3)+"W"); Serial.println (Լար (hz, 3)+"Hz"+String (wh, 3)+"kWh"); ուշացում (100); }}
/ * Finder Energy Meter գրանցամատյանները կարդալու գործառույթներ * * Ստուգեք modbus արձանագրության ձեռնարկը ՝ կոդը հասկանալու համար * https://gfinder.findernet.com/public/attachments/7E/EN/PRT_Modbus_7E_64_68_78_86EN.pdf */float readVoltage () {float վոլտ = 0.; եթե (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x000C, 2)) {// զանգահարեք գրանցամատյանում Serial.print («լարման կարդալը ձախողվեց»); Serial.println (ModbusRTUClient.lastError ()); // error handler} else {uint16_t word1 = ModbusRTUClient.read (); // կարդալ տվյալները բուֆերից uint16_t word2 = ModbusRTUClient.read (); uint32_t millivolt = word1 << 16 | word2; // բիթ մաթեմատիկական վոլտ = միլիվոլտ/1000.0; } վերադարձ վոլտ; } float readCurrent () {float ampere = 0.; եթե (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {Serial.print ("հոսանքը չի կարդալ!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); int32_t milliamp = word1 << 16 | word2; ամպեր = միլիամպ/1000.0; } վերադարձ ամպեր; }
double readPower () {double watt = 0.; եթե (! ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0025, 3)) {Serial.print ("իշխանությունը չի կարդալ!"); Serial.println (ModbusRTUClient.lastError ()); } else {uint16_t word1 = ModbusRTUClient.read (); uint16_t word2 = ModbusRTUClient.read (); uint16_t word3 = ModbusRTUClient.read (); uint64_t միլիվատ; if (word1 >> 7 == 0) {milliwatt = word1
Խորհուրդ ենք տալիս:
LTE Cat.M1 PSM- ի (էներգախնայողության ռեժիմ) վերլուծություն. 4 քայլ
LTE Cat.M1 PSM- ի (էներգախնայողության ռեժիմ) վերլուծություն. Նախորդ հոդվածում մենք քննարկել ենք, թե ինչպես կարելի է PSM- ի միջոցով ակտիվ / քնի ցիկլ սահմանել: Խնդրում ենք անդրադառնալ նախորդ հոդվածին ՝ ապարատային և PSM կարգավորումների և AT հրամանի բացատրությունների համար: (Հղում ՝ https://www.instructables.com/id/What-Is-a-PSMPow…Ac
ՏՏ ոլորտը - Ձեր անձնական թեյի մոնիտորը `8 քայլ
ՏՏ ոլորտը | Ձեր անձնական թեյի մոնիտորը. Ողջույն, ընթերցողներ, և բարի գալուստ iTea նախագծին: Այս նախագիծը սկսելուց առաջ ես մտածեցի մի բանի մասին, որը կարող եմ բարելավել իմ կյանքում ՝ օգտագործելով ընդհանուր ռոբոտաշինություն և էլեկտրոնային բաղադրիչներ, որոնք ես ունեմ իմ տանը: Այս արվեստը գրելուց մի քանի շաբաթ առաջ
Ձեր հին հեռուստացույցը կամ CRT մոնիտորը վերածեք ռետրո խաղային կայանի ՝ 5 քայլ
Ձեր հին հեռուստացույցը կամ CRT մոնիտորը վերածեք ռետրո խաղերի կայանի. Դուք կարող եք նաև օգտագործել ձեր նոր հեռուստատեսությունը կամ լուսադիոդային էկրանը, ինչը հետ է բերում ձեր մանկության հիշողությունը
Դարձրեք ձեր մոնիտորը անտեսանելի (գրեթե գրեթե). 4 քայլ
Դարձրեք ձեր մոնիտորը անտեսանելի (գրեթե գրեթե). Ստեղծեք աշխատասեղանի ֆոն `զվարճացնելու և շփոթեցնելու ձեր ընկերներին և գործընկերներին` օգտագործելով միայն թվային ֆոտոխցիկ և մի փոքր կատակներ:
Ձեր հին CRT համակարգչային մոնիտորը վերածեք ձկան տանկի: ! !: 11 քայլ (նկարներով)
Ձեր հին CRT համակարգչային մոնիտորը վերածեք ձկան տանկի: ! !: Խոսեք հիանալի էկրանի խնայարարի մասին: Արդեն որոշ ժամանակ է, ինչ ցանկանում եմ անել այս կառուցվածքը: Ամեն անգամ, երբ աղբի օրը ճանապարհի եզրին տեսնում եմ հին CRT համակարգչային մոնիտորը, ես ինքս ինձ մտածում եմ … դա, անշուշտ, կդառնար զով տեսք ունեցող ձկների բաք: Այսպիսով