Satura rādītājs:

Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4: 15 soļi (ar attēliem)
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4: 15 soļi (ar attēliem)

Video: Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4: 15 soļi (ar attēliem)

Video: Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4: 15 soļi (ar attēliem)
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024, Jūlijs
Anonim
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4
Zemu izmaksu IoT gaisa kvalitātes monitors, kura pamatā ir RaspberryPi 4

Santjago, Čīlē ziemas ārkārtas situācijā, ir privilēģija dzīvot vienā no skaistākajām pasaules valstīm, bet diemžēl tas nav viss rozes. Čīle ziemas sezonā daudz cieš no gaisa piesārņojuma, galvenokārt daļiņu, piemēram, putekļu un smoga, dēļ.

Aukstā laika dēļ dienvidos gaisa piesārņojums galvenokārt ir saistīts ar koksnes kalefaktoriem un Santjago (galvenā galvaspilsēta valsts centrā), kas sajaukts ar rūpniecību, automašīnām, un tā unikālo ģeogrāfisko stāvokli starp divām milzīgām kalnu ķēdēm.

Mūsdienās gaisa piesārņojums ir liela problēma visā pasaulē, un šajā rakstā mēs izpētīsim, kā izveidot lētu pašmāju gaisa kvalitātes monitoru, kura pamatā ir Raspberry Pi. Ja vēlaties uzzināt vairāk par gaisa kvalitāti, lūdzu, apmeklējiet projektu “Pasaules gaisa kvalitātes indekss”.

Piegādes

  • Raspberry Pi 4
  • 1SDS011 - augstas precizitātes lāzera pm2.5 gaisa kvalitātes noteikšanas sensors
  • Plastmasas kaste

1. darbība. Daļiņu viela (PM): kas tas ir? Kā tas nokļūst gaisā?

Cietās daļiņas (PM): kas tas ir? Kā tas nokļūst gaisā?
Cietās daļiņas (PM): kas tas ir? Kā tas nokļūst gaisā?

Tātad, lai saprastu piesārņojumu vai gaisa piesārņojumu, mums ir jāizpēta daļiņas, kas ir saistītas ar to, ko sauc arī par daļiņām. Aplūkojot grafikus iepriekšējā sadaļā, mēs varam novērot, ka tajos ir minēti PM2.5 un PM10. Sniegsim īsu pārskatu par to.

PM apzīmē daļiņas (sauktas arī par daļiņu piesārņojumu): termins cietu daļiņu un šķidrumu pilienu maisījumam, kas atrodams gaisā. Dažas daļiņas, piemēram, putekļi, netīrumi, kvēpi vai dūmi, ir pietiekami lielas vai tumšas, lai tās varētu redzēt ar neapbruņotu aci. Citi ir tik mazi, ka tos var noteikt tikai ar elektronu mikroskopu. Daļiņas ir plašā izmēru diapazonā. Daļiņas, kuru diametrs ir mazāks vai vienāds ar 10 mikrometriem, ir tik mazas, ka tās var nokļūt plaušās, potenciāli izraisot nopietnas veselības problēmas. Desmit mikrometri ir mazāki par viena cilvēka matu platumu.

Daļiņu piesārņojums ietver rupjas putekļu daļiņas (PM10): ieelpojamas daļiņas, kuru diametrs parasti ir 10 mikrometri un mazāks. Pie avotiem pieder drupināšanas vai slīpēšanas operācijas un putekļi, ko uz ceļiem satricina transportlīdzekļi. Smalkas daļiņas (PM2.5): smalkas inhalējamas daļiņas, kuru diametrs parasti ir 2,5 mikrometri un mazāks. Smalkas daļiņas rodas no visa veida degšanas, ieskaitot mehāniskos transportlīdzekļus, spēkstacijas, koksnes dedzināšanu dzīvojamās telpās, meža ugunsgrēkus, lauksaimniecības dedzināšanu un dažus rūpnieciskus procesus, par kaitīgajām daļiņām varat uzzināt vairāk EPA vietnē: Amerikas Savienoto Valstu Vides aizsardzības aģentūra

2. solis: Kāpēc ir svarīgi rūpēties par šīm daļiņu lietām?

Kāpēc ir svarīgi rūpēties par šīm daļiņām?
Kāpēc ir svarīgi rūpēties par šīm daļiņām?

Kā GERARDO ALVARADO Z. aprakstījis savā darbā Čīles universitātē, pētījumi par augsta gaisa piesārņojuma epizodēm Mūzas ielejā (Beļģija) 1930. gadā, Donora (Pensilvānija) 1948. gadā un Londona 1952. gadā ir bijuši pirmie dokumentētie avoti, kas saistīti ar mirstību ar daļiņu piesārņojumu (Préndez, 1993). Pētījumi par gaisa piesārņojuma ietekmi uz cilvēku veselību ir noteikuši, ka risku veselībai rada ieelpojamas daļiņas atkarībā no to iekļūšanas un nogulsnēšanās dažādās elpošanas sistēmas daļās un bioloģiskās reakcijas uz nogulsnētajiem materiāliem.

Biezākās daļiņas, apmēram 5 μm, tiek filtrētas, kopīgi iedarbojoties uz deguna eju cilpām un gļotādu, kas pārklāj deguna dobumu un traheju. Daļiņas ar diametru no 0,5 līdz 5 μm var nogulsnēties bronhos un pat plaušu alveolās, tomēr tās pēc dažām stundām izvada bronhu un bronhiolu cilpas. Daļiņas, kas ir mazākas par 0,5 μm, var dziļi iekļūt, līdz tās tiek nogulsnētas plaušu alveolās, saglabājoties no nedēļām līdz gadiem, jo nav gļotādu transportēšanas mehānisma, kas atvieglotu elimināciju. Nākamajā attēlā parādīta daļiņu iekļūšana elpošanas sistēmā atkarībā no to lieluma.

Tātad, lai pamanītu abu veidu daļiņas (PM2.5 un PM10), ir ļoti svarīgi, un labā ziņa ir tā, ka abas ir nolasāmas ar vienkāršu un ne dārgu sensoru SDS011.

3. darbība. Daļiņu sensors - SDS011

Daļiņu sensors - SDS011
Daļiņu sensors - SDS011
Daļiņu sensors - SDS011
Daļiņu sensors - SDS011

Gaisa kvalitātes uzraudzība ir plaši pazīstama un iedibināta zinātne, kas aizsākās 80. gados. Tajā laikā tehnoloģija bija diezgan ierobežota, un risinājums, ko izmantoja, lai noteiktu gaisa piesārņojuma kompleksu, bija apgrūtinošs un patiešām dārgs.

Par laimi, mūsdienās, izmantojot jaunākās un modernākās tehnoloģijas, gaisa kvalitātes monitoringa risinājumi kļūst ne tikai precīzāki, bet arī ātrāki mērījumos. Ierīces kļūst mazākas un maksā daudz pieejamāk nekā jebkad agrāk.

Šajā rakstā mēs koncentrēsimies uz daļiņu sensoru, kas var noteikt putekļu daudzumu gaisā. Lai gan pirmā paaudze tikko spēja noteikt necaurredzamību, jaunākie sensori, piemēram, INOVAFIT SDS011, kas ir Jinanas universitātes (Šandongas štats), tagad var noteikt PM2.5 un PM10.

Ar savu izmēru SDS011, iespējams, ir viens no labākajiem sensoriem precizitātes un cenas ziņā (mazāk nekā USD 40.00).

  • Izmērītās vērtības: PM2,5, PM10
  • Diapazons: 0–999,9 μg /m³
  • Barošanas spriegums: 5V (4,7–5,3V)
  • Enerģijas patēriņš (darbs): 70mA ± 10mA
  • Enerģijas patēriņš (miega režīma lāzers un ventilators): <4mA
  • Uzglabāšanas temperatūra: -20 līdz +60C
  • Darba temperatūra: -10 līdz +50C
  • Mitrums (uzglabāšana): maks. 90%
  • Mitrums (darbs): maks. 70% (ūdens tvaiku kondensācija viltus rādījumus)
  • Precizitāte: 70% 0,3 μm un 98% 0,5 μm
  • Izmērs: 71x70x23 mm
  • Sertifikācija: CE, FCC, RoHS

