جدول المحتويات:
- الخطوة 1: تجهيز Raspberry Pi
- الخطوة 2: إعداد NoCAN
- الخطوة 3: تجميع أجهزة UFire معًا
- الخطوة 4: أجهزة NoCAN
- الخطوة 5: برمجة CANZERO Node
- الخطوة 6: كيف كل هذا التعادل معا؟
- الخطوة 7: إعداد Chronograf أو Grafana
- الخطوة الثامنة: بعض التحسينات
فيديو: تخزين بيانات EC / pH / ORP ورسمها البياني باستخدام TICK Stack ومنصة NoCAN: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
سيتناول هذا كيفية استخدام منصة 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 الخاص بك ، وانتظر قليلاً واكتب:
يجب أن تكون في موجه تسجيل الدخول. كلمة المرور هي توت العليق.
الخطوة 2: إعداد NoCAN
يوفر Omzlo دليل تثبيت شامل. لكنني قررت أن أجعل الأمر أسهل على نفسي وأن أتعلم قليلاً عن البرمجة النصية لـ Bash. لذا ابدأ Raspberry Pi وابدأ SSH أو محطة تسلسلية فيه.
لقد تعلمت أنه يمكن تخصيص الكثير من وقت التطوير لإنشاء برنامج نصي Bash جيد مثل أي شيء تحاول تثبيته بالفعل. هناك 1000 طريقة لإنجاز شيء ما ، بعضها أسهل في الفهم أو التنفيذ من غيرها. في النهاية ، لم أفعل الكثير في الواقع. إذا نفذت:
wget https://ufire.co/nocan.sh && chmod + x nocan.sh && sudo./nocan.sh
في محطة Raspberry Pi الخاصة بك ، سيقوم بتنزيل البرنامج النصي وتنفيذه.
ثم أنه:
- قم بتنزيل برنامج Omzlo NoCAN الخفي وتثبيته في / usr / bin لسهولة الوصول إليه ، وإنشاء مجلد ~ /.nocand وكتابة ملف تكوين أساسي للغاية مع تعيين كلمة المرور على "كلمة المرور". ربما يجب عليك تغييره إلى شيء آخر ، يكون في ~ /.nocand / config.
- قم بتنزيل عميل Omzlo NoCAN ونسخه في / usr / bin وإنشاء ملف تكوين أساسي بنفس مجموعة كلمات المرور. إنه في ~ /.nocanc.conf.
- إعداد خدمة Systemd تحافظ على تشغيل برنامج NoCAN الخفي.
- يكتب ملف python إلى ~ /.nocand، nocan_ufire.py. سيتحدث إلى البرنامج الثابت لعقدة NoCAN ويأخذ قياسات EC و pH و ORP ، ويحلل النتائج ويضيفها إلى قاعدة بيانات InfluxDB.
- يضيف ريبو InfluxData إلى apt ويقوم بتثبيت TICK stack. وبما أنني أفضله على Chronograf ، فإنه يقوم بتثبيت Grafana أيضًا.
- ينشئ قاعدة بيانات 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 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 أمرًا سهلاً أيضًا. قم بتوصيل PiMaster بـ Raspberry Pi وابحث عن مصدر طاقة مناسب له.
اتبع تعليمات Omzlo حول صنع الكابلات لمشروعك.
انشر العقدة الخاصة بك وابحث عن مكان لـ PiMaster.
الخطوة 5: برمجة CANZERO Node
أحد الأشياء الرائعة في هذا الإعداد هو أنه يمكنك الوصول إلى العقد حتى بعد نشرها. تمت برمجتها عبر سلك CAN ، لذا يمكنك إعادة برمجتها في أي وقت تريده.
لذلك ، ستحتاج إلى تثبيت Arduino IDE ، و PiMaster على شبكتك ، والعقدة الخاصة بك متصلة بحافلة CAN. ستحتاج أيضًا إلى برنامج يسمى nocanc مثبتًا على جهاز الكمبيوتر الخاص بك. كل ذلك موصوف في صفحة تثبيت Omzlo.
قم بزيارة GitHub وانسخ الكود إلى مخطط Arduino IDE جديد. قم بتغيير اللوحة إلى Omzlo CANZERO وحدد العقدة في قائمة "المنفذ". ثم انقر فوق تحميل كالمعتاد. إذا سار كل شيء وفقًا للخطة ، فيجب أن يكون لديك عقدة مبرمجة جاهزة لأخذ بعض القياسات.
الخطوة 6: كيف كل هذا التعادل معا؟
الآن بعد أن تم إعداد جميع البرامج والأجهزة ، دعنا نتوقف لحظة لنتحدث عن كيفية عمل كل ذلك في الواقع. وإظهار مهاراتي في GIMP …
في تلخيص:
- العقدة CANZERO متصلة بـ PiMaster ويتم نشرها في مكان ما
- كل دقيقة يتم تشغيل مهمة Cron على PiMaster. سيتم تنفيذ برنامج نصي بيثون.
- سيرسل نص python أمرًا إلى العقدة يخبرها بأخذ قياس أو إجراء آخر.
- ستنفذ العقدة ما كان الأمر عليه وتعيد نتيجة بتنسيق JSON.
- سيتلقى نص python هذه النتيجة ، ويحللها ، ويحدث InfluxDB معها.
الخطوة الأخيرة هي مشاهدة جمع البيانات في بعض الرسوم البيانية ذات المظهر الجميل.
الخطوة 7: إعداد Chronograf أو Grafana
آخر شيء يجب القيام به هو إعداد بعض المخططات في Chronograf أو Grafana.
ستحتاج إلى إعداد مصدر البيانات. الإعدادات الافتراضية لـ InfluxDB جيدة. العنوان الخاص به هو "https:// localhost: 8086" ولا يوجد اسم مستخدم أو كلمة مرور.
كلاهما متشابهان من حيث أنهما منظمان في لوحات المعلومات التي تحتوي على أي عدد من المخططات بداخلها. يحتوي كلاهما على منطقة استكشاف تسمح لك بمشاهدة القياسات وإنشاء المخططات بشكل تفاعلي. تذكر أن اسم قاعدة البيانات هو "nocan" وقد تم تنظيمه في عدة قياسات بقيمة واحدة.
كما ذكرت ، أفضل Grafana لأنه أكثر قابلية للتكوين من Chronograf. إنه أيضًا صديق للجوال ، حيث لا يوجد Chronograf. يتم تضمين الرسوم البيانية ومشاركتها بسهولة
الخطوة الثامنة: بعض التحسينات
- يمكنك تعيين اسم مضيف Raspberry Pi للوصول إليه بشكل أسهل على شبكتك. يمكنك القيام بذلك في ملف raspi-config. لقد غيرت خاصتي إلى nocan ، لذلك تمكنت من الذهاب إلى nocan.local للوصول إليه (لا يعمل على Android).
- يمكنك تثبيت برنامج مثل ngrok للوصول إلى Raspberry Pi خارج شبكتك.
- استخدم إحدى الطرق التي يوفرها Kapacitor لتقديم الإخطارات.
- أضف المزيد من المستشعرات بالطبع.
موصى به:
مراقبة درجة الحرارة والرطوبة DHT باستخدام ESP8266 ومنصة AskSensors IoT: 8 خطوات
مراقبة درجة حرارة DHT والرطوبة باستخدام ESP8266 ومنصة AskSensors IoT: في تعليمات سابقة ، قدمت دليلًا خطوة بخطوة لبدء استخدام ESP8266 nodeMCU ومنصة AskSensors IoT. في هذا البرنامج التعليمي ، أقوم بتوصيل مستشعر DHT11 إلى العقدة MCU. DHT11 هو درجة حرارة مستخدمة بشكل شائع
بيانات الطقس باستخدام جداول بيانات Google و Google Script: 7 خطوات
بيانات الطقس باستخدام جداول بيانات Google و Google Script: في مدونة Blogtut هذه ، سنرسل قراءات مستشعر SHT25 إلى أوراق Google باستخدام Adafruit huzzah ESP8266 مما يساعد على إرسال البيانات إلى الإنترنت. والطريقة الأساسية التي تحفظ البيانات في
إرسال بيانات الاهتزاز اللاسلكي ودرجة الحرارة إلى جداول بيانات Google باستخدام Node-RED: 37 خطوة
إرسال بيانات الاهتزاز اللاسلكي ودرجة الحرارة إلى جداول بيانات Google باستخدام Node-RED: تقديم مستشعر الاهتزاز ودرجة الحرارة اللاسلكي طويل المدى لإنترنت الأشياء من NCD ، والذي يضم نطاقًا يصل إلى ميلين باستخدام بنية شبكة لاسلكية. يشتمل هذا الجهاز على مستشعر دقيق للاهتزاز ودرجة الحرارة 16 بت ، وهو
كيفية صنع مقياس درجة حرارة مخصص DIY باستخدام الرسم البياني الشريطي و Atmega328p: 3 خطوات (بالصور)
كيفية صنع مقياس درجة حرارة مخصص DIY باستخدام رسم بياني شريطي و Atmega328p: في هذا المنشور سأوضح لك كيفية عمل مقياس درجة الحرارة باستخدام Bar Graph & amp؛ Atmega328p. سيتضمن المنشور جميع التفاصيل مثل مخطط الدائرة وتصنيع ثنائي الفينيل متعدد الكلور والترميز والتجميع والتجميع. اختبارات. لقد قمت أيضًا بتضمين مقطع فيديو يحتوي على جميع
نظام الحضور مع تخزين البيانات على جداول بيانات Google باستخدام RFID و Arduino Ethernet Shield: 6 خطوات
نظام الحضور مع تخزين البيانات على جدول بيانات Google باستخدام RFID و Arduino Ethernet Shield: مرحبًا يا شباب ، لقد توصلنا إلى مشروع مثير للغاية وهو كيفية إرسال بيانات rfid إلى جدول بيانات Google باستخدام Arduino. باختصار ، سنقوم بإنشاء نظام حضور يعتمد على قارئ rfid والذي سيوفر بيانات الحضور في الوقت الفعلي إلى goog