- Komponen Diperlukan
- Sensor CO2 Gravitasi Inframerah
- Modul Layar OLED 0,96 '
- Diagram Sirkuit
- Kode Arduino untuk Mengukur Konsentrasi CO2
- Menguji Antarmuka Sensor CO2 Inframerah Gravitasi
Peningkatan konsentrasi karbondioksida di udara telah menjadi masalah yang serius saat ini. Menurut laporan NOAA, konsentrasi CO2 ozon telah mencapai 0,0385 persen (385 ppm) dan merupakan jumlah tertinggi dalam 2,1 juta tahun. Artinya dalam satu juta partikel udara terdapat 385 partikel karbondioksida. Kenaikan tingkat CO2 ini telah mempengaruhi lingkungan dengan buruk dan membawa kita menghadapi situasi seperti perubahan iklim dan pemanasan global. Ada banyak alat ukur kualitas udara yang dipasang di jalan untuk mengetahui kadar CO2, tapi kita juga bisa membangun alat ukur CO2 DIY dan bisa memasangnya di daerah kita.
Dalam tutorial ini, kita akan menghubungkan Sensor Gravity Infrared CO2 dengan Arduino untuk mengukur konsentrasi CO2 di PPM. Gravity Infrared CO2 Sensor adalah sensor CO2 analog presisi tinggi. Ini mengukur kandungan CO2 dalam kisaran 0 hingga 5000 ppm. Anda juga dapat memeriksa proyek kami sebelumnya di mana kami menggunakan sensor Gas MQ135, Sensor Sharp GP2Y1014AU0F, dan Nova PM Sensor SDS011 untuk membangun monitor kualitas udara.
Komponen Diperlukan
- Arduino Nano
- Sensor CO2 Inframerah Gravitasi V1.1
- Kabel Jumper
- Modul Layar OLED SPI 0,96 '
- Papan tempat memotong roti
Sensor CO2 Gravitasi Inframerah
Gravity Infrared CO2 Sensor V1.1 adalah sensor CO2 inframerah analog presisi tinggi terbaru yang dirilis oleh DFRobot. Sensor ini didasarkan pada teknologi non-dispersive infrared (NDIR) dan memiliki selektivitas yang baik serta ketergantungan bebas oksigen. Ini mengintegrasikan kompensasi suhu dan mendukung keluaran DAC. Rentang pengukuran efektif sensor ini adalah dari 0 hingga 5000ppm dengan akurasi ± 50ppm + 3%. Sensor CO2 Inframerah ini dapat digunakan di HVAC, pemantauan kualitas udara dalam ruangan, proses industri, dan pemantauan perlindungan keamanan, pertanian, dan pemantauan proses produksi peternakan.
Pinout Sensor CO2 Inframerah :
Seperti yang disebutkan sebelumnya, Sensor CO2 Inframerah hadir dengan konektor 3-pin. Gambar dan tabel di bawah ini menunjukkan penetapan pin untuk Sensor CO2 Inframerah:
Nomor Pin |
Nama Pin |
Deskripsi |
---|---|---|
1 |
Sinyal |
Output Analog (0,4 ~ 2V) |
2 |
VCC |
VCC (4,5 ~ 5,5V) |
3 |
GND |
GND |
Spesifikasi & Fitur Sensor CO2 Inframerah :
- Deteksi Gas: Karbon Dioksida (CO2)
- Tegangan Operasi: 4.5 ~ 5.5V DC
- Waktu Pemanasan: 3 menit
- Waktu Respons: 120 detik
- Suhu Operasional: 0 ~ 50 ℃
- Kelembaban Operasi: 0 ~ 95% RH (tanpa kondensasi)
- Tahan air dan anti korosi
- Siklus hidup tinggi
- Gangguan uap anti air
Modul Layar OLED 0,96 '
OLED (Organic Light-Emitting Diodes) adalah teknologi pemancar cahaya mandiri, dibangun dengan menempatkan serangkaian film tipis organik di antara dua konduktor. Cahaya terang dihasilkan ketika arus listrik dialirkan ke film-film ini. OLED menggunakan teknologi yang sama seperti televisi, tetapi memiliki piksel lebih sedikit daripada kebanyakan TV kami.
Untuk proyek ini, kami menggunakan layar OLED Monokrom 7-pin SSD1306 0,96 ”. Ini dapat bekerja pada tiga protokol komunikasi yang berbeda: mode SPI 3 Wire, mode SPI empat kabel, dan mode I2C. Pin dan fungsinya dijelaskan pada tabel di bawah ini:
Kami telah membahas OLED dan tipenya secara rinci di artikel sebelumnya.
Nama Pin |
Nama lain |
Deskripsi |
Gnd |
Tanah |
Pin ground modul |
Vdd |
Vcc, 5V |
Pin daya (dapat ditoleransi 3-5V) |
SCK |
D0, SCL, CLK |
Bertindak sebagai pin jam. Digunakan untuk I2C dan SPI |
SDA |
D1, MOSI |
Pin data modul. Digunakan untuk IIC dan SPI |
RES |
RST, RESET |
Mereset modul (berguna selama SPI) |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
CS |
Pilih Chip |
Berguna jika lebih dari satu modul digunakan di bawah protokol SPI |
Spesifikasi OLED:
- IC Driver OLED: SSD1306
- Resolusi: 128 x 64
- Sudut Visual:> 160 °
- Tegangan Input: 3.3V ~ 6V
- Warna Pixel: Biru
- Suhu kerja: -30 ° C ~ 70 ° C
Pelajari lebih lanjut tentang OLED dan antarmuka dengan mikrokontroler yang berbeda dengan mengikuti tautan.
Diagram Sirkuit
Diagram Sirkuit untuk menghubungkan Gravity Analog Infrared CO2 Sensor untuk Arduino diberikan di bawah ini:
Rangkaiannya sangat sederhana karena kami hanya menghubungkan Gravity Infrared CO2 Sensor dan modul OLED Display dengan Arduino Nano. Sensor CO2 Inframerah dan modul Layar OLED keduanya didukung dengan + 5V dan GND. Pin Signal (Analog Out) dari sensor CO2 dihubungkan ke pin A0 Arduino Nano. Karena modul Layar OLED menggunakan komunikasi SPI, kami telah membuat komunikasi SPI antara modul OLED dan Arduino Nano. Hubungannya ditunjukkan pada tabel di bawah ini:
S.No |
Pin Modul OLED |
Pin Arduino |
1 |
GND |
Tanah |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
DC |
11 |
7 |
CS |
12 |
Setelah menghubungkan perangkat keras sesuai dengan diagram rangkaian, akan terlihat seperti di bawah ini:
Kode Arduino untuk Mengukur Konsentrasi CO2
Kode lengkap untuk Gravity Analog Infrared CO2 Sensor untuk proyek Arduino diberikan di akhir dokumen. Di sini kami menjelaskan beberapa bagian penting dari kode.
Kode menggunakan perpustakaan Adafruit_GFX , dan Adafruit_SSD1306 . Pustaka ini dapat diunduh dari Manajer Perpustakaan di Arduino IDE dan menginstalnya dari sana. Untuk itu, buka Arduino IDE dan buka Sketch> Include Library> Manage Libraries . Sekarang cari Adafruit GFX dan instal perpustakaan Adafruit GFX oleh Adafruit.
Demikian pula, instal perpustakaan Adafruit SSD1306 oleh Adafruit. Sensor CO2 inframerah tidak memerlukan perpustakaan apa pun karena kami membaca nilai tegangan langsung dari pin analog Arduino.
Setelah menginstal pustaka ke Arduino IDE, mulai kode dengan memasukkan file pustaka yang diperlukan. Sensor debu tidak memerlukan pustaka apa pun karena pembacaan diambil langsung dari pin analog Arduino.
#include
Kemudian, tentukan lebar dan tinggi OLED. Dalam proyek ini, kami menggunakan layar OLED 128 × 64 SPI. Anda dapat mengubah variabel SCREEN_WIDTH , dan SCREEN_HEIGHT sesuai tampilan Anda.
# Tentukan SCREEN_WIDTH 128 # Tentukan SCREEN_HEIGHT 64
Kemudian tentukan pin komunikasi SPI di mana Layar OLED terhubung.
# Tentukan OLED_MOSI 9 # Tentukan OLED_CLK 10 # Tentukan OLED_DC 11 # Tentukan OLED_CS 12 # Tentukan OLED_RESET 13
Kemudian, buat instance tampilan Adafruit dengan lebar dan tinggi yang ditentukan sebelumnya dengan protokol komunikasi SPI.
Layar Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Setelah itu tentukan pin Arduino dimana sensor CO2 dihubungkan.
int sensorIn = A0;
Sekarang di dalam fungsi setup () , inisialisasi Monitor Serial pada baud rate 9600 untuk keperluan debugging. Juga, Inisialisasi tampilan OLED dengan fungsi begin () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Di dalam fungsi loop () , pertama-tama baca nilai sinyal pada pin Analog Arduino dengan memanggil fungsi analogRead () . Setelah itu, ubah nilai sinyal analog tersebut menjadi nilai tegangan.
void loop () {int sensorValue = analogRead (sensorIn); tegangan float = sensorValue * (5000 / 1024.0);
Setelah itu, bandingkan nilai tegangannya. Jika tegangan 0 V, berarti telah terjadi beberapa masalah dengan sensor. Jika tegangan lebih besar dari 0 V tetapi lebih kecil dari 400 V, berarti sensor masih dalam proses prapemanasan.
if (voltase == 0) {Serial.println ("Fault"); } lain jika (voltase <400) {Serial.println ("preheating"); }
Jika tegangan sama atau lebih besar dari 400 V, maka ubahlah menjadi nilai konsentrasi CO2.
lain {int voltage_diference = voltage-400; konsentrasi float = perbedaan_tegangan * 50.0 / 16.0;
Setelah itu, setel ukuran teks dan warna teks menggunakan setTextSize () dan setTextColor () .
display.setTextSize (1); display.setTextColor (WHITE);
Kemudian di baris berikutnya, tentukan posisi di mana teks dimulai menggunakan metode setCursor (x, y) . Dan mencetak Nilai CO2 pada Layar OLED menggunakan fungsi display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (konsentrasi);
Dan terakhir, panggil metode display () untuk menampilkan teks pada Layar OLED.
display.display (); display.clearDisplay ();
Menguji Antarmuka Sensor CO2 Inframerah Gravitasi
Setelah perangkat keras dan kode siap, sekarang saatnya menguji sensor. Untuk itu, hubungkan Arduino ke laptop, pilih Board dan Port, dan tekan tombol unggah. Kemudian buka monitor serial Anda dan tunggu beberapa saat (proses preheat), maka Anda akan melihat data akhir.
Nilai akan ditampilkan pada layar OLED seperti yang ditunjukkan di bawah ini:
Catatan: Sebelum menggunakan sensor, biarkan sensor memanas selama sekitar 24 jam untuk mendapatkan nilai PPM yang benar. Saat saya menyalakan sensor untuk pertama kalinya, konsentrasi CO2 keluaran adalah 1500 PPM hingga 1700PPM dan setelah proses pemanasan 24 jam, konsentrasi CO2 keluaran turun menjadi 450 PPM menjadi 500 PPM yang merupakan nilai PPM yang benar. Sehingga perlu dilakukan kalibrasi sensor sebelum digunakan untuk mengukur konsentrasi CO2.
Ini adalah bagaimana sensor CO2 inframerah dapat digunakan untuk mengukur konsentrasi CO2 yang akurat di udara. Kode lengkap dan video kerja diberikan di bawah ini. Jika Anda ragu, tinggalkan di bagian komentar atau gunakan forum kami untuk bantuan teknis.