Съдържание:
Видео: Станция за наблюдение на прахови частици с Arduino: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Можете сравнително лесно да изградите устройство „Направи си сам“интернет на нещата, което следи замърсяването с прах във вашия дом за по -малко от $ 50 и да получавате известия, когато нивото на прах стане твърде високо, за да можете да проветрите помещението или да го настроите навън и да получите известие, ако е безопасно да излизате навън, ако живеете в силно замърсена зона.
Направих това като училищен проект, така че нямах достатъчно време да намеря услуга, която да приема MQTT съобщения и да ви ги изпраща като известия или имейли.
Също така имайте предвид, че поддържането на сензора през цялото време ще намали живота на вентилатора.
Стъпка 1: Необходими части
Какво ще ви трябва
- Arduino Uno
- Arduino Ethernet щит
- Лазерен сензор за прахови частици (обикновено отиват за $ 10-$ 30 на eBay/aliexpress)
- DHT11 сензор за температура и влажност (по избор)
- Платка
- Джъмперни кабели
Стъпка 2: Сглобете частите
Първо, трябва да включите Ethernet щита на Arduino
PM сензорът има множество проводници, но тези, от които се нуждаем, са VCC, GND, TX, RX.
Свържете VCC и GND съответно към + и - на платката.
Arduino има хардуерни RX и TX пинове, но ще използваме софтуерна емулация на RX и TX щифтове съответно на пинове 2 и 3. Включете RX на сензора към TX на Arduino и TX на сензора към RX на Arduino.
Ако ще използвате температурния сензор, включете линиите VCC и GND към + и - на макета и линията за данни към щифт 7.
Стъпка 3: Кодът
Можете или да инсталирате MQTT брокер на малинов пи или компютър, който винаги сте имали у дома, или да използвате облачна MQTT услуга, като Cloud MQTT. След това можете да напишете скрипт, който изпраща данните като HTTP към IFTT уебхук, тъй като те все още не поддържат MQTT уеб куки и да настроите известия, когато нивата на прах в дома ви станат твърде високи.
Аерогара Ардуино
#включва |
#включва |
#включва |
#включва |
#включва |
#включва |
#включва |
#включва |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IP Адрес ip (169, 169, 100, 98); |
байт 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"; // Клиентските връзки не могат да имат същото име на връзка |
EthernetClient ethClient; |
PubSubClient клиент (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
// Файл myFile; |
Низове 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 ("Неуспешно конфигуриране на Ethernet чрез DHCP"); |
// опит с фиксиран ip addr |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (обратно повикване); |
забавяне (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 стойност; |
char previousValue; |
if (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("свързан"); |
} |
} |
while (pmSerial.available ()) { |
стойност = pmSerial.read (); |
if ((индекс == 0 && стойност! = 0x42) || (индекс == 1 && стойност! = 0x4d)) { |
Serial.println ("Не мога да намеря заглавката на данните."); |
връщане; |
} |
if (индекс == 4 || индекс == 6 || индекс == 8 || индекс == 10 || индекс == 12 || индекс == 14) { |
previousValue = стойност; |
} |
elseif (индекс == 5) { |
pm1 = 256 * previousValue + стойност; |
root ["pm1"] = abs (pm1); |
} |
elseif (индекс == 7) { |
pm2_5 = 256 * previousValue + стойност; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (индекс == 9) { |
pm10 = 256 * previousValue + стойност; |
root ["pm10"] = abs (pm10); |
} |
elseif (индекс> 15) { |
прекъсване; |
} |
индекс ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
if (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["температура"] = "N/A"; |
root ["влажност"] = "N/A"; |
} else { |
root ["температура"] = DHT.температура; |
root ["влажност"] = DHT.влажност; |
} |
sendResults (); |
id ++; |
забавяне (5000); |
} |
voidsendResults () { |
// публикувам в MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// отстраняване на грешки в сериен |
root.printTo (сериен); |
Serial.print ('\ n'); |
} |
// Обработва съобщения, пристигнали по абонаментирани теми |
voidcallback (char* тема, байт* полезен товар, дължина без знак) { |
} |
вижте rawair_quality.ino, хоствано с ❤ от GitHub
Стъпка 4: Сглобете кутията
Току -що използвах кутия, която бях лежал наоколо, и пробих дупка за сензора, от който да излиза въздух, и изрязах дупка за излизане на кабелите (въпреки че беше малко прекалено голяма).
Използвах подложки за лепило, за да прикрепя сензора към кутията, като подравнявам входния отвор на сензора с пробития отвор на кутията.
Накрая включих Ethernet и захранващи кабели.
Препоръчано:
Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки)
Метеорологична станция NaTaLia: Метеорологична станция Arduino със слънчева енергия, направена по правилния начин: След 1 година успешна работа на 2 различни места споделям плановете си за проекти на метеорологични станции със слънчева енергия и обяснявам как се е развила в система, която наистина може да оцелее дълго време периоди от слънчевата енергия. Ако следвате
Лична метеорологична станция за частици Photon IoT: 4 стъпки (със снимки)
Лична метеорологична станция за частици Photon IoT:
Система за наблюдение на качеството на въздуха за замърсяване с частици: 4 стъпки
Система за наблюдение на качеството на въздуха за замърсяване с частици: INTRO: 1 В този проект аз показвам как да се изгради детектор за частици с изобразяване на данни, архивиране на данни на SD карта и IOT. Визуално неопикселовият пръстен показва качеството на въздуха. 2 Качеството на въздуха е все по -важна грижа за
Как да изградите сензорна станция за наблюдение на комфорт: 10 стъпки (със снимки)
Как да се изгради сензорна станция за наблюдение на комфорт: Тази инструкция описва проектирането и изграждането на така наречената станция за наблюдение на комфорта CoMoS, комбинирано сензорно устройство за условия на околната среда, което е разработено в отдела за изградена среда в TUK, Technische Universität Ka
Започнете изграждането на станция за наблюдение на PM: 3 стъпки (със снимки)
Започнете изграждането на станция за наблюдение на PM: Особено се интересувам от нивата на замърсяване на въздуха, тъй като живея в Китай и докато градът ми, Шенжен, вероятно е един от най -чистите градове в Китай, все още има своите лоши дни. исках да построя свой собствен за сравнение с половин дузина въздух