- Komponen Diperlukan
- Sensor CO2 Inframerah Graviti
- Modul Paparan OLED 0.96 '
- Rajah Litar
- Kod Arduino untuk Mengukur Kepekatan CO2
- Menguji Interfacing Sensor CO2 Infrared Gravity
Peningkatan kepekatan karbon dioksida di udara telah menjadi masalah serius sekarang. Menurut laporan NOAA, kepekatan CO2 ozon telah mencapai 0.0385 peratus (385 ppm) dan ini adalah jumlah tertinggi dalam 2.1 juta tahun. Ini bermaksud bahawa dalam satu juta zarah udara, terdapat 385 zarah karbon dioksida. Peningkatan tahap CO2 ini telah mempengaruhi persekitaran dengan teruk dan menyebabkan kita menghadapi situasi seperti perubahan iklim dan pemanasan global. Terdapat banyak alat pengukur kualiti udara yang dipasang di jalan raya untuk mengetahui tahap CO2, tetapi kita juga dapat membina alat pengukur CO2 DIY dan dapat memasangnya di kawasan kita.
Dalam tutorial ini, kita akan menghubungkan Sensor CO2 Gravity Infrared dengan Arduino untuk mengukur kepekatan CO2 dalam PPM. Sensor CO2 Gravity Infrared adalah sensor CO2 analog berketepatan tinggi. Ini mengukur kandungan CO2 dalam lingkungan 0 hingga 5000 ppm. Anda juga dapat memeriksa projek kami sebelumnya di mana kami menggunakan sensor Gas MQ135, Sensor Sharp GP2Y1014AU0F, dan Nova PM Sensor SDS011 untuk membina monitor kualiti udara.
Komponen Diperlukan
- Arduino Nano
- Sensor CO2 Inframerah Graviti V1.1
- Wayar Pelompat
- Modul Paparan OLED 0.96 'SPI
- Papan roti
Sensor CO2 Inframerah Graviti
Gravity Infrared CO2 Sensor V1.1 adalah sensor CO2 inframerah analog ketepatan tinggi terbaru yang dikeluarkan oleh DFRobot. Sensor ini didasarkan pada teknologi inframerah yang tidak tersebar (NDIR) dan mempunyai selektiviti yang baik dan pergantungan bebas oksigen. Ia menggabungkan pampasan suhu dan menyokong output DAC. Julat pengukuran berkesan sensor ini adalah dari 0 hingga 5000ppm dengan ketepatan ± 50ppm + 3%. Sensor CO2 Inframerah ini dapat digunakan dalam HVAC, pemantauan kualiti udara dalam ruangan, proses industri, dan pemantauan perlindungan keselamatan, pertanian, dan pemantauan proses produksi peternakan.
Pinout Sensor CO2 inframerah :
Seperti yang disebutkan sebelumnya, Sensor CO2 Inframerah dilengkapi dengan penyambung 3-pin. Gambar dan jadual di bawah menunjukkan penugasan pin untuk Sensor CO2 Inframerah:
Pin No. |
Nama Pin |
Penerangan |
---|---|---|
1 |
Isyarat |
Keluaran Analog (0.4 ~ 2V) |
2 |
VCC |
VCC (4.5 ~ 5.5V) |
3 |
GND |
GND |
Spesifikasi & Ciri Sensor CO2 Inframerah :
- Pengesanan Gas: Karbon Dioksida (CO2)
- Voltan Operasi: 4.5 ~ 5.5V DC
- Masa Panaskan: 3min
- Masa Maklum Balas: 120an
- Suhu Operasi: 0 ~ 50 ℃
- Kelembapan operasi: 0 ~ 95% RH (tanpa pemeluwapan)
- Kalis air dan anti karat
- Hayat kitaran tinggi
- Gangguan wap anti air
Modul Paparan OLED 0.96 '
OLED (Organic Light-Emitting Diodes) adalah teknologi pemancar cahaya diri, yang dibina dengan meletakkan serangkaian filem nipis organik di antara dua konduktor. Cahaya terang dihasilkan apabila arus elektrik digunakan pada filem-filem ini. OLED menggunakan teknologi yang sama dengan televisyen, tetapi mempunyai piksel lebih sedikit daripada di kebanyakan TV kami.
Untuk projek ini, kami menggunakan paparan OLED Monochrome 7-pin SSD1306 0.96 ”. Ia boleh berfungsi pada tiga protokol komunikasi yang berbeza: mod Wire SPI 3, mod empat wayar SPI, dan mod I2C. Pin dan fungsinya dijelaskan dalam jadual di bawah:
Kami telah membahas OLED dan jenisnya secara terperinci dalam artikel sebelumnya.
Nama Pin |
Nama lain |
Penerangan |
Gnd |
Tanah |
Pin bawah modul |
Vdd |
Vcc, 5V |
Pin kuasa (boleh tahan 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 |
Tetapkan semula modul (berguna semasa SPI) |
DC |
A0 |
Pin Perintah Data. Digunakan untuk protokol SPI |
CS |
Pilih Cip |
Berguna apabila lebih daripada satu modul digunakan di bawah protokol SPI |
Spesifikasi OLED:
- IC Pemandu OLED: SSD1306
- Resolusi: 128 x 64
- Sudut Visual:> 160 °
- Voltan Input: 3.3V ~ 6V
- Warna Pixel: Biru
- Suhu kerja: -30 ° C ~ 70 ° C
Ketahui lebih lanjut mengenai OLED dan hubungannya dengan pengawal mikro yang berbeza dengan mengikuti pautan tersebut.
Rajah Litar
Litar Diagram untuk antara muka Gravity Analog Infrared CO2 Sensor untuk Arduino diberikan di bawah:
Litarnya sangat mudah kerana kami hanya menghubungkan Gravity Infrared CO2 Sensor dan modul OLED Display dengan Arduino Nano. Sensor CO2 inframerah dan modul Paparan OLED kedua-duanya dikuasakan dengan + 5V dan GND. Pin Signal (Analog Out) sensor CO2 disambungkan ke pin A0 Arduino Nano. Oleh kerana modul OLED Display menggunakan komunikasi SPI, kami telah mewujudkan komunikasi SPI antara modul OLED dan Arduino Nano. Sambungan ditunjukkan dalam jadual di bawah:
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 menyambungkan perkakasan mengikut gambarajah litar, ia akan kelihatan seperti di bawah:
Kod Arduino untuk Mengukur Kepekatan CO2
Kod lengkap untuk projek Sensor CO2 Infrared Gravitasi Analog untuk Arduino ini diberikan di akhir dokumen. Di sini kami menerangkan beberapa bahagian penting kod.
Kod itu menggunakan perpustakaan Adafruit_GFX , dan Adafruit_SSD1306 . Perpustakaan ini boleh dimuat turun dari Pengurus Perpustakaan di Arduino IDE dan memasangnya dari sana. Untuk itu, buka Arduino IDE dan pergi ke Sketch> Include Library> Manage Libraries . Sekarang cari Adafruit GFX dan pasang perpustakaan Adafruit GFX oleh Adafruit.
Begitu juga, pasang perpustakaan Adafruit SSD1306 oleh Adafruit. Sensor CO2 inframerah tidak memerlukan perpustakaan kerana kami membaca nilai voltan secara langsung dari pin analog Arduino.
Setelah memasang perpustakaan ke Arduino IDE, mulakan kod dengan memasukkan fail perpustakaan yang diperlukan. Sensor habuk tidak memerlukan perpustakaan kerana bacaan diambil terus dari pin analog Arduino.
#sertakan
Kemudian, tentukan lebar dan tinggi OLED. Dalam projek ini, kami menggunakan paparan OLED 128 × 64 SPI. Anda boleh mengubah pemboleh ubah SCREEN_WIDTH , dan SCREEN_HEIGHT mengikut paparan anda.
#tentukan SCREEN_WIDTH 128 #tentukan SCREEN_HEIGHT 64
Kemudian tentukan pin komunikasi SPI di mana Paparan OLED disambungkan.
#tentukan OLED_MOSI 9 #tentukan OLED_CLK 10 #tentukan OLED_DC 11 #tentukan OLED_CS 12 #tentukan OLED_RESET 13
Kemudian, buat contoh paparan Adafruit dengan lebar dan ketinggian yang ditentukan sebelumnya dengan protokol komunikasi SPI.
Paparan Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
Selepas itu, tentukan pin Arduino di mana sensor CO2 disambungkan.
int sensorIn = A0;
Sekarang di dalam fungsi setup () , mulakan Monitor Serial pada kadar baud 9600 untuk tujuan penyahpepijatan. Juga, Memulakan paparan OLED dengan fungsi mula () .
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); analogReference (DEFAULT);
Di dalam fungsi gelung () , baca dahulu nilai isyarat pada pin Analog Arduino dengan memanggil fungsi analogRead () . Selepas itu, ubah nilai isyarat analog ini ke nilai voltan.
gelung void () {int sensorValue = analogRead (sensorIn); voltan apungan = sensorValue * (5000 / 1024.0);
Selepas itu, bandingkan nilai voltan. Sekiranya voltan 0 V, ini bermaksud bahawa beberapa masalah telah berlaku dengan sensor. Sekiranya voltan lebih besar daripada 0 V tetapi kurang dari 400 V, maka ini bermaksud bahawa sensor masih dalam proses pra-pemanasan.
jika (voltan == 0) {Serial.println ("Kesalahan"); } lain jika (voltan <400) {Serial.println ("preheating"); }
Sekiranya voltan sama atau lebih besar daripada 400 V, kemudian ubahnya menjadi nilai kepekatan CO2.
lain {int voltage_diference = voltan-400; kepekatan apungan = voltan_difence * 50.0 / 16.0;
Selepas itu, tetapkan ukuran teks dan warna teks menggunakan setTextSize () dan setTextColor () .
display.setTextSize (1); display.setTextColor (PUTIH);
Kemudian pada baris seterusnya, tentukan kedudukan di mana teks mula menggunakan kaedah setCursor (x, y) . Dan cetak Nilai CO2 pada Paparan OLED menggunakan fungsi display.println () .
display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (kepekatan);
Dan terakhir, panggil kaedah display () untuk memaparkan teks pada OLED Display.
paparan.display (); display.clearDisplay ();
Menguji Interfacing Sensor CO2 Infrared Gravity
Setelah perkakasan dan kod siap, sudah tiba masanya untuk menguji sensor. Untuk itu, sambungkan Arduino ke komputer riba, pilih Papan dan Pelabuhan, dan tekan butang muat naik. Kemudian buka monitor bersiri anda dan tunggu sebentar (proses panaskan), maka anda akan melihat data akhir.
Nilai akan dipaparkan pada paparan OLED seperti gambar di bawah:
Catatan: Sebelum menggunakan sensor, biarkan sensor memanas selama kira-kira 24 jam untuk mendapatkan nilai PPM yang betul. Semasa saya menghidupkan sensor untuk pertama kalinya, kepekatan CO2 output ialah 1500 PPM hingga 1700PPM dan setelah proses pemanasan 24 jam, kepekatan CO2 output menurun menjadi 450 PPM hingga 500 PPM yang merupakan nilai PPM yang betul. Oleh itu, perlu mengkalibrasi sensor sebelum menggunakannya untuk mengukur kepekatan CO2.
Ini adalah bagaimana sensor CO2 Inframerah dapat digunakan untuk mengukur kepekatan CO2 yang tepat di udara. Kod lengkap dan video kerja diberikan di bawah. Sekiranya anda mempunyai keraguan, tinggalkan di bahagian komen atau gunakan forum kami untuk bantuan teknikal.