Mündəricat:
Video: Arduino Powered Toz Partiküllərini İzləmə Stansiyası: 4 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Evinizdəki tozun çirklənməsini 50 dollardan aşağı qiymətlərlə izləyən bir cihazdan olduqca sadə bir şəkildə İnternet qura bilərsiniz və toz həddindən artıq yüksək olduqda otağa havalandıra bilərsiniz və ya onu çöldə qoyub xəbərdar edə bilərsiniz. çirkli bir ərazidə yaşayırsınızsa, çölə çıxmaq təhlükəsizdir.
Bunu bir məktəb layihəsi olaraq etdim, buna görə MQTT mesajlarını alacaq və bildirişlər və ya e -poçtlar kimi sizə göndərəcək bir xidmət tapmağa kifayət qədər vaxtım yox idi.
Diqqət yetirin ki, sensorun daim işlək vəziyyətdə olması fanın ömrünü azaldacaq.
Addım 1: Lazım olan hissələr
Nə lazımdır
- Arduino Uno
- Arduino Ethernet qalxanı
- Partikül maddə lazer sensoru (adətən eBay/aliexpress-də 10-30 ABŞ dollarına satılır)
- DHT11 temperatur və rütubət sensoru (isteğe bağlı)
- Çörək lövhəsi
- Keçid kabelləri
Addım 2: Parçaları yığın
Birincisi, Arduino üzərindəki Ethernet ekranını bağlamalısınız
PM sensoru birdən çox telə malikdir, lakin bizə lazım olanlar VCC, GND, TX, RX -dir.
VCC və GND -ni sırasıyla çörək lövhəsindəki + və - -ə qoşun.
Arduino, RX və TX sancaqlarına malikdir, lakin müvafiq olaraq 2 və 3 pinlərdə RX və TX pinlərinin proqram emulyasiyasından istifadə edəcəyik. Sensorun RX -ni Arduino -nun TX -ə və sensorun TX -ni Arduino -nun RX -ə qoşun.
İstilik sensoru istifadə edəcəksinizsə, VCC və GND xətlərini Breadboardda + və - və pin xəttinə 7 bağlayın.
Addım 3: Kod
MQTT brokerini bir moruq pi və ya evdə həmişə olduğunuz bir kompüterə quraşdıra və ya Cloud MQTT kimi bir bulud MQTT xidmətindən istifadə edə bilərsiniz. Daha sonra MQTT webhooklarını hələ də dəstəkləmədikləri və evinizdəki toz səviyyəsinin çox yüksək olduğu zaman bildirişlər qurduqları üçün məlumatları bir IFTT webhook -a HTTP olaraq göndərən bir skript yaza bilərsiniz.
Arduino hava stansiyası
#daxil edin |
#daxil edin |
#daxil edin |
#daxil edin |
#daxil edin |
#daxil edin |
#daxil edin |
#daxil edin |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAddress ip (169, 169, 100, 98); |
bayt 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"; // Müştəri əlaqələri eyni əlaqə adına sahib ola bilməz |
EthernetClient etClient; |
PubSubClient müştəri (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
DHT ilə; |
int pm1; |
int pm2_5; |
int pm10; |
imzasız id; |
// Fayl myFile; |
String s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
əgər (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Ethernet DHCP istifadə edərək konfiqurasiya edilə bilmədi"); |
// sabit ip addr ilə cəhd edin |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (geri zəng); |
gecikmə (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 dəyəri; |
char əvvəlkiValue; |
əgər (! müştəri. bağlı ()) |
{ |
əgər (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("bağlı"); |
} |
} |
isə (pmSerial.available ()) { |
dəyər = pmSerial.read (); |
əgər ((indeks == 0 && dəyəri! = 0x42) || (indeks == 1 && dəyər! = 0x4d)) { |
Serial.println ("Məlumat başlığı tapılmadı."); |
qayıtmaq; |
} |
əgər (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
previousValue = dəyər; |
} |
elseif (indeks == 5) { |
pm1 = 256 * əvvəlkiValue + dəyər; |
kök ["pm1"] = abs (pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * əvvəlkiValue + dəyər; |
kök ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * əvvəlkiValue + dəyər; |
kök ["pm10"] = abs (pm10); |
} |
elseif (indeks> 15) { |
fasilə; |
} |
indeks ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
əgər (DHT.temperatur == -999 || DHT. nəmlik == -999) { |
kök ["temperatur"] = "Yox"; |
kök ["rütubət"] = "Yox"; |
} başqa { |
kök ["temperatur"] = DHT.temperatur; |
kök ["rütubət"] = DHT. rütubət; |
} |
sendResults (); |
id ++; |
gecikmə (5000); |
} |
voidsendResults () { |
// MQTT -də yayımlayın |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// serialda debug edin |
root.printTo (Serial); |
Serial.print ('\ n'); |
} |
// Abunə olan mövzu (lar) a gələn mesajları idarə edir |
voidcallback (char* mövzu, bayt* faydalı yük, imzasız uzunluq) { |
} |
GitHub tərəfindən ❤ ilə ev sahibliyi edilən rawair_quality.ino
Addım 4: Qutunu yığın
Ətrafımda yatdığım bir qutudan istifadə etdim və sensorun hava alması üçün bir delik açdım və kabellərin çıxması üçün bir çuxur kəsdim (bir az çox olsa da).
Sensoru qutuya bağlamaq üçün yapışqan yastıqlardan istifadə etdim, sensorun giriş çuxurunu qutudakı qazılmış çuxurla hizaladım.
Nəhayət, ethernet və elektrik kabellərini bağladım.
Tövsiyə:
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə İzləmə və Proqramlaşdırma Arduino Uno ilə ATtiny85: 4 addım (şəkillərlə)
ATtiny85 Geyinilə bilən Titrəmə Aktivliyi İzləmə Saatı və Proqramlaşdırılması Arduino Uno ilə ATtiny85: Geyinilə bilən fəaliyyət izləmə saatı necə edilir? Bu, durğunluq algıladıqda titrəmək üçün hazırlanmış geyilə bilən bir gadgetdır. Vaxtınızın çoxunu mənim kimi kompüterdə keçirirsinizmi? Özünüz də bilmədən saatlarla oturursunuz? Sonra bu cihaz f
Məlumat stansiyası (Arduino): 5 addım (şəkillərlə)
Məlumat Stansiyası (Arduino): Müstəqil məlumat stansiyası qurmaq üçün ən son təlimatçılığa xoş gəldiniz! Bu zəhmli cihaz, internetə qoşulmaq və ən son xəbərləri və yerli havanı aşağı çəkmək və LCD ekranda göstərmək üçün Ethernet qalxanlı bir Arduino Uno istifadə edir.
Arduino istifadə edərək sadə hava stansiyası necə qurulacaq: 6 addım (şəkillərlə)
Arduino istifadə edərək sadə hava stansiyası necə hazırlanır: Salam uşaqlar, bu təlimatda DHT11 sensoru və Arduino istifadə edərək temperatur və rütubəti hiss etmək üçün sadə hava stansiyalarının necə ediləcəyini izah edəcəyəm, hiss olunan məlumatlar LCD ekranda göstəriləcək. Bu təlimata başlamazdan əvvəl bunu bilməlisiniz
Bir PM İzləmə Stansiyası qurmağa başlayın: 3 addım (şəkillərlə)
Bir PM İzləmə Stansiyası qurmağa başlayın: Xüsusilə hava çirkliliyi ilə maraqlanıram, çünki Çində yaşayıram və şəhərim Shenzhen, ehtimal ki, Çinin ən təmiz şəhərlərindən biri olsa da, pis günləri hələ də var. yarım hava ilə müqayisə etmək üçün özümü qurmaq istədim
Yurt Elektrik Stansiyası/NiMH Şarj Stansiyası: 3 addım
Yurt Elektrik Stansiyası/NiMH Şarj Stansiyası: Məndə bir elektrik stansiyası var. Bir iş tezgahına yüklənən hər şeyi sıxmaq və üzərində lehim/və s. Güclü şeylər siyahısı: Cib telefonu (qırıqdır, amma telefonumun batareyalarını doldurur, buna görə də həmişə qoşulmuşdur və şarj cihazını axıdır