基本信息
文件名称:Arduino 系列:Arduino Nano (基于 ATmega328P)_(19).项目实战:环境监测系统.docx
文件大小:39.51 KB
总页数:52 页
更新时间:2025-06-27
总字数:约2.85万字
文档摘要

PAGE1

PAGE1

项目实战:环境监测系统

1.项目概述

环境监测系统是一种用来实时监测和记录环境参数(如温度、湿度、光照强度等)的设备。在本项目中,我们将使用ArduinoNano(基于ATmega328P)来构建一个简单的环境监测系统。该系统将使用多种传感器来采集环境数据,并通过串口或无线模块将数据发送到计算机或其他设备进行处理和显示。

2.硬件准备

2.1.所需材料

ArduinoNano

DHT11温湿度传感器

LDR光照强度传感器

MQ-2烟雾传感器

OLED显示屏

电阻(10kΩ和100Ω)

杜邦线若干

面包板

2.2.硬件连接

DHT11温湿度传感器

VCC连接到5V

GND连接到GND

DATA连接到数字引脚2

LDR光照强度传感器

一端连接到5V

另一端通过10kΩ电阻连接到GND

与10kΩ电阻并联的引脚连接到模拟引脚A0

MQ-2烟雾传感器

VCC连接到5V

GND连接到GND

AOUT连接到模拟引脚A1

DOUT连接到数字引脚3

OLED显示屏

VCC连接到5V

GND连接到GND

SDA连接到数字引脚4

SCL连接到数字引脚5

3.软件准备

3.1.安装必要的库

DHT传感器库

打开ArduinoIDE,进入工具-库管理,搜索并安装DHTsensorlibrary。

OLED显示屏库

安装AdafruitSSD1306库和AdafruitGFX库。同样在工具-库管理中搜索并安装。

MQ-2传感器库

本项目中我们将直接使用模拟读取,不需要额外安装库。

3.2.初始化代码

#includeWire.h

#includeAdafruit_SSD1306.h

#includeDHT.h

//定义传感器引脚

#defineDHTPIN2

#defineDHTTYPEDHT11

#defineLDRPINA0

#defineMQ2PINA1

#defineMQ2DOUT3

//初始化DHT传感器

DHTdht(DHTPIN,DHTTYPE);

//初始化OLED显示屏

#defineSCREEN_WIDTH128

#defineSCREEN_HEIGHT64

Adafruit_SSD1306display(SCREEN_WIDTH,SCREEN_HEIGHT,Wire,-1);

voidsetup(){

//初始化串口通信

Serial.begin(9600);

//初始化DHT传感器

dht.begin();

//初始化OLED显示屏

if(!display.begin(SSD1306_I2C_ADDRESS,SSD1306_RESET)){

Serial.println(F(OLED初始化失败));

while(1);

}

display.display();

delay(2000);

display.clearDisplay();

display.setTextSize(1);

display.setTextColor(SSD1306_WHITE);

display.setCursor(0,0);

//初始化MQ-2传感器

pinMode(MQ2DOUT,INPUT);

}

voidloop(){

//读取温湿度数据

floathumidity=dht.readHumidity();

floattemperature=dht.readTemperature();

//读取光照强度数据

intlightValue=analogRead(LDRPIN);

//读取烟雾浓度数据

intsmokeValue=analogRead(MQ2PIN);

boolsmokeDetected=digitalRead(MQ2DOUT);

//显示数据

display.clearDisplay();

display.setCursor(0,0);

display.println(温度:+String(temperature)+°C);

display.println(湿度:+String(humidity)+%);

d