Satura rādītājs:
- 1. darbība. Nepieciešamās detaļas
- 2. solis: salieciet detaļas
- 3. darbība: kods
- 4. solis: salieciet kastīti
Video: Arduino putekļu daļiņu uzraudzības stacija: 4 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Jūs varat viegli izveidot DIY lietu interneta ierīci, kas uzrauga jūsu mājas putekļu piesārņojumu par mazāk nekā 50 ASV dolāriem, un saņemt paziņojumu, kad putekļu līmenis kļūst pārāk augsts, lai jūs varētu vēdināt telpu, vai arī varat to iestatīt ārpusē un saņemt paziņojumu, ja tas ir droši doties ārā, ja dzīvojat ļoti piesārņotā vietā.
Es to izveidoju kā skolas projektu, tāpēc man nebija pietiekami daudz laika, lai atrastu pakalpojumu, kas ņemtu MQTT ziņojumus un nosūtītu tos jums kā paziņojumus vai e -pastus.
Ņemiet vērā arī to, ka sensora nepārtraukta barošana samazinās ventilatora kalpošanas laiku.
1. darbība. Nepieciešamās detaļas
Kas jums būs nepieciešams
- Arduino Uno
- Arduino Ethernet vairogs
- Cieto daļiņu lāzera sensors (parasti maksā 10–30 USD eBay/aliexpress)
- DHT11 temperatūras un mitruma sensors (pēc izvēles)
- Maizes dēlis
- Jumper kabeļi
2. solis: salieciet detaļas
Pirmkārt, jums ir jāpievieno Arduino Ethernet vairogs
PM sensoram ir vairāki vadi, bet mums ir vajadzīgi VCC, GND, TX, RX.
Pievienojiet VCC un GND attiecīgi + un - uz maizes dēļa.
Arduino ir aparatūras RX un TX tapas, bet mēs izmantosim RX un TX tapas programmatūras emulāciju attiecīgi uz 2. un 3. tapām. Pievienojiet sensora RX Arduino TX un sensora TX pie Arduino RX.
Ja izmantosit temperatūras sensoru, pievienojiet VCC un GND līnijas uz + un - uz maizes dēļa un datu līnijas līdz 7. tapai.
3. darbība: kods
Jūs varat instalēt MQTT brokeri aveņu pi vai datorā, kas vienmēr ir mājās, vai izmantot mākoņa MQTT pakalpojumu, piemēram, Cloud MQTT. Pēc tam jūs varat uzrakstīt skriptu, kas nosūta datus kā HTTP uz IFTT tīmekļa aizķeri, jo tie vēl neatbalsta MQTT tīmekļa āķus un iestatīt paziņojumus par gadījumiem, kad putekļu līmenis jūsu mājās kļūst pārāk augsts.
Arduino gaisa stacija
#iekļaut |
#iekļaut |
#iekļaut |
#iekļaut |
#iekļaut |
#iekļaut |
#iekļaut |
#iekļaut |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAdd ip (169, 169, 100, 98); |
baits mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
constint mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Klienta savienojumiem nevar būt vienāds savienojuma nosaukums |
EthernetClient ethClient; |
PubSubClient klients (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
neparakstīts garš ID; |
// Fails myFile; |
Stīgas s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Sērijas sākums (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
ja (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Neizdevās konfigurēt Ethernet, izmantojot DHCP"); |
// mēģināt ar fiksētu ip adr |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (atzvanīšana); |
kavēšanās (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Sērijas nospiedums ("rc ="); |
Sērijas nospiedums (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindekss = 0; |
ogļu vērtība; |
char previousValue; |
ja (! client.connected ()) |
{ |
ja (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("savienots"); |
} |
} |
while (pmSerial.available ()) { |
vērtība = pmSerial.read (); |
ja ((indekss == 0 && vērtība! = 0x42) || (indekss == 1 && vērtība! = 0x4d)) { |
Serial.println ("Nevar atrast datu galveni."); |
atgriešanās; |
} |
ja (indekss == 4 || indekss == 6 || indekss == 8 || indekss == 10 || indekss == 12 || indekss == 14) { |
previousValue = vērtība; |
} |
elseif (indekss == 5) { |
pm1 = 256 * previousValue + vērtība; |
sakne ["pm1"] = abs (pm1); |
} |
elseif (indekss == 7) { |
pm2_5 = 256 * previousValue + vērtība; |
sakne ["pm2_5"] = abs (pm2_5); |
} |
elseif (indekss == 9) { |
pm10 = 256 * previousValue + vērtība; |
sakne ["pm10"] = abs (pm10); |
} |
elseif (indekss> 15) { |
pārtraukums; |
} |
indekss ++; |
} |
kamēr (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
ja (DHT.temperatūra == -999 || DHT. mitrums == -999) { |
sakne ["temperatūra"] = "N/A"; |
sakne ["mitrums"] = "N/A"; |
} vēl { |
sakne ["temperatūra"] = DHT.temperatūra; |
sakne ["mitrums"] = DHT.mitrums; |
} |
sendResults (); |
id ++; |
kavēšanās (5000); |
} |
voidsendResults () { |
// publicēt MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// atkļūdošana sērijā |
root.printTo (sērijas); |
Serial.print ('\ n'); |
} |
// Apstrādā ziņas, kas saņemtas par abonēto tēmu (-ām) |
voidcallback (char* tēma, baits* lietderīgā slodze, neparakstīts garums) { |
} |
skatiet rawair_quality.ino, kuru ar ❤ mitina GitHub
4. solis: salieciet kastīti
Es tikko izmantoju kastīti, kas man bija gulējusi, un izurbju caurumu sensoram, lai izvilktu gaisu, un izgriezu caurumu kabeļu iziešanai (lai gan tas bija mazliet par lielu).
Es izmantoju līmes spilventiņus, lai piestiprinātu sensoru pie kastes, izlīdzinot sensora ievades atveri ar urbto caurumu uz kastes.
Visbeidzot, es pievienoju Ethernet un strāvas kabeļus.
Ieteicams:
Pārnēsājams Black+Decker putekļu sūcēju labojums - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: 5 soļi (ar attēliem)
Pārnēsājams Black+Decker putekļsūcēju labojums - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. Modelo DVJ315J: Par lielisku portatīvo putekļu sūcēju varat tērēt +70 Eur (dolārus vai līdzvērtīgu valūtu), un pēc dažiem mēnešiem vai gada tas vairs nedarbojas tik labi … Jā, tas joprojām darbojas, bet mazāk ilgāk par 1 minūti, un tas ir bezvērtīgi. Nepieciešams atkārtotai
Meteoroloģiskā stacija NaTaLia: ar saules enerģiju darbināma meteoroloģiskā stacija, kas veikta pareizi: 8 soļi (ar attēliem)
Meteoroloģiskā stacija NaTaLia: Arduino ar saules enerģiju darbināma meteoroloģiskā stacija Pareizi darīts: Pēc viena gada veiksmīgas darbības divās dažādās vietās es dalos savos ar saules enerģiju darbināmos laika staciju projektu plānos un paskaidroju, kā tā kļuva par sistēmu, kas patiešām var izdzīvot ilgu laiku no saules enerģijas. Ja sekojat
DIY laika stacija un WiFi sensora stacija: 7 soļi (ar attēliem)
DIY laika stacija un WiFi sensora stacija: Šajā projektā es jums parādīšu, kā izveidot laika staciju kopā ar WiFi sensoru staciju. Sensora stacija mēra vietējās temperatūras un mitruma datus un nosūta tos, izmantojot WiFi, uz meteoroloģisko staciju. Pēc tam meteoroloģiskā stacija parāda t
Daļiņu fotonu IoT personīgā laika stacija: 4 soļi (ar attēliem)
Daļiņu fotonu IoT personīgā laika stacija:
Daļiņu piesārņojuma gaisa kvalitātes uzraudzības sistēma: 4 soļi
Daļiņu piesārņojuma gaisa kvalitātes uzraudzības sistēma: IEVADS: 1 Šajā projektā es parādīšu, kā izveidot daļiņu detektoru ar datu displeju, datu dublēšanu SD kartē un IOT. Vizuāli neopikseļu gredzena displejs norāda uz gaisa kvalitāti. 2 Gaisa kvalitāte ir arvien svarīgāka problēma