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

تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack ومنصة NoCAN: 8 خطوات
تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack ومنصة NoCAN: 8 خطوات

فيديو: تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack ومنصة NoCAN: 8 خطوات

فيديو: تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack ومنصة NoCAN: 8 خطوات
فيديو: How to Calibrate Your Aqua TROLL pH/ORP Sensor 2024, شهر نوفمبر
Anonim
تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack و NoCAN Platform
تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack و NoCAN Platform

سيتناول هذا كيفية استخدام منصة NoCAN بواسطة مستشعرات Omzlo و uFire لقياس EC ودرجة الحموضة و ORP. كما يقول موقع الويب الخاص بهم ، في بعض الأحيان يكون من الأسهل فقط تشغيل بعض الكابلات على عقد المستشعر. يمكن أن يتمتع بميزة الاتصال والطاقة في كابل واحد لذلك لا توجد مشاكل في الإشارة والبطارية. يمكن أن تكون البرامج الثابتة للعقد أبسط ؛ لا تهتم بأوضاع السكون أو إعداد WiFi ، على سبيل المثال. تحتوي منصة NoCAN أيضًا على بعض الميزات الرائعة مثل برمجة العقد عبر ناقل CAN.

تستخدم منصة NoCAN Raspberry Pi ، لذا سيكون كل ما يمكن فعله متاحًا. سنستفيد منه عن طريق تثبيت TICK stack. سيتيح لنا ذلك استخدام InfluxDB لتخزين القياسات. إنها قاعدة بيانات تعتمد على التسلسل الزمني الغرض منها هذا النوع من الأشياء. يأتي أيضًا مع Chronograf لإنشاء لوحات معلومات وعرض كل هذه البيانات التي سنأخذها. ترمز T و K لـ Telegraf و Kapacitor. يقع Telegraf بين البيانات التي ترسلها وقاعدة بيانات Influx. Kapacitor هو محرك الحدث. عندما يحدث شيء ما ، يمكن أن يرسل إليك إشعارًا من خلال مجموعة متنوعة من الطرق. ولأنني أحبه أفضل من Chronograf ، فسوف أقوم بتثبيت Grafana للوحات القيادة.

الخطوة 1: تجهيز Raspberry Pi

توجه إلى صفحة تنزيل Rasbian وقم بتنزيل الصورة باستخدام سطح المكتب والبرامج الموصى بها ، ثم قم بوميضها على بطاقة SD.

بعد أن تكون الصورة على بطاقة SD الخاصة بك ، يجب أن يكون لديك مجلدين ، الجذر والتمهيد. افتح Terminal في التمهيد واكتب:

المس ssh

سيؤدي ذلك إلى تمكين SSH.

ثم اكتب:

نانو wpa_supplicant.conf

وانسخ / الصق ما يلي بعد تعديله لمقاطعتك وإعدادات WiFi:

الدولة = الولايات المتحدة

ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = شبكة واحدة = {ssid = "NETWORK-NAME" psk = "NETWORK-PASSWORD"}

تأتي رموز الدول من هنا.

تمكين SPI:

صدى "dtparam = spi = on" >> config.txt

ضع بطاقة SD في Raspberry Pi الخاص بك ، وانتظر قليلاً واكتب:

ssh [email protected]

يجب أن تكون في موجه تسجيل الدخول. كلمة المرور هي توت العليق.

الخطوة 2: إعداد NoCAN

يوفر Omzlo دليل تثبيت شامل. لكنني قررت أن أجعل الأمر أسهل على نفسي وأن أتعلم قليلاً عن البرمجة النصية لـ Bash. لذا ابدأ Raspberry Pi وابدأ SSH أو محطة تسلسلية فيه.

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

wget https://ufire.co/nocan.sh && chmod + x nocan.sh && sudo./nocan.sh

في محطة Raspberry Pi الخاصة بك ، سيقوم بتنزيل البرنامج النصي وتنفيذه.

