جدول المحتويات:

اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak: 5 خطوات
اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak: 5 خطوات

فيديو: اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak: 5 خطوات

فيديو: اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak: 5 خطوات
فيديو: الربع يطلق النار 😱💔🔥 2024, يوليو
Anonim
اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak
اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak
اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak
اقرأ عداد الكهرباء والغاز (بلجيكي / هولندي) وقم بتحميله على موقع Thingspeak

إذا كنت قلقًا بشأن استهلاكك للطاقة أو مجرد شخص غريب الأطوار ، فربما ترغب في رؤية البيانات من عدادك الرقمي الجديد الرائع على هاتفك الذكي.

في هذا المشروع ، سنحصل على البيانات الحالية من عداد كهرباء وغاز رقمي بلجيكي أو هولندي ، ثم نقوم بتحميله على موقع Thingspeak. تتضمن هذه البيانات استهلاك الطاقة الحالي واليومي والحقن (إذا كان لديك ألواح شمسية) ، والفولتية والتيارات ، واستهلاك الغاز (في حالة توصيل عداد الغاز الرقمي بعداد الكهرباء). من خلال أحد التطبيقات ، يمكن قراءة هذه القيم في الوقت الفعلي على هاتفك الذكي.

إنه يعمل مع عداد رقمي بلجيكي أو هولندي يتبع بروتوكول DSMR (متطلبات العداد الذكي الهولندي) ، والذي يجب أن يكون جميع المقاييس حديثة. إذا كنت تعيش في مكان آخر ، لسوء الحظ ، فمن المحتمل أن يستخدم جهاز القياس الخاص بك بروتوكولًا آخر. لذلك أخشى أن Instructable هذا مقيد إقليميًا بعض الشيء.

سنستخدم منفذ P1 للمقياس ، والذي يقبل كبل RJ11 / RJ12 ، المعروف بالعامية باسم كبل الهاتف. تأكد من قيام مُثبت العداد بتنشيط منفذ P1. على سبيل المثال ، بالنسبة إلى Fluvius في بلجيكا ، اتبع هذه التعليمات.

لمعالجة البيانات وتحميلها إلى الإنترنت ، نستخدم ESP8266 ، وهي شريحة ميكروية رخيصة مزودة بشبكة wifi مدمجة. يكلف ما يقرب من 2 دولار فقط. علاوة على ذلك ، يمكن برمجتها باستخدام Arduino IDE. نقوم بتخزين البيانات في السحابة على موقع Thingspeak ، وهو مجاني بحد أقصى أربع قنوات. بالنسبة لهذا المشروع ، نستخدم قناة واحدة فقط. يمكن بعد ذلك عرض البيانات على هاتفك الذكي باستخدام تطبيق مثل IoT ThingSpeak.

القطع:

  • واحد ESP8266 ، مثل nodemcu v2. لاحظ أن nodemcu v3 واسع جدًا بالنسبة للوح قياسي ، لذلك أفضل الإصدار 2.
  • كابل micro USB إلى USB.
  • شاحن USB.
  • ترانزستور BC547b NPN.
  • مقاومين 10 كيلو ومقاوم 1 كيلو.
  • موصل طرفي برغي واحد RJ12.
  • لوح التجارب.
  • أسلاك العبور.
  • اختياري: مكثف واحد 1nF.

في المجموع ، يكلف هذا ما يقرب من 15 يورو على AliExpress أو ما شابه ذلك. يأخذ التقدير في الاعتبار أن بعض المكونات مثل المقاومات والترانزستورات والأسلاك تأتي بكميات أكبر بكثير مما تحتاجه لهذا المشروع. لذلك إذا كان لديك بالفعل مجموعة مكونات ، فستكون أرخص.

الخطوة 1: التعرف على ESP8266

لقد اخترت NodeMCU v2 ، نظرًا لعدم الحاجة إلى لحام وله اتصال USB صغير يسمح ببرمجة سهلة. تتمثل ميزة NodeMCU v2 على NodeMCU v3 في أنها صغيرة بما يكفي لتلائم لوح التجارب وتترك ثقوبًا مجانية في الجانب لإجراء الاتصالات. لذلك من الأفضل تجنب NodeMCU v3. ومع ذلك ، إذا كنت تفضل لوحة ESP8266 أخرى ، فهذا جيد أيضًا.

يمكن برمجة ESP8266 بسهولة باستخدام Arduino IDE. هناك تعليمات أخرى تشرح هذا بالتفصيل لذا سأكون موجزًا جدًا هنا.

  • قم أولاً بتنزيل Arduino IDE.
  • ثانيًا ، قم بتثبيت الدعم للوحة ESP8266. في ملف القائمة - التفضيلات - الإعدادات أضف عنوان URL https://arduino.esp8266.com/stable/package_esp8266com_index.json إلى عناوين URL الإضافية لمدير مجلس الإدارة. التالي في القائمة Tools - Board - Boards Manager قم بتثبيت esp8266 بواسطة مجتمع esp8266.
  • ثالثًا ، حدد اللوحة الأقرب إلى ESP8266. في حالتي ، اخترت NodeMCU v1.0 (وحدة ESP 12-E).
  • أخيرًا ، حدد ضمن أدوات - حجم الفلاش ، وهو حجم يتضمن SPIFFS ، مثل 4M (1M SPIFFS). في هذا المشروع ، نستخدم SPIFFS (نظام ملفات فلاش SPI) لتخزين قيم الطاقة اليومية ، بحيث لا تضيع إذا فقدت ESP8266 الطاقة وحتى عند إعادة برمجتها.

الآن لدينا كل شيء في مكانه الصحيح لبرمجة ESP8266! سنناقش الكود الفعلي في خطوة لاحقة. سنقوم أولاً بعمل حساب على موقع Thingspeak.

الخطوة 2: إنشاء حساب وقناة على موقع Thingspeak

اذهب إلى https://thingspeak.com/ وأنشئ حسابًا. بمجرد تسجيل الدخول ، انقر فوق الزر قناة جديدة لإنشاء قناة. في إعدادات القناة ، قم بملء الاسم والوصف كما تريد. بعد ذلك ، نقوم بتسمية حقول القناة وتنشيطها بالنقر فوق مربعات الاختيار الموجودة على اليمين. إذا كنت تستخدم الكود الخاص بي دون تغيير ، فستكون الحقول كما يلي:

  • حقل 1: ذروة الاستهلاك اليوم (كيلو وات ساعة)
  • الحقل 2: الاستهلاك خارج الذروة اليوم (كيلوواط ساعة)
  • حقل 3: ذروة الحقن اليوم (كيلو وات ساعة)
  • الحقل 4: الحقن خارج الذروة اليوم (كيلو وات ساعة)
  • حقل 5: الاستهلاك الحالي (W)
  • الحقل 6: الحقن الحالي (W)
  • الحقل 7: استهلاك الغاز اليوم (م 3)

هنا ، الذروة وخارج أوقات الذروة تشير إلى تعرفة الكهرباء. في الحقلين 1 و 2 يشير الاستهلاك إلى صافي استهلاك الكهرباء اليوم: استهلاك الكهرباء اليوم في فترة التعريفة منذ منتصف الليل مطروحًا منه حقن الكهرباء (التي تنتجها الألواح الشمسية) اليوم في فترة التعريفة منذ منتصف الليل بحد أدنى صفر. هذا الأخير يعني أنه إذا كان هناك حقن أكثر من الاستهلاك اليوم فإن القيمة تساوي صفرًا. وبالمثل ، يشير الحقن في الحقلين 3 و 4 إلى الحقن الصافي للكهرباء. يشير الحقلان 5 و 6 إلى صافي الاستهلاك والحقن في الوقت الحالي. أخيرًا الحقل 7 هو استهلاك الغاز منذ منتصف الليل.

للرجوع إليها في المستقبل ، قم بتدوين معرف القناة ، ومفتاح واجهة برمجة التطبيقات للقراءة ، ومفتاح واجهة برمجة التطبيقات للكتابة ، والتي يمكن العثور عليها في مفاتيح قائمة API.

الخطوة الثالثة: بناء الدائرة الإلكترونية

بناء الدائرة الالكترونية
بناء الدائرة الالكترونية
بناء الدائرة الالكترونية
بناء الدائرة الالكترونية

نقرأ عداد الكهرباء باستخدام منفذ P1 ، والذي يأخذ كابل RJ11 أو RJ12. الفرق هو أن كبل RJ12 يحتوي على 6 أسلاك بينما يحتوي RJ11 على 4 أسلاك فقط في هذا المشروع ، لا نقوم بتشغيل ESP8266 من منفذ P1 ، لذلك نحتاج في الواقع إلى 4 أسلاك فقط ، لذا فإن RJ11 سيفي بالغرض.

