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

Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ
Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ

Video: Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ

Video: Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ
Video: Ընտանի և վայրի կենդանիներ․ 2-րդ դասարան 2024, Հուլիսի
Anonim
Սկսելով սկսել մեծ հեռահարության անլար ջերմաստիճանի և թրթռման տվիչներով
Սկսելով սկսել մեծ հեռահարության անլար ջերմաստիճանի և թրթռման տվիչներով

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

Այս ուսանելի դասում մենք աշխատելու ենք IoT հեռահար անլար թրթռման և ջերմաստիճանի տվիչների վրա: Սրանք արդյունաբերական դասի սենսորներ են, որոնք շատ տարածված ծրագրեր ունեն:

  • Մետաղագործություն
  • Էլեկտրաէներգիայի արտադրություն
  • Հանքարդյունաբերություն
  • Սնունդ եւ խմիչքներ

Այսպիսով, այս Ուղեցույցում մենք անցնելու ենք հետևյալը.

  • Անլար տվիչների կարգավորում XCTU- ի և Labview UI- ի միջոցով:
  • Սենսորից թրթռման արժեքներ ստանալը:
  • Հասկանալ xbee սարքի և xbee արձանագրության աշխատանքը:
  • WiFi հավատարմագրերի և IP կոնֆիգուրացիայի կազմաձևում ՝ գերված պորտալի միջոցով

Քայլ 1: Սարքավորման և ծրագրակազմի բնութագրում

Սարքավորման և ծրագրակազմի բնութագրում
Սարքավորման և ծրագրակազմի բնութագրում
Սարքավորման և ծրագրակազմի բնութագրում
Սարքավորման և ծրագրակազմի բնութագրում
Սարքավորման և ծրագրակազմի բնութագրում
Սարքավորման և ծրագրակազմի բնութագրում

Սարքաշարի բնութագրում

  • Անլար թրթռման և ջերմաստիճանի տվիչներ
  • Igիգմո ընդունիչ
  • ESP32 BLE/ WiFi սարք

Softwareրագրաշարի բնութագրում

  • Arduino IDE
  • LabView կոմունալ

Քայլ 2. Անլար տվիչի և Zigmo ընդունիչի կարգավորում XCTU- ի միջոցով

Անլար տվիչի և Zigmo ընդունիչի կարգաբերում XCTU- ի միջոցով
Անլար տվիչի և Zigmo ընդունիչի կարգաբերում XCTU- ի միջոցով
Անլար տվիչի և Zigmo ստացողի կարգավորում XCTU- ի միջոցով
Անլար տվիչի և Zigmo ստացողի կարգավորում XCTU- ի միջոցով

Յուրաքանչյուր IoT սարք կարիք ունի հաղորդակցության արձանագրության ՝ սարքը ամպի վրա դնելու և տարբեր սարքերի միջև անլար ինտերֆեյս ստեղծելու համար:

Այստեղ անլար սենսորները և Zigmo ընդունիչը օգտագործում են ցածր էներգիայի և երկար հեռավորության լուծում XBee: XBee- ն օգտագործում է ZigBee արձանագրություն, որը սահմանում է գործողությունը 902 -ից 928 ՄՀց ISM տիրույթներում:

Xbee- ն կարող է կազմաձևվել ՝ օգտագործելով XCTU ծրագրակազմ

  1. Որոնեք Xbee սարքը կամ ավելացրեք նոր Xbee սարք ՝ կտտացնելով վերևի ձախ պատկերակին:
  2. Սարքը կցուցադրվի ձախ վահանակի վրա:
  3. կրկնակի սեղմեք սարքի վրա `կարգավորումները տեսնելու համար:
  4. Այժմ կտտացրեք վահանակի պատկերակին ՝ վերին աջ անկյունում
  5. Դուք կարող եք տեսնել արժեքը, որը գալիս է վահանակի ելքի վրա
  6. Այստեղ մենք ստանում ենք 54 բայթ երկարության շրջանակ
  7. այս բայթերը հետագայում կշահարկվեն `իրական արժեքները ստանալու համար: իրական ջերմաստիճանի և թրթռման արժեքները ստանալու ընթացակարգը նշված է առաջիկա քայլերում:

Քայլ 3. Անլար ջերմաստիճանի և թրթռման արժեքների վերլուծություն ՝ օգտագործելով Labview կոմունալը

Անլար ջերմաստիճանի և թրթռման արժեքների վերլուծություն ՝ օգտագործելով Labview կոմունալը
Անլար ջերմաստիճանի և թրթռման արժեքների վերլուծություն ՝ օգտագործելով Labview կոմունալը
Անլար ջերմաստիճանի և թրթռման արժեքների վերլուծություն ՝ օգտագործելով Labview կոմունալը
Անլար ջերմաստիճանի և թրթռման արժեքների վերլուծություն ՝ օգտագործելով Labview կոմունալը

