فهرست مطالب:
تصویری: مانیتور قبض انرژی شما: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:53
در مورد این پروژه
اگر واقعاً می خواهید خانه خود را باهوش تر کنید ، احتمالاً می خواهید از قبض های ماهانه خود (یعنی انرژی ، گاز و غیره …) شروع کنید. همانطور که برخی می گویند ، Good for Planet ، The Wallet و The Bottom Line. سخت افزار منبع باز راه ما برای دستیابی به پایداری در محیط خانه است! این ایده ما را مجبور به ساخت یک راه حل ساده و ایمن کرد که به آسانی با هر نرم افزار اتوماسیون خانگی ادغام می شود زیرا داده ها را در MQTT نشان می دهد (در مورد ما ما به شما نحوه ادغام آن با دستیار خانگی را نشان خواهیم داد).
بررسی اجمالی
برای اندازه گیری مصرف انرژی الکتریکی ، ما از Finder Energy Meter استفاده کردیم ، زیرا برای استفاده از ریل DIN طراحی شده است و کاملاً در کابینت اصلی خانه ما جا می گیرد. نکته جالب در مورد این محصول این است که دارای رابط RS485 Modbus است ، یک پروتکل ارتباطی استاندارد صنعتی که صحبت با Arduino را بسیار آسان می کند. در واقع ، آردوینو یک سپر رسمی ، MKR485 و دو کتابخانه را برای رمزگشایی پروتکل منتشر کرده است. ما به عنوان صفحه اصلی ، Arduino MKR WiFi 1010 را انتخاب کردیم ، زیرا فاکتور فرم MKR را دارد و دارای اتصال WiFi است.
SetupWarning! قوانین کشور خود را در مورد برخورد با سیستم برق خانه خود بررسی کنید و بسیار مراقب باشید زیرا می تواند کشنده باشد! اگر نمی دانید چگونه با برقکار تماس بگیرید. اولین قدم این است که کنتور را در کابینت برقی خود نصب کنید. برای اطمینان از اینکه در محیطی ایمن کار می کنید ، برق ترمینال الکتریکی را قبل از سیستم خود خاموش کرده و با مولتی متر دوبار بررسی کنید که ولتاژی بین پایانه ها وجود ندارد. سپس کنتور انرژی را داخل کابینت خود قرار دهید و سیمهای زنده و خنثی را از شکن اصلی به ورودی کنتور متصل کنید ، به یاد داشته باشید که از کنوانسیون رنگ (آبی برای خنثی و قهوه ای/سیاه/خاکستری برای زندگی در اتحادیه اروپا) استفاده کنید. خروجی باید به بقیه سیستم متصل شود.
اتصالات اصلی ولتاژ سیمهای بالا ورودی هستند ، سیمهای خارج از آن خروجی هستند.
مرحله 1: قطعات مورد نیاز
مرحله 2: نیازهای نرم افزاری
نرم افزار
رایانه خود را راه اندازی کرده و IDE خود را باز کنید. می توانید از Arduino IDE یا Arduino Create Editor استفاده کنید. کد درخواستهای زیر را برآورده می کند: ارتباط Modbus ، مدیریت WiFi پروتکل MQTT Modbus یک پروتکل منبع باز برای سنسورها و ماشین های صنعتی است. برای ایجاد آردوینو در مورد Modbus ، ما از کتابخانه Arduino Modbus استفاده می کنیم. این کتابخانه همه کنترل کننده ها را بسته بندی می کند و اتصال هر دستگاه Modbus را به سرعت انجام می دهد. از آنجا که ما قصد داریم رجیسترها را بخوانیم ، پس از برگه داده متر ، می توانیم تمام اطلاعات مورد نیاز خود را مانند کدهای عملکرد ، آدرس ثبات و اندازه ثبت در کلمات پیدا کنیم. اما برای روشن تر شدن مطلب ، نحوه کار Modbus را توضیح دهید: پیام های Modbus از یک ساختار ساده پیروی می کنند: 01 03 04 00 16 00 02 25 C7 0x01 آیا آدرس دستگاه 0x03 کد عملکردی است که به دستگاه می گوید که آیا می خواهیم داده ها را بخوانیم یا بنویسیم *، در این مورد ، رجیسترهای نگهداری 0x04 را برای Byte Count00 16 بخوانید - ما 4 بایت آدرس ثبت نام (00 16) را ارسال می کنیم که به دستگاه می گوید آنچه می خواهیم 00 02 را بخوانیم - سپس اندازه ثبت (00 02) به صورت کلمات (هر کلمه 2 بایت طول دارد) 4 بایت آخر کد CRC است. این کد از یک تابع ریاضی نسبت به بایت های قبلی تولید می شود ، این امر اطمینان می دهد که پیام به درستی دریافت شده است.
افزودن متر به دستیار خانه بسیار ساده است. با فرض اینکه یک کارگزار MQTT پیکربندی شده است (در اینجا راهنما آمده است) ، تنها کاری که باید انجام دهید این است که تعاریف جدیدی را در زیر فایل configuration.yaml اضافه کنید. سنسور: - پلت فرم: نام mqtt: "ولتاژ اصلی" state_topic: "energy/main/voltage" unit_of_measurement: "V" در اینجا شما باید نام اندازه گیری ، موضوع MQTT را برای خواندن و واحد اندازه گیری مقدار قرار دهید. فایل را ذخیره کنید ، پیکربندی را بررسی کرده و Home Assistant را دوباره بارگیری کنید ، اکنون اندازه گیری ها در صفحه اصلی ظاهر می شود.
پنل مصرف دستیار خانگی که قرائت فعلی را نشان می دهد
دستیار خانگی از ایجاد نمودارها و خودکارسازی فرآیندهای ایجاد شده توسط قرائت های شما مراقبت می کند. این آموزش به پایان رسید ، اکنون به شما بستگی دارد که ویژگی ها را اضافه کرده و آن را برای اهداف خود سفارشی کنید!
مرحله 3: جمع آوری
انجام شده؟ وقت آن است که اتصال RS485 را خراب کنید! ما از کابل پیچ خورده تک جفت با زمین استفاده می کنیم که معمولاً برای خطوط تلفن استفاده می شود. با استفاده از این کابل می توانید مسافت زیادی (1.2 کیلومتر) را انتقال دهید. با این حال ، ما فقط از یک کابل به اندازه کافی برای خروج از کابینت و قرار دادن آردوینو در مکانی قابل دسترس استفاده می کنیم.
اتصال Finder RS485
رابط RS485 پایانه های خود را A ، B و COM نامگذاری می کند. یک استاندارد معمول معمول استفاده از TX+/RX+ یا D+ به عنوان جایگزینی برای B (زیاد برای MARK یعنی بیکار) ، TX-/RX- یا D- به عنوان جایگزین برای A (کم برای MARK یعنی بیکار) از آنجا MKR shield از Full Duplex نیز پشتیبانی می کند ، دو پایانه دیگر Y و Z را مشاهده خواهید کرد. در اینجا ما قصد داریم انتهای دیگر کابل را به هم بزنیم زیرا از برگه اطلاعات می دانیم که ارتباطات نیمه دو طرفه فقط در پایانه های Y و Z اتفاق می افتد. پایانه COM باید به ISOGND متصل شود. از آنجا که ما از یک اتصال نیمه دوطرفه استفاده می کنیم و از آنجا که کابل کشی همتا به همتا است ، باید سوئیچ ها را روی سپر MKR485 تنظیم کنیم تا با تنظیمات ما مطابقت داشته باشد: ما HALF (2 تا خاموش) و خاتمه را روی YZ (3 تا) تنظیم می کنیم. بر)؛ اولی مهم نیست خاتمه مقاومتی است که دو پایانه داده را به هم متصل می کند تا تداخل را تضعیف کند.
این است. حالا می توانید کابینت را ببندید و روی نرم افزار تمرکز کنید!
مرحله 4: کد
#عبارتند از
#include #include #include // اعتبارنامه wifi شما const char ssid = "**********"؛ const char pass = "**********"؛
شبکه WiFiClient ؛ مشتری MQTTClient ؛ نرخ بلند بدون امضا = 60000 ؛ // نرخ تازه سازی پیش فرض در ms unsigned 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")) {// CHANGE TO MATCH YET SETUP Serial.print (".")؛ تاخیر (1000) ؛ } Serial.println ("\ n متصل نیست!")؛ client.subscribe ("energy/main/refreshrate")؛ // موضوع برای تنظیم نرخ بازخوانی از راه دور} // mqtt دریافت عملکرد بازخوانی پیام void if (topic == "energy/main/refreshrate") {// نرخ تجدید نرخ کنترل = payload.toInt ()*1000؛ Serial.println ("نرخ جدید"+رشته (نرخ)) ؛ }}
void setup () {Serial.begin (115200)؛ WiFi.begin (ssid ، pass) ؛ در حالی که (! سریال) ؛ client.begin ("broker_ip"، net)؛ // CHANGE TO MATCH YET SETUP client.onMessage (messageReceived)؛ // سرویس گیرنده Modbus RTU را در صورت شروع (! ModbusRTUClient.begin (9600)) {Serial.println ("راه اندازی Modbus RTU Client ناموفق بود!") ؛ در حالی که (1) ؛ }}
void loop () {client.loop ()؛ if (! client.connected ()) {// اتصال شبکه را بررسی کنید ()؛ } // بعد از به روزرسانی (روال غیر مسدود کننده) if (millis () - lastMillis> rate) {lastMillis = millis () ، پیامی را منتشر کنید. // همه تماس های خوانده شده را float volt = readVoltage () کنید. تأخیر (100) ؛ float amp = readCurrent ()؛ تأخیر (100) ؛ دو وات = readPower ()؛ تأخیر (100) ؛ float hz = readFreq ()؛ تأخیر (100) ؛ double 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 (String (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.؛ if (! 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.؛ if (! 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.؛ if (! 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
توصیه شده:
مانیتور هوشمند گیاهان داخلی - بدانید چه زمانی گیاه شما نیاز به آبیاری دارد: 8 مرحله (همراه با تصاویر)
مانیتور هوشمند گیاهان داخلی - بدانید چه زمانی گیاه شما نیاز به آبیاری دارد: چند ماه پیش ، من یک چوب نظارت بر رطوبت خاک را تهیه کردم که از باتری تغذیه می کند و می تواند در گلدان گیاهان داخلی شما در خاک گیر کند تا اطلاعات مفیدی در مورد خاک به شما ارائه دهد. سطح رطوبت و LED های فلاش به شما می گویند چه زمانی باید منتظر
مانیتور انرژی در 15 دقیقه: 3 مرحله
مانیتور انرژی در 15 دقیقه: این سنسور وای فای است که روی فلشر در کنتور برق شما چسبانده می شود. با LDR چشمک می زند و قدرت را روی صفحه نمایش OLED نشان می دهد. داده ها را به داشبورد Thingsboard ارسال می کند ، مثال زنده در اینجا. برای یک حساب آزمایشی رایگان ثبت نام کنید: https: //thingsboard.io
ساخت دستگاه مانیتور انرژی با استفاده از الکترون ذره ای: 5 مرحله (همراه با تصاویر)
ساخت یک دستگاه مانیتور انرژی با استفاده از الکترونی ذره ای: در اکثر مشاغل ، ما انرژی را یک هزینه تجاری می دانیم. صورتحساب در ایمیل یا ایمیل های ما نشان داده می شود و ما آن را قبل از تاریخ لغو پرداخت می کنیم. با ظهور اینترنت اشیاء و دستگاه های هوشمند ، انرژی در حال شروع به گرفتن جای جدیدی در کسب و کار است
مانیتور انرژی لامپ: 9 مرحله (همراه با تصاویر)
مانیتور انرژی لامپ: من برای کار روزانه خود تحقیقات انرژی انجام می دهم. بنابراین نباید تعجب آور باشد که من بسیار علاقه مند هستم بدانم چگونه از انرژی در آپارتمان خود استفاده می کنیم. در طول این سالها ، من از یک مانیتور خروجی انرژی (یک متر Kill-A-Watt) و همچنین یک کل استفاده کرده ام
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند؟: 5 مرحله (همراه با تصاویر)
نقاط زرد رمز و راز: آیا چاپگر شما از شما جاسوسی می کند ؟: تصور کنید هر بار که یک سند را چاپ می کنید ، به طور خودکار شامل یک کد مخفی است که می تواند برای شناسایی چاپگر - و به طور بالقوه ، شخصی که از آن استفاده می کند ، استفاده شود. به نظر می رسد چیزی از یک فیلم جاسوسی است ، درست است؟ متأسفانه سناریو