Isi kandungan:
Video: Stesen Pemantauan Partikel Debu Bertenaga Arduino: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Anda boleh membina peranti DIY barang-barang DIY dengan mudah untuk memantau pencemaran debu di rumah anda dengan harga kurang dari $ 50 dan mendapat pemberitahuan apabila tahap debu terlalu tinggi sehingga anda dapat mengudarakan bilik, atau anda dapat menyetelnya ke luar dan diberitahu jika ia berada selamat pergi ke luar jika anda tinggal di kawasan yang sangat tercemar.
Saya menjadikannya sebagai projek sekolah, jadi saya tidak mempunyai cukup waktu untuk mencari perkhidmatan yang akan mengambil mesej MQTT dan menghantarnya kepada anda seperti pemberitahuan atau e-mel.
Perhatikan juga bahawa memastikan sensor sentiasa dihidupkan akan mengurangkan jangka hayat kipas.
Langkah 1: Bahagian Diperlukan
Apa yang anda perlukan
- Arduino Uno
- Perisai Ethernet Arduino
- Sensor laser zarah partikulat (biasanya berharga $ 10- $ 30 di eBay / aliexpress)
- Sensor suhu dan kelembapan DHT11 (pilihan)
- Papan roti
- Kabel pelompat
Langkah 2: Pasang Bahagian
Pertama, anda perlu memasang pelindung ethernet di Arduino
Sensor PM mempunyai banyak wayar, tetapi yang kami perlukan ialah VCC, GND, TX, RX.
Sambungkan VCC dan GND ke + dan - di papan roti masing-masing.
Arduino mempunyai pin RX dan TX perkakasan, tetapi kami akan menggunakan emulasi perisian pin RX dan TX masing-masing pada pin 2 dan 3. Pasang RX sensor ke TX Arduino dan TX sensor ke RX Arduino.
Sekiranya anda akan menggunakan sensor suhu, pasangkan garis VCC dan GND ke + dan - pada Breadboard dan garis data ke pin 7.
Langkah 3: Kodnya
Anda boleh memasang broker MQTT pada raspberry pi atau komputer yang selalu anda gunakan di rumah, atau menggunakan perkhidmatan MQTT awan, seperti Cloud MQTT. Kemudian anda boleh menulis skrip yang mengirim data sebagai HTTP ke webhook IFTT, kerana mereka belum lagi menyokong webhook MQTT dan mengatur pemberitahuan ketika tahap debu di rumah anda terlalu tinggi.
Stesen udara Arduino
#sertakan |
#sertakan |
#sertakan |
#sertakan |
#sertakan |
#sertakan |
#sertakan |
#sertakan |
# tentukanDHT11_PIN7 |
# tentukanRX_PIN2 |
# tentukanTX_PIN3 |
IP Alamat IP (169, 169, 100, 98); |
bait 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"; // Sambungan pelanggan tidak boleh mempunyai nama sambungan yang sama |
EthernetClient etClient; |
Pelanggan PubSubClient (ethClient); |
PerisianSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
id yang tidak ditandatangani; |
// Fail myFile; |
Rentetan s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
kekosongan () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
jika (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Gagal mengkonfigurasi Ethernet menggunakan DHCP"); |
// cubaan dengan addr ip tetap |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (panggilan balik); |
kelewatan (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (pelanggan.state ()); |
Cetakan bersiri ("\ n"); |
} |
kekosongan () { |
intindex = 0; |
nilai char; |
char sebelumnyaValue; |
jika (! client.connected ()) |
{ |
jika (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("bersambung"); |
} |
} |
sementara (pmSerial.available ()) { |
nilai = pmSerial.read (); |
jika ((indeks == 0 && nilai! = 0x42) || (indeks == 1 && nilai! = 0x4d)) { |
Serial.println ("Tidak dapat mencari tajuk data."); |
kembali; |
} |
jika (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
sebelumnyaValue = nilai; |
} |
elseif (indeks == 5) { |
pm1 = 256 * sebelumnyaValue + nilai; |
root ["pm1"] = abs (pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * sebelumnyaValue + nilai; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * sebelumnyaValue + nilai; |
root ["pm10"] = abs (pm10); |
} |
elseif (indeks> 15) { |
rehat; |
} |
indeks ++; |
} |
sementara (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
jika (DHT.temperature == -999 || DHT.humidity == -999) { |
root ["suhu"] = "N / A"; |
root ["kelembapan"] = "N / A"; |
} lain { |
root ["suhu"] = Suhu DHT; |
root ["kelembapan"] = DHT.kelembapan; |
} |
sendResults (); |
id ++; |
kelewatan (5000); |
} |
voidsendResults () { |
// terbitkan ke MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// debug ke siri |
root.printTo (Bersiri); |
Cetakan bersiri ('\ n'); |
} |
// Mengendalikan mesej yang tiba pada topik yang dilanggan |
voidcallback (char * topic, byte * payload, unsignedint length) { |
} |
lihat rawair_quality.ino dihoskan dengan ❤ oleh GitHub
Langkah 4: Pasang Kotak
Saya baru sahaja menggunakan kotak yang saya terbaring dan menggerudi lubang untuk mendapatkan sensor dari udara dan memotong lubang untuk kabel keluar (walaupun agak besar).
Saya menggunakan pelekat untuk memasang sensor ke kotak, menjajarkan lubang input sensor dengan lubang yang dibor pada kotak.
Akhirnya, saya memasang kabel ethernet dan kuasa.
Disyorkan:
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: 8 Langkah (dengan Gambar)
Stesen Cuaca NaTaLia: Stesen Cuaca Bertenaga Suria Arduino Selesai Dengan Cara yang Betul: Setelah 1 tahun beroperasi di 2 lokasi yang berbeza, saya berkongsi rancangan projek stesen cuaca berkuasa solar saya dan menerangkan bagaimana ia berkembang menjadi sistem yang benar-benar dapat bertahan dalam jangka masa yang lama tempoh dari tenaga suria. Sekiranya anda mengikuti
Stesen Cuaca Peribadi Photon IoT Partikel: 4 Langkah (dengan Gambar)
Stesen Cuaca Peribadi Partikel Photon IoT:
Pemantauan Bilik Persidangan Menggunakan Foton Partikel: 8 Langkah (dengan Gambar)
Pemantauan Bilik Persidangan Menggunakan Partikel Photon: PengenalanDalam tutorial ini kita akan membuat monitor bilik persidangan menggunakan Particle Photon. Dalam Partikel ini disatukan dengan Slack menggunakan Webhooks untuk mendapatkan kemas kini masa nyata sama ada bilik tersedia atau tidak. Sensor PIR digunakan untuk
Cara Membina Stesen Sensor Pemantauan Keselesaan: 10 Langkah (dengan Gambar)
Cara Membangun Stesen Sensor Pemantauan Keselesaan: Instruksional ini menerangkan reka bentuk dan pembinaan Stesen Pemantauan Comfort CoMoS, peranti sensor gabungan untuk keadaan persekitaran, yang dibangunkan di jabatan Lingkungan Binaan di TUK, Technische Universität Ka
Mulakan Membangun Stesen Pemantauan PM: 3 Langkah (dengan Gambar)
Bermula Membangun Stesen Pemantauan PM: Saya sangat berminat dengan tahap pencemaran udara, kerana saya tinggal di China dan sementara bandar saya, Shenzhen, mungkin merupakan salah satu bandar paling bersih di China, ia masih mempunyai hari-hari buruknya. Oleh itu, saya mahu membina sendiri untuk membandingkan dengan udara yang berpuluh-puluh