Obsah:
Video: Stanice pro sledování částic prachu poháněných Arduinem: 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Poměrně snadno si můžete vytvořit vlastní zařízení pro internet věcí, které monitoruje znečištění prachem ve vašem domě za méně než 50 USD, a budete upozorněni, když se úroveň prachu zvýší příliš vysoko, takže můžete místnost provzdušnit, nebo ji můžete nastavit venku a dostat oznámení, pokud je pokud žijete ve vysoce znečištěné oblasti, můžete jít bezpečně ven.
Udělal jsem to jako školní projekt, takže jsem neměl dost času najít službu, která bude přijímat zprávy MQTT a posílat vám je jako oznámení nebo e -maily.
Pamatujte také na to, že udržování senzoru stále v provozu sníží životnost ventilátoru.
Krok 1: Potřebné součásti
Co budete potřebovat
- Arduino Uno
- Ethernetový štít Arduino
- Laserový senzor pevných částic (obvykle stojí 10 až 30 USD na eBay/aliexpress)
- Čidlo teploty a vlhkosti DHT11 (volitelně)
- Prkénko
- Propojovací kabely
Krok 2: Sestavte díly
Nejprve musíte připojit ethernetový štít na Arduino
Senzor PM má více vodičů, ale potřebujeme VCC, GND, TX, RX.
Připojte VCC a GND k + a - na prkénku.
Arduino má hardwarové piny RX a TX, ale použijeme softwarovou emulaci pinů RX a TX na pinech 2 a 3. Připojte RX senzoru k TX Arduina a TX senzoru k RX Arduina.
Pokud budete používat teplotní čidlo, připojte vedení VCC a GND k + a - na Breadboardu a datový řádek ke kolíku 7.
Krok 3: Kód
Můžete buď nainstalovat brokera MQTT na Raspberry Pi nebo na počítač, který máte vždy doma, nebo použít cloudovou službu MQTT, jako je Cloud MQTT. Poté můžete napsat skript, který data odešle jako HTTP do webhooku IFTT, protože ještě nepodporují webhooky MQTT, a nastavíte oznámení, když se úroveň prachu ve vaší domácnosti příliš zvýší.
Letecká stanice Arduino
#zahrnout |
#zahrnout |
#zahrnout |
#zahrnout |
#zahrnout |
#zahrnout |
#zahrnout |
#zahrnout |
#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"; // Klientská připojení nemohou mít stejný název připojení |
Ethernetový klient ethClient; |
Klient PubSubClient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
nepodepsané id; |
// Soubor myFile; |
Řetězec s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
if (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Nepodařilo se konfigurovat ethernet pomocí DHCP"); |
// pokus s pevnou IP adresou |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (zpětné volání); |
zpoždění (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 ("připojeno"); |
} |
} |
while (pmSerial.available ()) { |
hodnota = pmSerial.read (); |
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("Nelze najít záhlaví dat."); |
vrátit se; |
} |
if (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 * previousValue + hodnota; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (index == 9) { |
pm10 = 256 * previousValue + hodnota; |
root ["pm10"] = abs (pm10); |
} |
elseif (index> 15) { |
přestávka; |
} |
index ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
if (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["teplota"] = "N/A"; |
root ["vlhkost"] = "N/A"; |
} else { |
root ["teplota"] = DHT.teplota; |
root ["vlhkost"] = DHT.vlhkost; |
} |
sendResults (); |
id ++; |
zpoždění (5000); |
} |
voidsendResults () { |
// publikovat na MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// ladění na seriál |
root.printTo (sériové); |
Serial.print ('\ n'); |
} |
// Zpracovává zprávy přijaté na předplatená témata |
voidcallback (char* topic, byte* užitečné zatížení, délka bez znaménka) { |
} |
zobrazit rawair_quality.ino hostované s ❤ od GitHub
Krok 4: Sestavte krabici
Právě jsem použil pole, ve kterém jsem ležel, a vyvrtal otvor pro senzor, aby se dostal vzduch, a vyřízl otvor, aby kabely mohly jít ven (i když to bylo trochu příliš velké).
Pomocí lepicích podložek jsem připevnil senzor k krabici a zarovnal vstupní otvor snímače s vyvrtaným otvorem na krabici.
Nakonec jsem zapojil ethernetové a napájecí kabely.
Doporučuje:
Sledování pohybu pomocí MPU-6000 a fotonu částic: 4 kroky
Sledování pohybu pomocí MPU-6000 a částicového fotonu: MPU-6000 je 6osý snímač pohybu, který má zabudovaný 3osý akcelerometr a 3osý gyroskop. Tento senzor je schopen efektivně sledovat přesnou polohu a umístění objektu v trojrozměrné rovině. Lze použít i
ATtiny85 Nositelné vibrační sledování aktivity Sledování a programování ATtiny85 s Arduino Uno: 4 kroky (s obrázky)
ATtiny85 Wearable Vibration Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: How to make the wearable activity tracking watch? Toto je nositelný gadget navržený tak, aby vibroval, když detekuje stagnaci. Trávíte většinu času na počítači jako já? Sedíte hodiny, aniž byste si to uvědomovali? Pak je toto zařízení f
Sady inteligentních robotů pro sledování robotů Sledování automobilů Fotosenzitivní: 7 kroků
Sady inteligentních robotů pro sledování robotů Sledovací auto Fotosenzitivní: Design od SINONING ROBOT Můžete si koupit od sledovacího robota carTheoryLM393 čip porovnat dva fotorezistory, když je na jedné straně LED dioda fotorezistoru na BÍLÉ, strana motoru se okamžitě zastaví, druhá strana motoru roztočit, aby
Meteorologická stanice s Arduino, BME280 a displejem pro sledování trendů za poslední 1–2 dny: 3 kroky (s obrázky)
Meteorologická stanice S Arduinem, BME280 a displejem pro sledování trendů za poslední 1–2 dny: Dobrý den! Zde byly již zavedeny meteorologické stanice s pokyny. Ukazují aktuální tlak vzduchu, teplotu a vlhkost. To, co jim zatím chybělo, byla prezentace kurzu během posledních 1-2 dnů. Tento proces by měl
Inatel - SmartHome - SH2Y - Sledování systému a sledování prostředí: 6 kroků
Inatel - SmartHome - SH2Y - Sledování systému a prostředí Ambiente: Foen desenvolvido um & Sistema de Monitoramento e Seguran ç a F í sica de Ambiente " para Smart Homes, což je intuitivní monitorování stavu vari á veis como "Temperatura", "Luminosidade" e " Senzor