Սենսորը աշխատում է երկու ռեժիմով

  • Կազմաձևման ռեժիմ. Կարգավորեք Pan ID- ն, հետաձգումը, կրկնումների քանակը և այլն: Այս մասին ավելին դուրս է այս հրահանգվողի շրջանակներից և կբացատրվի հաջորդ հրահանգում:
  • Գործարկման ռեժիմ. Մենք սարքը գործարկում ենք Run ռեժիմում: Եվ այս արժեքը վերլուծելու համար մենք օգտագործում ենք Labview կոմունալը

Այս Labview UI- ն ցույց է տալիս գեղեցիկ գրաֆիկների արժեքները: Այն ցույց է տալիս ինչպես ընթացիկ, այնպես էլ անցյալ արժեքները: Դուք կարող եք գնալ այս հղմանը ՝ Labview UI- ը ներբեռնելու համար:

կտտացրեք «Գործարկել» պատկերակին վայրէջքի էջի ընտրացանկից ՝ գործարկման ռեժիմին անցնելու համար:

Քայլ 4. DHCP/Ստատիկ IP կարգավորումների կազմաձևում ՝ գերված պորտալի միջոցով

DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով
DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով
DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով
DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով
DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով
DHCP/ստատիկ IP պարամետրերի կազմաձևում ՝ գերված պորտալի միջոցով

Մենք օգտագործում ենք գերված պորտալը ՝ WiFi հավատարմագրերը պահպանելու և IP կարգավորումների միջոցով սավառնելու համար: Գերի ընկած պորտալում մանրամասն ներածության համար կարող եք անցնել հետևյալ ուսանելի:

Գերի ընկած պորտալը մեզ հնարավորություն է տալիս ընտրելու ստատիկ և DHCP կարգավորումները: Պարզապես մուտքագրեք հավատարմագրերը, ինչպիսիք են Static IP- ն, Subnet Mask- ը, gateway- ը և Wireless Sensor Gateway- ը կկարգավորվեն այդ IP- ում:

Քայլ 5. Պահել WiFi կարգավորումները ՝ օգտագործելով գերված պորտալը

WiFi կարգավորումների պահպանում ՝ գերված պորտալի միջոցով
WiFi կարգավորումների պահպանում ՝ գերված պորտալի միջոցով

Տեղադրվում է մի վեբ էջ, որտեղ առկա WiFi ցանցերի և այնտեղ RSSI- ի ցուցակը: Ընտրեք WiFi ցանցը և գաղտնաբառը և մուտքագրեք ներկայացնել: Հավատարմագրերը կպահվեն EEPROM- ում, իսկ IP- ի կարգավորումը ՝ SPIFFS- ում: Այս մասին ավելին կարելի է գտնել այս հրահանգի մեջ:

Քայլ 6. Սենսորային ընթերցումների հրատարակում UbiDots- ում

Այստեղ մենք օգտագործում ենք անլար ջերմաստիճանի և թրթռման տվիչներ ՝ ESP 32 դարպասի ընդունիչով ՝ ջերմաստիճանի և խոնավության տվյալները ստանալու համար: Մենք տվյալները ուղարկում ենք UbiDots ՝ օգտագործելով MQTT արձանագրությունը: MQTT- ն հետևում է հրապարակման և բաժանորդագրման մեխանիզմին, այլ ոչ թե այդ խնդրանքին և պատասխանին: Այն ավելի արագ և հուսալի է, քան HTTP- ը: Սա աշխատում է հետևյալ կերպ.

Անլար տվիչների տվյալների ընթերցում

Մենք ստանում ենք 29 բայթ շրջանակ ՝ անլար ջերմաստիճանի և թրթռման տվիչներից: Այս շրջանակը շահարկված է իրական ջերմաստիճանի և թրթռման տվյալները ստանալու համար:

if (Serial2.available ()) {data [0] = Serial2.read (); ուշացում (k); if (տվյալներ [0] == 0x7E) {Serial.println («Ստացա փաթեթ»); իսկ (! Serial2.available ()); համար (i = 1; i <55; i ++) {data = Serial2.read (); ուշացում (1); } եթե (տվյալներ [15] == 0x7F) /////// ստուգելու համար, թե արդյոք ստացված տվյալները ճիշտ են {if (տվյալներ [22] == 0x08) //////// համոզվեք, որ սենսորի տեսակը ճիշտ է {rms_x = ((uint16_t) (((տվյալները [24]) << 16) + ((տվյալները [25]) << 8) + (տվյալները [26]))/100); rms_y = ((uint16_t) (((տվյալները [27]) << 16) + ((տվյալները [28]) << 8) + (տվյալները [29]))/100); rms_z = ((uint16_t) (((տվյալները [30]) << 16) + ((տվյալները [31]) << 8) + (տվյալները [32]))/100); max_x = ((uint16_t) (((տվյալները [33]) << 16) + ((տվյալները [34]) << 8) + (տվյալները [35]))/100); max_y = ((uint16_t) (((տվյալները [36]) << 16) + ((տվյալները [37]) << 8) + (տվյալները [38]))/100); max_z = ((uint16_t) (((տվյալները [39]) << 16) + ((տվյալները [40]) << 8) + (տվյալները [41]))/100);

min_x = ((uint16_t) (((տվյալները [42]) << 16) + ((տվյալները [43]) << 8) + (տվյալները [44]))/100); min_y = ((uint16_t) (((տվյալները [45]) << 16) + ((տվյալները [46]) << 8) + (տվյալները [47]))/100); min_z = ((uint16_t) (((տվյալները [48]) << 16) + ((տվյալները [49]) << 8) + (տվյալները [50]))/100);

cTemp = ((((տվյալները [51]) * 256) + տվյալները [52])); լողացող մարտկոց = ((տվյալներ [18] * 256) + տվյալներ [19]); բոց լարման = 0.00322 * մարտկոց; Serial.print («Սենսորային համար»); Serial.println (տվյալները [16]); Serial.print («Սենսորային տեսակ»); Serial.println (տվյալները [22]); Serial.print («irmրագրակազմի տարբերակ»); Serial.println (տվյալները [17]); Serial.print ("Cերմաստիճանը Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS թրթռում X առանցքի մեջ."); Serial.print (rms_x); Serial.println («մգ»); Serial.print ("RMS թրթռում Y- առանցքում."); Serial.print (rms_y); Serial.println («մգ»); Serial.print ("RMS թրթռում Z առանցքի մեջ."); Serial.print (rms_z); Serial.println («մգ»);

Serial.print («Առնվազն թրթռում X առանցքում.»);

Serial.print (min_x); Serial.println («մգ»); Serial.print ("Նվազագույն թրթռում Y- առանցքում."); Serial.print (min_y); Serial.println («մգ»); Serial.print («Նվազագույն թրթռում Z առանցքի մեջ.»); Serial.print (min_z); Serial.println («մգ»);

Serial.print ("ADC արժեքը:");

Serial.println (մարտկոց); Serial.print ("Մարտկոցի լարումը."); Serial.print (լարման); Serial.println ("\ n"); if (լարման <1) {Serial.println («Մարտկոցը փոխարինելու ժամանակը»); }}} այլ {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); ուշացում (1); }}}}

Միացում UbiDots MQTT API- ին

Ներառեք MQTT գործընթացի վերնագրի ֆայլը:

#ներառել "PubSubClient.h"

սահմանել այլ փոփոխականներ MQTT- ի համար, ինչպիսիք են հաճախորդի անունը, միջնորդի հասցեն, նշանի ID (մենք վերցնում ենք նշանի ID- ն EEPROM- ից)

#սահմանեք MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; char բեռ [100]; char թեմա [150]; // ստեղծել փոփոխական ՝ նշանի ID String tokenId պահելու համար;

Ստեղծեք փոփոխականներ ՝ տարբեր սենսորային տվյալներ պահելու համար և ստեղծեք char փոփոխական ՝ թեման պահելու համար

#սահմանել VARIABLE_LABEL_TEMPF "tempF" // Հաշվի առնելով փոփոխական պիտակը #define VARIABLE_LABEL_TEMPC "tempC" // Assab the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid label" // Assing

char թեմա 1 [100];

char թեմա 2 [100]; char թեմա 3 [100];

հրապարակել տվյալ MQTT թեմայի տվյալները, բեռնվածությունը նման կլինի {"tempc": {value: "tempData"}}

sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (բեռնվածություն, "%s", "");

// Մաքրում է բեռնվածքի սպրինտֆը (բեռնվածություն, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// Ավելացնում է sprintf արժեքը (բեռնվածություն, "%s {" արժեք / ":%s}", բեռնվածություն, str_cTemp);

// Ավելացնում է sprintf արժեքը (բեռնվածություն, «%s}», բեռնվածություն);

// Փակում է Serial.println բառարանի փակագծերը (բեռնվածություն);

Serial.println (client.publish (topic1, payload)? "Published": "notpublished");

// Նույնը արեք նաև այլ թեմայի համար

client.publish () տվյալները հրապարակում է UbiDots- ում:

Քայլ 7: Տվյալների պատկերացում

Տվյալների պատկերացում
Տվյալների պատկերացում
  • Գնացեք Ubidots և մուտք գործեք ձեր հաշիվ:
  • Գնացեք Գործիքային վահանակ ՝ վերևում նշված Տվյալների ներդիրից:
  • Այժմ կտտացրեք «+» պատկերակին ՝ նոր վիջեթներ ավելացնելու համար:
  • Selectանկից ընտրեք վիջեթ և ավելացրեք փոփոխական և սարքեր:
  • Սենսորների տվյալները կարող են արտացոլվել վահանակի վրա ՝ օգտագործելով տարբեր վիջեթներ:

Ընդհանուր ծածկագիր

HTML- ի և ESP32- ի Over կոդը կարելի է գտնել այս GitHub շտեմարանում:

  1. ncd ESP32 բեկման տախտակ:
  2. ncd Անլար ջերմաստիճանի և խոնավության տվիչներ:
  3. pubsubclient
  4. UbiDots

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