İçindekiler:
Video: Arduino Powered Toz Parçacıkları İzleme İstasyonu: 4 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Evinizdeki toz kirliliğini 50 dolardan daha düşük bir fiyata izleyen bir DIY nesnelerin interneti cihazını oldukça kolay bir şekilde oluşturabilir ve toz seviyesi çok yükseldiğinde haberdar olmak için odayı havalandırabilir veya dışarı ayarlayabilir ve eğer öyleyse haberdar olabilirsiniz. çok kirli bir bölgede yaşıyorsanız dışarı çıkmak güvenlidir.
Bunu bir okul projesi olarak yaptım, bu yüzden MQTT mesajlarını alıp size bildirim veya e-posta gibi gönderecek bir servis bulmak için yeterli zamanım olmadı.
Ayrıca, sensörü her zaman açık tutmanın fanın ömrünü azaltacağını unutmayın.
Adım 1: Gerekli Parçalar
Neye ihtiyacın olacak
- Arduino Uno
- Arduino Ethernet kalkanı
- Partikül madde lazer sensörü (genellikle eBay/aliexpress'te 10-30$'a gidin)
- DHT11 sıcaklık ve nem sensörü (opsiyonel)
- ekmek tahtası
- Atlama kabloları
Adım 2: Parçaları Birleştirin
İlk önce ethernet kalkanını Arduino'ya takmanız gerekir.
PM sensörünün birden fazla kablosu var, ancak ihtiyacımız olan VCC, GND, TX, RX.
VCC ve GND'yi devre tahtasında sırasıyla + ve -'ye bağlayın.
Arduino'nun donanım RX ve TX pinleri vardır, ancak RX ve TX pinlerinin yazılım emülasyonunu sırasıyla pin 2 ve 3'te kullanacağız. Sensörün RX'ini Arduino'nun TX'ine ve sensörün TX'ini Arduino'nun RX'ine takın.
Sıcaklık sensörünü kullanacaksanız, VCC ve GND hatlarını Breadboard'da + ve -'ye ve veri hattını pin 7'ye takın.
Adım 3: Kod
MQTT aracısını bir ahududu pi'ye veya her zaman evde bulunan bir bilgisayara yükleyebilir veya Cloud MQTT gibi bir bulut MQTT hizmetini kullanabilirsiniz. Ardından, henüz MQTT web kancalarını desteklemediğinden ve evinizdeki toz seviyeleri çok yükseldiğinde bildirimler ayarlamadığından, verileri HTTP olarak bir IFTT web kancasına gönderen bir komut dosyası yazabilirsiniz.
Arduino hava istasyonu
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#Dahil etmek |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAdresi 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"; // İstemci bağlantıları aynı bağlantı adına sahip olamaz |
EthernetClient ethClient; |
PubSubClient istemcisi(ethClient); |
YazılımSeri pmSerial(RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
imzasız uzun kimlik; |
//dosya benimDosyam; |
Teller; |
StaticJsonBuffer<200> jsonBuffer; |
JsonObject& root = jsonBuffer.createObject(); |
voidsetup() { |
Seri.başla(57600); |
pmSerial.begin(9600); |
kimlik = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
if (Ethernet.begin(mac) == 0) |
{ |
Serial.println("DHCP kullanılarak Ethernet yapılandırılamadı"); |
// sabit ip adresi ile deneme |
Ethernet.begin(mac, ip); |
} |
client.setServer(mqtt_server, mqtt_port); |
client.setCallback(geri arama); |
gecikme(2000); |
Serial.println(Ethernet.localIP()); |
client.connect("arduinoClient", mqtt_user, mqtt_pass); |
Seri.print("rc="); |
Serial.print(client.state()); |
Seri.print("\n"); |
} |
boşluk döngüsü() { |
inindex = 0; |
karakter değeri; |
char öncekiValue; |
if (!client.connected()) |
{ |
if (client.connect("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println("bağlı"); |
} |
} |
while (pmSerial.available()) { |
değer = pmSerial.read(); |
if ((index == 0 && değeri != 0x42) || (index == 1 && değeri != 0x4d)) { |
Serial.println("Veri başlığı bulunamadı."); |
dönüş; |
} |
if (indeks == 4 || dizin == 6 || dizin == 8 || dizin == 10 || dizin == 12 || dizin == 14) { |
öncekiDeğer = değer; |
} |
elseif (indeks == 5) { |
pm1 = 256 * öncekiDeğer + değer; |
kök["pm1"] = abs(pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * öncekiDeğer + değer; |
kök["pm2_5"] = abs(pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * öncekiDeğer + değer; |
kök["pm10"] = abs(pm10); |
} |
elseif (dizin >15) { |
kırmak; |
} |
dizin++; |
} |
while (pmSerial.available()) pmSerial.read(); |
int chk = DHT.read11(DHT11_PIN); |
if (DHT.sıcaklık == -999 || DHT.nem == -999) { |
root["sıcaklık"] = "Yok"; |
root["nem"] = "N/A"; |
} Başka { |
root["sıcaklık"] = DHT.temperature; |
root["nem"] = DHT.humidity; |
} |
sendResults(); |
kimlik++; |
gecikme (5000); |
} |
vidsendResults() { |
// MQTT'ye yayınla |
char jsonChar[100]; |
root.printTo(jsonChar); |
Serial.println(client.publish("arduino", jsonChar)); |
// seri olarak hata ayıkla |
root.printTo(Seri); |
Seri.print('\n'); |
} |
// Abone olunan konu(lar)a gelen mesajları işler |
voidcallback(char* konu, bayt* yükü, imzasız uzunluk) { |
} |
GitHub tarafından ❤ ile barındırılan rawair_quality.ino'yu görüntüle
Adım 4: Kutuyu Birleştirin
Sadece etrafta yattığım bir kutu kullandım ve sensörün hava alması için bir delik açtım ve kabloların çıkması için bir delik açtım (biraz fazla büyük olmasına rağmen).
Sensörü kutuya takmak için tutkal pedleri kullandım, sensörün giriş deliğini kutudaki delinmiş delikle hizaladım.
Son olarak ethernet ve güç kablolarını taktım.
Önerilen:
NaTaLia Hava İstasyonu: Arduino Güneş Enerjili Hava İstasyonu Doğru Şekilde Yapıldı: 8 Adım (Resimlerle)
NaTaLia Hava İstasyonu: Arduino Güneş Enerjili Hava İstasyonu Doğru Şekilde Yapıldı: 2 farklı lokasyonda 1 yıllık başarılı operasyonun ardından, güneş enerjili meteoroloji istasyonu proje planlarımı paylaşıyor ve gerçekten uzun süre hayatta kalabilen bir sisteme nasıl evrildiğini açıklıyorum. güneş enerjisinden dönemler. Takip ederseniz
DIY Hava İstasyonu ve WiFi Sensör İstasyonu: 7 Adım (Resimlerle)
DIY Hava İstasyonu ve WiFi Sensör İstasyonu: Bu projede size bir WiFi sensör istasyonu ile birlikte bir hava istasyonunun nasıl oluşturulacağını göstereceğim. Sensör istasyonu, yerel sıcaklık ve nem verilerini ölçer ve WiFi aracılığıyla hava durumu istasyonuna gönderir. Hava durumu istasyonu daha sonra t görüntüler
DIY Akıllı Robot İzleme Araç Kitleri Araba İzleme Işığa Duyarlı: 7 Adım
DIY Akıllı Robot Takip Araç Kitleri Araba Takip Işığa Duyarlı: Design by SINONING ROBOTTizleme robotu carTheoryLM393 çipinden satın alabilirsiniz, iki fotodirenci karşılaştırın, bir tarafı BEYAZ üzerinde fotodirenç LED'i olduğunda motorun tarafı hemen duracak, motorun diğer tarafı döndür, böylece
Konfor İzleme Sensör İstasyonu Nasıl Yapılır: 10 Adım (Resimlerle)
Bir Konfor İzleme Sensör İstasyonu Nasıl Yapılır: Bu talimat, TUK'daki Yapılı Çevre bölümünde, Technische Universität Ka
PM İzleme İstasyonu İnşa Etmeye Başlayın: 3 Adım (Resimlerle)
Bir PM İzleme İstasyonu İnşa Etmeye Başlayın: Çin'de yaşadığım için özellikle hava kirliliği seviyeleriyle ilgileniyorum ve şehrim Shenzhen, muhtemelen Çin'deki en temiz şehirlerden biri olsa da, hala kötü günleri var. yarım düzine havayla karşılaştırmak için kendiminkini yapmak istedim