Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Komponen & Bahan

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Arduino UNO
×1
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Seeed Base Shield V2
×1
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
NodeMCU ESP8266 Breakout Board
×1
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Seeed Loudness Sensor
×1
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Seeed Grove – Air Quality Sensor v1.3
×1
Seeed Grove – Temperature & Humidity Sensor (DHT11)
×1
Reyax LoRa Module
×1
Seeed Small Solar Panel 80x100mm 1W
×1
Seeed LiPo Rider Pro
×1
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Rechargeable Battery, 3.7 V
×1

Alat & Perlengkapan yang Diperlukan

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
3D Printer (generic)

Perangkat Lunak & Layanan Online

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Arduino IDE
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Grandeur
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Grandeur Canvas

Gambaran Umum Proyek

Kota Cerdas & Kualitas Udara

Menurut World Bank, kota cerdas memanfaatkan teknologi untuk menyediakan layanan publik yang sangat efisien dan lingkungan perkotaan yang berkelanjutan. Intinya adalah pemantauan lingkungan secara real-time, yang mengidentifikasi sumber polusi dan memberatkan kebijakan yang didorong data—baik itu mengoptimalkan aliran lalu lintas atau memberikan saran kepada warga tentang rute jalan kaki yang paling aman.

Masalah & Solusi

Polusi udara perkotaan menimbulkan risiko kesehatan yang signifikan, dan data yang tepat waktu sangat penting untuk mitigasi. Jaringan IoT node sensor dengan biaya rendah dapat terus menangkap parameter kualitas udara dan meteorologi. Saat digabungkan dengan lapisan komunikasi yang hemat daya dan andal, jaringan ini memungkinkan otoritas kota untuk mendeteksi titik panas polusi dan merespons secara proaktif.

Rencana Proyek

Solusi kami memantau metrik lingkungan kunci—kebisingan, suhu, kelembaban, dan kualitas udara—dan mentransfer data secara nirkabel ke platform cloud. Seluruh node diberdayakan oleh panel surya 1 W dengan cadangan baterai Li-ion, memastikan operasi autonom. Dashboard cloud memvisualisasikan data secara real-time, memfasilitasi wawasan langsung dan analisis tren jangka panjang.

Daripada menghubungkan setiap sensor langsung ke cloud—pendekatan yang meningkatkan penggunaan daya dan biaya—kami mengagregat data dari beberapa node terdekat dan mentransmisinya melalui satu gateway LoRa. Karakteristik jarak jauh dan hemat daya LoRa membuatnya ideal untuk penerapan perkotaan yang padat.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Kami memilih Grandeur sebagai platform backend karena SDK yang ramah pengguna untuk Arduino, NodeMCU, dan Raspberry Pi, serta pembuat dashboard drag-and-drop-nya.

Surya menyediakan sumber energi yang berkelanjutan dan bebas perawatan untuk node jarak jauh, dan baterai Li-ion menjamin operasi selama periode radiasi surya rendah.

Membuat Node Sensor

Node mengintegrasikan sensor kualitas udara Grove, sensor kebisingan Grove, dan sensor suhu/kelembaban DHT11—semuanya dapat dicolokkan ke Seeed Base Shield tanpa soldering, menyederhanakan perakitan dan perawatan.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Daya disuplai oleh panel surya 1 W dan charger Seeed LiPo Rider Pro, yang mencakup konverter boost 5 V untuk menjaga Arduino tetap dalam rentang tegangan operasionalnya.

Transceiver LoRa Reyax RYLR998 menangani transmisi nirkabel. Karena modul menerima logika 3.6 V, pembagi tegangan sederhana melindungi garis TX 5 V Arduino.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Di bawah ini adalah diagram kabel yang menghubungkan modul LoRa ke Base Shield melalui adapter khusus.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Saat menghubungkan modul LoRa, pastikan saklar daya Base Shield diatur ke 3.3 V.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Setelah perakitan, verifikasi komunikasi dengan mengirim perintah AT dari Arduino ke modul LoRa.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Unggah & Uji

Unggah sketsa Arduino yang disediakan, lalu buka serial monitor untuk mengonfirmasi bahwa pembacaan sensor ditransmisikan dengan benar.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Pengemasan Rakitan

Cetak file STL yang disediakan di bagian lampiran. Setelah mengonfirmasi kesesuaian, rangkai komponen di dalam kotak pelindung menggunakan sekang dua sisi atau lem panas. Pasang panel surya di atas dan rute kabel daya melalui lubang yang ditentukan.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Setelah semua komponen diamankan, node siap untuk diterapkan di lapangan.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Mengonfigurasi Grandeur

Grandeur adalah backend IoT yang memasangkan perangkat dengan pengguna dan menyediakan dashboard real-time. Ikuti langkah-langkah ini untuk menyiapkan proyek Anda:

  1. Buat proyek baru di grandeur.dev.
  2. Daftarkan akun pengguna; akun ini akan digunakan untuk memasangkan perangkat nanti.
  3. Definisikan model perangkat dengan skema JSON:
    {"temp":0, "humid":0, "air":0, "noise":0}
  4. Buat instance perangkat, tangkap ID unik dan token aksesnya, dan simpan untuk firmware Arduino.
  5. Pasangkan perangkat dengan pengguna melalui dashboard atau API (misalnya, pairDevice()).
  6. Buat dashboard Canvas: tambahkan empat widget grafik—satu untuk suhu, kelembaban, tingkat kebisingan, dan kualitas udara—danikatkan ke variabel yang sesuai.

Setelah Canvas diotorisasi, pengguna dapat masuk untuk melihat data langsung. Kunci API dan token perangkat diperlukan dalam firmware gateway.

Pengaturan Gateway

NodeMCU bertindak sebagai gateway LoRa, menerima data UART dari node sensor dan meneruskan ke Grandeur melalui Wi-Fi. Meskipun Raspberry Pi dapat memerankan peran ini, NodeMCU menawarkan solusi yang kompakt dan hemat biaya yang memenuhi persyaratan bandwidth dan latensi proyek.

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Firmware Gateway

Firmware murai payload yang dipisahkan koma yang diterima dari modul LoRa, mengubah setiap nilai menjadi float, dan mendorongnya ke Grandeur menggunakan SDK yang disediakan. Di bawah ini adalah inti logika untuk ekstraksi dan transmisi data.

void process_received_data(){ start_pos = inputString.indexOf(start_val); end_pos = inputString.indexOf(end_val); String data_string = inputString.substring(start_pos+1, end_pos-1); int firstCommaIndex = data_string.indexOf(','); int secondCommaIndex = data_string.indexOf(',', firstCommaIndex+1); int thirdCommaIndex = data_string.indexOf(',', secondCommaIndex+1); String temperature = data_string.substring(0, firstCommaIndex); String humidity = data_string.substring(firstCommaIndex+1, secondCommaIndex); String noise_level = data_string.substring(secondCommaIndex+1, thirdCommaIndex); String air_auality = data_string.substring(thirdCommaIndex+1); temp = temperature.toFloat(); humid = humidity.toFloat(); noise = noise_level.toFloat(); air = air_auality.toFloat(); inputString = ""; stringComplete = false; }

Tampilan Dashboard

Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa
Sistem Pemantau Kualitas Udara Kota Cerdas Berbasis LoRa

Kode Firmware

  • Kode Node Sensor
  • Kode Gateway
Node Sensor (Arduino)
#include "AirQuality.h" // Grove air quality library #include "Arduino.h" #include "DHT.h" #define DHTPIN 4 // Digital pin for DHT11 #define DHTTYPE DHT11 // Sensor model DHT dht(DHTPIN, DHTTYPE); AirQuality airqualitysensor; int current_quality =-1; const int sampleWindow = 50; // 20 Hz sampling unsigned int sample; float noise; float temp, humid; int airQuality; void setup() { Serial.begin(115200); // UART for LoRa airqualitysensor.init(14); dht.begin(); } void loop() { noise = calculate_sound_in_db(); airQuality = calculate_air_quality(); calculate_temp_humid(); String values = String(temp)+","+String(humid)+","+String(noise)+","+String(airQuality); String cmd = "AT+SEND=0,"+String(values.length())+","+values; Serial.println(cmd); delay(15000); } float calculate_sound_in_db(){ unsigned long startMillis= millis(); float peakToPeak = 0; unsigned int signalMax = 0; unsigned int signalMin = 1024; while (millis() - startMillis < sampleWindow){ sample = analogRead(A1); if (sample < 1024){ if (sample > signalMax) signalMax = sample; else if (sample < signalMin) signalMin = sample; } } peakToPeak = signalMax - signalMin; float db = map(peakToPeak,0,1000,48,120); return db; } int calculate_air_quality(){ current_quality=airqualitysensor.slope(); return current_quality; } void calculate_temp_humid(){ float h = dht.readHumidity(); float t = dht.readTemperature(); if (isnan(h) || isnan(t)) return; temp = t; humid = h; } ISR(TIMER1_OVF_vect){ if(airqualitysensor.counter==61){ airqualitysensor.last_vol=airqualitysensor.first_vol; airqualitysensor.first_vol=analogRead(A0); airqualitysensor.counter=0; airqualitysensor.timer_index=1; PORTB=PORTB^0x20; }else{ airqualitysensor.counter++; } } 
Gateway (Arduino)
/* Including the SDK and WiFi library */ #include <Grandeur.h> #include <ESP8266WiFi.h> #include <SoftwareSerial.h> SoftwareSerial LORA(D7, D8); /* Configurations */ String deviceID = "your device id"; String apiKey = "your api key"; String token = "your device token"; /* WiFi credentials */ String ssid = "your wifi ssid"; String password = "your wifi password"; /* Create variable to hold project and device */ Grandeur::Project project; Grandeur::Project::Device device; /* Variable to keep track of connection state and time */ int connected = 0; uint32_t lastUpdate = 0; String inputString = ""; // a string to hold incoming data boolean stringComplete = false; // whether the string is complete //: and % was set from the transmitter node for the eage of data separation char start_val = ':'; char end_val = '%'; int start_pos = 0; int end_pos = 0; float temp = 0; float humid = 0; float air = 0; float noise = 0; /* Function to check device's connection status */ void onConnection(bool status) { switch(status) { case CONNECTED: Serial.println("Device is connected to the cloud."); connected = 1; lastUpdate = millis(); return; case DISCONNECTED: Serial.println("Device is disconnected from the cloud."); connected = 0; return; } } /* Function to connect to WiFi */ void connectWiFi() { WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println(WiFi.localIP()); } /* Function to confirm that data has been updated */ void dataCallback(const char* code, Var res) { if(code == "DEVICE-DATA-UPDATED") { double temp_data = (double) res["update"]["temp"]; double humid_data = (double) res["update"]["humid"]; double noise_data = (double) res["update"]["noise"]; double air_data = (double) res["update"]["air"]; Serial.printf("Temperature: %f Humidity: %f Noise Level: %f Air Quality: %f\n", temp_data, humid_data, noise_data, air_data); return; } Serial.println("Failed to Update DATA"); return; } /* Function to send updated current and power readings */ void sendUpdate() { Var data; data["temp"] = temp; data["humid"] = humid; data["noise"] = noise; data["air"] = air; device.data().set("temp", temp, dataCallback); device.data().set("humid", humid, dataCallback); device.data().set("noise", noise, dataCallback); device.data().set("air", air, dataCallback); } void setup() { Serial.begin(9600); LORA.begin(115200); inputString.reserve(200); connectWiFi(); project = grandeur.init(apiKey, token); device = project.device(deviceID); project.onConnection(onConnection); } void loop() { serialEvent(); project.loop(WiFi.status() == WL_CONNECTED); if (stringComplete) { process_received_data(); if (connected) sendUpdate(); } } void serialEvent() { while (LORA.available()) { char inChar = (char)LORA.read(); if (inChar == '\n') { stringComplete = true; } else inputString += inChar; } } 

Proses manufaktur

  1. Sensor PM2.5 & VOC Tiny untuk Pemantauan Kualitas Udara Pribadi Real-Time
  2. Bosch Sensortec Ungkap Sensor Kualitas Udara BME688 dengan AI untuk Mengurangi Risiko Penularan Virus
  3. Renesas Tingkatkan Platform Sensor Kualitas Udara Dalam Ruangan dengan AI Tertanam untuk Deteksi Bau yang Ditingkatkan
  4. Mengukur Kualitas Udara dengan OpenSensors: Panduan Arduino & Python
  5. Monitor Kualitas Udara DIY: Detektor Hemat Biaya yang Patuh EPA
  6. Panduan Desain & Penerapan Sensor Kualitas Udara Tenaga Surya Berbasis Helium
  7. Sensor IoT Merevolusi Pemantau Polusi Udara dan Kesehatan Masyarakat
  8. Pemantauan Kualitas Udara Lingkungan Berbasis IoT: Meningkatkan Keselamatan, Produktivitas, dan Keberlanjutan
  9. Pemantauan Kualitas Udara Industri Berbasis IoT: Meningkatkan Produktivitas & Menghemat Biaya
  10. Sensor NO2 Berbasis Karbon Canggih Tingkatkan Pemantauan Kualitas Udara Dalam Ruangan