SD011 izmanto PCB kā vienu korpusa pusi, ļaujot samazināt tā izmaksas. Receptoru diode ir uzstādīta PCB pusē (tas ir obligāti, jo jāizvairās no trokšņa starp diodi un LNA). Emitētāja lāzers ir uzstādīts uz plastmasas kastes un savienots ar PCB, izmantojot elastīgu vadu.

Īsāk sakot, Nova Fitness SDS011 ir profesionāls lāzera putekļu sensors. Ventilators, kas uzstādīts uz sensora, automātiski iesūc gaisu. Sensors izmanto lāzera gaismas izkliedes principu*, lai izmērītu gaisā suspendēto putekļu daļiņu vērtību. Sensors nodrošina augstu precizitāti un uzticamu PM2.5 un PM10 vērtību nolasīšanu. Jebkādas izmaiņas vidē var novērot gandrīz uzreiz, īsu reakcijas laiku, kas ir mazāks par 10 sekundēm. Sensors standarta režīmā ziņo par rādījumu ar 1 sekundes intervālu.

* Lāzera izkliedes princips: Gaismas izkliedi var izraisīt, kad daļiņas iet caur noteikšanas zonu. Izkliedētā gaisma tiek pārveidota par elektriskiem signāliem, un šie signāli tiks pastiprināti un apstrādāti. Daļiņu skaitu un diametru var iegūt ar analīzi, jo signāla viļņu formai ir noteiktas attiecības ar daļiņu diametru.

4. solis: Bet kā SDS011 var uztvert šīs daļiņas?

Bet kā SDS011 var notvert šīs daļiņas?
Bet kā SDS011 var notvert šīs daļiņas?
Bet kā SDS011 var notvert šīs daļiņas?
Bet kā SDS011 var notvert šīs daļiņas?

Kā jau iepriekš komentēts, SDS011 izmantotais princips ir gaismas izkliede vai labāka - dinamiskā gaismas izkliede (DLS), kas ir fizikas tehnika, ko var izmantot, lai noteiktu suspensijā esošo mazo daļiņu vai šķīdumā esošo polimēru izmēra sadalījuma profilu. DLS darbības jomā laika svārstības parasti tiek analizētas, izmantojot intensitātes vai fotonu automātiskās korelācijas funkciju (pazīstama arī kā fotonu korelācijas spektroskopija vai kvazi-elastīgā gaismas izkliede). Laika domēna analīzē autokorelācijas funkcija (ACF) parasti sabrūk, sākot no nulles aizkaves laika, un ātrāka dinamika mazāku daļiņu dēļ noved pie ātrāk izkliedētas intensitātes izsekošanas. Ir pierādīts, ka intensitāte ACF ir jaudas spektra Furjē transformācija, un tāpēc DLS mērījumus var vienlīdz labi veikt spektrālajā jomā.

Virs hipotētiskas divu paraugu dinamiskas gaismas izkliedes: lielākas daļiņas (piemēram, PM10) augšpusē un mazākas daļiņas (kā PM2,5) apakšā. Aplūkojot mūsu sensoru, mēs varam redzēt, kā tiek īstenots gaismas izkliedes princips.

Diodē uztvertais elektriskais signāls nonāk zema trokšņa līmeņa pastiprinātājā un no tā tiek pārveidots par ciparu signālu, izmantojot ADC, un uz ārpusi, izmantojot UART.

Lai uzzinātu vairāk par SDS011 par reālu zinātnisku pieredzi, lūdzu, ieskatieties Konstantinos et al 2018. gada darbā par zemu izmaksu portatīvās sistēmas izstrādi un testēšanu uz vietas PM2.5 koncentrācijas uzraudzībai.

Step 5: Showtime

Laiks izrādei!
Laiks izrādei!
Laiks izrādei!
Laiks izrādei!

Atpūtīsimies pie šīs teorijas un pievērsīsimies tam, kā izmērīt daļiņas, izmantojot Raspberry Pi un sensoru SDS011

HW savienojums patiesībā ir ļoti vienkāršs. Sensors tiek pārdots kopā ar USB adapteri, lai savienotu izvaddatus no 7 kontaktiem UART ar vienu no RPi standarta USB savienotājiem.

