قراءة عداد المياه: ESP8266 + Android

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

مقدمة


جاءتني فكرة التنفيذ بعد قراءة هذا المقال. أثناء الإصلاح ، قمت على الفور بتعيين عدادات النبض. تم إنشاء الإصدار الأول من الجهاز على أساس ESP-03. الرمز مكتوب بلغة LUA. تم إرسال البيانات أيضًا إلى Thingspeak.com .

الإصدار الأول


بعد شهرين من الاستخدام ، تم تحديد العيوب التالية:

  1. لم يكن هناك إشارة خفيفة للعملية ، حيث كانت الوحدة معلقة بضع مرات ، كانت مهمة
  2. تعقيد الإعدادات ، لأن الإعدادات كانت في التعليمات البرمجية
  3. للحصول على الطاقة ، كان هناك حاجة إلى سلك مع موصل miniUSB. كان لدي هذا فقط من سوني بلاي ستيشن
  4. غير مريح لعرض النتائج على Thingspeak.com
  5. التعقيد النسبي للتنفيذ.

لذلك ، تقرر عمل النسخة الثانية التي تلبي المتطلبات التالية:

  1. موصل طاقة MicroUSB
  2. قم بإجراء التكوين من خلال الاتصال بالجهاز عبر WiFi
  3. إشارة العمل
  4. راحة عرض المعلومات
  5. سهولة التكرار
  6. المظهر الجمالي
  7. تكلفة منخفضة

الرسوم


لوحة الدوائر بسيطة للغاية. لأنه يقوم على نفس ESP-03. ساعدني موقع esp8266.ru في الميزات الرئيسية للاتصال .



بارد ، ساخن - مقابس RJ9
LED1 - يعمل على الإشارة إلى تشغيل اللوحة (وضع الإعداد - قيد التشغيل باستمرار ، خطأ - وميض متكرر ، تشغيل عادي - وامض مرة واحدة في الثانية)
LED2 - يشير إلى مصدر الطاقة
R3 ، R4 - 330 أوم
R1 ، R2 ، R5 ، R6 ، R7 - 6.8kOhm
C1 - مكثف التنتالوم 33mkF ؛
C2 - مكثف خزفي 0.1mkF ؛
LM1117 - لتحويل 5V إلى 3.3V ؛
J1 - وصلة وميض ESP-03
BTN - لاختيار وضع تشغيل اللوحة

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

تجعل أبعاد المكونات من السهل إنشاء لوحة باستخدام طريقة LUT ، والتي تم إجراؤها لتصحيح أخطاء البرامج النصية. في وقت لاحق ، أمرت بتصنيع الألواح من الصينيين . تم تعديل حجم اللوحة لتناسب الحالة الحالية.

صور قبل التثبيت:

الصورة


الصورة بعد:



البرامج الثابتة


جمعت البرامج الثابتة باستخدام المنشئ عبر الإنترنت . يجعل من الممكن إنشاء برنامج NodeMCU الثابت فقط مع الوحدات الضرورية ، مما يسمح لك بزيادة حجم الذاكرة الخالية. لم أواجه مشكلة في نقص الذاكرة ، ونتيجة لذلك ، تم إنفاق حوالي 30 ٪ من المساحة الخالية على النصوص والملفات المساعدة. لقد قمت بتحميل البرامج الثابتة باستخدام nodemcu-flasher . استخدمت برنامج ESPlorer لكتابة وتعبئة النصوص .

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

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



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

تطبيق Android


كما قلت ، لم أكن مرتاحًا في القراءات على موقع Thingspeak.com . قررت أن أكتب تطبيق أندرويد. والنتيجة هي تطبيق يتيح لك:

  • إنشاء الرسوم البيانية للاستهلاك حسب الساعات والأيام والأشهر
  • الوصول إلى البيانات دون اتصال
  • إضافة أداة المقاييس

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

لقطات شاشة التطبيق


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

الخلاصة


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

روابط مفيدة:

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


All Articles