دراجات من شاشة الطاقة PZEM004T و ESP8266 ، مع مراقبة الشعب

تساءلت - أين يذهب التيار من الأسلاك؟ يبدو أننا غرقنا المنزل بالغاز ، في المنزل ، جميع المصابيح ديود ، ونشغل غسالة الصحون ليلًا ، ولا توجد حمامات ساونا بها موقد كهربائي حتى الآن ، والكهرباء تنفجر طوال الوقت. الفوضى. سيكون من الضروري متابعته.
مرحبا بكم في القط ...


الخطوة الأولى هي المراقبة العامة للاستهلاك


المهام


قررت البدء في البحث عن قطيع من الأرانب. تم اختيار حارس:

  • مراقبة الكهرباء عبر الإنترنت. لدي مراقبة فورية لمعلمات الشبكة - في الممر ، يوجد في اللوحة شاشة PZEM061 للطاقة ، على الشاشة يمكنك رؤية الجهد والتيار والطاقة. ولكن في مكان عرض الطاقة المستهلكة - نوع من التجريد ، عدد قليل جدًا من التصريفات. لكن الممر غير مريح. اريد على شاشة الهاتف
  • الرسم البياني لاستهلاك الكهرباء. أود أن أعرف متى يحدث الاستهلاك المفرط؟
  • قراءات العدادات عبر الإنترنت. هذا الألم هو نقل قراءات العدادات إلى مبيعات الطاقة. من الضروري تقديم أدلة لهم من اليوم الخامس عشر إلى الخامس والعشرين من الشهر. كثيرا ما أنسى الأمر وبدأوا في استدعاء الروبوت وكتابة البريد المزعج. علاوة على ذلك ، عندما يذكرون أنفسهم - عادة ما أذهب إلى العمل ، ولدي عداد في منشور في الشارع. اريد على شاشة الهاتف
  • رصد درجة حرارة استقرار. في قريتنا في فصل الشتاء لا يوجد أكثر من 200 فولت عند مدخل المنزل ، يصل إلى 140 فولت. لذلك ، ليس لدي عامل استقرار بقدرة 12 كيلو وات ، ولكن مع هذه المعلمات وتحميل طويل من 2 كيلو وات ومع مراعاة موقع المثبت في مكانه على الحائط ، ترتفع درجة حرارة المثبت وتوقف تشغيله ، اضطررت إلى إضافة زوجين من المراوح (مع بقاء درجة الحرارة ضمن حدود مقبولة) - تم تشغيلهما مسبقًا باستمرار ، الآن العجن - وضع الحرارة KSD9700 على 65G ، ونحن في انتظار فصل الشتاء. لا أريد مراقبة هذه المعلمة ، لأن لا أستطيع التأثير عليه. ولكن بعد إضافة منظمات الحرارة - تحتاج إلى التحكم في النتيجة.

حديد


لحل المهام التي تم اختيارها:

  • PZEM004T - مراقبة الطاقة مع UART. يتيح لك الحصول على معلمات شبكة الطاقة - معلمة واحدة كل 0.6 ثانية: الجهد ، التيار ، الطاقة ، الطاقة المستهلكة ، وكذلك عامل التردد والطاقة الذي لا أحتاج إليه. تستخدم مع محول القياس 1: 1000.
  • يمكن توصيل ESP8266 NodeMCU - متحكم عالمي مع WiFi ، يتناسب بشكل جيد مع PZEM004T في الحجم - عن طريق الرفوف باستخدام الثقوب المتوفرة على اللوحات. يوجد أيضًا زر Flash مفيد على لوحة NodeMCU (متصل بـ GPIO0) - إنه مناسب لاستخدامه للتحكم في وضع التشغيل - على سبيل المثال ، لتمكين SoftAP.

بالنظر إلى حقيقة أن الجهاز سوف يوضع في حاوية معدنية للمثبت - ملحوم هوائي خارجي ل ESP. حاولت تشغيل ESP من PZEM004T (لحام الأسلاك إلى المكثف المستدير - إنه حوالي 7 فولت) - لم ينجح ذلك ، عندما قمت بتوصيل ESP ، ينخفض ​​الجهد إلى 2V. لكن المثبت لديه بالفعل مصدر طاقة 5 فولت - للجماهير ، مما يعني أنه سيتم استخدامه (اعتقدت أنه كان 12 فولت ، لذلك عانيت لفترة طويلة من توصيل ESP به) - لم ينجح ذلك في أي وقت ، لقد جربت مجموعة من محولات DC-DC حتى قمت بتشغيلها BP ولم تقرأ نقش عليها).



إدراج


نظرت إلى المتاحة على الشبكة. كالعادة ، لم أجد واحدة مناسبة وقررت أن أكتب بلدي.
أخذت مشروعي الخاص لترحيل Sonoff كقاعدة (أبسط الوظائف ، تشغيله وإيقافه عبر HTTP وعبر زر ، لا يمكن أن يفعل أي شيء آخر ؛ يتم استخدامه مع MacroDroid لتشغيل الهاتف بشكل متناثر مع شاشة دائمة - البطارية السابقة تم تفجيرها بواسطة شحنة ثابتة وضغط الشاشة ). ولكن بالإضافة إلى وظيفة الترحيل ، يحتوي التجميع على خادم http ، و WiFi ، وإعدادات NTP ، ويعمل مع زر GPIO0 - إجراءات مختلفة عن مدة الضغط ، والوميض في أي ضوء (على سبيل المثال ، حساب ثواني الضغط على زر ، ويعكس حالة الترحيل و WiFi) ...

بطبيعة الحال ، قمت بتعديل الإعدادات قليلاً:



نظرت إلى المكتبة الحالية للعمل مع PZEM004T - لم يعجبني. إنها ترسل طلبًا ، ثم في حلقة مغلقة تنتظر الرد. هذا ليس صحيحا. كتبت مكتبتي ، غير متزامن - أخبرها من البرنامج الرئيسي عن المعلمات التي أريد الحصول عليها ، ثم أتحقق دوريًا مما إذا كانت البيانات المطلوبة قد تم استلامها:

قانون
static PZEM004Tnb::flags flags = PZEM004Tnb::flags::all; static unsigned long lastReadEnergyTime = 0; if (Pzem004t.isDataUpdated()) { setLedState(3); //       // ... unsigned long currentTime = millis(); if ((currentTime - lastReadEnergyTime) > 6000) { //   1    flags = PZEM004Tnb::flags::all; lastReadEnergyTime = currentTime; }else{ flags = (PZEM004Tnb::flags)(PZEM004Tnb::flags::all ^ PZEM004Tnb::flags::energy); } } Pzem004t.updateData(flags); 


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

يضاف إلى نظام العمل مع مجموعة من أجهزة الاستشعار DS18B20. تتم قراءة البيانات بدورها مع فترة 2 ثانية لكل جهاز استشعار. أي نحن نبحث عن جهاز استشعار ، وجدنا - نحن نتلقى البيانات ، وبعد ثانيتين نحن نبحث عن التالي ، الخ أجهزة الاستشعار المنتهية - تبدأ من البداية. أي عند استخدام جهاز استشعار واحد فقط ، تكون فترة الاقتراع 4 ثوانٍ. بالنسبة لهذه المستشعرات ، تم حساب متوسط ​​القيم أيضًا.

يمكن الحصول على بيانات مراقبة الطاقة الحالية عبر HTTP:



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

نفذت نشر البيانات باستخدام بروتوكول MQTT / UDP . دعم إضافي لهذا البروتوكول ومستشعر PZEM004T لجهاز العرض الخاص بي:


هذا هو مشروع التحكم في درجة الحرارة الفاشلة ( Fiasco. قصة منتج IoT محلي الصنع ) ، والذي قررت تركه فقط كشاشة.

نفذت نشر بيانات عن مراقبة الناس :



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


من الممكن أيضًا الإبلاغ عن حالة أجهزة الاستشعار (نقل البيانات المعطلة مؤقتًا للاختبار):


بطبيعة الحال ، أضفت إعدادات نشر البيانات:


النتائج


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

عندما يتم جمع إحصائيات للمخططات ، سوف أتخذ خطوات إضافية.

الذي يريد الحصول على عقد مثل هذه الطاقة - في حساب شخصي للبرامج الثابتة (الهدية الترويجية ، يا سيدي!).

PS


عند تطوير الجهاز ، صادفت التصوف - عندما يتم تشغيل ESP من كمبيوتر USB ، ومن أي رسوم هاتف ، يعمل كل شيء. عند تشغيله بواسطة PSU مضمن - لا يعمل. لقد استخدمت محلل منطقي و simplescope للتحقيق - يبدو أن القوة من الكتلة الزرقاء صحيحة ، والإشارات الصادرة عن ESP صحيحة ، والصمت الخلفي. مصدر طاقة آخر - كل شيء يعمل بشكل جيد.

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

PPS


بالنسبة لأولئك الذين يريدون جعل أنفسهم مثل هذا الجهاز (وهناك مثل هؤلاء الأبطال!):
الوصف في كتالوج أجهزة المراقبة الوطنية

Source: https://habr.com/ru/post/ar453472/


All Articles