Obsah:
Video: Stanica monitorovania prachových častíc poháňaná Arduino: 4 kroky (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Môžete si celkom jednoducho vytvoriť zariadenie na internet pre domácich majstrov, ktoré monitoruje znečistenie prachom vo vašej domácnosti za menej ako 50 dolárov, a dostanete upozornenie, keď sa úroveň prachu zvýši príliš vysoko, aby ste mohli miestnosť prevzdušniť, alebo ju môžete nastaviť vonku a dostať upozornenie, ak je môžete ísť von, ak žijete vo veľmi znečistenej oblasti.
Vytvoril som to ako školský projekt, takže som nemal dostatok času nájsť si službu, ktorá bude prijímať správy MQTT a odosielať vám ich ako oznámenia alebo e -maily.
Pamätajte tiež na to, že ponechanie senzora stále v prevádzke skracuje životnosť ventilátora.
Krok 1: Potrebné diely
Čo budeš potrebovať
- Arduino Uno
- Ethernetový štít Arduino
- Laserový senzor pevných častíc (zvyčajne stojí 10 až 30 dolárov na eBay/aliexpress)
- Snímač teploty a vlhkosti DHT11 (voliteľné)
- Breadboard
- Prepojovacie káble
Krok 2: Zostavte diely
Najprv musíte na Arduino zapojiť ethernetový štít
Senzor PM má niekoľko vodičov, ale potrebujeme VCC, GND, TX, RX.
Pripojte VCC a GND k + a - na nepájivom poli.
Arduino má hardvérové piny RX a TX, ale použijeme softvérovú emuláciu pinov RX a TX na kolíkoch 2 a 3. Pripojte RX senzora k TX Arduina a TX senzora k RX Arduina.
Ak budete používať teplotný senzor, zapojte vedenia VCC a GND do konektorov + a - na Breadboard a dátový kábel do kolíka 7.
Krok 3: Kód
Buď si môžete nainštalovať brokera MQTT na malinový pi alebo na počítač, ktorý máte vždy doma, alebo môžete použiť cloudovú službu MQTT, napríklad Cloud MQTT. Potom môžete napísať skript, ktorý odošle údaje vo formáte HTTP do webhooku IFTT, pretože ešte nepodporujú webhooky MQTT, a nastavíte upozornenia, keď sa úroveň prachu vo vašej domácnosti zvýši na príliš vysokú.
Vzdušná stanica Arduino
#zahrnúť |
#zahrnúť |
#zahrnúť |
#zahrnúť |
#zahrnúť |
#zahrnúť |
#zahrnúť |
#zahrnúť |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IP adresa ip (169, 169, 100, 98); |
byte 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"; // Klientske pripojenia nemôžu mať rovnaký názov pripojenia |
Ethernetový klient et klient; |
Klient PubSubClient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
nepodpísané ID; |
// Súbor myFile; |
Reťazce s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
ak (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Nepodarilo sa konfigurovať ethernet pomocou DHCP"); |
// pokus s pevnou adresou IP |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (spätné volanie); |
oneskorenie (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
char hodnota; |
char previousValue; |
if (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("pripojený"); |
} |
} |
while (pmSerial.available ()) { |
hodnota = pmSerial.read (); |
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("Nedá sa nájsť hlavička údajov."); |
návrat; |
} |
ak (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
previousValue = hodnota; |
} |
elseif (index == 5) { |
pm1 = 256 * previousValue + hodnota; |
root ["pm1"] = abs (pm1); |
} |
elseif (index == 7) { |
pm2_5 = 256 * predchádzajúca hodnota + hodnota; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (index == 9) { |
pm10 = 256 * predchádzajúca hodnota + hodnota; |
root ["pm10"] = abs (pm10); |
} |
elseif (index> 15) { |
prestávka; |
} |
index ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
ak (DHT.teplota == -999 || DHT.vlhkosť == -999) { |
root ["teplota"] = "N/A"; |
root ["vlhkosť"] = "N/A"; |
} else { |
root ["teplota"] = DHT.teplota; |
root ["vlhkosť"] = DHT.vlhkosť; |
} |
sendResults (); |
id ++; |
oneskorenie (5 000); |
} |
voidsendResults () { |
// zverejnenie na MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// ladenie do seriálu |
root.printTo (sériové); |
Serial.print ('\ n'); |
} |
// Spracováva správy doručené na prihlásené témy |
voidcallback (char* topic, byte* užitočné zaťaženie, dĺžka bez znamienka) { |
} |
pozrite sa na rawair_quality.ino hostiteľom ❤ od GitHub
Krok 4: Zostavte škatuľu
Len som použil ležiacu škatuľu a vyvŕtal som otvor pre senzor, aby sa z neho dostal vzduch, a vyrezal som otvor, aby káble mohli ísť von (aj keď to bolo trochu príliš veľké).
Na pripevnenie senzora k krabici som použil lepiace podložky a zarovnal vstupný otvor senzora s vyvŕtaným otvorom na krabici.
Nakoniec som zapojil ethernetové a napájacie káble.
Odporúča:
Meteostanica NaTaLia: Meteostanica Arduino poháňaná solárnou energiou urobila správnu cestu: 8 krokov (s obrázkami)
Meteostanica NaTaLia: Meteostanica poháňaná solárnou energiou Arduino urobila správnu cestu: Po 1 roku úspešnej prevádzky na 2 rôznych miestach zdieľam svoje plány projektov solárnej elektrárne a vysvetľujem, ako sa vyvinul do systému, ktorý môže skutočne prežiť dlhý čas. obdobia zo slnečnej energie. Ak budete postupovať
Záhrada IOT poháňaná Raspberry Pi: 18 krokov (s obrázkami)
Záhrada IOT poháňaná Raspberry Pi: Jedným z primárnych cieľov tohto projektu bolo byť schopné udržať pohodu záhrady pomocou sily internetu vecí (IoT). Vďaka univerzálnosti súčasných nástrojov a softvéru je náš sejací stroj integrovaný so senzormi, ktoré
Strašidelný medvedík - hojdacia stolička a otočná hlava poháňaná Arduinom: 11 krokov (s obrázkami)
Strašidelný medvedík-samočinne sa hojdajúca stolička a otočná hlava poháňaná Arduinom: Spooky teddy je 2-dielna dekorácia na Halloween. Prvá časť je plyšový medveď, ktorý má 3D tlačený mechanizmus, ktorý sa dá otáčať pomocou Arduino UNO a solenoidu. Druhá časť je samočinné hojdacie kreslo poháňané nano Arduino a solenoidovým úchytom
Áno - Nie: Poštová schránka poháňaná Arduino: 4 kroky (s obrázkami)
Áno - Nie: Poštová schránka riadená Arduino: V tomto projekte vám ukážeme, ako urobiť svoju poštovú schránku zábavnejšou a užitočnejšou. V tejto schránke, ak je vo vašej pošte list, máte pekné svetlo, ktoré ukazuje, či máte poštu, a môžete túto schránku ovládať pomocou bluetooth, aby sa automaticky
ROOMBA poháňaná ARDUINO YUN prostredníctvom aplikácie Wifi od STEFANO DALL'OLIO: 4 kroky (s obrázkami)
ROOMBA poháňaná aplikáciou ARDUINO YUN prostredníctvom aplikácie Wifi od STEFANO DALL'OLIO: S touto príručkou zdieľam kód na pripojenie ARDUINO YUN k robotu Roomba, aby bolo možné ovládať robot Roomba prostredníctvom siete Wi -Fi. Kód a aplikáciu si úplne vytvoril a vyvinul sám Stefano Dall ' Olio. Moja Roomba je Roomba 620, ale rovnaký kód môžete použiť aj pre ostatné Roomb