ثم أنه:

  1. قم بتنزيل برنامج Omzlo NoCAN الخفي وتثبيته في / usr / bin لسهولة الوصول إليه ، وإنشاء مجلد ~ /.nocand وكتابة ملف تكوين أساسي للغاية مع تعيين كلمة المرور على "كلمة المرور". ربما يجب عليك تغييره إلى شيء آخر ، يكون في ~ /.nocand / config.
  2. قم بتنزيل عميل Omzlo NoCAN ونسخه في / usr / bin وإنشاء ملف تكوين أساسي بنفس مجموعة كلمات المرور. إنه في ~ /.nocanc.conf.
  3. إعداد خدمة Systemd تحافظ على تشغيل برنامج NoCAN الخفي.
  4. يكتب ملف python إلى ~ /.nocand، nocan_ufire.py. سيتحدث إلى البرنامج الثابت لعقدة NoCAN ويأخذ قياسات EC و pH و ORP ، ويحلل النتائج ويضيفها إلى قاعدة بيانات InfluxDB.
  5. يضيف ريبو InfluxData إلى apt ويقوم بتثبيت TICK stack. وبما أنني أفضله على Chronograf ، فإنه يقوم بتثبيت Grafana أيضًا.
  6. ينشئ قاعدة بيانات Influx فارغة

بعض المشاكل التي قد تصادفها:

  • ربما لم يتم إعداد لغتك ، لذا قم بتشغيل dpkg-renfigure locales
  • قد يتعطل تثبيت Grafana ، لذا حاول مرة أخرى.
  • قد لا يبدأ عفريت التدفق في الوقت المناسب لجعل البرنامج النصي يضيف قاعدة البيانات ، اكتب

    curl -i -XPOST https:// localhost: 8086 / query --data-urlencode "q = إنشاء قاعدة بيانات nocan"

  • هذا البرنامج النصي يعمل فقط كمستخدم pi الافتراضي. ستحتاج إلى تغيير pi إلى اسم المستخدم الخاص بك عند الاقتضاء إذا كنت تحت مستخدم مختلف.

آخر شيء هو إضافة وظيفة cron. لم أجد طريقة جيدة جدًا لبرمجة هذه الطريقة ، لذا اكتب "crontab -e" للتعديل يدويًا وإضافة "* * * * * python /home/pi/.nocand/nocan_ufire.py".

بمجرد الانتهاء من كل ذلك ، يمكنك التحقق من أن كل شيء تم إعداده وتشغيله كما ينبغي. تعيش غرافانا في https:// [Raspberry Pi's Address]: 3000 /. يجب أن ترى صفحة تسجيل الدخول ، المشرف / المسؤول هو الافتراضي.

يمكن العثور على Chronograf على https:// [Raspberry Pi's Address]: 8888 /

الخطوة 3: تجميع أجهزة UFire معًا

وضع أجهزة UFire معًا
وضع أجهزة UFire معًا

قبل أن نتمكن من تجميع الأجهزة ، هناك شيء واحد يجب معالجته. يمكن استخدام لوحة uFire ISE لقياس كل من الأس الهيدروجيني و ORP. الجهاز هو نفسه ، لكن البرنامج مختلف. نظرًا لأن الجهاز هو نفسه ، فهذا يعني أن عنوان I2C ، افتراضيًا ، هو نفسه أيضًا. وتتواصل المستشعرات من خلال I2C لذلك سيحتاج المرء إلى التغيير. بالنسبة لهذا المشروع ، سنختار واحدة من لوحات ISE ونستخدمها لقياس ORP. باتباع الخطوات هنا ، قم بتغيير العنوان إلى 0x3e.

الآن بعد أن تم تغيير العنوان ، أصبح تجميع الأجهزة معًا أمرًا سهلاً. يعتمد هذا الإعداد على عمل سابق يقوم بنفس الشيء بشكل أساسي ولكن باستخدام BLE بدلاً من CAN لنقل البيانات. يمكنك أن تقرأ عنها على Arduino Project Hub. تستخدم جميع أجهزة الاستشعار نظام توصيل Qwiic ، لذا فقط قم بتوصيل كل شيء معًا في سلسلة ، فهناك طريقة واحدة فقط لإدخال Qwiic في أسلاك Qwiic. ستحتاج إلى سلك Qwiic إلى Male لتوصيل أحد المستشعرات بعقدة CANZERO. الأسلاك متناسقة ومشفرة بالألوان. قم بتوصيل الأسود بـ GND الخاص بالعقدة ، والأحمر إلى دبوس + 3.3 فولت أو + 5 فولت ، والأزرق إلى دبوس SDA وهو D11 ، والأصفر إلى دبوس SCL على D12.

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