SDS011 kontakts:

  • 1. tapa - nav pievienots
  • 2. tapa - PM2.5: 0–999μg/m³; PWM izeja
  • Tapas 3-5 V
  • 4. tapa - PM10: 0–999 μg/m³; PWM izeja
  • 5. tapa - GND
  • 6. tapa - RX UART (TTL) 3.3V
  • 7. tapa - TX UART (TTL) 3.3V

Šajā apmācībā es pirmo reizi izmantoju pavisam jaunu Raspberry-Pi 4. Bet, protams, arī jebkurš iepriekšējais modelis darbosies labi.

Tiklīdz pievienosit sensoru kādam no RPi USB portiem, jūs automātiski sāksit klausīties tā ventilatora skaņu. Troksnis ir nedaudz kaitinošs, tāpēc varbūt jums vajadzētu to atvienot no elektrotīkla un pagaidīt, līdz viss ir iestatīts ar SW.

Saziņa starp sensoru un RPi notiks, izmantojot seriālo protokolu. Sīkāka informācija par šo protokolu atrodama šeit: Lāzera putekļu sensora kontroles protokols V1.3. Bet šim projektam vislabāk ir izmantot python saskarni, lai vienkāršotu izstrādāto kodu. Jūs varat izveidot savu saskarni vai izmantot dažus, kas pieejami internetā, piemēram, Frenka Heuera vai Ivana Kalčeva. Mēs izmantosim pēdējo, kas ir ļoti vienkāršs un darbojas labi (jūs varat lejupielādēt skriptu sds011.py no tā GitHub vai raktuves).

Failam sds011.py jābūt tajā pašā direktorijā, kurā izveidojat skriptu.

Izstrādes posmā es izmantošu Jupyter piezīmjdatoru, bet jūs varat izmantot jebkuru IDE, kas jums patīk (piemēram, Thonny vai Geany, kas ir daļa no Raspberry Pi Debian pakotnes, ir ļoti labas).

Sāciet importēt sds011 un izveidojiet sensora instanci. SDS011 nodrošina metodi nolasīšanai no sensora, izmantojot UART.

no sds011 importa *

sensors = SDS011 ("/dev/ttyUSB0")

Jūs varat ieslēgt vai izslēgt sensoru, izmantojot komandu miega režīms:

pmt_2_5, pmt_10 = sensor.query ()

Pirms mērījumiem pagaidiet vismaz 10 sekundes, lai stabilizētos, un vismaz 2 sekundes, lai sāktu jaunu (skatiet kodu iepriekš).

Un tas ir viss, kas jums jāzina attiecībā uz SW, lai izmantotu sensoru. Bet iedziļināsimies gaisa kvalitātes kontrolē! Šī raksta sākumā, ja esat izpētījis vietnes, kas sniedz informāciju par to, cik labs vai slikts ir gaiss, jums vajadzētu saprast, ka krāsas ir saistītas ar šīm vērtībām. Katra krāsa ir indekss. Vispazīstamākais no tiem ir AQI (gaisa kvalitātes indekss), ko izmanto ASV un vairākās citās valstīs.

6. solis: gaisa kvalitātes indekss - AQI

Gaisa kvalitātes indekss - AQI
Gaisa kvalitātes indekss - AQI
Gaisa kvalitātes indekss - AQI
Gaisa kvalitātes indekss - AQI
Gaisa kvalitātes indekss - AQI
Gaisa kvalitātes indekss - AQI

AQI ir indekss ikdienas gaisa kvalitātes ziņošanai. Tas stāsta jums, cik tīrs vai piesārņots ir jūsu gaiss, un kāda ar to saistītā ietekme uz veselību varētu jūs satraukt. AQI koncentrējas uz ietekmi uz veselību, kas var rasties dažu stundu vai dienu laikā pēc piesārņota gaisa ieelpošanas.

Piemēram, EPA (Amerikas Savienoto Valstu Vides aizsardzības aģentūra) aprēķina AQI ne tikai daļiņu piesārņojumam (PM2,5 un PM10), bet arī citiem galvenajiem gaisa piesārņotājiem, ko reglamentē Likums par tīru gaisu: ozona līmenis zemē, oglekļa monoksīds, sēra dioksīds un slāpekļa dioksīds. Katram no šiem piesārņotājiem EPA ir noteikusi valsts gaisa kvalitātes standartus, lai aizsargātu sabiedrības veselību. Skatiet iepriekš redzamo attēlu ar AQI vērtībām, krāsām un veselības ziņām.

Kā minēts iepriekš, šīs AQI vērtības un krāsas ir saistītas ar katru no piesārņotājiem, bet kā ar tām saistīt sensoru radītās vērtības? Papildu tabula savieno tos visus, kā parādīts iepriekš.

Bet, protams, nav jēgas izmantot šādu tabulu. Galu galā tas ir vienkāršs matemātisks algoritms, kas veic aprēķinu. Šim nolūkam mēs importēsim bibliotēku, lai konvertētu starp AQI vērtību un piesārņotāju koncentrāciju (µg/m³): python-aqi.

Instalējiet bibliotēku, izmantojot PIP, un veiciet pārbaudi (skatiet kodu iepriekš)

pip instalēt python-aqi

Un kā ar Čīli?

Čīlē tiek izmantots līdzīgs indekss - ICAP: gaisa kvalitātes indekss elpojošām daļiņām. Republikas Prezidentūras ministrijas ģenerālsekretāra 1998. gada 16. marta Augstākajā dekrētā Nr. 59 ir noteikts, ka tā 1. panta g) apakšpunkts nosaka, ka līmeņi, kas nosaka ICA elpojošām daļiņām, ICAP.

Vērtības dažādās sadaļās mainīsies lineāri, vērtība 500 atbilstu robežvērtībai, kuru pārspīlējot šīs koncentrācijas radītu risku iedzīvotājiem. Saskaņā ar ICAP vērtībām ir izveidotas kategorijas, kas atbilst MP10 koncentrācijas līmeņiem, kādiem cilvēki bija pakļauti.

7. darbība: datu reģistrēšana lokāli

Datu reģistrēšana lokāli
Datu reģistrēšana lokāli
Datu reģistrēšana lokāli
Datu reģistrēšana lokāli
Datu reģistrēšana lokāli
Datu reģistrēšana lokāli

Šobrīd mums ir visi rīki, lai uztvertu datus no sensora un arī pārvērstu tos par “lasāmāku vērtību”, ka tas ir AQI indekss.

Izveidosim funkciju šo vērtību uztveršanai. Mēs uzņemsim 3 vērtības pēc kārtas, ņemot vērā to vidējo vērtību:

def get_data (n = 3):

sensor.sleep (sleep = False) pmt_2_5 = 0 pmt_10 = 0 time.sleep (10) i diapazonā (n): x = sensor.query () pmt_2_5 = pmt_2_5 + x [0] pmt_10 = pmt_10 + x [1] time.sleep (2) pmt_2_5 = apaļš (pmt_2_5/n, 1) pmt_10 = apaļš (pmt_10/n, 1) sensors.sleep (sleep = True) time.sleep (2) atgriešanās pmt_2_5, pmt_10 Iepriekš jūs varat redzēt testa rezultātu. Veiksim arī funkciju, lai pārveidotu PM skaitliskās vērtības AQI indeksā

def conv_aqi (pmt_2_5, pmt_10):

aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) atgriezt aqi_2_5, aqi_10 virs testa rezultāta ar abām funkcijām. Bet ko ar viņiem iesākt? Vienkāršākā atbilde ir izveidot funkciju, lai saglabātu iegūtos datus, saglabājot tos vietējā failā

def save_log ():

ar atvērtu ("JŪSU CEĻŠ ŠEIT/air_quality.csv", "a") kā žurnālu: dt = datuma laiks. tagad () log.write ("{}, {}, {}, {}, {} n". formāts (dt, pmt_2_5, aqi_2_5, pmt_10, aqi_10)) log.close () Izmantojot vienu cilpu, jūs varat reģistrēt datus regulāri, piemēram, vietējā failā, piemēram, katru minūti

kamēr (taisnība):

pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) mēģiniet: save_log () izņemot: print ("[INFO] Failure in logging data") time.sleep (60) Ik pēc 60 sekundēm laika zīmogs un dati tiks “pievienoti” šim failam, kā redzam iepriekš.

8. darbība: datu sūtīšana uz mākoņpakalpojumu

Datu sūtīšana uz mākoņpakalpojumu
Datu sūtīšana uz mākoņpakalpojumu

Šajā brīdī mēs esam iemācījušies uztvert datus no sensora, saglabājot tos vietējā CSV failā. Tagad ir pienācis laiks redzēt, kā nosūtīt šos datus uz IoT platformu. Šajā apmācībā mēs izmantosim ThingSpeak.com.

“ThingSpeak ir atvērtā pirmkoda lietu interneta (IoT) lietojumprogramma, lai uzglabātu un izgūtu datus no lietām, izmantojot REST un MQTT API. ThingSpeak ļauj izveidot sensoru reģistrēšanas lietojumprogrammas, atrašanās vietas izsekošanas lietojumprogrammas un lietu sociālo tīklu ar statusa atjauninājumiem.”

Pirmkārt, jums ir jābūt kontam vietnē ThinkSpeak.com. Pēc tam izpildiet norādījumus, lai izveidotu kanālu, ņemot vērā tā kanāla ID un rakstīšanas API atslēgu.

Veidojot kanālu, jums arī jādefinē, kāda informācija tiks augšupielādēta katrā no 8 laukiem, kā parādīts iepriekš (mūsu gadījumā tiks izmantoti tikai 4 no tiem).

9. darbība: MQTT protokols un ThingSpeak savienojums

MQTT protokols un ThingSpeak savienojums
MQTT protokols un ThingSpeak savienojums

MQTT ir publicēšanas/abonēšanas arhitektūra, kas galvenokārt tika izstrādāta, lai bezvadu tīklos savienotu joslas platumu un ierobežotas jaudas ierīces. Tas ir vienkāršs un viegls protokols, kas darbojas pa TCP/IP ligzdām vai WebSockets. MQTT, izmantojot WebSockets, var nodrošināt, izmantojot SSL. Publicēšanas/abonēšanas arhitektūra ļauj ziņojumus nosūtīt uz klienta ierīcēm bez ierīces nepārtrauktas aptaujas serverī.

MQTT brokeris ir centrālais saziņas punkts, un tas ir atbildīgs par visu ziņojumu nosūtīšanu starp sūtītājiem un likumīgajiem saņēmējiem. Klients ir jebkura ierīce, kas izveido savienojumu ar brokeri un var publicēt vai abonēt tēmas, lai piekļūtu informācijai. Tēma satur informāciju par maršrutētāju starpniekam. Katrs klients, kurš vēlas sūtīt ziņojumus, publicē tos noteiktā tēmā, un katrs klients, kurš vēlas saņemt ziņas, abonē noteiktu tēmu. Brokeris piegādā visus ziņojumus ar atbilstošu tēmu attiecīgajiem klientiem.

ThingSpeak ™ ir MQTT starpnieks vietnēs URL mqtt.thingspeak.com un portā 1883. ThingSpeak brokeris atbalsta gan MQTT publicēšanu, gan MQTT abonēšanu.

Mūsu gadījumā mēs izmantosim MQTT Publish.

10. darbība. MQTT publicēšana

Publicēt MQTT
Publicēt MQTT

Lai sāktu, instalēsim Eclipse Paho MQTT Python klientu bibliotēku, kas īsteno MQTT protokola versijas 3.1 un 3.1.1

sudo pip instalējiet paho-mqtt

Tālāk importēsim paho bibliotēku:

importēt paho.mqtt.publish kā publicēt

un uzsākt Thingspeak kanālu un MQTT protokolu. Šī savienojuma metode ir vienkāršākā un prasa vismazāk sistēmas resursu:

channelID = "JŪSU KANĀLA ID"

apiKey = "JŪSU RAKSTA ATSLĒGA" topic = "kanāli/" + kanāla ID + "/publicēt/" + apiKey mqttHost = "mqtt.thingspeak.com" Tagad mums ir jādefinē mūsu "lietderīgā slodze"

tPayload = "field1 =" + str (pmt_2_5) + "& field2 =" + str (aqi_2_5) + "& field3 =" + str (pmt_10) + "& field4 =" + str (aqi_10)

Un tas arī viss! mēs esam gatavi sākt datu sūtīšanu uz mākoni! Pārrakstīsim iepriekšējo cilpas funkciju, iekļaujot tajā arī ThingSpeak daļu.

# Visu datu sūtīšana uz ThingSpeak ik pēc 1 minūtes

