
مشروع لقراءة قراءات عدادات العداد الذكي ، اكتب في قاعدة بيانات وتصور.



data Folder مع عدادات قديمة خاصة تم إدخالها لاحقًا في قاعدة البيانات. يحتوي python على البرامج النصية Python التي يتم استخدامها لقراءة موقف العداد.
يتم استخدام نموذج Raspberry Pi . يرتبط اثنان من قراء الأشعة تحت الحمراء بهذا عبر USB. النظام هنا: Weidmann Elektronik المفروشة المفروشات الأذكياء هي EHZ من شركة EMH.
تثبيت Raspberry Pi صورة Raspberry Pi (Raspbian) على بطاقة SD (دقيقة 8 جيجا بايت). تعليمات تجعل الإعدادات القياسية ، حيث أن تكون في الوقت وتوسيع الذاكرة:
sudo raspi-config
sudo apt-get upgrade all نسخ البرامج النصية Python python إلى التوت. على سبيل المثال عبر FTP. قمت بنسخ البيانات في المجلد homepiDocumentsEHZ .
الآن لا يزال يتعين عليك ضبط البرامج النصية Python. لاختبار الرسائل التي يرسلها مقياس الكهرباء كل شيء حتى تتمكن من استدعاء البرنامج النصي pythonSensortest.py . قبل ذلك ، يجب عليك التأكد من إدخال الاتصال التناظري الصحيح أيضًا هناك. وبالطبع عليك أيضًا الانتباه إلى التكافؤ وإيقاف البتات. بشكل افتراضي ، يرتبط رأس قراءة الأشعة تحت الحمراء بـ devttyUSB0 . للنظر إلىك ، يمكنك البحث أمامه تحت الأجهزة التالية:
cd dev بعد pythonSensortest.py ، يجب أن تأتي الرسائل المختلفة. ومع ذلك ، يتم إصدار خط العنق ذي الصلة الذي يتضمن قراءات العدادات.
# 77078181c78203ff0101010104454d4801
# 77070100000009ff010101010b06454d480104c56ec5bd01
# 77070100020800ff6400000001621e52ff5600020f37e201
# 77070100020801ff0101621e52ff5600020f37e201 //Zählerstand
# 77070100100700ff0101621b52ff550000000001 //momentaner Bezug / Leistung
# 77078181c78205ff01726201650136ece901018302739899a4350308b2be3a7022b69067cf0a021eb85e02a2f95810a06a6a1f5e48ed56bc3a53e771f68d66540c260e6d1c010101+ أنت الآن تنظر إلى مؤشرات OBIS معترف بها هناك. عادة ، يجب أن يكون هذا للرجوع إليه 01-08-01 ولتوصيل 02-08-01 . في المثال ، يوجد في 3. السطر: 77070100 020801 FF0101621E5600020F37E201 القيمة التي تريدها بين ff56 و 01 هنا: 00020f37e2 . ثم يتم تحويل قيمة السداسي هذه إلى قيمة عدد صحيح بمقدار 10^4. ثم لديك النتيجة المرجوة.
إذا كنت قد وجدت القيمة المقابلة الخاصة بك ، فستلاحظ تسلسل الأرقام الذي هو مؤشر OBIS. هنا ، على سبيل المثال: 77070100020801ff . ثم يتم إدخال هذا في البرنامج النصي كمعلمة بحث. تستند البرامج النصية الخاصة بي إلى نص ألكساندر كابزا. لقد قمت بمعالجتها بطريقة أنه بمجرد قراءة الرسالة ، يتم كتابة القيمة في قاعدة بيانات. ثم أقوم بعمل نص Shell القابل للتنفيذ حول البرنامج النصي Python.
نص Shell:
#! /bin/bash
sudo python /home/pi/Documents/EHZ/strombezug.pyاجعل قابلة للتنفيذ:
chmod +x strombezug.shثم أترك البرنامج النصي يركض مرة واحدة في الساعة 11:59 مساءً. بواسطة كرونجوب. القراءة cronjobs مع
crontab -eإنشاء / تعديل. ومع
crontab -lيمكنك عرض جميع cronjobs.
59 23 * * * /home/pi/Documents/EHZ/stromlieferung.sh
59 23 * * * /home/pi/Documents/EHZ/strombezug.shلذلك أحصل على ما فعله نظام الكهروضوئي الذي قام به يوم أو ما يستهلكه المنزل بالكهرباء يوميًا ويمكنه بعد ذلك تقديم كل شيء تصور لاحقًا.
sudo apt-get mysql-server mysql-client apache2 php5-cgi php5-mysql-mysql user إنشاء المستخدم وإنشاء قاعدة بيانات -إنشاء بيانات الوصول sql -mysql في البرامج النصية python / حفظ / في index.php و api.php
تحتوي قاعدة البيانات على جدول يحفظ العداد. العداد لديه معرف واسم وإزاحة. يتم استخدام الإزاحة لحفظ حالة العداد عند استخدام عداد جديد. لذلك يمكنك إنشاء عداد جديد مع الإزاحة = مقياس متر من العداد القديم. حتى تتمكن من إجراء الحساب في وقت لاحق.
هناك أيضًا جدول للغطاء والتسليم الذي يتم فيه حفظ معرف العداد ، وجهاز زمنية وحالة العداد. إذا كنت تريد ، يمكنك أيضًا تشغيل برنامج نصي ، والذي يكتب القيمة الحالية للعداد ، أي الأداء الحالي / المرجع إلى جدول كل ثانية. بالطبع ، يمكنك أيضًا حل ذلك بشكل مختلف.
TODO CREATE-SQL
للتصور ، كتبت واجهة برمجة تطبيقات صغيرة ، على سبيل المثال ، تُرجع القيم شهريًا في السنة أو القيم في السنة بتنسيق JSON. لعرض الكل ، أستخدم OSS Chart.js. ثم دع واجهة برمجة التطبيقات تحصل على القيم باستخدام AJAX.
?q=yearly قيمة سنويا (التسليم)
?q=yearlybezug قيمة واحدة في السنة (مرجع)
?q=year&y=xxxx قيمة واحدة شهريًا للعام xxxx
?q=year قيمة شهريًا لجميع السنوات الحالية
?q=c إرجاع القيم الحالية لمقياس العداد (تغطية + غطاء)
?q=w يعطي قيم آخر 7 أيام مرة أخرى
http://wiki.volkszaehler.org/sml http://www.kabza.de/myhome