![Սկսելով AWS IoT- ով ՝ անլար ջերմաստիճանի տվիչով ՝ օգտագործելով MQTT ՝ 8 քայլ Սկսելով AWS IoT- ով ՝ անլար ջերմաստիճանի տվիչով ՝ օգտագործելով MQTT ՝ 8 քայլ](https://i.howwhatproduce.com/images/006/image-15175-10-j.webp)
Բովանդակություն:
- Քայլ 1: AWS հաշվի ստեղծում
- Քայլ 2: Սարքավորման և ծրագրակազմի բնութագրերը
- Քայլ 3. Անլար թրթռման և ջերմաստիճանի տվիչներ
- Քայլ 4: ESP32 AWS որոնվածը
- Քայլ 5. Ստացեք տվիչների տվյալները անլար թրթռման և ջերմաստիճանի տվիչից
- Քայլ 6: Միացում AWS- ին
- Քայլ 7: Տվյալների արտացոլում AWS- ում
- Քայլ 8: Ընդհանուր ծածկագիր
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48
![Սկսելով AWS IoT- ով անլար ջերմաստիճանի տվիչով `օգտագործելով MQTT Սկսելով AWS IoT- ով անլար ջերմաստիճանի տվիչով `օգտագործելով MQTT](https://i.howwhatproduce.com/images/006/image-15175-11-j.webp)
Ավելի վաղ Instructables- ում մենք անցել ենք տարբեր ամպային հարթակներով, ինչպիսիք են Azure- ը, Ubidots- ը, ThingSpeak- ը, Losant- ը և այլն: Մենք օգտագործում էինք MQTT արձանագրությունը `սենսորային տվյալները ամպ ուղարկելու համար գրեթե բոլոր ամպային հարթակում: MQTT- ի, HTTP արձանագրության նկատմամբ դրա առավելությունների և առավելությունների մասին լրացուցիչ տեղեկությունների համար կարող եք ծանոթանալ այս հրահանգվողին:
Այս ուսանելի դասում մենք խոշորացնելու ենք Amazon Web ծառայությունների մեկ այլ և առավել ծանոթ ամպային հարթակը: Ձեզանից շատերը կարող են ծանոթ լինել AWS aka Amazon Web Services- ին և AWS- ի կողմից տրամադրվող ամպի գործառույթներին: Այն երկար տարիներ եղել է վեբ զարգացման առանցքը: IoT ծրագրերի աճող մասշտաբների հետ AWS- ը գտել է AWSIoT լուծումը: AWSIoT- ը հուսալի լուծում է մեր IoT ծրագրերը հյուրընկալելու համար:
Հետևելով այս հրահանգին.
- Դուք կկարողանաք ստեղծել AWS հաշիվ ձեր IoT հավելվածի համար
- Դուք կկարողանաք ESP32- ը միացնել AWS IoT միջուկին
- Ուղարկեք և ստացեք հաղորդագրություններ ՝ օգտագործելով MQTT և HTTP արձանագրություն
- Պատկերացրեք ուղարկված տվյալները AWS- ում
Քայլ 1: AWS հաշվի ստեղծում
AWS հաշիվ ստեղծելը բավականին հեշտ է: Պարզապես պետք է մի քանի վկայագիր վերբեռնել, դրան կցել քաղաքականություն, գրանցել սարքը և սկսել սենսորների տվյալների հաղորդագրությունները ստանալ AWS- ում:
AWS հաշիվ ստեղծելու համար հետևեք այս ձեռնարկին:
Քայլ 2: Սարքավորման և ծրագրակազմի բնութագրերը
![Սարքավորման և ծրագրակազմի բնութագրերը Սարքավորման և ծրագրակազմի բնութագրերը](https://i.howwhatproduce.com/images/006/image-15175-12-j.webp)
Softwareրագրաշարի բնութագրում
AWS հաշիվ
Սարքաշարի բնութագրում
- ESP32
- Անլար ջերմաստիճանի և թրթռման տվիչ
- Zigmo Gateway ընդունիչ
Քայլ 3. Անլար թրթռման և ջերմաստիճանի տվիչներ
![Անլար թրթռման և ջերմաստիճանի տվիչներ Անլար թրթռման և ջերմաստիճանի տվիչներ](https://i.howwhatproduce.com/images/006/image-15175-13-j.webp)
Սա երկարաժամկետ արդյունաբերական IoT անլար թրթռման և ջերմաստիճանի տվիչ է, որը կարող է պարծենալ մինչև 2 Մղոն հեռավորությամբ ՝ օգտագործելով անլար ցանցային ցանցային ճարտարապետություն: Ներառելով 16-բիթանոց թրթռման և ջերմաստիճանի տվիչ ՝ այս սենսորը փոխանցում է թրթռումների շատ ճշգրիտ տվյալներ օգտվողի կողմից սահմանված ընդմիջումներով: Այն ունի հետևյալ հատկանիշները.
- Արդյունաբերական դասարանի 3 առանցքի թրթռման սենսոր ± 32 գ միջակայքով
- Հաշվում է RMS, MAX և MIN գ թրթռում
- Աղմուկի հեռացում ցածր անցման ֆիլտրի միջոցով
- Հաճախականությունների տիրույթ (թողունակություն) մինչև 12, 800 Հց
- Նմուշի տոկոսադրույքը մինչև 25, 600 Հց
- Գաղտնագրված հաղորդակցություն 2 մղոն անլար տիրույթի հետ
- Գործող ջերմաստիճանի միջակայք -40 -ից +85 ° C
- Պատի վրա տեղադրված կամ մագնիսով տեղադրված IP65 գնահատված պարիսպ Օրինակելի ծրագրակազմ Visual Studio- ի և LabVIEW- ի համար
- Թրթռման սենսոր `արտաքին զոնդի տարբերակով
- Մինչև 500, 000 փոխանցում 4 AA մարտկոցից: Մատչելի են բազմաթիվ դարպասների և մոդեմի ընտրանքներ
Քայլ 4: ESP32 AWS որոնվածը
AWS- ին միանալու և տվյալները ուղարկելու համար անցեք հետևյալ քայլերով
- Ներբեռնեք AWS գրադարանը հետևյալ Github պահոցից
- clone repo- ն և տեղադրեք AWS_IOT ֆայլը Arduino գրացուցակի գրադարանի թղթապանակում
git կլոն
Հիմա եկեք անցնենք ծածկագրի միջոցով.
- Այս հավելվածում մենք օգտագործել ենք գերի ընկած պորտալը ՝ WiFi հավատարմագրերը պահպանելու և IP կարգավորումների միջով սավառնելու համար: Գերի ընկած պորտալում մանրամասն ծանոթանալու համար կարող եք անցնել հետևյալ ուսանելի:
- Գերի ընկած պորտալը մեզ հնարավորություն է տալիս ընտրել ստատիկ և DHCP պարամետրերի միջև: Պարզապես մուտքագրեք հավատարմագրերը, ինչպիսիք են Static IP- ն, Subnet Mask- ը, gateway- ը և Wireless Sensor Gateway- ը կկարգավորվեն այդ IP- ում:
- Տեղադրվում է մի վեբ էջ, որտեղ առկա WiFi ցանցերի և այնտեղ RSSI- ի ցուցակը: Ընտրեք WiFi ցանցը և գաղտնաբառը և մուտքագրեք ներկայացնել: Հավատարմագրերը կպահվեն EEPROM- ում, իսկ IP- ի կարգավորումը ՝ SPIFFS- ում: Այս մասին ավելին կարելի է գտնել այս հրահանգի մեջ:
Քայլ 5. Ստացեք տվիչների տվյալները անլար թրթռման և ջերմաստիճանի տվիչից
![Սենսորային տվյալների ստացում անլար թրթռման և ջերմաստիճանի տվիչից Սենսորային տվյալների ստացում անլար թրթռման և ջերմաստիճանի տվիչից](https://i.howwhatproduce.com/images/006/image-15175-14-j.webp)
![Սենսորային տվյալների ստացում անլար թրթռման և ջերմաստիճանի տվիչից Սենսորային տվյալների ստացում անլար թրթռման և ջերմաստիճանի տվիչից](https://i.howwhatproduce.com/images/006/image-15175-15-j.webp)
Մենք ստանում ենք 54 բայթ շրջանակ ՝ անլար ջերմաստիճանի և թրթռման տվիչներից: Այս շրջանակը շահարկված է իրական ջերմաստիճանի և թրթռման տվյալները ստանալու համար:
ESP32- ն ունի երեք UART, որոնք հասանելի են սերիական օգտագործման համար
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
և 3 ապարատային սերիական նավահանգիստ
- Սերիական
- Սերիա 1
- Սերիա 2
Նախ, նախաստորագրեք Hardware Serial վերնագրի ֆայլը: Այստեղ մենք կօգտագործենք RX2 և TX2 aka: ESP32 տախտակի GPIO 16 և GPIO 17 կապում ՝ սերիական տվյալները ստանալու համար:
#ներառում
# սահմանել RXD2 16 # սահմանել TXD2 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // կապում 16 rx2, 17 tx2, 19200 bps, 8 բիթ առանց պարիտետի 1 կանգառ բիթ
Հետևյալ քայլերը ձեզ հետագայում կհանգեցնեն սենսորների իրական արժեքներին
- Ստեղծեք փոփոխականներ ջերմաստիճանի, խոնավության, մարտկոցի և տվիչների այլ արժեքների պահպանման համար
- Սահմանեք Rx, tx pin, baud rate և parity bits ապարատային սերիայի համար
- Նախ, ստուգեք, որ կարդալ ինչ -որ բան կա ՝ օգտագործելով Serial1.available ()
- Մենք կստանանք 54 բայթ շրջանակ:
- Ստուգեք 0x7E- ի համար, որը մեկնարկային բայթ է:
- Թրթռման տվյալները բաղկացած են 3 առանցքի RMS արժեքից, 3 առանցքի համար նվազագույն արժեքներից, 3 առանցքի առավելագույն արժեքներից:
- ջերմաստիճանի և մարտկոցի արժեքները կպարունակեն 2 բայթ տվյալներ
- ստացեք սենսորի անունը, տեսակը, տվիչի տարբերակը կպարունակի 1 բայթ տվյալներ և կարող եք ստանալ համապատասխան հասցեից
if (Serial2.available ()) {Serial.println («Կարդա սերիալ»); տվյալներ [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); int16_t max_x = ((uint16_t) (((տվյալները [33]) << 16) + ((տվյալները [34]) << 8) + (տվյալները [35]))/100); int16_t max_y = ((uint16_t) (((տվյալները [36]) << 16) + ((տվյալները [37]) << 8) + (տվյալները [38]))/100); int16_t max_z = ((uint16_t) (((տվյալները [39]) << 16) + ((տվյալները [40]) << 8) + (տվյալները [41]))/100);
int16_t min_x = ((uint16_t) (((տվյալները [42]) << 16) + ((տվյալները [43]) << 8) + (տվյալները [44]))/100); int16_t min_y = ((uint16_t) (((տվյալները [45]) << 16) + ((տվյալները [46]) << 8) + (տվյալները [47]))/100); int16_t min_z = ((uint16_t) (((տվյալները [48]) << 16) + ((տվյալները [49]) << 8) + (տվյալները [50]))/100);
cTemp = ((((տվյալները [51]) * 256) + տվյալները [52])); լողացող մարտկոց = ((տվյալներ [18] * 256) + տվյալներ [19]); լարման = 0.00322 * մարտկոց; Serial.print («Սենսորային համար»); Serial.println (տվյալները [16]); senseNumber = տվյալներ [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); }}}}
Քայլ 6: Միացում AWS- ին
![Միացում AWS- ին Միացում AWS- ին](https://i.howwhatproduce.com/images/006/image-15175-16-j.webp)
- Ներառեք AWS_IOT.h, WiFi.h վերնագրի ֆայլերը ՝ AWSIoT հանգույցի հետ կապ ստեղծելու համար
- Մուտքագրեք ձեր տանտիրոջ հասցեն, Client ID- ն, որը կլինի քաղաքականության անվանումը, և թեմայի անունը, որը կլինի իրի անունը
// ********* AWS հավատարմագրեր ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
Ստեղծեք char փոփոխական ՝ ձեր JSON- ը պահելու համար, այս դեպքում մենք ստեղծել ենք JSON պահելու ձևաչափ
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" լարման / ":%. 2f}";
Ստեղծեք AWS_IOT դասի օրինակ
AWS_IOT esp; // AWS_IOT դասի օրինակ
Այժմ միացեք AWSIoT հանգույցին ՝ օգտագործելով հետևյալ մեթոդը:
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("Միացված է AWS- ին"); ուշացում (1000);
եթե (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Բաժանորդագրվել հաջողությամբ"); } else {Serial.println ("Բաժանորդագրությունը ձախողվեց, ստուգեք բանի անունը և վկայականները"); մինչդեռ (1); }} else {Serial.println ("AWS կապը ձախողվեց, ստուգեք HOST հասցեն"); մինչդեռ (1); }
ուշացում (2000);
}
հրապարակեք տվիչների տվյալները յուրաքանչյուր 1 րոպեից հետո:
if (tick> = 60) // թեմային հրապարակել յուրաքանչյուր 5 վայրկյանում {tick = 0; char բեռնվածություն [PAYLOAD_MAX_LEN]; snprintf (բեռնվածություն, PAYLOAD_MAX_LEN, ձևաչափ, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, լարում); Serial.println (բեռնվածություն); if (hornbill.publish (TOPIC_NAME, payload) == 0) {Serial.print ("Հրապարակել հաղորդագրությունը."); Serial.println (բեռնվածություն); } else {Serial.println ("Հրապարակումը ձախողվեց"); }} vTaskDelay (1000 / նավահանգիստ TICK_RATE_MS); տիզ ++;
Քայլ 7: Տվյալների արտացոլում AWS- ում
![Տվյալների արտացոլում AWS- ում Տվյալների արտացոլում AWS- ում](https://i.howwhatproduce.com/images/006/image-15175-17-j.webp)
![Տվյալների արտացոլում AWS- ում Տվյալների արտացոլում AWS- ում](https://i.howwhatproduce.com/images/006/image-15175-18-j.webp)
![Տվյալների արտացոլում AWS- ում Տվյալների արտացոլում AWS- ում](https://i.howwhatproduce.com/images/006/image-15175-19-j.webp)
- Մուտք գործեք ձեր AWS հաշիվ:
- Գործիքադարակի ձախ անկյունում կգտնեք «Servicesառայություններ» ներդիրը
- Կտտացրեք այս ներդիրին և «Իրերի ինտերնետ» խորագրի ներքո ընտրեք IoT Core:
- Ընտրեք QoS և ոչ: հաղորդագրություններ բաժանորդներին: Մուտքագրեք թեմայի անունը:
Քայլ 8: Ընդհանուր ծածկագիր
Դուք կարող եք գտնել ընդհանուր ծածկագիրը այս Github պահեստում:
Վարկեր
- Արդուինո sonսոն
- Անլար ջերմաստիճանի և խոնավության տվիչներ
- ESP32
- PubSubClient
Խորհուրդ ենք տալիս:
Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ
![Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման տվիչների միջոցով `7 քայլ](https://i.howwhatproduce.com/images/001/image-149-j.webp)
Սկսելով երկար հեռահար անլար ջերմաստիճանի և թրթռման սենսորների օգտագործմամբ. Երբեմն թրթռումը լուրջ խնդիրների պատճառ է դառնում բազմաթիվ ծրագրերում: Մեքենայի լիսեռներից և առանցքակալներից մինչև կոշտ սկավառակի աշխատանքը, թրթռումը առաջացնում է մեքենայի վնասում, վաղ փոխարինում, ցածր կատարողականություն և մեծ հարված հասցնում ճշգրտությանը: Մոնիտորինգ
Անլար թրթռման և ջերմաստիճանի տվիչների տվյալներ MySQL- ում ՝ օգտագործելով Node-RED: 40 քայլ
![Անլար թրթռման և ջերմաստիճանի տվիչների տվյալներ MySQL- ում ՝ օգտագործելով Node-RED: 40 քայլ Անլար թրթռման և ջերմաստիճանի տվիչների տվյալներ MySQL- ում ՝ օգտագործելով Node-RED: 40 քայլ](https://i.howwhatproduce.com/images/009/image-26885-j.webp)
Անլար թրթռումների և ջերմաստիճանի տվիչների տվյալներ MySQL- ին Node-RED- ի միջոցով. Ներկայացնում ենք NCD- ի Long Range IoT Industrial անլար թրթռման և ջերմաստիճանի տվիչը, որը կարող է պարծենալ մինչև 2 մղոն հեռավորությամբ `անլար ցանցային ցանցի կառուցվածքի օգտագործմամբ: Ներառելով ճշգրիտ 16-բիթանոց թրթռման և ջերմաստիճանի տվիչ ՝ այս սարքը փոխում է
Անլար թրթռման և ջերմաստիճանի տվյալներ ուղարկել Google թերթիկներին ՝ օգտագործելով Node-RED ՝ 37 քայլ
![Անլար թրթռման և ջերմաստիճանի տվյալներ ուղարկել Google թերթիկներին ՝ օգտագործելով Node-RED ՝ 37 քայլ Անլար թրթռման և ջերմաստիճանի տվյալներ ուղարկել Google թերթիկներին ՝ օգտագործելով Node-RED ՝ 37 քայլ](https://i.howwhatproduce.com/images/010/image-28733-j.webp)
Node-RED- ի միջոցով Google թերթիկներին անլար թրթռման և ջերմաստիճանի տվյալներ ուղարկելը. Ներկայացնելով NCD- ի Long Range IoT Industrial անլար թրթռման և ջերմաստիճանի տվիչը, որը կարող է պարծենալ մինչև 2 մղոն հեռավորությամբ `անլար ցանցային ցանցի կառուցվածքի օգտագործմամբ: Ներառելով ճշգրիտ 16-բիթանոց թրթռման և ջերմաստիճանի տվիչ ՝ այս սարքը փոխում է
Node-RED IoT երկար հեռավորության թրթռման և ջերմաստիճանի տվիչով ՝ 34 քայլ
![Node-RED IoT երկար հեռավորության թրթռման և ջերմաստիճանի տվիչով ՝ 34 քայլ Node-RED IoT երկար հեռավորության թրթռման և ջերմաստիճանի տվիչով ՝ 34 քայլ](https://i.howwhatproduce.com/images/011/image-31724-j.webp)
Node-RED IoT երկար հեռավորության թրթռման և ջերմաստիճանի տվիչով. Ներկայացնում ենք NCD- ի անլար ջերմաստիճանի խոնավության տվիչը ՝ պարծենալով մինչև 28 Մղոն հեռավորությամբ ՝ օգտագործելով անլար ցանցային ճարտարապետություն: Honeywell HIH9130 ջերմաստիճանի խոնավության տվիչի ներառումը փոխանցում է բարձր ճշգրիտ ջերմաստիճան
NCD- ի անլար ջերմաստիճանի և խոնավության սենսորի էլեկտրոնային ծանուցումների ստեղծում `օգտագործելով Node-Red: 22 քայլ
![NCD- ի անլար ջերմաստիճանի և խոնավության սենսորի էլեկտրոնային ծանուցումների ստեղծում `օգտագործելով Node-Red: 22 քայլ NCD- ի անլար ջերմաստիճանի և խոնավության սենսորի էլեկտրոնային ծանուցումների ստեղծում `օգտագործելով Node-Red: 22 քայլ](https://i.howwhatproduce.com/images/003/image-7047-j.webp)
NCD-Red- ի միջոցով NCD անլար ջերմաստիճանի և խոնավության սենսորի էլփոստի ահազանգերի ստեղծում. Մենք այստեղ օգտագործում ենք NCD- ի ջերմաստիճանի և խոնավության սենսորը, սակայն քայլերը մնում են նույնը ցանկացած ncd արտադրանքի համար, այնպես որ, եթե ունեք այլ ncd անլար տվիչներ, փորձեք անվճար: դիտել կողքին բացի. Այս տեքստի կանգառի միջոցով դուք պետք է