لقد استخدمت الاختراق RJ12 الموضح في الصورة. إنه عريض قليلاً ولا توجد مساحة كبيرة حول منفذ P1 في العداد الخاص بي. تناسبها ، لكنها ضيقة. بدلاً من ذلك ، يمكنك فقط استخدام كبل RJ11 أو RJ12 وفصل الرأس في أحد طرفيه.

إذا قمت بإمساك الفاصل كما في الصورة ، فإن الدبابيس مرقمة من اليمين إلى اليسار ولها المعنى التالي:

  • دبوس 1: مصدر طاقة 5 فولت
  • دبوس 2: طلب البيانات
  • دبوس 3: أرضية البيانات
  • دبوس 4: غير متصل
  • دبوس 5: خط البيانات
  • دبوس 6: الأرض السلطة

يمكن استخدام Pin 1 و Pin 6 لتشغيل ESP8266 ، لكنني لم أختبر ذلك. سيتعين عليك توصيل Pin 1 بـ Vin في ESP8266 ، لذلك يتم استخدام منظم الجهد الداخلي للوحة لتقليل الجهد من 5 فولت إلى 3.3 فولت الذي يقبله ESP8266. لذلك لا تقم بتوصيله بالدبوس 3.3 فولت ، لأن ذلك قد يؤدي إلى تلف ESP8266. كما أن التشغيل من منفذ P1 سيؤدي بمرور الوقت إلى استنزاف بطارية العداد الرقمي.

يشير ضبط الدبوس 2 عاليًا إلى جهاز القياس لإرسال برقيات البيانات كل ثانية. يتم إرسال البيانات الفعلية عبر Pin 5 بمعدل باود 115200 لمقياس رقمي حديث (DSMR 4 و 5). تنعكس الإشارة (المنخفض هو 1 وارتفاعه 0). بالنسبة للنوع الأقدم (DSMR 3 وأقل) ، فإن المعدل هو 9600 باود. لمثل هذا المقياس ، يجب عليك تغيير معدل البث بالباود في كود البرنامج الثابت للخطوة التالية: تغيير الخط Serial.begin (115200) ؛ في الإعداد ().

دور ترانزستور NPN ذو شقين:

  • لعكس الإشارة حتى يتمكن ESP8266 من فهمها.
  • لتغيير مستوى المنطق من 5V للمنفذ P1 إلى 3.3V المتوقع بواسطة منفذ RX الخاص بـ ESP8266.

لذلك قم بإنشاء الدائرة الإلكترونية على اللوح كما في الرسم التخطيطي. يزيد المكثف من الثبات ، لكنه يعمل أيضًا بدونه.

توقف عن توصيل دبوس RX حتى تنتهي من برمجة ESP8266 في الخطوة التالية. في الواقع ، هناك حاجة أيضًا إلى دبوس RX للاتصال عبر USB بين ESP8266 وجهاز الكمبيوتر الخاص بك.

الخطوة 4: قم بتحميل الكود

لقد جعلت الكود متاحًا على GitHub ، إنه ملف واحد فقط: P1-Meter-Reader.ino. فقط قم بتنزيله وافتحه في Arduino IDE. أو يمكنك تحديد ملف - جديد ونسخ / لصق الكود فقط.

هناك بعض المعلومات التي يجب عليك ملؤها في بداية الملف: اسم وكلمة مرور شبكة WLAN المراد استخدامها ومعرف القناة ومفتاح واجهة برمجة تطبيقات الكتابة لقناة ThingSpeak.

يقوم الكود بما يلي:

  • يقرأ برقية بيانات من جهاز القياس كل UPDATE_INTERVAL (بالمللي ثانية). القيمة الافتراضية هي كل 10 ثوانٍ. عادة ، هناك برقية بيانات من جهاز القياس كل ثانية ، ولكن ضبط التردد على مرتفع سيؤدي إلى زيادة التحميل على ESP8266 بحيث لا يمكن تشغيل خادم الويب بعد الآن.
  • يقوم بتحميل بيانات الكهرباء إلى قناة Thingspeak كل SEND_INTERVAL (بالمللي ثانية). القيمة الافتراضية هي كل دقيقة. لاتخاذ قرار بشأن هذا التردد ، ضع في الاعتبار أن إرسال البيانات يستغرق بعض الوقت (عادةً بضع ثوانٍ) وأن هناك حدًا لتكرار التحديث على موقع Thingspeak للحصول على حساب مجاني. إنه حوالي 8200 رسالة في اليوم ، لذا سيكون الحد الأقصى للتردد مرة واحدة كل 10 ثوانٍ إذا لم تستخدم Thingspeak لأي شيء آخر.
  • يقوم بتحميل بيانات الغاز عندما يتغير. عادةً ما يقوم العداد بتحديث بيانات استهلاك الغاز فقط كل 4 دقائق أو نحو ذلك.
  • يتتبع العداد إجمالي قيم الاستهلاك والحقن منذ البداية. لذلك للحصول على الاستهلاك اليومي والحقن ، يحفظ الكود القيم الإجمالية عند منتصف الليل كل يوم. ثم يتم طرح هذه القيم من القيم الإجمالية الحالية. يتم تخزين القيم في منتصف الليل في SPIFFS (نظام ملفات فلاش SPI) ، والتي تستمر إذا فقدت ESP8266 الطاقة أو حتى عند إعادة برمجتها.
  • يقوم ESP8266 بتشغيل خادم ويب صغير. إذا فتحت عنوان IP الخاص به في متصفحك ، فستحصل على نظرة عامة على جميع قيم الكهرباء والغاز الحالية. هذه من أحدث برقية وتتضمن معلومات لم يتم تحميلها على موقع Thingspeak ، مثل الفولتية والتيارات لكل مرحلة. الإعداد الافتراضي هو أن عنوان IP يتم تحديده ديناميكيًا بواسطة جهاز التوجيه الخاص بك. ولكن من الأنسب استخدام عنوان IP ثابت ، والذي يكون دائمًا هو نفسه. في هذه الحالة ، يجب عليك ملء staticIP ، و gateway ، و dns ، والشبكة الفرعية في الكود وإلغاء التعليق على الخط 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 من خلال قائمة الأدوات وتأكد من ضبطه على 115200 باود. إذا كان عليك تغيير معدل الباود ، فربما تحتاج إلى إغلاق وإعادة فتح Serial Monitor مرة أخرى قبل أن يعمل.

الآن يجب أن ترى إخراج الكود في Serial Monitor. يجب عليك التحقق مما إذا كانت هناك أية رسائل خطأ. أيضًا ، يجب أن تكون قادرًا على رؤية البرقيات. بالنسبة لي تبدو هكذا:

/ FLU5 / xxxxxxxxx_x

0-0: 96.1.4 (50213) 0-0: 96.1.1 (3153414733313030313434363235) // مقياس الرقم التسلسلي السداسي العشري 0-0: 1.0.0 (200831181442S) // الطابع الزمني S: التوقيت الصيفي (الصيف) ، W: لا التوفير الصيفي (الشتاء) 1-0: 1.8.1 (000016.308 * kWh) // إجمالي صافي استهلاك الذروة 1-0: 1.8.2 (000029.666 * kWh) // إجمالي صافي الاستهلاك خارج الذروة 1-0: 2.8.1 (000138.634 * kWh) // إجمالي صافي حقنة الذروة 1-0: 2.8.2 (000042.415 * kWh) // إجمالي صافي الحقن خارج الذروة 0-0: 96.14.0 (0001) // التعريفة 1: الذروة ، 2: خارج الذروة 1-0: 1.7.0 (00.000 * kW) // الاستهلاك الحالي 1-0: 2.7.0 (00.553 * kW) // الحقن الحالي 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 * kW) // أقصى قوة 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 gas r سداسي عشري 0-1: 24.4.0 (1) 0-1: 24.2.3 (200831181002S) (00005.615 * m3) // إجمالي استهلاك الطابع الزمني للغاز! E461 // CRC16 المجموع الاختباري

إذا كان هناك شيء خاطئ ، يمكنك التحقق مما إذا كان لديك نفس العلامات وربما يتعين عليك تغيير الكود عند تحليل البرقيات في وظيفة readTelegram.

إذا كان كل شيء يعمل ، يمكنك الآن تشغيل esp8266 من شاحن USB.

قم بتثبيت تطبيق IoT ThingSpeak Monitor على هاتفك الذكي ، وقم بملء معرف القناة وقراءة مفتاح واجهة برمجة التطبيقات (API) وفعلت ذلك!

موصى به: