- ส่วนประกอบที่จำเป็น
- 0.96 'โมดูลแสดงผล OLED
- การเตรียมเซนเซอร์ MQ-135
- แผนภาพวงจรเพื่อเชื่อมต่อ MQ135 กับ Arduino
- การคำนวณ R
- รหัสวัด CO2 โดยใช้เซนเซอร์ Arduino MQ135
- การทดสอบการเชื่อมต่อของเซ็นเซอร์ MQ-135
ระดับ CO2 ในบรรยากาศของโลกเพิ่มขึ้นทุกวัน คาร์บอนไดออกไซด์ในชั้นบรรยากาศเฉลี่ยทั่วโลกในปี 2562 อยู่ที่ 409.8 ส่วนต่อล้านส่วนและในเดือนตุลาคม - 2563 เท่ากับ 411.29 คาร์บอนไดออกไซด์เป็นก๊าซเรือนกระจกที่สำคัญและมีส่วนรับผิดชอบต่อการปล่อยก๊าซประมาณสามในสี่ ดังนั้นการตรวจสอบระดับ CO2จึงเริ่มได้รับความสำคัญเช่นกัน
ในโครงการก่อนหน้านี้เราใช้เซ็นเซอร์ Gravity Infrared CO2 เพื่อวัดความเข้มข้นของ CO2 ในอากาศ ในโครงการนี้เราจะใช้เซ็นเซอร์ MQ-135 กับ Arduino เพื่อวัดความเข้มข้นของ CO2 ค่าความเข้มข้นของ CO2 ที่วัดได้จะแสดงบนโมดูล OLED และสุดท้ายเราจะเปรียบเทียบการอ่านเซ็นเซอร์ Arduino MQ-135กับการอ่านเซ็นเซอร์อินฟราเรด CO2 นอกจาก CO2 แล้วเรายังวัดความเข้มข้นของก๊าซ LPG ควันและแอมโมเนียโดยใช้ Arduino
ส่วนประกอบที่จำเป็น
- Arduino นาโน
- MQ-135 เซนเซอร์
- สายจัมเปอร์
- 0.96 'SPI โมดูลแสดงผล OLED
- เขียงหั่นขนม
- 22KΩตัวต้านทาน
0.96 'โมดูลแสดงผล OLED
OLED (Organic Light-Emitting Diodes) เป็นเทคโนโลยีการเปล่งแสงในตัวสร้างขึ้นโดยการวางฟิล์มบางอินทรีย์ไว้ระหว่างตัวนำสองตัว แสงจ้าเกิดขึ้นเมื่อกระแสไฟฟ้าถูกนำไปใช้กับฟิล์มเหล่านี้ OLED ใช้เทคโนโลยีเดียวกับโทรทัศน์ แต่มีพิกเซลน้อยกว่าทีวีส่วนใหญ่ของเรา
สำหรับโปรเจ็กต์นี้เราใช้จอแสดงผล OLED แบบ Monochrome 7-pin SSD1306 0.96 นิ้ว สามารถทำงานบนโปรโตคอลการสื่อสารที่แตกต่างกันสามแบบ: โหมด SPI 3 Wire, โหมดสี่สาย SPI และโหมด I2C คุณยังสามารถเรียนรู้เพิ่มเติมเกี่ยวกับพื้นฐานของจอแสดงผล OLED และประเภทต่างๆได้โดยอ่านบทความที่เชื่อมโยง พินและฟังก์ชันต่างๆอธิบายไว้ในตารางด้านล่าง:
ชื่อพิน |
ชื่ออื่น |
คำอธิบาย |
Gnd |
พื้น |
ขากราวด์ของโมดูล |
Vdd |
Vcc, 5V |
พินเพาเวอร์ (ทนได้ 3-5V) |
SCK |
D0, SCL, CLK |
ทำหน้าที่เป็นเข็มนาฬิกา ใช้สำหรับทั้ง I2C และ SPI |
SDA |
D1, MOSI |
พินข้อมูลของโมดูล ใช้สำหรับทั้ง IIC และ SPI |
RES |
RST, รีเซ็ต |
รีเซ็ตโมดูล (มีประโยชน์ระหว่าง SPI) |
กระแสตรง |
A0 |
พินคำสั่งข้อมูล ใช้สำหรับโปรโตคอล SPI |
CS |
ชิปเลือก |
มีประโยชน์เมื่อใช้มากกว่าหนึ่งโมดูลภายใต้โปรโตคอล SPI |
ข้อมูลจำเพาะของ OLED:
- IC ไดร์เวอร์ OLED: SSD1306
- ความละเอียด: 128 x 64
- มุมมองภาพ:> 160 °
- แรงดันไฟฟ้าอินพุต: 3.3V ~ 6V
- พิกเซลสี: น้ำเงิน
- อุณหภูมิในการทำงาน: -30 ° C ~ 70 ° C
การเตรียมเซนเซอร์ MQ-135
MQ-135 Gas Sensor เป็นเซ็นเซอร์ตรวจจับคุณภาพอากาศสำหรับตรวจจับก๊าซหลากหลายประเภทรวมถึง NH3, NOx, แอลกอฮอล์, เบนซิน, ควันและ CO2 เซ็นเซอร์ MQ-135 สามารถซื้อเป็นโมดูลหรือเป็นเซ็นเซอร์เพียงอย่างเดียว ในโครงการนี้เราใช้โมดูลเซนเซอร์ MQ-135 เพื่อวัดความเข้มข้นของ CO2 ใน PPM แผนภาพวงจรสำหรับบอร์ด MQ-135 แสดงไว้ด้านล่าง:
ตัวต้านทานโหลด RL มีบทบาทสำคัญมากในการทำให้เซ็นเซอร์ทำงาน ตัวต้านทานนี้เปลี่ยนค่าความต้านทานตามความเข้มข้นของก๊าซ ตามเอกสารข้อมูล MQ-135 ค่าตัวต้านทานโหลดสามารถอยู่ในช่วงใดก็ได้ตั้งแต่10KΩถึง47KΩ เอกสารข้อมูลแนะนำให้คุณปรับเทียบเครื่องตรวจจับสำหรับความเข้มข้นของแอลกอฮอล์ 100ppm NH3 หรือ 50ppm ในอากาศและใช้ค่าความต้านทานโหลด (RL) ประมาณ 20 KΩ แต่ถ้าคุณติดตามร่องรอย PCB ของคุณเพื่อค้นหาค่า RL ของคุณในบอร์ดคุณจะเห็นตัวต้านทานโหลด1KΩ (102)
ดังนั้นในการวัดค่าความเข้มข้นของ CO2 ที่เหมาะสมคุณต้องแทนที่ตัวต้านทาน1KΩด้วยตัวต้านทาน22KΩ
แผนภาพวงจรเพื่อเชื่อมต่อ MQ135 กับ Arduino
แผนผังที่สมบูรณ์ในการเชื่อมต่อMQ-135 Gas Sensor กับ Arduinoมีดังต่อไปนี้:
วงจรนี้ง่ายมากเพราะเราเชื่อมต่อเซ็นเซอร์ MQ-135 และโมดูลจอแสดงผล OLED กับ Arduino Nano เท่านั้น เซ็นเซอร์แก๊ส MQ-135 และโมดูลจอแสดงผล OLED ใช้พลังงาน + 5V และ GND ขา Analog Out ของเซ็นเซอร์ MQ-135 เชื่อมต่อกับขา A0 ของ Arduino Nano เนื่องจากโมดูลจอแสดงผล OLED ใช้การสื่อสาร SPI เราจึงได้สร้างการสื่อสาร SPI ระหว่างโมดูล OLED และ Arduino Nano การเชื่อมต่อดังแสดงในตารางด้านล่าง:
ส. เลขที่ |
ขาโมดูล OLED |
Arduino Pin |
1 |
GND |
พื้น |
2 |
VCC |
5V |
3 |
D0 |
10 |
4 |
D1 |
9 |
5 |
RES |
13 |
6 |
กระแสตรง |
11 |
7 |
CS |
12 |
หลังจากเชื่อมต่อฮาร์ดแวร์ตามแผนภาพวงจรแล้วการตั้งค่าเซ็นเซอร์ Arduino MQ135 ควรมีลักษณะดังนี้:
การคำนวณ R
ตอนนี้เรารู้ค่าของ RL แล้วเรามาดูวิธีคำนวณค่า R oในอากาศบริสุทธิ์ ในที่นี้เราจะใช้ MQ135.h เพื่อวัดความเข้มข้นของ CO2 ในอากาศ ดังนั้นก่อนดาวน์โหลด MQ-135 ห้องสมุดแล้วอุ่นเซ็นเซอร์ 24 ชั่วโมงก่อนที่จะอ่านการ R oค่า หลังจากกระบวนการอุ่นให้ใช้รหัสด้านล่างเพื่ออ่านค่า R o:
#include "MQ135.h" การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); } void loop () {MQ135 gasSensor = MQ135 (A0); // ติดเซนเซอร์เพื่อพิน A0 float rzero = gasSensor.getRZero (); Serial.println (rzero); ล่าช้า (1,000); }
ตอนนี้เมื่อคุณได้รับค่า R oแล้วให้ไปที่ Documents> Arduino> libraries> MQ135-master folder และเปิดไฟล์ MQ135.h และเปลี่ยนค่า RLOAD & RZERO
/// ความต้านทานโหลดบนบอร์ด #define RLOAD 22.0 /// ความต้านทานการสอบเทียบที่ระดับ CO2 ในบรรยากาศ #define RZERO 5804.99
ตอนนี้เลื่อนลงและแทนที่ค่า ATMOCO2 ด้วย Atmospheric CO2 ปัจจุบันคือ411.29
/// ระดับ CO2 ในบรรยากาศเพื่อวัตถุประสงค์ในการสอบเทียบ # กำหนด ATMOCO2 397.13
รหัสวัด CO2 โดยใช้เซนเซอร์ Arduino MQ135
รหัสที่สมบูรณ์สำหรับการเชื่อมต่อเซ็นเซอร์ MQ-135 กับ Arduino มีให้ที่ส่วนท้ายของเอกสาร ที่นี่เราจะอธิบายส่วนที่สำคัญบางส่วนของรหัส MQ135 Arduino
รหัสที่ใช้ Adafruit_GFX ,และ Adafruit_SSD1306 ,และ MQ135.h ห้องสมุด สามารถดาวน์โหลดไลบรารีเหล่านี้ได้จาก Library Manager ใน Arduino IDE และติดตั้งจากที่นั่น สำหรับที่เปิด Arduino IDE และไปที่ ร่าง < ได้แก่ ห้องสมุด <จัดการห้องสมุด ตอนนี้ค้นหา Adafruit GFX และติดตั้งห้องสมุด Adafruit GFX โดย Adafruit
ในทำนองเดียวกันการติดตั้งห้องสมุด Adafruit SSD1306 โดย Adafruit สามารถดาวน์โหลดไลบรารี MQ135 ได้จากที่นี่
หลังจากติดตั้งไลบรารีไปยัง Arduino IDE แล้วให้เริ่มโค้ดโดยรวมไฟล์ไลบรารีที่จำเป็น
#include "MQ135.h" #include
จากนั้นกำหนดความกว้างและความสูงของ OLED ในโปรเจ็กต์นี้เราใช้จอแสดงผล OLED ขนาด 128 × 64 SPI คุณสามารถเปลี่ยน SCREEN_WIDTH และ SCREEN_HEIGHT ตัวแปรตามที่แสดงของคุณ
# กำหนด SCREEN_WIDTH 128 # กำหนด SCREEN_HEIGHT 64
จากนั้นกำหนดพินการสื่อสาร SPI ที่เชื่อมต่อจอแสดงผล OLED
# กำหนด OLED_MOSI 9 # กำหนด OLED_CLK 10 # กำหนด OLED_DC 11 # กำหนด OLED_CS 12 # กำหนด OLED_RESET 13
จากนั้นสร้างอินสแตนซ์การแสดงผล Adafruit ที่มีความกว้างและความสูงที่กำหนดไว้ก่อนหน้านี้ด้วยโปรโตคอลการสื่อสาร SPI
จอแสดงผล Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
หลังจากนั้นกำหนดพิน Arduino ที่เชื่อมต่อเซ็นเซอร์ MQ-135
เซ็นเซอร์ intIn = A0;
ตอนนี้อยู่ในฟังก์ชันการ ตั้งค่า () เริ่มต้น Serial Monitor ที่อัตราการส่งข้อมูล 9600 เพื่อวัตถุประสงค์ในการดีบัก นอกจากนี้เริ่มต้นจอแสดงผล OLED ด้วยฟังก์ชัน start ()
Serial.begin (9600); display.begin (SSD1306_SWITCHCAPVCC); display.clearDisplay ();
ภายในฟังก์ชัน loop () ให้อ่านค่าสัญญาณที่ขา Analog ของ Arduino ก่อนโดยเรียกใช้ฟังก์ชัน analogRead ()
Val = analogRead (A0); Serial.print ("raw =");
จากนั้นในบรรทัดถัดไปเรียก gasSensor.getPPM () เพื่อคำนวณค่า PPM ค่า PPM คำนวณโดยใช้ตัวต้านทานโหลด R 0และการอ่านค่าจากพินอนาล็อก
ลอย ppm = gasSensor.getPPM (); Serial.print ("ppm:"); Serial.println (ppm);
หลังจากนั้นกำหนดขนาดตัวอักษรและข้อความสีโดยใช้ setTextSize () และ SetTextColor ()
display.setTextSize (1); display.setTextColor (สีขาว);
จากนั้นในบรรทัดถัดไปกำหนดตำแหน่งที่ข้อความที่เริ่มใช้ SetCursor (x, y) วิธีการ และพิมพ์ค่า CO2 บนจอแสดงผล OLED โดยใช้ฟังก์ชัน display.println ()
display.setCursor (18,43); display.println ("CO2"); display.setCursor (63,43); display.println ("(PPM)"); display.setTextSize (2); display.setCursor (28,5); display.println (ppm);
และสุดท้ายเรียกใช้ display () method เพื่อแสดงข้อความบนจอแสดงผล OLED
display.display (); display.clearDisplay ();
การทดสอบการเชื่อมต่อของเซ็นเซอร์ MQ-135
เมื่อฮาร์ดแวร์และรหัสพร้อมแล้วก็ถึงเวลาทดสอบเซ็นเซอร์ สำหรับสิ่งนั้นให้เชื่อมต่อ Arduino กับแล็ปท็อปเลือกบอร์ดและพอร์ตแล้วกดปุ่มอัปโหลด จากนั้นเปิดจอภาพอนุกรมของคุณและรอสักครู่ (กระบวนการอุ่นเครื่อง) จากนั้นคุณจะเห็นข้อมูลสุดท้าย ค่าจะแสดงบนจอแสดงผล OLED ดังที่แสดงด้านล่าง:
นี่คือวิธีใช้เซ็นเซอร์ MQ-135 เพื่อวัด CO2 ในอากาศที่แม่นยำ รหัส Arduino เซ็นเซอร์คุณภาพอากาศ MQ135 ที่สมบูรณ์และวิดีโอการทำงานมีให้ด้านล่าง หากคุณมีข้อสงสัยโปรดทิ้งไว้ในส่วนความคิดเห็น