kamēr (True): pmt_2_5, pmt_10 = get_data () aqi_2_5, aqi_10 = conv_aqi (pmt_2_5, pmt_10) tPayload = "field1 =" + str (pmt_2_5) + "& field2 =" + str (aqi_2_5) + "& field3 =" + str (pmt_10) + "& field4 =" + str (aqi_10) mēģiniet: public.single (tēma, lietderīgā slodze = tPayload, resursdatora nosaukums = mqttHost, ports = tPort, tls = tTLS, transport = tTransport) save_log () izņemot: print ("[INFO] Neizdevās nosūtīt datus ") time.sleep (60) Ja viss ir kārtībā, jums ir jāredz, ka dati tiek parādīti arī jūsu kanālā vietnē thingspeak.com, kā parādīts iepriekš.

11. solis: galīgais skripts

Ir svarīgi norādīt, ka Jupyter piezīmju grāmatiņa ir ļoti labs attīstības un pārskatu veidošanas līdzeklis, bet nē, lai izveidotu kodu ražošanai. Tagad jums vajadzētu paņemt attiecīgo koda daļu un izveidot.py skriptu un palaist to savā terminālī.

Piemēram, “ts_air_quality_logger.py”, kas jāizpilda ar komandu:

python 3 ts_air_quality_logger.py

Šo skriptu, kā arī Jupyter piezīmju grāmatiņu un sds011.py var atrast manā krātuvē vietnē RPi_Air_Quality_Sensor.

Ņemiet vērā, ka šis skripts ir iespējams tikai testēšanai. Vislabāk ir neizmantot aizkavēšanos pēdējā cilpā (kas ievieto kodu "pauzē"), tā vietā izmantojiet taimerus. Vai arī reālai lietojumprogrammai vislabāk neizmantot cilpu, ja Linux ir ieprogrammēts, lai regulāri izpildītu skriptu, izmantojot crontab.

12. solis: monitora izvešana ārpusē

Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē
Monitora izvešana ārpusē

Kad mans Raspberry Pi gaisa kvalitātes monitors strādāja, es saliku RPi plastmasas kastē, turot sensoru ārpusē un novietoju to ārpus manas mājas.

Tika gūtas divas pieredzes.

13. solis: benzīna motora sadegšana

Benzīna motora sadedzināšana
Benzīna motora sadedzināšana
Benzīna motora sadedzināšana
Benzīna motora sadedzināšana

Sensors tika novietots apmēram 1 m attālumā no Lambretta gāzes skalas, un tā motors tika ieslēgts. Motors darbojās pāris minūtes un izslēdzās. No iepriekš minētā žurnāla faila rezultāts. Interesanti apstiprināt, ka PM2.5 bija visbīstamākās daļiņas, kas radās motora dēļ.

14. solis: koksnes dedzināšana

Koka dedzināšana
Koka dedzināšana
Koka dedzināšana
Koka dedzināšana

Aplūkojot žurnālfailu, mēs saprotam, ka sensora dati bija momentāni "ārpus diapazona" un AQI konversijas bibliotēka tos labi neuztvēra, tāpēc es mainu iepriekšējo kodu, lai to apstrādātu:

def conv_aqi (pmt_2_5, pmt_10):

mēģiniet: aqi_2_5 = aqi.to_iaqi (aqi. POLLUTANT_PM25, str (pmt_2_5)) aqi_10 = aqi.to_iaqi (aqi. POLLUTANT_PM10, str (pmt_10)) atgriezt aqi_2_5, aqi_10, izņemot: 600, Šāda situācija var notikt uz lauka, kas ir labi. Atcerieties, ka patiesībā jums vajadzētu izmantot slīdošo vidējo, lai patiešām iegūtu AQI (vismaz stundu, bet parasti katru dienu).

15. solis. Secinājums

Secinājums
Secinājums

Kā vienmēr, es ceru, ka šis projekts var palīdzēt citiem atrast ceļu aizraujošajā elektronikas un datu zinātnes pasaulē!

Lai iegūtu sīkāku informāciju un galīgo kodu, lūdzu, apmeklējiet manu GitHub depozitāriju: RPi_Air_Quality_Sensor.

Sveicieni no pasaules dienvidiem!

Uz tikšanos manā nākamajā pamācībā!

Paldies, Marselo

Ieteicams: