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

UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء: 7 خطوات
UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء: 7 خطوات

فيديو: UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء: 7 خطوات

فيديو: UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء: 7 خطوات
فيديو: Healthy Buildings | Schneider Electric 2024, شهر نوفمبر
Anonim
UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء
UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء
UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء
UCL-IIOT - نظام إنذار مزود بقاعدة بيانات وعقدة حمراء

الغرض من هذا البناء هو تعليم كيفية توصيل Arduino بـ Node-red وقاعدة البيانات ، بحيث يمكنك تسجيل البيانات وجمعها لاستخدامها لاحقًا.

بالنسبة لهذا الإصدار ، أستخدم نظام إنذار بسيط من اردوينو يخرج 5 أرقام بيانات ، كل منها مفصول بفاصلة.

ليس من الضروري أن يكون لديك هذا المقدار الدقيق من البيانات ويمكن أن يكون البرنامج أي شيء.

الجزء المهم هو أن البيانات مفصولة بفواصل كما هو موضح في لقطة الشاشة هذه.

قد يبدو الإخراج على سبيل المثال كالتالي: "324 ، 0 ، 0 ، 1 ، 1"

(تم ربط البرمجة النهائية والإرشادات الخاصة بإنشاء اردوينو في أسفل هذا البرنامج التعليمي)

الخطوة 1: الشروع في استخدام Node-red

الشروع في العمل مع Node-red
الشروع في العمل مع Node-red

في هذا البرنامج التعليمي ، نفترض أنك قمت بالفعل بتثبيت Node-red ، ولكن هناك بعض اللوحات الإضافية المستخدمة لهذا المشروع والتي نحتاجها حتى يعمل

ابحث عن الزر "إدارة لوحة الألوان" وقم بتثبيت اللوحات التالية.

  • العقدة الحمراء لوحة القيادة
  • العقدة الحمراء عقدة الخلية
  • العقدة الحمراء عقدة اردوينو
  • عقدة حمراء عقدة مسلسل المنفذ

يجب أن تظهر بعض اللوحات الجديدة على جانب قائمة الزر Node-red.

الخطوة 2: تقسيم البيانات في العقدة الحمراء

تقسيم البيانات في العقدة الحمراء
تقسيم البيانات في العقدة الحمراء

الآن بعد أن أصبحت Node-red جاهزة للانطلاق ، نحتاج إلى البدء بتقسيم بياناتنا إلى أجزاء منفصلة.

هذا هو السبب في أننا تأكدنا من فصلهم بفواصل داخل كود Arduino.

لنبدأ أولاً بوضع عقدة Arduino Input الموجودة على اللوحة اليسرى.

تحتاج إلى التأكد من أنه يحتوي على المنفذ التسلسلي الصحيح (Mine يستخدم COM4) ومعدل الباود (في برنامجي ، أستخدم معدل الباود 9600)

إذا تم إعداده بشكل صحيح ، فيجب أن يشير إلى أنه متصل.

بعد ذلك ، نقوم بإنشاء كتلة دالة Javascript وربطها بعد عقدة إدخال Arduino ، تسمح لنا هذه الكتلة بالبرمجة في Javascript ، وهنا نكتب رمزًا يمكنه تقسيم بياناتنا لكل فاصلة.

في كتلة الوظيفة هذه ، قسمت بياناتي الخمسة باستخدام الكود التالي:

var m1 = {topic: "light1"، payload: msg.payload.split ("،") [0]}؛ var m2 = {topic: "light2"، payload: msg.payload.split ("،") [1]}؛ var m3 = {topic: "light3"، payload: msg.payload.split ("،") [2]}؛ var m4 = {topic: "millis"، payload: msg.payload.split ("،") [3]}؛ var m5 = {topic: "onoff"، payload: msg.payload.split ("،") [4]}؛ عودة [m1، m2، m3، m4، m5]؛

(قم بتغيير الرمز حسب الضرورة)

تأكد من ضبط العقدة على 5 مخرجات (أو ما يعادلها)

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

الخطوة 3: قاعدة البيانات مع Wampserver

قاعدة بيانات مع Wampserver
قاعدة بيانات مع Wampserver

لكي تعمل قاعدة البيانات الخاصة بنا ، تحتاج إلى تثبيت Wampserver. بعد تثبيته وظهوره كرمز أخضر (بعد بدء جميع الخدمات) ، يجب عليك فتح "phpMyAdmin" الذي يجب أن ينقلك إلى شاشة تسجيل الدخول. ما لم يكن لديك تم تغييره مسبقًا ، ما عليك سوى إدخال "root" في اسم المستخدم وتسجيل الدخول.

اضغط على زر phpmyadmin أسفل الأدوات لأسفل في الشريط الأيسر ويفتح قائمة قاعدة البيانات ، والتي تبدو كما هو موضح في الصورة أعلاه.

أنشئ قاعدة بيانات جديدة وأطلق عليها اسمًا متعلقًا بمشروعك ، سيُطلق علي اسمي "نظام إنذار" (ستكون هذه الأسماء حساسة لحالة الأحرف)

ضمن قاعدة البيانات هذه ، أنشئ جدولًا جديدًا وقم بتسميته ، وسُمي لي "بيانات المنبه"

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

الآن تقوم بإنشاء 6 جداول (واحد أكثر من البيانات الموجودة لدينا)

يحتاج الجدول الأول إلى استخدام نوع البيانات "نص طويل"

ويستخدم باقي مجموعة البيانات "نص متوسط"

تأكد من تسميتها. (يجب تسمية مجموعة البيانات الأولى "الوقت"

الخطوة 4: قاعدة البيانات

قاعدة البيانات
قاعدة البيانات

يجب أن تبدو مجموعة بيانات Wampserver مثل هذا.

(لكن بدون البيانات الفعلية ، لأننا لم نصل إلى ذلك بعد)

الخطوة 5: العقدة الحمراء إلى Wampserver

العقدة الحمراء إلى Wampserver
العقدة الحمراء إلى Wampserver

الآن نريد أن تذهب البيانات التي نخرجها من اردوينو إلى خادم Wampserver الخاص بنا.

ابدأ بإنشاء كتلة دالة Javascript أخرى وقم بتوصيلها بعقدة إدخال اردوينو الخاصة بنا.

في كتلة البرنامج النصي هذا ، قمنا مرة أخرى بتقسيم بياناتنا ، لكننا نقوم بإدراجها في قاعدة البيانات الخاصة بنا أيضًا.

var data = msg.payload.split ("،")؛ var Green1 = data [0] ؛ var Green2 = بيانات [1] ، var التنبيه = البيانات [2] ؛ var Millis = بيانات [3] ، var IsActive = البيانات [4] ، var out = "INSERT INTO alarmsystem.alarmdata (Time، Green1، Green2، Alarm، Millis، IsActive) VALUES ('" + new Date (). toISOString (). slice (0، 19).replace (' T '،' ') + "'، '" + Green1 + "'، '" + Green2 + "'، '" + Alarm + "'، '" + Millis + "'، '" + IsActive + "')"؛ msg.topic = خارج ؛ عودة الرسالة ؛

لاحظ أنني أدخلت "INSERT INTO alarmsystem.alarmdata" ، هذا هو الاسم الذي قدمناه لقاعدة البيانات والجدول لدينا ، تأكد من كتابة الاسم الدقيق الذي أعطيته لقاعدة البيانات الخاصة بك في ذلك.

الآن قم بتوصيل كتلة Javascript بعقدة تصحيح الأخطاء وأيضًا عقدة "mysql" الموجودة أسفل لوحة التخزين على الجانب الأيسر.

تحت كتلة mysql ، قم بتسميتها بنفس اسم "نظام التنبيه" في قاعدة البيانات.

غير المستخدم إلى "root" (الاسم الذي استخدمناه لتسجيل الدخول إلى خادمنا)

يجب ملء المضيف والمنفذ وقاعدة البيانات بالفعل بـ:

المضيف: 127.0.0.1

المنفذ: 3306

قاعدة البيانات: نظام إنذار

إذا تم إجراء كل شيء بشكل صحيح ، فيجب توصيله بعد نشر تغييراتك.

يجب أن تكون أيضًا قادرًا على رؤية أن قاعدة البيانات تسجل الآن بياناتك من Arduino مباشرة.

الخطوة 6: استخدام البيانات من Wampserver إلى Node-red

استخدام البيانات من Wampserver إلى Node-red
استخدام البيانات من Wampserver إلى Node-red
استخدام البيانات من Wampserver إلى Node-red
استخدام البيانات من Wampserver إلى Node-red

بالنسبة إلى الامتداد النهائي ، نريد معرفة ما إذا كان بإمكاننا أخذ البيانات التي حفظناها وإعادتها إلى Node-red ونأمل أن نعرضها.

ابدأ بوضع عقدة "حقن"

تحت الموضوع في هذه العقدة نضع الكود: SELECT * FROM alarmsystem.alarmdata

سيتمكن هذا من العثور على قاعدة البيانات الخاصة بنا عند الضغط عليها.

قم بتوصيل عقدة الحقن بعقدة "mysql" جديدة تم إعدادها تمامًا مثل العقدة التي فعلناها في الخطوة السابقة.

قم بتوصيل عقدة mysql إلى عقدة تصحيح الأخطاء وعقدة نموذج موجودة أسفل لوحة القيادة.

ستكون عقدة القالب هي جدولنا الذي يمكننا تحديثه لإظهار البيانات من قاعدة البيانات أثناء إنتاجها.

أدخل الكود الموضح في لقطة الشاشة أعلاه (قم بالتغيير حسب الحاجة) ويجب أن يُظهر الآن جدول بيانات في واجهة المستخدم Node-red.

يمكننا أيضًا إضافة زر لوحة القيادة لتحديث الجدول من واجهة المستخدم نفسها.

ابدأ بإنشاء عقدة زر.

قم بتوصيل عقدة الزر بكتلة وظيفة جافا سكريبت.

في كتلة الوظيفة ، نقوم بإدخال الكود التالي.

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20" ؛ إرجاع msg ؛

(الأخضر 1 هو أول متغير بيانات في الجدول)

بعد ذلك ، يجب توصيل كتلة الوظيفة هذه بإدخال عقدة mysql التي قمنا بإنشائها مسبقًا في هذه الخطوة.

الخطوة 7: وضع اللمسات الأخيرة

وضع اللمسات الأخيرة
وضع اللمسات الأخيرة

الآن يجب أن تتضمن واجهة المستخدم الخاصة بنا تحديثًا مباشرًا لبياناتنا وجدولًا ببيانات من خادمنا نفسه.

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

إذا كنت مهتمًا بكيفية عمل نظام إنذار Arduino ، فقد أضفت مستندًا يشرح كيفية برمجة ذلك وإعداده.

بالإضافة إلى تصدير كامل لبرمجة العقدة الحمراء.

موصى به: