Բովանդակություն:

UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր ՝ 7 քայլ
UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր ՝ 7 քայլ

Video: UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր ՝ 7 քայլ

Video: UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր ՝ 7 քայլ
Video: Угрюм-река (1969) (1 серия) фильм 2024, Նոյեմբեր
Anonim
UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր
UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր
UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր
UCL-IIOT-Տագնապային համակարգ տվյալների շտեմարանով և հանգույց-կարմիր

Այս կառուցման նպատակն է ուսուցանել Arduino- ն Node-red- ի և տվյալների բազայի հետ կապելու մասին, այնպես որ կարող եք մուտքագրել տվյալները, ինչպես նաև հավաքել դրանք հետագա օգտագործման համար:

Այս կառուցման համար ես օգտագործում եմ պարզ arduino ահազանգման համակարգ, որը թողարկում է 5 տվյալների համար, որոնցից յուրաքանչյուրն առանձնացված է ստորակետով:

Պարտադիր չէ ունենալ այդ ճշգրիտ տվյալները և ծրագիրը կարող է լինել որևէ բան:

Կարևոր մասն այն է, որ տվյալները առանձնացված են ստորակետներով, ինչպես երևում է այս սքրինշոթում:

Օրինակ ՝ ելքը կարող է այսպիսին լինել ՝ «324, 0, 0, 1, 1»

(arduino- ի ստեղծման ավարտված ծրագրավորումն ու հրահանգները կապված են այս ձեռնարկի ներքևում)

Քայլ 1: Սկսել Node-red- ով

Սկսում ենք Node-red- ով
Սկսում ենք Node-red- ով

Այս ձեռնարկի համար մենք ենթադրում ենք, որ դուք արդեն տեղադրել եք Node-red- ը, բայց կան որոշ լրացուցիչ ներկապնակներ, որոնք օգտագործվում են այս նախագծի համար, որոնք մեզ անհրաժեշտ են դրա աշխատանքի համար

Գտեք «Կառավարեք ներկապնակ» կոճակը և տեղադրեք հետևյալ ներկապնակները:

  • հանգույց-կարմիր-վահանակ
  • հանգույց-կարմիր-հանգույց-mysql
  • հանգույց-կարմիր-հանգույց-arduino
  • node-red-node-serialport

Այն պետք է ցույց տա մի քանի նոր ներկապնակ Node-կարմիր կոճակի ընտրացանկի կողքին:

Քայլ 2. Տվյալների բաժանում Node-red- ում

Տվյալների պառակտում Node-red- ում
Տվյալների պառակտում Node-red- ում

Այժմ, երբ Node-red- ը պատրաստ է գնալ, մենք պետք է սկսենք ՝ մեր տվյալները բաժանելով առանձին կտորների:

Ահա թե ինչու մենք համոզվեցինք դրանք առանձնացնել ստորակետներով Arduino կոդի ներսում:

Սկզբից սկսենք դնելով Arduino Input հանգույցը, որը գտնվում է ձախ կողմի վահանակում:

Դուք պետք է համոզվեք, որ այն ունի սերիական (Mine- ն օգտագործում է COM4) պորտը և Baud- ի արագությունը (իմ ծրագրում ես օգտագործում եմ 9600 բաուդ արագություն)

Եթե ճիշտ տեղադրված է, այն պետք է ասի, որ այն միացված է:

Հաջորդը մենք ստեղծում ենք Javascript գործառույթի բլոկ և միացնում այն Arduino մուտքի հանգույցից հետո: Այս բլոկը թույլ է տալիս ծրագրավորել Javascript- ում, և այստեղ մենք գրում ենք մի կոդ, որը կարող է բաժանել մեր տվյալները յուրաքանչյուր ստորակետի համար:

Այս գործառույթի բլոկում ես բաժանեցի իմ 5 տվյալները ՝ օգտագործելով հետևյալ ծածկագիրը.

var m1 = {թեմա ՝ "light1", payload: msg.payload.split (",") [0]}; var m2 = {թեմա ՝ "light2", payload: msg.payload.split (",") [1]}; var m3 = {թեմա ՝ "light3", payload: msg.payload.split (",") [2]}; var m4 = {թեմա ՝ "millis", payload: msg.payload.split (",") [3]}; var m5 = {թեմա ՝ «անջատված», բեռնվածություն ՝ msg.payload.split (",") [4]}; վերադարձ [մ 1, մ 2, մ 3, մ 4, մ 5];

(անհրաժեշտության դեպքում փոխել կոդը)

Համոզվեք, որ հանգույցը սահմանված է 5 ելքի վրա (կամ ձեր համարժեքը)

Ինչպես երեւում է սքրինշոթում, մենք այժմ ունենք 5 ելք, որոնցից յուրաքանչյուրը կապում ենք մինչեւ վրիպազերծման հանգույց եւ տեքստի վահանակի հանգույց: Սա օգտակար կլինի այն ժամանակ, երբ մենք պետք է այն տեսնենք UI- ում:

Քայլ 3: Տվյալների բազա Wampserver- ով

Տվյալների բազա Wampserver- ով
Տվյալների բազա Wampserver- ով

Մեր տվյալների բազան աշխատելու համար անհրաժեշտ է տեղադրել Wampserver- ը: Տեղադրվելուց հետո այն ցուցադրվում է որպես կանաչ պատկերակ (բոլոր ծառայությունները սկսելուց հետո), դուք պետք է բացեք «phpMyAdmin» - ը, որը պետք է ձեզ հասցնի մուտքի էկրան: Եթե դուք չունեք նախկինում փոխել է այն, պարզապես մուտքագրել «արմատ» օգտվողի անվան և մուտքի մեջ:

Սեղմեք phpmyadmin կոճակը ներքևի ձախ գոտում գտնվող գործիքների ներքո, և այն պետք է բացի տվյալների բազայի ընտրացանկը, որը նման է վերևում պատկերված պատկերին:

Ստեղծեք նոր տվյալների բազա և անվանեք այն ինչ -որ բան կապված ձեր նախագծի հետ, իմը կոչվում է «ահազանգման համակարգ» (այս անունները կլինեն մեծատառերի նկատմամբ զգայուն)

Այդ տվյալների բազայի տակ ստեղծեք նոր աղյուսակ և անվանեք այն, իմը կոչվում է «ահազանգ»:

այն կհարցնի ՝ արդյոք ցանկանում եք օգտագործել «latin1_swedish_ci» - ն, և մենք այն պարզապես այդպես ենք պահում:

Այժմ դուք ստեղծում եք 6 աղյուսակ (1 -ը ավելին, քան մեր ունեցած տվյալները)

Առաջին աղյուսակը պետք է օգտագործի տվյալների տիպը «longtext»

և մնացած տվյալների հավաքածուն օգտագործում է «միջին տեքստ»

Անպայման անվանեք դրանք: (առաջին տվյալների հավաքածուն պետք է անվանվի «ժամանակ»

Քայլ 4: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Wampserver- ի տվյալների հավաքածուն պետք է ունենա այսպիսի տեսք:

(բայց առանց իրական տվյալների, քանի որ դրան դեռ չենք հասել)

Քայլ 5. Հանգույց-կարմիր դեպի Wampserver

Հանգույց-կարմիր դեպի Wampserver
Հանգույց-կարմիր դեպի Wampserver

Այժմ մենք ցանկանում ենք, որ մեր arduino- ից ստացվող տվյալները գնան մեր Wampserver:

Սկսեք ՝ ստեղծելով մեկ այլ Javascript գործառույթի բլոկ և միացրեք այն մեր arduino մուտքի հանգույցին:

Այս սցենարային բլոկում մենք մեկ անգամ ևս բաժանում ենք մեր տվյալները, բայց դրանք տեղադրում ենք նաև մեր տվյալների բազայում:

var տվյալներ = msg.payload.split (","); var Green1 = տվյալներ [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 (). շերտ (0, 19). փոխարինել (' T ',' ')+"', '"+Green1+"', '"+Green2+"', '"+Ահազանգ+"', '"+Millis+"', '"+IsActive+"')"; msg.topic = դուրս; վերադարձնել msg;

Notանուցում ես մուտքագրում եմ «ՏԵSԵԿՈԹՅՈՆ alarmsystem.alarmdata», սա այն անունն է, որը մենք տվել ենք մեր տվյալների շտեմարանին և աղյուսակին, համոզվեք, որ դրանում գրում եք ձեր տվյալների բազայի տված ճշգրիտ անունը:

Այժմ միացրեք Javascript բլոկը վրիպազերծման հանգույցին, ինչպես նաև ձախ կողմում գտնվող պահեստային ներկապնակի տակ գտնված «mysql» հանգույցին:

mysql բլոկի տակ դուք այն նույնն եք անվանում, ինչպես ձեր տվյալների բազայի «ահազանգման համակարգ»

օգտվողին փոխել «արմատ» (անունը, որով մենք օգտագործում էինք մեր սերվերին մուտք գործելու համար)

հյուրընկալողը, նավահանգիստը և տվյալների բազան պետք է արդեն լրացված լինեն.

Հաղորդավար ՝ 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 UI միջերեսում:

Մենք կարող ենք նաև ավելացնել վահանակի կոճակ ՝ սեղանն ինքնին UI- ից թարմացնելու համար:

Սկսեք ՝ ստեղծելով կոճակի հանգույց:

միացրեք կոճակի հանգույցը Javascript գործառույթի բլոկին:

գործառույթի բլոկում մենք տեղադրում ենք հետևյալ ծածկագիրը:

msg.topic = "ԸՆՏՐԵԼ * Տագնապային տվյալներից պատվիրեք Green1 DESC LIMIT 20 -ով"; վերադարձնել msg;

(Green1- ը աղյուսակի տվյալների առաջին փոփոխականն է)

այս գործառույթի բլոկը այնուհետև պետք է միացված լինի մեր mysql հանգույցի մուտքին, որը մենք նախապես արել էինք այս քայլին:

Քայլ 7: Վերջնականացում

Վերջնականացում
Վերջնականացում

Այժմ մեր ինտերֆեյսը պետք է ներառի մեր տվյալների կենդանի թարմացում և սեղան ՝ մեր սերվերի տվյալներով:

Սա նշանակում է, որ մենք կապ ենք ստեղծել Arduino- ի, UI- ի վրա հիմնված ծրագրի և տվյալների բազայի միջև:

Եթե ձեզ հետաքրքրում է, թե ինչպես է աշխատում իմ Arduino ազդանշանային համակարգը, ես ավելացրել եմ մի փաստաթուղթ, որը բացատրում է, թե ինչպես է դա ծրագրավորվում և կարգավորվում:

Ինչպես նաև հանգույցների կարմիր ծրագրավորման ամբողջական արտահանում:

Խորհուրդ ենք տալիս: