فهرست مطالب:

UCL-IIOT-سیستم هشدار با پایگاه داده و Node-red: 7 مرحله
UCL-IIOT-سیستم هشدار با پایگاه داده و Node-red: 7 مرحله

تصویری: UCL-IIOT-سیستم هشدار با پایگاه داده و Node-red: 7 مرحله

تصویری: UCL-IIOT-سیستم هشدار با پایگاه داده و Node-red: 7 مرحله
تصویری: Part 3 - Babbitt Audiobook by Sinclair Lewis (Chs 10-15) 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-dashboard
  • node-red-node-mysql
  • node-red-node-arduino
  • node-red-node-serialport

باید چند پالت جدید در کنار منوی دکمه Node-red نشان دهد.

مرحله 2: تقسیم داده ها در Node-red

تقسیم داده ها در Node-red
تقسیم داده ها در Node-red

اکنون که Node-red آماده حرکت است ، باید ابتدا داده های خود را به قطعات جداگانه تقسیم کنیم.

به همین دلیل ما مطمئن شدیم که آنها را با کاما در داخل کد آردوینو جدا می کنیم.

ابتدا بیایید با گذاشتن گره ورودی آردوینو که در پنل سمت چپ یافت می شود ، کار را شروع کنیم.

شما باید مطمئن شوید که سریال (Mine uses COM4) و نرخ Baud (در برنامه من از 9600 baud rate استفاده می کنم) صحیح است.

اگر به درستی تنظیم شود ، باید بگوید که متصل است.

در مرحله بعد ما یک بلوک تابع Javascript ایجاد می کنیم و بعد از گره ورودی Arduino آن را متصل می کنیم. این بلوک به ما امکان برنامه نویسی در Javascript را می دهد و در اینجا یک کد می نویسیم که می تواند داده های ما را برای هر کاما تقسیم کند.

در این بلوک تابع ، من 5 داده خود را با استفاده از کد زیر تقسیم می کنم:

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 خروجی داریم که هر کدام را به یک گره اشکال زدایی و یک گره داشبورد متنی پیوند می دهیم. این برای زمانی مفید است که باید آن را در UI ببینیم.

مرحله 3: پایگاه داده با Wampserver

پایگاه داده با Wampserver
پایگاه داده با Wampserver

برای اینکه پایگاه داده ما کار کند ، باید Wampserver را نصب کرده باشید. پس از نصب و نمایش به عنوان یک نماد سبز (پس از شروع کلیه خدمات) ، باید "phpMyAdmin" را باز کنید که باید شما را به صفحه ورود به سیستم برساند. مگر اینکه قبلاً آن را تغییر داده ، به سادگی "root" را در نام کاربری و ورود وارد کنید.

دکمه phpmyadmin را در زیر ابزارها در نوار سمت چپ فشار دهید و باید منوی پایگاه داده را باز کند ، که شبیه تصویر بالا است.

یک پایگاه داده جدید ایجاد کنید و نام آن را مربوط به پروژه خود قرار دهید ، نام من "alarmsystem" نامیده می شود (این نامها به حروف کوچک و بزرگ حساس می شوند)

در آن پایگاه داده ، یک جدول جدید ایجاد کنید و نام آن را بگذارید ، نام من "alarmdata" است

این س askال می کند که آیا می خواهید از "latin1_swedish_ci" استفاده کنید و ما آن را همینطور نگه می داریم.

حالا شما 6 جدول ایجاد می کنید (1 عدد بیشتر از داده های ما)

جدول اول باید از نوع داده "longtext" استفاده کند

و بقیه مجموعه داده از "mediumtext" استفاده می کند

حتماً آنها را نام ببرید. (اولین مجموعه داده باید "زمان" نامگذاری شود

مرحله 4: پایگاه داده

پایگاه داده
پایگاه داده

مجموعه داده Wampserver باید چیزی شبیه به این باشد.

(اما بدون داده های واقعی ، زیرا هنوز به آن نرسیده ایم)

مرحله 5: گره قرمز به Wampserver

گره قرمز به Wampserver
گره قرمز به Wampserver

اکنون ما می خواهیم داده هایی که از arduino خود خارج می کنیم به Wampserver ما برود.

با ایجاد یک بلوک تابع Javascript دیگر شروع کنید و آن را به گره ورودی آردوینو متصل کنید.

در این بلوک اسکریپت ، ما یکبار دیگر داده های خود را تقسیم می کنیم ، اما آنها را نیز در پایگاه داده خود وارد می کنیم.

var data = msg.payload.split ("،")؛ var Green1 = data [0]؛ var Green2 = data [1]؛ var Alarm = data [2]؛ var Millis = داده [3]؛ var IsActive = data [4]؛ var out = "INSERT INTO alarmsystem.alarmdata (Time، Green1، Green2، Alarm، Millis، IsActive) VALUES ('"+تاریخ جدید (). toISOString (). قطعه (0، 19). جایگزین (' T '،' ')+"' ،" "+Green1+" '، ""+Green2+"' ،" "+زنگ+" "،" "+Millis+" '، ""+IsActive+"')" ؛ msg.topic = out؛ بازگشت msg؛

توجه کنید که من "INSERT INTO alarmsystem.alarmdata" را وارد می کنم ، این نامی است که ما به پایگاه داده و جدول خود دادیم ، مطمئن شوید که نام دقیقی را که در آن داده اید در آن بنویسید.

اکنون بلوک Javascript را به یک گره اشکال زدایی و همچنین یک گره "mysql" در زیر پالت ذخیره سازی در سمت چپ متصل کنید.

در بلوک mysql شما آن را با پایگاه داده خود "alarmsystem" نامگذاری می کنید

تغییر کاربر به "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 ما نشان دهد.

ما همچنین می توانیم یک دکمه داشبورد برای به روز رسانی جدول از طریق رابط کاربری خود اضافه کنیم.

با ایجاد یک گره دکمه شروع کنید.

گره دکمه را به یک بلوک تابع Javascript متصل کنید.

در بلوک تابع کد زیر را وارد می کنیم.

msg.topic = "SELECT * FROM alarmdata ORDER BY Green1 DESC LIMIT 20"؛ msg msg return؛

(Green1 اولین متغیر داده در جدول است)

این بلوک تابع باید به ورودی گره mysql که قبلاً در این مرحله ایجاد کرده ایم متصل شود.

مرحله 7: نهایی کردن

در حال نهایی شدن
در حال نهایی شدن

اکنون رابط کاربری ما باید شامل یک به روزرسانی زنده از داده های ما و یک جدول با داده های خود سرور ما باشد.

این بدان معنی است که ما بین Arduino ، یک برنامه مبتنی بر رابط کاربری و یک پایگاه داده ارتباط برقرار کرده ایم.

اگر به نحوه عملکرد سیستم هشداردهی Arduino علاقه دارید ، من سندی را اضافه کرده ام که نحوه برنامه ریزی و تنظیم آن را توضیح می دهد.

و همچنین صادرات کامل برنامه نود قرمز.

توصیه شده: