Բովանդակություն:
- Պարագաներ
- Քայլ 1. Մասնիկների նյութ (PM). Ի՞նչ է դա: Ինչպե՞ս է այն մտնում օդ:
- Քայլ 2. Ինչու՞ է կարևոր հոգ տանել այդ մասնավոր հարցերի մասին:
- Քայլ 3. Մասնիկների սենսոր - SDS011
- Քայլ 4. Բայց ինչպե՞ս կարող է SDS011- ը գրավել այդ մասնիկները:
- Քայլ 5: Showtime
- Քայլ 6. Օդի որակի ինդեքս - AQI
- Քայլ 7: Տեղական տվյալների մուտքագրում
- Քայլ 8: Տվյալների ուղարկում ամպային ծառայությանը
- Քայլ 9: MQTT արձանագրություն և ThingSpeak միացում
- Քայլ 10: MQTT հրապարակում
- Քայլ 11: Վերջնական սցենարը
- Քայլ 12. Մոնիտորը դրսում վերցնելը
- Քայլ 13: Բենզինի շարժիչի այրումը
- Քայլ 14: Փայտի այրումը
- Քայլ 15: Եզրակացություն
Video: Oածր ծախսերի IoT օդի որակի մոնիտոր ՝ հիմնված RaspberryPi 4: 15 քայլերի վրա (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Սանտյագո, Չիլի, ձմեռային բնապահպանական արտակարգ իրավիճակներում արտոնություն ունեն ապրելու աշխարհի ամենագեղեցիկ երկրներից մեկում, բայց, ցավոք, դա բոլորը վարդեր չեն: Ձմեռային սեզոնի ընթացքում Չիլին շատ է տուժում օդի աղտոտվածությունից ՝ հիմնականում մասնիկների ՝ փոշու և ծխի պատճառով:
Coldուրտ եղանակի պատճառով, հարավում, օդի աղտոտվածությունը հիմնականում պայմանավորված է փայտի վրա հիմնված քլեֆակտորներով, իսկ Սանտյագոյում (երկրի կենտրոնական կենտրոնը) արդյունաբերությունից, մեքենաներից և նրա հսկայական աշխարհագրական իրավիճակից 2 հսկայական լեռնային շղթաների միջև:
Մեր օրերում օդի աղտոտվածությունը մեծ խնդիր է ամբողջ աշխարհում, և այս հոդվածում մենք կքննարկենք, թե ինչպես մշակել օդի որակի ցածր թանկարժեք տնային մոնիտոր `հիմնված Raspberry Pi- ի վրա: Եթե ձեզ հետաքրքրում է օդի որակի մասին ավելին իմանալը, այցելեք «Օդի որակի համաշխարհային ինդեքս» նախագիծը:
Պարագաներ
- Ազնվամորի Պի 4
- 1SDS011 - Բարձր ճշգրիտ լազերային PM2.5 օդի որակի հայտնաբերման տվիչ
- Պլաստիկ տուփ
Քայլ 1. Մասնիկների նյութ (PM). Ի՞նչ է դա: Ինչպե՞ս է այն մտնում օդ:
Այսպիսով, աղտոտումը կամ օդի աղտոտվածությունը հասկանալու համար մենք պետք է ուսումնասիրենք դրա հետ կապված մասնիկները, որը նաև հայտնի է որպես մասնիկ նյութ: Նայելով նախորդ բաժնի գրաֆիկներին ՝ կարող ենք նկատել, որ դրանք նշել են PM2.5 և PM10: Եկեք դրա արագ ակնարկը տանք:
PM- ը հանդես է գալիս որպես մասնիկներ (կոչվում է նաև մասնիկների աղտոտում) ՝ օդում գտնված պինդ մասնիկների և հեղուկ կաթիլների խառնուրդ տերմինը: Որոշ մասնիկներ, ինչպիսիք են փոշին, կեղտը, մուրը կամ ծուխը, այնքան մեծ են կամ մութ, որ դրանք կարելի է տեսնել անզեն աչքով: Մյուսներն այնքան փոքր են, որ դրանք կարող են հայտնաբերվել միայն էլեկտրոնային մանրադիտակով: Մասնիկները գալիս են չափերի լայն տեսականիով: 10 միկրոմետրից փոքր կամ հավասար մասնիկները այնքան փոքր են, որ կարող են թոքերի մեջ մտնել ՝ պոտենցիալ առողջական լուրջ խնդիրներ առաջացնելով: Տասը միկրոմետրը պակաս է մեկ մազի լայնությունից:
Մասնիկների աղտոտվածությունը ներառում է փոշու կոպիտ մասնիկներ (PM10). Աղբյուրները ներառում են ջարդման կամ հղկման աշխատանքներ և ճանապարհներին տրանսպորտային միջոցների կողմից առաջացած փոշին: Նուրբ մասնիկներ (PM2.5). Լավ ներշնչվող մասնիկներ, որոնց տրամագիծը, ընդհանուր առմամբ, 2,5 միկրո և ավելի փոքր է: Նուրբ մասնիկները արտադրվում են այրման բոլոր տեսակներից, ներառյալ շարժիչային տրանսպորտային միջոցները, էլեկտրակայանները, բնակելի փայտի այրումը, անտառային հրդեհները, գյուղատնտեսական այրումը և որոշ արդյունաբերական գործընթացներ: Մասնիկների մասին մանրամասն կարող եք գտնել EPA կայքում.
Քայլ 2. Ինչու՞ է կարևոր հոգ տանել այդ մասնավոր հարցերի մասին:
Ինչպես նկարագրել է ERԵՐԱՐԴՈ ԱԼՎԱՐԱԴՈ.. Չիլիի համալսարանում իր աշխատանքում, 1930 -ին Մեյսի հովտում (Բելգիա) օդի բարձր աղտոտվածության դրվագների, 1948 -ի Դոնորայի (Փենսիլվանիա) և 1952 -ի Լոնդոնի առաջին ուսումնասիրությունները եղել են մահացության հետ կապված առաջին փաստաթղթերը: մասնիկների աղտոտվածությամբ (Պրենդեզ, 1993): Մարդկանց առողջության վրա օդի աղտոտման հետևանքների հետազոտման առաջընթացը պարզել է, որ առողջության ռիսկերը պայմանավորված են ներշնչվող մասնիկներով `կախված շնչառական համակարգի տարբեր հատվածներում դրանց ներթափանցումից և նստվածքից և նստած նյութերին կենսաբանական արձագանքից:
Ամենախիտ մասնիկները ՝ մոտ 5 մկմ, զտվում են քթի անցքի թարթիչների և քթի խոռոչն ու շնչափողը ծածկող լորձաթաղանթի համատեղ գործողությամբ: 0.5 -ից 5 մկմ տրամագծով մասնիկները կարող են տեղակայվել բրոնխներում և նույնիսկ թոքային ալվեոլներում, սակայն դրանք մի քանի ժամ անց վերացվում են բրոնխների և բրոնխիոլների թարթիչներով: 0.5 մկմ -ից փոքր մասնիկները կարող են խորը ներթափանցել, մինչև դրանք չդրվեն թոքային ալվեոլներում ՝ մնալով շաբաթներից մինչև տարիներ, քանի որ չկա լորձաթաղանթային տրանսպորտային մեխանիզմ, որը հեշտացնում է հեռացումը: Հետևյալ նկարը ցույց է տալիս մասնիկների ներթափանցումը շնչառական համակարգում ՝ կախված դրանց չափից:
Այսպիսով, երկու տեսակի մասնիկները (PM2.5 և PM10) նշելը շատ կարևոր են, և լավ նորությունն այն է, որ երկուսն էլ ընթեռնելի են պարզ և ոչ թանկարժեք սենսորով ՝ SDS011:
Քայլ 3. Մասնիկների սենսոր - SDS011
Օդի որակի մոնիտորինգը հայտնի և հաստատված գիտություն է, որը սկսվել է դեռ 80 -ականներին: Այն ժամանակ տեխնոլոգիան բավականին սահմանափակ էր, և լուծումը, որն օգտագործվում էր օդի աղտոտվածության համալիրը քանակականացնելու համար, ծանր ու իսկապես թանկ էր:
Բարեբախտաբար, մեր օրերում, ամենաթարմ և ժամանակակից տեխնոլոգիաներով, օդի որակի մոնիտորինգի համար օգտագործվող լուծումները դառնում են ոչ միայն ավելի ճշգրիտ, այլև ավելի արագ չափման մեջ: Սարքերը դառնում են ավելի փոքր և արժեն շատ ավելի մատչելի, քան երբևէ:
Այս հոդվածում մենք կենտրոնանալու ենք մասնիկների սենսորի վրա, որը կարող է հայտնաբերել օդում փոշու քանակությունը: Թեև առաջին սերունդը պարզապես կարողացավ հայտնաբերել անթափանցելիության չափը, վերջին սենսորները, ինչպիսիք են SDS011- ը INOVAFIT- ից, inanինանի համալսարանից (Շանդունգում), այժմ կարող են հայտնաբերել PM2.5 և PM10:
Իր չափսերով, SDS011- ը, հավանաբար, ճշգրիտ և գնի առումով լավագույն սենսորներից մեկն է (40.00 ԱՄՆ դոլարից պակաս):
- Չափված արժեքներ ՝ PM2.5, PM10
- Միջակայք `0–999.9 մկգ /մ³
- Մատակարարման լարումը `5V (4.7-5.3V)
- Էլեկտրաէներգիայի սպառում (աշխատանք) `70 մԱ ± 10 մԱ
- Էներգիայի սպառումը (քնի ռեժիմի լազերային և օդափոխիչ) ՝ <4 մԱ
- Պահպանման ջերմաստիճանը `-20 -ից +60C
- Աշխատանքային ջերմաստիճանը `-10 -ից +50C
- Խոնավություն (պահեստ) `առավելագույնը: 90%
- Խոնավություն (աշխատանք) ՝ առավելագույնը: 70% (ջրի գոլորշու խտացումը կեղծում է ընթերցումները)
- Accշգրտություն ՝ 70% 0.3μm- ի և 98% 0.5μm- ի համար
- Չափը ՝ 71x70x23 մմ
- Հավաստագրում ՝ CE, FCC, RoHS
SD011- ը օգտագործում է PCB- ն որպես պատյանների մի կողմ, ինչը թույլ է տալիս նվազեցնել դրա արժեքը: Ընդունիչի դիոդը տեղադրված է PCB- ի կողմում (սա պարտադիր է, քանի որ դիոդի և LNA- ի միջև ցանկացած աղմուկ պետք է խուսափել): Էմիտեր լազերը տեղադրված է պլաստիկ տուփի վրա և միացված է PCB- ին ճկուն մետաղալարով:
Մի խոսքով, Nova Fitness SDS011- ը պրոֆեսիոնալ լազերային փոշու տվիչ է: Սենսորի վրա տեղադրված օդափոխիչը ինքնաբերաբար ներծծում է օդը: Սենսորը օգտագործում է լազերային լույսի ցրման սկզբունքը* ՝ օդում կախված փոշու մասնիկների արժեքը չափելու համար: Սենսորը ապահովում է PM2.5 և PM10 արժեքների բարձր ճշգրտության և հուսալի ընթերցումներ: Շրջակա միջավայրի ցանկացած փոփոխություն կարող է դիտվել գրեթե միանգամից կարճ արձագանքման տևողությունից 10 վայրկյանից ցածր: Ստանդարտ ռեժիմում գտնվող սենսորը հայտնում է ընթերցման մասին 1 վայրկյան ընդմիջումով:
* Լազերային ցրման սկզբունք. Լույսի ցրումը կարող է առաջանալ, երբ մասնիկները անցնում են հայտնաբերման տարածքով: Lightրված լույսը վերածվում է էլեկտրական ազդանշանների, և այդ ազդանշանները կուժեղացվեն և կվերամշակվեն: Մասնիկների քանակը և տրամագիծը կարելի է ստանալ վերլուծության միջոցով, քանի որ ազդանշանային ալիքի ձևը որոշակի հարաբերություններ ունի մասնիկների տրամագծի հետ:
Քայլ 4. Բայց ինչպե՞ս կարող է SDS011- ը գրավել այդ մասնիկները:
Ինչպես արդեն մեկնաբանվել էր, SDS011- ի կիրառած սկզբունքը լույսի ցրումն է կամ ավելի լավ ՝ Dynamic Light Scattering (DLS), որը ֆիզիկայի տեխնիկա է, որը կարող է օգտագործվել կասեցման կամ լուծույթում պոլիմերների փոքր մասնիկների բաշխման պրոֆիլի որոշման համար: DLS- ի շրջանակում ժամանակային տատանումները սովորաբար վերլուծվում են ինտենսիվության կամ ֆոտոնային ինքնագնահատման ֆունկցիայի միջոցով (հայտնի է նաև որպես ֆոտոնային հարաբերակցության սպեկտրոսկոպիա կամ լույսի քվազիլաստիկ ցրում): Domainամանակի տիրույթի վերլուծության ժամանակ ավտոկորելյացիայի գործառույթը (ACF) սովորաբար քայքայվում է ՝ սկսած զրոյական հետաձգման ժամանակից, իսկ ավելի փոքր դինամիկան ՝ փոքր մասնիկների պատճառով, հանգեցնում է ցրված ինտենսիվության հետքի ավելի արագ ապակողմնորոշմանը: Ույց է տրված, որ ACF ինտենսիվությունը ուժի սպեկտրի Ֆուրյեի փոխակերպումն է, և, հետևաբար, DLS չափումները կարող են հավասարապես լավ կատարվել սպեկտրալ տիրույթում:
Երկու նմուշի հիպոթետիկ դինամիկ լույսի ցրման վերևում. Ավելի մեծ մասնիկներ (ինչպես PM10) վերևում և փոքր մասնիկներ (PM2.5) ներքևում: Եվ մեր սենսորի ներսում նայելով ՝ մենք կարող ենք տեսնել, թե ինչպես է կիրառվում լույսի ցրման սկզբունքը:
Դիոդի վրա գրավված էլեկտրական ազդանշանը գնում է դեպի ցածր աղմուկի ուժեղացուցիչ և դրանից վերածվում է թվային ազդանշանի ՝ ADC- ի միջոցով, իսկ դրսից ՝ UART- ի միջոցով:
Իրական գիտական փորձի վերաբերյալ SDS011- ի մասին ավելին իմանալու համար խնդրում ենք դիտել Կոնստանտինոս և այլների 2018 թ. Աշխատանքը, PM2.5 կոնցենտրացիաների մոնիտորինգի ցածր գնով շարժական համակարգի զարգացում և դաշտային փորձարկում:
Քայլ 5: Showtime
Եկեք ընդմիջենք այս ամբողջ տեսությունը և կենտրոնանանք այն բանի վրա, թե ինչպես չափել մասնիկները ՝ Raspberry Pi- ի և SDS011 սենսորի միջոցով:
HW միացումն իրականում շատ պարզ է: Սենսորը վաճառվում է USB ադապտերով `իր UIN 7 -կապանի ելքային տվյալները միացնելու համար RPi- ի ստանդարտ USB միակցիչներից մեկին:
SDS011 pinout:
- Պին 1 - միացված չէ
- Պին 2 - PM2.5: 0–999μg/մ³; PWM արտադրանք
- Պին 3-5 Վ
- Կապում 4 - PM10: 0–999 մկգ/մ³; PWM արտադրանք
- Pin 5 - GND
- Պին 6 - RX UART (TTL) 3.3V
- Պին 7 - TX UART (TTL) 3.3V
Այս ձեռնարկի համար ես առաջին անգամ եմ օգտագործում բոլորովին նոր Raspberry-Pi 4. Բայց, իհարկե, ցանկացած նախորդ մոդել նույնպես լավ կաշխատի:
Հենց որ սենսորը միացնեք RPi USB պորտերից մեկին, ինքնաբերաբար կսկսեք լսել դրա երկրպագուի ձայնը: Աղմուկը մի փոքր նյարդայնացնում է, այնպես որ գուցե դուք պետք է այն անջատեք և սպասեք, մինչև SW- ի հետ ամեն ինչ պատրաստ լինի:
Սենսորի և RPi- ի միջև հաղորդակցությունը կլինի սերիական արձանագրության միջոցով: Այս արձանագրության մասին մանրամասները կարող եք գտնել այստեղ ՝ Laser Dust Sensor Control Protocol V1.3: Բայց այս նախագծի համար լավագույնը պիթոնի ինտերֆեյսի օգտագործումն է `պարզելու համար մշակվելիք կոդը: Դուք կարող եք ստեղծել ձեր սեփական ինտերֆեյսը կամ օգտագործել ինտերնետում առկա որոշ ինտերֆեյսեր, ինչպես Ֆրանկ Հոյերի կամ Իվան Կալչովի: Մենք կօգտագործենք վերջինը, որը շատ պարզ է և լավ է աշխատում (կարող եք ներբեռնել sds011.py սցենարը դրա GitHub- ից կամ իմից):
Sds011.py ֆայլը պետք է լինի նույն գրացուցակում, որտեղ դուք ստեղծում եք ձեր սցենարը:
Phaseարգացման փուլում ես կօգտագործեմ Jupyter Notebook, բայց դուք կարող եք օգտագործել ցանկացած IDE, որը Ձեզ դուր է գալիս (օրինակ ՝ Thonny կամ Geany, որոնք Raspberry Pi Debian փաթեթի մաս են, երկուսն էլ շատ լավն են):
Սկսեք ներմուծել sds011 և ստեղծեք ձեր սենսորային օրինակը: SDS011- ը տրամադրում է սենսորից UART- ի միջոցով կարդալու մեթոդ:
sds011 ներմուծումից *
տվիչ = SDS011 ("/dev/ttyUSB0")
Դուք կարող եք միացնել կամ անջատել ձեր սենսորը `քնելու հրամանի միջոցով.
pmt_2_5, pmt_10 = sensor.query ()
Չափումներից առաջ սպասեք կայունացման առնվազն 10 վայրկյան և նորը սկսելու համար `առնվազն 2 վայրկյան (տե՛ս վերևի կոդը):
Եվ սա այն ամենն է, ինչ անհրաժեշտ է իմանալ SW- ի առումով ՝ սենսորից օգտվելու համար: Բայց եկեք ավելի խորանանք օդի որակի վերահսկման մեջ: Այս հոդվածի սկզբում, եթե ուսումնասիրել եք այն կայքերը, որոնք տեղեկատվություն են տալիս այն մասին, թե որքան լավ կամ վատ է օդը, ապա պետք է գիտակցեք, որ գույները կապված են այդ արժեքների հետ: Յուրաքանչյուր գույն ինդեքս է: Դրանցից ամենահայտնին ԱՄՆ -ում և մի շարք այլ երկրներում օգտագործվող AQI (օդի որակի ինդեքս) է:
Քայլ 6. Օդի որակի ինդեքս - AQI
AQI- ն օդի ամենօրյա որակի մասին հաշվետվություն է: Այն պատմում է ձեզ, թե որքան մաքուր կամ աղտոտված է ձեր օդը, և առողջության հետ կապված ինչ հետևանքներ կարող են մտահոգել ձեզ: AQI- ն կենտրոնանում է առողջության վրա այն ազդեցությունների վրա, որոնք կարող եք զգալ աղտոտված օդը շնչելուց հետո մի քանի ժամվա կամ օրվա ընթացքում:
EPA- ն (Միացյալ Նահանգների շրջակա միջավայրի պահպանության գործակալություն), օրինակ, հաշվարկում է AQI- ն ոչ միայն մասնիկների աղտոտման համար (PM2.5 և PM10), այլև մաքուր օդի ակտով կարգավորվող օդի այլ հիմնական աղտոտիչների համար. Գրունտային օզոն, ածխածնի օքսիդ, ծծմբի երկօքսիդ և ազոտի երկօքսիդ: Այս աղտոտիչներից յուրաքանչյուրի համար EPA- ն սահմանել է օդի որակի ազգային չափանիշներ `հանրային առողջությունը պաշտպանելու համար: Տես վերևի նկարը ՝ AQI արժեքներով, գույներով և առողջության վերաբերյալ համապատասխան հաղորդագրությամբ:
Ինչպես արդեն մեկնաբանվել էր, այդ AQI արժեքներն ու գույները կապված են աղտոտող նյութերից յուրաքանչյուրի հետ, բայց ինչպե՞ս սենսորների կողմից առաջացած արժեքները կապել դրանց հետ: Լրացուցիչ աղյուսակը կապում է դրանք բոլորը, ինչպես ցույց է տրված վերևում:
Բայց, իհարկե, անիմաստ է նման սեղանից օգտվելը: Ի վերջո, դա պարզ մաթեմատիկական ալգորիթմ է, որը կատարում է հաշվարկը: Դրա համար մենք գրադարանը կներմուծենք ՝ AQI արժեքի և աղտոտիչների կոնցենտրացիայի (μg/m³) փոխակերպելու համար ՝ python-aqi:
Տեղադրեք գրադարանը PIP- ի միջոցով և փորձարկեք (տես վերևի ծածկագիրը)
pip տեղադրել python-aqi
Իսկ ի՞նչ կասեք Չիլիի մասին:
Չիլիում օգտագործվում է նմանատիպ ինդեքս `ICAP: Շնչառական մասնիկների օդի որակի ինդեքս: Հանրապետության Նախագահի Գլխավոր քարտուղարի 1998 թվականի մարտի 16 -ի Գերագույն հրամանագիրը 59 -ն իր հոդվածում սահմանում է ՝ է), որը սահմանում է այն մակարդակները, որոնք սահմանում են շնչառական մասնիկների նյութի ICA- ն, ICAP- ը:
Արժեքները գծայինորեն կտարբերվեն բաժինների միջև, 500 արժեքը կհամապատասխանի այն սահմանային արժեքին, որի վրա ռիսկ կլինի բնակչության համար, երբ ենթարկվի այդ կոնցենտրացիաներին: Ըստ ICAP- ի արժեքների, սահմանվել են կատեգորիաներ, որոնք որակավորում են MP10- ի կոնցենտրացիայի մակարդակը, որին ենթարկվել են մարդիկ:
Քայլ 7: Տեղական տվյալների մուտքագրում
Այս պահին մենք ունենք բոլոր գործիքները ՝ սենսորից տվյալները գրավելու և դրանք փոխակերպելու ավելի «ընթեռնելի արժեքի», որ դա AQI ինդեքսն է:
Եկեք ստեղծենք գործառույթ ՝ այդ արժեքները գրավելու համար: Մենք հաջորդաբար կգրավենք 3 արժեք ՝ դրանցից միջին վերցնելով.
def get_data (n = 3):
sensor.sleep (sleep = False) pmt_2_5 = 0 pmt_10 = 0 time.sleep (10) i in range (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] time.sleep (2) pmt_2_5 = round (pmt_2_5/n, 1) pmt_10 = round (pmt_10/n, 1) sensor.sleep (sleep = True) time.sleep (2) return pmt_2_5, pmt_10 Վերևում կարող եք տեսնել թեստի արդյունքը: Եկեք նաև գործառույթ կատարենք ՝ AQI ինդեքսում PM- ի թվային արժեքները փոխարկելու համար
def conv_aqi (pmt_2_5, pmt_10):
aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, փող (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, փող (pmt_10)) վերադարձեք aqi_2_5, aqi_10 երկու գործառույթներով թեստի արդյունքից վեր: Բայց ինչ անել նրանց հետ: Առավել պարզ պատասխանը գրառված տվյալները պահպանելու գործառույթ ստեղծելն է ՝ դրանք պահելով տեղական ֆայլում
def save_log ():
բաց («ՔՈ PԱՄԱՆՈՄԸ ԱՅՍՏԵ air/air_quality.csv», «a») որպես տեղեկամատյան ՝ dt = datetime.now () log.write ("{}, {}, {}, {}, {} n": ֆորմատ (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Մեկ օղակով դուք կարող եք մուտքագրել տվյալները ձեր տեղական ֆայլի կանոնավոր հիմունքներով, օրինակ ՝ ամեն րոպե
while (True):
pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) փորձեք ՝ save_log () բացառությամբ ՝ print ("[INFO] Failure in logging data") time.sleep (60) Յուրաքանչյուր 60 վայրկյանը մեկ ժամանակային նշանը գումարած տվյալներով «կցվում» է այս ֆայլին, ինչպես տեսնում ենք վերևում:
Քայլ 8: Տվյալների ուղարկում ամպային ծառայությանը
Այս պահին մենք սովորեցինք, թե ինչպես կարելի է տվյալներ վերցնել սենսորից ՝ դրանք պահելով տեղական CSV ֆայլում: Այժմ, ժամանակն է տեսնել, թե ինչպես ուղարկել այդ տվյալները IoT հարթակ: Այս ձեռնարկի վրա մենք կօգտագործենք ThingSpeak.com- ը:
«ThingSpeak- ը բաց կոդով բաների ինտերնետ (IoT) ծրագիր է ՝ բաներից տվյալներ պահելու և ստանալու համար ՝ օգտագործելով REST և MQTT API- ներ: ThingSpeak- ը հնարավորություն է տալիս ստեղծել սենսորների գրանցման ծրագրեր, տեղադրության հետևման ծրագրեր և իրերի սոցիալական ցանց ՝ կարգավիճակի թարմացումներով »:
Նախ, դուք պետք է հաշիվ ունենաք ThinkSpeak.com կայքում: Հաջորդը, հետևեք ալիք ստեղծելու հրահանգներին ՝ հաշվի առնելով դրա ալիքի ID- ն և Write API բանալին:
Ալիքը ստեղծելիս պետք է նաև սահմանել, թե ինչ տեղեկատվություն կբեռնվի 8 դաշտերից յուրաքանչյուրում, ինչպես ցույց է տրված վերևում (մեր դեպքում դրանցից միայն 4 -ը կօգտագործվեն):
Քայլ 9: MQTT արձանագրություն և ThingSpeak միացում
MQTT- ը հրապարակման/բաժանորդագրության ճարտարապետություն է, որը մշակվել է հիմնականում անլար ցանցերի միջոցով թողունակության և էներգիայով սահմանափակ սարքերը միացնելու համար: Դա պարզ և թեթև արձանագրություն է, որն անցնում է TCP/IP վարդակների կամ WebSockets- ի վրայով: MQTT- ը WebSockets- ի միջոցով կարելի է ապահովել SSL- ով: Հրապարակման/բաժանորդագրության ճարտարապետությունը հնարավորություն է տալիս հաղորդագրությունները մղել դեպի հաճախորդի սարքեր ՝ առանց սարքի ՝ սերվերի անընդհատ հարցում կատարելու անհրաժեշտության:
MQTT բրոքերը հաղորդակցության կենտրոնական կետն է, և այն պատասխանատու է ուղարկողների և օրինական ստացողների միջև բոլոր հաղորդագրությունները ուղարկելու համար: Հաճախորդը ցանկացած սարք է, որը միանում է բրոքերին և կարող է տեղեկատվություն մուտք գործելու համար հրապարակել կամ բաժանորդագրվել թեմաներին: Թեման պարունակում է միջնորդի համար երթուղղման տեղեկատվություն: Յուրաքանչյուր հաճախորդ, որը ցանկանում է հաղորդագրություններ ուղարկել, դրանք հրապարակում է որոշակի թեմայի շուրջ, և յուրաքանչյուր հաճախորդ, որը ցանկանում է հաղորդագրություններ ստանալ, բաժանորդագրվում է որոշակի թեմայի: Բրոքերը համապատասխան թեմայով բոլոր հաղորդագրությունները փոխանցում է համապատասխան հաճախորդներին:
ThingSpeak ™- ն ունի MQTT բրոքեր URL mqtt.thingspeak.com և 1883 նավահանգստում: ThingSpeak բրոքերն աջակցում է և MQTT հրապարակմանը, և MQTT բաժանորդագրվելուն:
Մեր դեպքում մենք կօգտագործենք MQTT Publish- ը:
Քայլ 10: MQTT հրապարակում
Սկսելու համար, եկեք տեղադրենք Eclipse Paho MQTT Python հաճախորդների գրադարանը, որն իրականացնում է MQTT արձանագրության 3.1 և 3.1.1 տարբերակները
sudo pip տեղադրել paho-mqtt
Հաջորդը, եկեք ներմուծենք paho գրադարանը.
ներմուծել paho.mqtt. հրապարակել որպես հրապարակել
և նախաձեռնել Thingspeak ալիքը և MQTT արձանագրությունը: Կապի այս մեթոդը ամենապարզն է և պահանջում է նվազագույն համակարգի ռեսուրսներ.
channelID = "ՔՈ ԱԼԻՔԻ ID- ն"
apiKey = "ՔՈ ԳՐՈ K Բանալին" թեմա = "ալիքներ/" + channelID + "/հրապարակել/" + apiKey mqttHost = "mqtt.thingspeak.com" Այժմ մենք պետք է սահմանենք մեր «բեռնվածությունը»
tPayload = "field1 =" + str (pmt_2_5) + "& field2 =" + str (aqi_2_5) + "& field3 =" + str (pmt_10) + "& field4 =" + str (aqi_10)
Ու վերջ! մենք պատրաստ ենք սկսել տվյալներ ուղարկել ամպ: Եկեք վերաշարադրենք նախորդ օղակի գործառույթը ՝ ներառելով նաև դրա ThingSpeak հատվածը:
# Բոլոր տվյալները ուղարկելով ThingSpeak ամեն 1 րոպեն մեկ
մինչդեռ (Trueշմարիտ). (pmt_10) + "& field4 =" + փող (aqi_10) փորձեք. հրապարակել. մեկ (թեմա, բեռնվածություն = tPayload, hostname = mqttHost, port = tPort, tls = tTLS, transport = tTransport) save_log () բացառությամբ ՝ տպել ("
Քայլ 11: Վերջնական սցենարը
Կարևոր է նշել, որ Jupyter Notebook- ը զարգացման և հաշվետվության շատ լավ գործիք է, բայց ոչ ՝ արտադրության մեջ տեղադրելու համար կոդ ստեղծելու համար: Այն, ինչ այժմ պետք է անեք, վերցրեք ծածկագրի համապատասխան մասը և ստեղծեք.py սցենար և գործարկեք այն ձեր տերմինալում:
Օրինակ ՝ «ts_air_quality_logger.py», որը պետք է գործարկեք հետևյալ հրամանով.
python 3 ts_air_quality_logger.py
Այս սցենարը, ինչպես նաև Jupyter Notebook- ը և sds011.py- ն կարելի է գտնել իմ շտեմարանում ՝ RPi_Air_Quality_Sensor:
Նկատի ունեցեք, որ այս սցենարը իրագործելի է միայն փորձարկման համար: Ամենալավն այն է, որ չօգտագործեք ուշացումներ վերջնական հանգույցի ներսում (որը ծածկագիրը դնում է «դադար»), փոխարենը օգտագործեք ժամանակաչափեր: Կամ իսկական կիրառման համար ամենալավն այն է, որ չօգտագործվի օղակը, քանի որ Linux- ը ծրագրված է սցենարը կանոնավոր կերպով կատարելու crontab- ով:
Քայլ 12. Մոնիտորը դրսում վերցնելը
Երբ իմ Raspberry Pi Air Quality մոնիտորը աշխատում էր, ես RPi- ն հավաքեցի պլաստիկ տուփի ներսում ՝ սենսորը դրսում պահելով և տեղադրելով այն իմ տնից դուրս:
Երկու փորձ կատարվեց:
Քայլ 13: Բենզինի շարժիչի այրումը
Սենսորը տեղադրված էր Լամբրետտայի գազի հատվածից մոտ 1 մ հեռավորության վրա, և դրա շարժիչը միացված էր: Շարժիչը մի քանի րոպե աշխատեց և անջատվեց: Վերոնշյալ տեղեկամատյան ֆայլից, արդյունքը, որը ես ստացա: Հետաքրքիր է հաստատել, որ PM2.5- ը շարժիչից առաջացած ամենավտանգավոր մասնիկն էր:
Քայլ 14: Փայտի այրումը
Նայելով տեղեկամատյանային ֆայլին ՝ մենք հասկանում ենք, որ սենսորային տվյալները ակնթարթային էին «տիրույթից դուրս» և լավ չէին գրված AQI փոխակերպման գրադարանի կողմից, ուստի այն փոխելու համար փոխում եմ նախորդ ծածկագիրը.
def conv_aqi (pmt_2_5, pmt_10):
փորձեք ՝ aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, փող (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, փող (pmt_10)) վերադարձեք aqi_2_5, aqi_10 բացառությամբ ՝ վերադարձ 600, 600 Այս իրավիճակը կարող է պատահել դաշտում, ինչը նորմալ է: Հիշեք, որ իրականում դուք պետք է օգտագործեք շարժվող միջին ՝ AQI- ն իսկապես ստանալու համար (առնվազն ժամային, բայց սովորաբար ամենօրյա):
Քայլ 15: Եզրակացություն
Ինչպես միշտ, ես հույս ունեմ, որ այս նախագիծը կարող է օգնել ուրիշներին իրենց ճանապարհը գտնել էլեկտրոնիկայի և տվյալների գիտության հետաքրքիր աշխարհում:
Մանրամասների և վերջնական ծածկագրի համար այցելեք իմ GitHub ավանդապահ ՝ RPi_Air_Quality_Sensor:
Սալուդոս աշխարհի հարավից:
Կհանդիպենք իմ հաջորդ հրահանգին:
Շնորհակալություն, Մարսելո
Խորհուրդ ենք տալիս:
Airduino. Շարժական օդի որակի մոնիտոր `5 քայլ
Airduino. Շարժական օդի որակի մոնիտոր. Բարի գալուստ իմ նախագիծ, Airduino: Իմ անունն է Ռոբբեն Բրենս: Ես սովորում եմ մուլտիմեդիա և կապի տեխնոլոգիա Howest- ում, Բելգիայի Կորտրիկ քաղաքում: Երկրորդ կիսամյակի ավարտին մենք պետք է ստեղծենք IoT սարք, որը հիանալի միջոց է բոլոր
Օդի որակի մոնիտոր MQ135- ով և արտաքին ջերմաստիճանի և խոնավության տվիչ MQTT- ով. 4 քայլ
Օդի որակի մոնիտոր MQ135- ով և արտաքին ջերմաստիճանի և խոնավության տվիչ MQTT- ով. Սա փորձարկման նպատակով է
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով - Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11: 6 քայլով
ESP32- ի վրա հիմնված M5Stack M5stick C Եղանակի մոնիտոր DHT11- ով | Վերահսկեք ջերմաստիճանի խոնավության և ջերմության ինդեքսը M5stick-C- ի վրա DHT11- ով: Ողջույն, տղերք, այս հրահանգներում մենք կսովորենք, թե ինչպես միացնել DHT11 ջերմաստիճանի տվիչը m5stick-C- ի հետ (զարգացման տախտակ m5stack- ով) և ցուցադրել այն m5stick-C- ի ցուցադրման վրա: Այսպիսով, այս ձեռնարկում մենք կկարդանք ջերմաստիճանը, խոնավությունը & շոգ եմ
Օդի որակի մասնիկներով աշխատող մոնիտոր `7 քայլ
Օդի որակի մասնիկներով աշխատող օդի որակի մոնիտոր. Դուք, հավանաբար, դրա մասին ավելի շատ եք մտածում հիմա, երբ մեր մաքուր օդը վերածվել է մշտական մշուշի երկնքում: Այո Մի բան, որին դուք վերահսկում եք, ձեր տան ներսում օդի որակն է: Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես կառուցել օդ