首页 理论教育 ArduinoMQ-135传感器测量CO2浓度代码

ArduinoMQ-135传感器测量CO2浓度代码

更新时间:2025-01-18 工作计划 版权反馈
【摘要】:该代码使用Adafruit_GFX.h、Adafruit_SSD1306.h和MQ135.h库。为此,请打开Arduino IDE并转到Sketch<Include Library<Manage Libraries。图7-6下载安装相关Arduino库同样,由Adafruit安装Adafruit SSD1306库,可以从此处下载MQ-135库。将库安装到Arduino IDE后,通过包含所需的库文件来启动代码。#define OLED_MOSI 9#define OLED_CLK 10#define OLED_DC 11#define OLED_CS 12#define OLED_RESET 13然后,使用前面使用SPI通信协议定义的宽度和高度创建Adafruit显示实例。Adafruit_SSD1306 display;之后,定义连接MQ-135传感器的Arduino引脚:int sensorIn=A0;现在在setup()函数中,以9600的波特率初始化串行监视器以进行调试。

这里我们将解释MQ135 Arduino代码的一些重要部分。

该代码使用Adafruit_GFX.h、Adafruit_SSD1306.h和MQ135.h库。这些库可以从Arduino IDE中的库管理器下载并从那里安装。为此,请打开Arduino IDE并转到Sketch<Include Library<Manage Libraries。现在搜索Adafruit GFX并由Adafruit安装Adafruit GFX库。

图7-6 下载安装相关Arduino库

同样,由Adafruit安装Adafruit SSD1306库,可以从此处下载MQ-135库。

将库安装到Arduino IDE后,通过包含所需的库文件来启动代码。

#include"MQ135.h"

#include<SPI.h>

#include<Adafruit_GFX.h>

#include<Adafruit_SSD1306.h>

然后,定义OLED的宽度和高度。在这个项目中,我们使用128×64 SPI OLED显示器。你可以根据显示器更改屏幕宽度和屏幕高度变量。

#define SCREEN_WIDTH 128

#define SCREEN_HEIGHT 64

然后定义连接OLED显示器的SPI通信引脚。

#define OLED_MOSI 9

#define OLED_CLK 10

#define OLED_DC 11

#define OLED_CS 12

#define OLED_RESET 13

然后,使用前面使用SPI通信协议定义的宽度和高度创建Adafruit显示实例。

Adafruit_SSD1306 display(SCREEN_WIDTH,SCREEN_HEIGHT,OLED_MOSI,OLED_CLK,OLED_DC,OLED_RESET,OLED_CS);

之后,定义连接MQ-135传感器的Arduino引脚:

int sensorIn=A0;

现在在setup()函数中,以9600的波特率初始化串行监视器以进行调试。另外,使用begin()函数初始化OLED显示屏。

Serial.begin(9600);(www.xing528.com)

display.begin(SSD1306_SWITCHCAPVCC);

display.clearDisplay();

在loop()函数中,首先通过调用analogRead()函数读取Arduino模拟引脚处的信号值。

val = analogRead(A0);

Serial.print("raw=");

然后在下一行,通过调用getμL/L()函数来计算μL/L值。使用负载电阻器R0和模拟引脚的读数计算μL/L值。

float ppm = gasSensor.getμL/L();

Serial.print("μL/L:");

Serial.println(μL/L);

接着,使用setTextSize()和setTextColor()设置文本大小和文本颜色。

display.setTextSize(1);

display.setTextColor(WHITE);

然后在下一行中,使用setCursor(x,y)方法定义文本开始的位置,并使用println()函数在OLED显示屏上打印CO2的浓度值。

display.setCursor(18,43);

display.println("CO2");

display.setCursor(63,43);

display.println("(μL/L)");

display.setTextSize(2);

display.setCursor(28,5);

display.println(μL/L);

最后,调用display()方法在OLED显示屏上显示文本。

display.display();

display.clearDisplay();

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