Tartalomjegyzék:
- 1. lépés: Szükséges alkatrészek
- 2. lépés: Szerelje össze az alkatrészeket
- 3. lépés: A kód
- 4. lépés: Szerelje össze a dobozt
Videó: Arduino hajtású porrészecskék figyelő állomás: 4 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Meglehetősen könnyen felépíthet egy barkácsolható tárgyakból álló internetes eszközt, amely 50 dollárnál alacsonyabb áron figyeli az otthoni por szennyeződését, és értesítést kap, ha a por szintje túl magas lesz, így szellőztetheti a helyiséget, vagy beállíthatja kívülre, és értesítést kaphat, ha biztonságosan mehet a szabadba, ha erősen szennyezett területen él.
Ezt iskolai projektként készítettem, így nem volt elég időm megtalálni egy olyan szolgáltatást, amely átveszi az MQTT üzeneteket, és értesítésként vagy e -mailként küldi el Önnek.
Azt is vegye figyelembe, hogy az érzékelő folyamatos áramellátása csökkenti a ventilátor élettartamát.
1. lépés: Szükséges alkatrészek
Amire szüksége lesz
- Arduino Uno
- Arduino Ethernet pajzs
- Részecske-anyag lézeres érzékelő (általában 10–30 dollárba kerül az eBay-en/aliexpressen)
- DHT11 hőmérséklet- és páratartalom -érzékelő (opcionális)
- Kenyeretábla
- Jumper kábelek
2. lépés: Szerelje össze az alkatrészeket
Először csatlakoztatnia kell az Arduino ethernet -pajzsát
A PM érzékelőnek több vezetéke van, de szükségünk van a VCC, GND, TX, RX.
Csatlakoztassa a VCC -t és a GND -t a + és - a kenyértáblán.
Az Arduino hardveres RX és TX csapokkal rendelkezik, de az RX és TX csapok szoftveres emulációját fogjuk használni a 2. és a 3. tűn. Csatlakoztassa az érzékelő RX -jét az Arduino TX -hez, és az érzékelő TX -jét az Arduino RX -hez.
Ha a hőmérséklet -érzékelőt fogja használni, csatlakoztassa a VCC és GND vonalakat a + és - ponthoz a kenyértáblán és az adatvonalat a 7 -es tűhöz.
3. lépés: A kód
Telepítheti az MQTT közvetítőt egy málna pi vagy egy számítógépre, amely mindig otthon van, vagy használhat felhőbeli MQTT szolgáltatást, például a Cloud MQTT -t. Ezután írhat egy szkriptet, amely az adatokat HTTP -ként küldi el az IFTT webhook -nak, mivel ezek még nem támogatják az MQTT webhook -okat, és beállíthatja az értesítéseket, ha az otthoni por szintje túl magas lesz.
Arduino légi állomás
#befoglalni |
#befoglalni |
#befoglalni |
#befoglalni |
#befoglalni |
#befoglalni |
#befoglalni |
#befoglalni |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAdd 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"; // Az ügyfélkapcsolatoknak nem lehet ugyanaz a kapcsolati neve |
EthernetClient ethClient; |
PubSubClient kliens (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
// Fájl myFile; |
Karakterlánc s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Sorozat.kezdet (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
if (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Nem sikerült az Ethernet konfigurálása DHCP használatával"); |
// próbálkozz fix ip addr -rel |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_szerver, mqtt_port); |
client.setCallback (visszahívás); |
késleltetés (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Soros.nyomtatás ("rc ="); |
Serial.print (kliens.állapot ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
char érték; |
char previousValue; |
ha (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("csatlakoztatva"); |
} |
} |
while (pmSerial.available ()) { |
érték = pmSerial.read (); |
if ((index == 0 && érték! = 0x42) || (index == 1 && érték! = 0x4d)) { |
Serial.println ("Nem található az adatfejléc."); |
Visszatérés; |
} |
ha (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
previousValue = érték; |
} |
elseif (index == 5) { |
pm1 = 256 * previousValue + érték; |
gyökér ["pm1"] = abs (pm1); |
} |
elseif (index == 7) { |
pm2_5 = 256 * previousValue + érték; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (index == 9) { |
pm10 = 256 * previousValue + érték; |
gyökér ["pm10"] = abs (pm10); |
} |
elseif (index> 15) { |
szünet; |
} |
index ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
ha (DHT.hőmérséklet == -999 || DHT.páratartalom == -999) { |
root ["hőmérséklet"] = "N/A"; |
root ["páratartalom"] = "N/A"; |
} más { |
gyökér ["hőmérséklet"] = DHT.hőmérséklet; |
gyökér ["páratartalom"] = DHT.nedvesség; |
} |
sendResults (); |
id ++; |
késleltetés (5000); |
} |
voidsendResults () { |
// közzéteszi az MQTT -nek |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (kliens.publish ("arduino", jsonChar)); |
// soros hibakeresés |
root.printTo (soros); |
Serial.print ('\ n'); |
} |
// A feliratkozott témákhoz érkezett üzenetek kezelése |
voidcallback (char* topic, byte* payload, unsignedint length) { |
} |
Tekintse meg a rawair_quality.ino webhelyet, amelyet a GitHub ❤ üzemeltet
4. lépés: Szerelje össze a dobozt
Én csak egy dobozt használtam, amiben feküdtem, és lyukat fúrtam az érzékelőhöz, hogy levegőt kapjak, és kivágtam egy lyukat a kábelek kivezetéséhez (bár egy kicsit túl nagy volt).
Ragasztópárnákkal rögzítettem az érzékelőt a dobozhoz, igazítva az érzékelő bemeneti nyílását a dobozon lévő fúrt lyukhoz.
Végül bedugtam az ethernet és a tápkábeleket.
Ajánlott:
Arduino hajtású festőrobot: 11 lépés (képekkel)
Arduino Powered Festő Robot: Gondolkozott már azon, hogy vajon egy robot képes -e elbűvölő festményeket és művészeteket készíteni? Ebben a projektben megpróbálom ezt megvalósítani egy Arduino Powered Festő Robot segítségével. A cél az, hogy a robot képes legyen önállóan festményeket készíteni, és
RC hajtású elektromos játékautó: 10 lépés (képekkel)
RC hajtású elektromos játékautó: Szerző: Peter Tran 10ELT1Ez az oktatóanyag részletezi a HT12E/D IC chipeket használó távirányítóval (RC) működtetett elektromos játékgép elméletét, tervezését, gyártását és tesztelési folyamatát. Az oktatóanyagok részletezik az autótervezés három szakaszát: Tethered kábel Infrar
3D nyomtatott Arduino hajtású négylábú robot: 13 lépés (képekkel)
3D nyomtatott Arduino Powered Quadruped Robot: Az előző Instructables -ből valószínűleg láthatja, hogy mélyen érdekelnek a robotprojektek. Az előző Instructable után, ahol egy robotlábú robotot építettem, úgy döntöttem, hogy megpróbálok egy négylábú robotot készíteni, amely képes utánozni az állatokat, például a kutyát
Arduino hajtású multiméter: 8 lépés (képekkel)
Arduino hajtású multiméter: Ebben a projektben voltmérőt és ohmmérőt fog építeni egy Arduino digitalRead funkciójának használatával. Szinte minden ezredmásodperc alatt leolvasható lesz, sokkal pontosabb, mint egy tipikus multiméter. Végül az adatok hozzáférhetők
Arduino hajtású kutyatáp adagoló: 10 lépés (képekkel)
Arduino hajtású kutyaeledel -adagoló: Ha a háza olyan, mint az enyém, akkor bizonyos feladatok elfelejthetők rohanás közben. Ne hagyd, hogy a kedvencedről feledkezzenek meg! Ez az automatizált kutyaeledel -adagoló Arduino -t használ a megfelelő mennyiségű morzsának a megfelelő időben történő kiszállításához. Minden pa