الخطوة 4: أجهزة NoCAN

أجهزة NoCAN
أجهزة NoCAN

يعد تجميع أجهزة NoCAN أمرًا سهلاً أيضًا. قم بتوصيل PiMaster بـ Raspberry Pi وابحث عن مصدر طاقة مناسب له.

اتبع تعليمات Omzlo حول صنع الكابلات لمشروعك.

انشر العقدة الخاصة بك وابحث عن مكان لـ PiMaster.

الخطوة 5: برمجة CANZERO Node

برمجة عقدة كانزيرو
برمجة عقدة كانزيرو

أحد الأشياء الرائعة في هذا الإعداد هو أنه يمكنك الوصول إلى العقد حتى بعد نشرها. تمت برمجتها عبر سلك CAN ، لذا يمكنك إعادة برمجتها في أي وقت تريده.

لذلك ، ستحتاج إلى تثبيت Arduino IDE ، و PiMaster على شبكتك ، والعقدة الخاصة بك متصلة بحافلة CAN. ستحتاج أيضًا إلى برنامج يسمى nocanc مثبتًا على جهاز الكمبيوتر الخاص بك. كل ذلك موصوف في صفحة تثبيت Omzlo.

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

الخطوة 6: كيف كل هذا التعادل معا؟

كيف كل هذا التعادل معا؟
كيف كل هذا التعادل معا؟

الآن بعد أن تم إعداد جميع البرامج والأجهزة ، دعنا نتوقف لحظة لنتحدث عن كيفية عمل كل ذلك في الواقع. وإظهار مهاراتي في GIMP …

في تلخيص:

  1. العقدة CANZERO متصلة بـ PiMaster ويتم نشرها في مكان ما
  2. كل دقيقة يتم تشغيل مهمة Cron على PiMaster. سيتم تنفيذ برنامج نصي بيثون.
  3. سيرسل نص python أمرًا إلى العقدة يخبرها بأخذ قياس أو إجراء آخر.
  4. ستنفذ العقدة ما كان الأمر عليه وتعيد نتيجة بتنسيق JSON.
  5. سيتلقى نص python هذه النتيجة ، ويحللها ، ويحدث InfluxDB معها.

الخطوة الأخيرة هي مشاهدة جمع البيانات في بعض الرسوم البيانية ذات المظهر الجميل.

الخطوة 7: إعداد Chronograf أو Grafana

إعداد Chronograf أو Grafana
إعداد Chronograf أو Grafana

آخر شيء يجب القيام به هو إعداد بعض المخططات في Chronograf أو Grafana.

ستحتاج إلى إعداد مصدر البيانات. الإعدادات الافتراضية لـ InfluxDB جيدة. العنوان الخاص به هو "https:// localhost: 8086" ولا يوجد اسم مستخدم أو كلمة مرور.

كلاهما متشابهان من حيث أنهما منظمان في لوحات المعلومات التي تحتوي على أي عدد من المخططات بداخلها. يحتوي كلاهما على منطقة استكشاف تسمح لك بمشاهدة القياسات وإنشاء المخططات بشكل تفاعلي. تذكر أن اسم قاعدة البيانات هو "nocan" وقد تم تنظيمه في عدة قياسات بقيمة واحدة.

كما ذكرت ، أفضل Grafana لأنه أكثر قابلية للتكوين من Chronograf. إنه أيضًا صديق للجوال ، حيث لا يوجد Chronograf. يتم تضمين الرسوم البيانية ومشاركتها بسهولة

الخطوة الثامنة: بعض التحسينات

  • يمكنك تعيين اسم مضيف Raspberry Pi للوصول إليه بشكل أسهل على شبكتك. يمكنك القيام بذلك في ملف raspi-config. لقد غيرت خاصتي إلى nocan ، لذلك تمكنت من الذهاب إلى nocan.local للوصول إليه (لا يعمل على Android).
  • يمكنك تثبيت برنامج مثل ngrok للوصول إلى Raspberry Pi خارج شبكتك.
  • استخدم إحدى الطرق التي يوفرها Kapacitor لتقديم الإخطارات.
  • أضف المزيد من المستشعرات بالطبع.

موصى به: