فهرست مطالب:

متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید: 5 قدم
متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید: 5 قدم

تصویری: متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید: 5 قدم

تصویری: متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید: 5 قدم
تصویری: لحظه آزاد کردن دختران زنجیر شده توسط داعش پس از ۸ سال! - ویدئو #shortvideo #shortsclip #news 2024, نوامبر
Anonim
متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید
متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید
متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید
متر برق و گاز (بلژیکی/هلندی) را بخوانید و در Thingspeak بارگذاری کنید

اگر نگران مصرف انرژی خود هستید یا فقط کمی عصبی هستید ، احتمالاً می خواهید داده های متر دیجیتال جدید فانتزی خود را در تلفن هوشمند خود ببینید.

در این پروژه ما داده های فعلی را از یک متر برق و گاز دیجیتال بلژیکی یا هلندی بدست می آوریم و آنها را در Thingspeak بارگذاری می کنیم. این داده ها شامل مصرف برق و تزریق فعلی و روزانه (در صورت داشتن پنل های خورشیدی) ، ولتاژها و جریانها و مصرف گاز (در صورت اتصال متر دیجیتال گاز به کنتور برق) است. از طریق یک برنامه می توانید این مقادیر را در زمان واقعی در تلفن هوشمند خود بخوانید.

این دستگاه برای یک متر دیجیتال بلژیکی یا هلندی کار می کند که از پروتکل DSMR (هلندی متر متر مورد نیاز) پیروی می کند ، که باید همه مترهای اخیر باشد. متأسفانه اگر در مکان دیگری زندگی می کنید ، متر شما به احتمال زیاد از پروتکل دیگری استفاده می کند. بنابراین می ترسم این دستورالعمل کمی محدودیت منطقه ای داشته باشد.

ما از پورت P1 متر استفاده می کنیم که کابل RJ11/RJ12 را می پذیرد ، که در زبان عامیانه به عنوان کابل تلفن شناخته می شود. مطمئن شوید که نصب کننده متر پورت P1 را فعال کرده است. به عنوان مثال ، برای Fluvius در بلژیک این دستورالعمل ها را دنبال کنید.

برای پردازش داده ها و بارگذاری در اینترنت ، از ESP8266 استفاده می کنیم که یک میکروچیپ ارزان قیمت با وای فای داخلی است. هزینه آن فقط 2 دلار است. علاوه بر این می توان آن را با استفاده از Arduino IDE برنامه ریزی کرد. ما داده ها را در ابر در Thingspeak ذخیره می کنیم ، که حداکثر برای چهار کانال رایگان است. برای این پروژه ما فقط از یک کانال استفاده می کنیم. سپس می توانید داده ها را با استفاده از برنامه ای مانند IoT ThingSpeak در تلفن هوشمند خود نمایش دهید.

قطعات:

  • یکی ESP8266 ، مانند nodemcu v2. توجه داشته باشید که nodemcu v3 برای یک نان برد استاندارد بسیار گسترده است ، بنابراین من v2 را ترجیح می دهم.
  • کابل میکرو USB به USB.
  • یک شارژر USB
  • یک ترانزیستور BC547b NPN.
  • دو مقاومت 10k و یک مقاومت 1k.
  • یک اتصال دهنده ترمینال پیچ RJ12.
  • یک تخته نان
  • سیم های بلوز.
  • اختیاری: یک خازن 1nF.

در کل ، این هزینه چیزی در حدود 15 یورو در AliExpress یا موارد مشابه دارد. برآورد این امر را در نظر می گیرد که برخی از قطعات مانند مقاومت ها ، ترانزیستورها و سیم ها در مقادیر بسیار بیشتری از آنچه برای این پروژه نیاز دارید ، وجود دارد. بنابراین اگر قبلاً یک کیت قطعه دارید ، ارزان تر خواهد بود.

مرحله 1: آشنایی با ESP8266

من NodeMCU v2 را انتخاب کردم ، زیرا نیازی به لحیم کاری نیست و دارای اتصال میکرو USB است که امکان برنامه نویسی آسان را فراهم می کند. مزیت NodeMCU v2 نسبت به NodeMCU v3 این است که به اندازه کافی کوچک است و می تواند روی تخته نان جا داده شود و در کنار آن سوراخ های آزاد برای ایجاد اتصالات ایجاد کند. بنابراین بهتر است از NodeMCU v3 اجتناب کنید. با این حال ، اگر یک برد ESP8266 دیگر را ترجیح می دهید که آن نیز خوب است.

ESP8266 را می توان به راحتی با استفاده از Arduino IDE برنامه ریزی کرد. دستورالعمل های دیگری نیز وجود دارد که این موضوع را به تفصیل توضیح می دهد ، بنابراین من در اینجا بسیار مختصر توضیح می دهم.

  • ابتدا Arduino IDE را بارگیری کنید.
  • نصب دوم پشتیبانی از برد ESP8266. در منوی File - Preferences - تنظیمات نشانی اینترنتی https://arduino.esp8266.com/stable/package_esp8266com_index.json را به آدرسهای اضافی مدیر هیئت مدیره اضافه کنید. بعد در منو Tools - Board - Boards Manager install esp8266 by esp8266 community.
  • سوم ، برد نزدیک به ESP8266 خود را انتخاب کنید. در مورد من من NodeMCU v1.0 (ESP 12-E Module) را انتخاب کردم.
  • در نهایت در قسمت Tools - Flash Size ، اندازه ای که شامل SPIFFS ، مانند 4M (1M SPIFFS) را انتخاب کنید. در این پروژه ما از SPIFFS (سیستم فایل فلش SPI) برای ذخیره مقادیر انرژی روزانه استفاده می کنیم ، به طوری که اگر ESP8266 قدرت خود را از دست بدهد و حتی زمانی که دوباره برنامه ریزی شود ، از بین نمی روند.

اکنون ما همه چیز را برای برنامه ریزی ESP8266 آماده کرده ایم! در مرحله بعد در مورد کد واقعی بحث خواهیم کرد. ابتدا یک حساب Thingspeak ایجاد می کنیم.

مرحله 2: یک حساب و کانال Thingspeak ایجاد کنید

به https://thingspeak.com/ بروید و یک حساب کاربری ایجاد کنید. پس از ورود به سیستم ، روی دکمه New Channel کلیک کنید تا کانال ایجاد شود. در تنظیمات کانال نام و توضیحات را به دلخواه وارد کنید. سپس فیلدهای کانال را نامگذاری کرده و با کلیک روی کادرهای انتخاب در سمت راست آنها را فعال می کنیم. اگر از کد من بدون تغییر استفاده می کنید ، فیلدها به شرح زیر است:

  • زمینه 1: پیک مصرف امروز (کیلووات ساعت)
  • زمینه 2: مصرف خارج از پیک امروز (کیلووات ساعت)
  • زمینه 3: پیک تزریق امروز (کیلووات ساعت)
  • زمینه 4: تزریق بدون پیک امروز (کیلووات ساعت)
  • زمینه 5: مصرف فعلی (W)
  • زمینه 6: تزریق فعلی (W)
  • میدان 7: مصرف گاز امروز (متر مکعب)

در اینجا ، پیک و خارج از پیک به تعرفه برق اشاره می کنند. در زمینه های 1 و 2 مصرف به مصرف خالص برق امروز اشاره دارد: مصرف برق امروز در دوره تعرفه از نیمه شب منهای تزریق برق (تولید شده توسط پنل های خورشیدی) امروز در دوره تعرفه از نیمه شب با حداقل صفر. مورد دوم به این معنی است که اگر تزریق بیشتر از مصرف امروز وجود داشت ، مقدار آن صفر است. به همین ترتیب ، تزریق در زمینه های 3 و 4 به تزریق خالص برق اشاره دارد. فیلد 5 و 6 مصرف خالص و تزریق را در لحظه فعلی نشان می دهد. در نهایت میدان 7 میزان مصرف گاز از نیمه شب است.

برای مراجعات بعدی ، شناسه کانال ، کلید API خواندن و کلید نوشتن API را بنویسید که در کلیدهای API منو یافت می شود.

مرحله 3: ایجاد مدار الکترونیکی

ساخت مدار الکترونیکی
ساخت مدار الکترونیکی
ساخت مدار الکترونیکی
ساخت مدار الکترونیکی

کنتور برق را با استفاده از پورت P1 که از کابل RJ11 یا RJ12 استفاده می کند ، می خوانیم. تفاوت در این است که کابل RJ12 دارای 6 سیم است در حالی که RJ11 فقط 4 سیم دارد. در این پروژه ما ESP8266 را از پورت P1 تغذیه نمی کنیم ، بنابراین ما فقط به 4 سیم نیاز داریم ، بنابراین RJ11 این کار را می کند.

من از شکست RJ12 نشان داده شده در تصویر استفاده کردم. کمی گسترده است و فضای زیادی در اطراف پورت P1 در متر من وجود ندارد. مناسب است ، اما محکم است. متناوباً ، فقط می توانید از کابل RJ11 یا RJ12 استفاده کنید و هدر را در یک انتهای آن جدا کنید.

اگر برش را مانند تصویر نگه دارید ، پین ها از راست به چپ شماره گذاری شده اند و معنی زیر را دارند:

  • پین 1: منبع تغذیه 5 ولت
  • پین 2: درخواست داده
  • پین 3: Data Ground
  • پین 4: متصل نیست
  • پین 5: خط داده
  • پین 6: زمین قدرت

از پین 1 و پین 6 می توان برای تغذیه ESP8266 استفاده کرد ، اما من این را آزمایش نکرده ام. شما باید پین 1 را به Vin ESP8266 وصل کنید ، بنابراین تنظیم کننده ولتاژ داخلی برد برای کاهش ولتاژ از 5V به 3.3V که ESP8266 قبول می کند استفاده می شود. بنابراین آن را به پین 3.3 ولت وصل نکنید ، زیرا ممکن است به ESP8266 آسیب برساند. همچنین تغذیه از پورت P1 به مرور زمان باتری کنتور دیجیتال را خالی می کند.

تنظیم پین 2 بالا به متر سیگنال می دهد تا تلگرام داده را در هر ثانیه ارسال کند. داده های واقعی بر روی پین 5 با نرخ باتری 115200 برای یک متر دیجیتال مدرن (DSMR 4 و 5) ارسال می شود. سیگنال برعکس است (کم 1 و زیاد 0 است). برای نوع قدیمی تر (DSMR 3 و کمتر) نرخ 9600 باود است. برای چنین متر باید نرخ باود را در کد سیستم عامل مرحله بعد تغییر دهید: خط Serial.begin (115200) را تغییر دهید. در راه اندازی ().

نقش ترانزیستور NPN دو برابر است:

  • برای معکوس کردن سیگنال تا ESP8266 بتواند آن را درک کند.
  • برای تغییر سطح منطقی از 5 ولت پورت P1 به 3.3 ولت مورد انتظار پورت RX ESP8266.

بنابراین همانطور که در نمودار است ، مدار الکترونیکی را روی نانبرد ایجاد کنید. خازن ثبات را افزایش می دهد ، اما بدون آن نیز کار می کند.

اتصال پین RX را متوقف کنید تا ESP8266 را در مرحله بعدی برنامه ریزی کنید. در واقع ، پین RX برای ارتباط از طریق USB بین ESP8266 و رایانه شما نیز لازم است.

مرحله 4: کد را بارگذاری کنید

من کد را در GitHub در دسترس قرار دادم ، فقط یک فایل است: P1-Meter-Reader.ino. کافی است آن را بارگیری کرده و در Arduino IDE باز کنید. یا می توانید File - New را انتخاب کنید و فقط کد را کپی/جایگذاری کنید.

اطلاعاتی را باید در ابتدای فایل وارد کنید: نام و رمز عبور WLAN برای استفاده ، و شناسه کانال و نوشتن کلید API کانال ThingSpeak.

کد موارد زیر را انجام می دهد:

  • هر UPDATE_INTERVAL (بر حسب میلی ثانیه) یک تلگرام داده را از متر می خواند. مقدار پیش فرض هر 10 ثانیه است. به طور معمول ، هر ثانیه یک تلگرام داده از متر وجود دارد ، اما تنظیم فرکانس روی زیاد ESP8266 را بیش از حد بار می کند ، بنابراین دیگر نمی تواند سرور وب را اجرا کند.
  • داده های برق را هر SEND_INTERVAL (در میلی ثانیه) به کانال Thingspeak بارگذاری می کند. مقدار پیش فرض هر دقیقه است. برای تصمیم گیری در مورد این فرکانس توجه داشته باشید که ارسال داده ها زمان می برد (معمولاً چند ثانیه) و محدودیتی برای فرکانس به روز رسانی در Thingspeak برای یک حساب رایگان وجود دارد. این حدود 8200 پیام در روز است ، بنابراین اگر از Thingspeak برای چیزهای دیگر استفاده نکنید ، حداکثر فرکانس آن هر 10 ثانیه است.
  • هنگام تغییر داده های گاز ، بارگذاری می شود. به طور معمول ، کنتور اطلاعات مصرف گاز را فقط هر 4 دقیقه یا بیشتر به روز می کند.
  • کنتور مقدار مصرف و تزریق کل را از ابتدا پیگیری می کند. بنابراین برای به دست آوردن میزان مصرف روزانه و تزریق ، کد هر روز در نیمه شب کل مقادیر را ذخیره می کند. سپس این مقادیر از مقادیر کل فعلی کم می شوند. مقادیر نیمه شب در SPIFFS (سیستم فایل فلش SPI) ذخیره می شوند ، که در صورت قطع برق ESP8266 یا حتی زمانی که دوباره برنامه ریزی می شود ، ادامه می یابد.
  • ESP8266 یک مینی وب سرور اجرا می کند. اگر آدرس IP آن را در مرورگر خود باز کنید ، یک نمای کلی از تمام مقادیر فعلی برق و گاز دریافت می کنید. اینها از جدیدترین تلگرام هستند و شامل اطلاعاتی هستند که در Thingspeak بارگذاری نمی شوند ، مانند ولتاژها و جریانات در هر فاز. تنظیم پیش فرض این است که آدرس IP به طور پویا توسط روتر شما تعیین می شود. اما استفاده از آدرس IP ثابت که همیشه یکسان است راحت تر است. در این حالت شما باید staticIP ، gateway ، dns و subnet را در کد پر کرده و خط WiFi.config (staticIP ، dns ، gateway ، subnet) را از حالت کامنت خارج کنید. در تابع connectWifi ().

پس از انجام این تغییرات ، آماده بارگذاری سیستم عامل در ESP8266 هستید. ESP8266 را از طریق کابل USB به رایانه خود وصل کنید و نماد را با پیکان در Arduino IDE فشار دهید. اگر نمی توانید به ESP8266 متصل شوید ، پورت COM را در منوی Tools - Port تغییر دهید. اگر هنوز کار نکرد ، ممکن است مجبور باشید درایور را برای درگاه USB COM مجازی به صورت دستی نصب کنید.

مرحله 5: آزمایش

پس از بارگذاری سیستم عامل ، USB را جدا کرده و سیم RX ESP8266 را وصل کنید. به یاد داشته باشید ، ما برای بارگذاری سیستم عامل به کانال RX ESP8266 نیاز داشتیم ، بنابراین قبلاً آن را وصل نکردیم. حالا بریکت RJ12 را به متر دیجیتال وصل کرده و ESP8266 را دوباره به رایانه خود وصل کنید.

در Arduino IDE ، Serial Monitor را از طریق منوی Tools باز کنید و مطمئن شوید که روی 115200 baud تنظیم شده است. اگر مجبور به تغییر نرخ باود هستید ، شاید لازم باشد قبل از کار Serial Monitor را ببندید و دوباره باز کنید.

حالا باید خروجی کد را در Serial Monitor ببینید. باید بررسی کنید که آیا پیغام خطایی وجود دارد یا خیر. همچنین ، باید بتوانید تلگرام ها را ببینید. برای من آنها شبیه این هستند:

/FLU5 / xxxxxxxxx

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // شماره سریال هگزا دسیمال 0-0: 1.0.0 (200831181442S) // Timestamp S: صرفه جویی در روز (تابستان) ، W: شماره صرفه جویی در روز (زمستان) 1-0: 1.8.1 (000016.308*کیلووات ساعت) // مجموع حداکثر مصرف خالص 1-0: 1.8.2 (000029.666*کیلووات ساعت) // کل مصرف خالص خارج از پیک 1-0: 2.8.1 (000138.634*کیلووات ساعت) // کل حداکثر تزریق خالص 1-0: 2.8.2 (000042.415*کیلووات ساعت) // تزریق خالص خالص 0-0: 96.14.0 (0001) // تعرفه 1: پیک ، 2: خارج از پیک 1-0: 1.7.0 (00.000*کیلو وات) // مصرف جاری 1-0: 2.7.0 (00.553*کیلو وات) // تزریق جریان 1-0: 32.7.0 (235.8*V) // فاز 1 ولتاژ 1-0: 52.7.0 (237.0*V) // ولتاژ فاز 2 1-0: 72.7.0 (237.8*V) // ولتاژ فاز 3 1-0: 31.7.0 (001*A) // فاز 1 فعلی 1-0: 51.7.0 (000*A) // فاز 2 فعلی 1-0: 71.7.0 (004*A) // فاز 3 فعلی 0-0: 96.3.10 (1) 0-0: 17.0.0 (999.9*کیلو وات) // حداکثر قدرت 1-0: 31.4.0 (999*A) // حداکثر جریان 0-0: 96.13.0 () // پیام 0-1: 24.1.0 (003) // سایر دستگاههای موجود در M-bus 0-1: 96.1.1 (37464C4F32313230313037393338) // شماره سریال mete mete r hexadecimal 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615*m3) // زمان مصرف کل زمان گاز! E461 // CRC16 جمع چک

اگر مشکلی وجود دارد ، می توانید بررسی کنید که آیا تگ های یکسانی دارید یا خیر و احتمالاً باید کد تجزیه تلگرام در عملکرد readTelegram را تغییر دهید.

اگر همه چیز کار کرد ، می توانید esp8266 را از شارژر USB تغذیه کنید.

برنامه IoT ThingSpeak Monitor را روی تلفن هوشمند خود نصب کنید ، شناسه کانال را پر کرده و کلید API را بخوانید و کارتان تمام شد!

توصیه شده: