1 系统功能介绍
本系统是一种基于STM32单片机的无线ZigBee智能大棚土壤湿度光照检测系统。系统主要由主机和从机组成,主机负责数据采集并通过ZigBee模块将采集到的温度、光照强度和土壤湿度数据发送至从机。从机则接收到数据后,通过LCD1602液晶显示模块将数据实时显示给用户。
1.1 主要功能
- 温度采集:主机通过DS18B20温度传感器实时采集大棚中的环境温度。
- 光照强度采集:主机通过光照传感器采集大棚内的光照强度,数据范围为0-100。
- 土壤湿度采集:主机通过土壤湿度传感器实时采集土壤的湿度信息,数据范围为0-100。
- 数据传输:主机通过ZigBee模块(CC2530)将温度、光照、湿度数据传输到从机。
- 实时显示:从机通过LCD1602液晶显示模块实时显示接收到的数据,包括温度、光照强度和土壤湿度。
- 连接状态显示:从机液晶显示若无数据接收,显示"xx"提示数据无效或连接断开。
1.2 系统架构
- 主机部分:由STM32F103C8T6单片机、光照传感器、DS18B20温度传感器、土壤湿度传感器、ZigBee模块组成。主机采集温度、光照和湿度数据,并通过ZigBee无线传输给从机。
- 从机部分:由STM32F103C8T6单片机、LCD1602液晶显示模块和ZigBee模块组成。从机接收主机发送的数据,并通过LCD显示数据。如果数据无效,液晶显示"xx"。
2 系统电路设计
系统电路设计包括主机和从机两部分,涉及到温湿度传感器、光照传感器、ZigBee模块、液晶显示模块等多个模块。下面将分别详细介绍这些模块的设计。
2.1 主机电路设计
2.1.1 STM32F103C8T6单片机核心电路
主机部分的核心控制单元是STM32F103C8T6单片机,负责数据采集、处理和通信。STM32F103C8T6拥有丰富的I/O口、定时器和通信接口,适用于本系统的各种需求。
- 功能:主机通过单片机控制光照传感器、温度传感器和土壤湿度传感器进行数据采集,并通过ZigBee模块将数据发送给从机。
- 时钟源:STM32F103C8T6使用外部晶振提供时钟信号,保证系统稳定工作。
- 电源管理:通过电源模块将5V电源转换为3.3V,为STM32单片机及其他模块提供稳定电源。
2.1.2 ZigBee模块(CC2530)
ZigBee模块CC2530用于主机和从机之间的数据通信。该模块支持ZigBee协议,具有较低的功耗和可靠的通信性能,适合无线传输环境监测数据。
- 功能:通过ZigBee无线通信协议,主机将温湿度数据传输至从机。
- 接口:CC2530通过USART或SPI接口与STM32单片机连接,用于数据传输。
2.1.3 温度传感器(DS18B20)
DS18B20是一款常用的数字温度传感器,通过单总线协议与STM32单片机通信,获取环境温度数据。
- 功能:DS18B20传感器可以精确地获取大棚内的环境温度,并将数据传输给STM32单片机。
- 接口:DS18B20通过单总线接口与STM32单片机连接,数据传输简单且可靠。
2.1.4 光照传感器
光照传感器用于实时监测大棚内的光照强度。常用的光照传感器如BH1750、TSL2561等,可以提供数字输出数据。
- 功能:光照传感器采集大棚内的光照强度,数据范围为0-100。
- 接口:光照传感器通过I2C接口与STM32单片机连接,实时传输光照数据。
2.1.5 土壤湿度传感器
土壤湿度传感器用于实时监测大棚内土壤的湿度情况。常见的土壤湿度传感器如YL-69、FC-28等可以提供模拟信号。
- 功能:土壤湿度传感器检测土壤中的水分含量,并通过模拟信号输出给STM32单片机。
- 接口:土壤湿度传感器通过ADC(模拟到数字转换)接口与STM32单片机连接,将模拟信号转换为数字数据。
2.2 从机电路设计
2.2.1 STM32F103C8T6单片机核心电路
从机部分的核心控制单元也是STM32F103C8T6单片机,负责接收主机传输的数据并通过LCD1602显示模块显示数据。
- 功能:从机接收温度、光照和湿度数据,并将其显示在LCD上。如果没有接收到有效数据,则显示"xx"。
- 时钟源:从机使用与主机相同的时钟源,确保同步工作。
2.2.2 LCD1602液晶显示模块
LCD1602液晶显示模块用于从机显示采集到的数据,包括温度、光照强度和土壤湿度。
- 功能:实时显示主机发送的温度、光照和湿度数据。如果没有接收到有效数据,显示"xx"。
- 接口:LCD1602通过GPIO接口与STM32单片机连接,显示相关数据。
2.2.3 ZigBee模块(CC2530)
从机也通过ZigBee模块(CC2530)接收主机发送的数据,使用ZigBee无线通信协议实现主从机之间的数据传输。
- 功能:通过ZigBee模块接收主机的数据,并将数据传输给STM32单片机进行处理。
- 接口:CC2530通过USART或SPI接口与STM32单片机连接,接收数据。
3 程序设计
程序设计是本系统的核心,主要包括数据采集、无线通信、显示管理和连接状态处理等功能。以下将详细介绍每个模块的程序设计。
3.1 系统初始化
系统初始化包括各硬件模块的初始化,确保各模块能够正常工作。初始化过程包括STM32单片机、ZigBee模块、温湿度传感器和液晶显示模块等的配置。
c
void system_init() {
// 初始化温度传感器
DS18B20_Init();
// 初始化光照传感器
LightSensor_Init();
// 初始化土壤湿度传感器
SoilMoisture_Init();
// 初始化ZigBee模块
ZigBee_Init();
// 初始化LCD显示模块
LCD_Init();
}
3.1.1 温度传感器初始化
DS18B20温度传感器通过单总线与STM32单片机连接,初始化过程包括配置GPIO口为输入模式,并启动温度转换过程。
c
void DS18B20_Init() {
// 配置GPIO口为输入模式
GPIO_Init(DS18B20_GPIO, GPIO_MODE_INPUT);
// 启动温度转换
DS18B20_StartConversion();
}
3.1.2 光照传感器初始化
光照传感器通过I2C接口与STM32单片机连接,初始化过程包括设置I2C接口,并配置光照传感器的工作模式。
c
void LightSensor_Init() {
// 配置I2C接口
I2C_Init(LightSensor_I2C);
// 配置光照传感器工作模式
LightSensor_SetMode();
}
3.1.3 土壤湿度传感器初始化
土壤湿度传感器通过ADC接口与STM32单片机连接,初始化过程包括设置ADC通道和读取土壤湿度数据。
c
void SoilMoisture_Init() {
// 配置ADC接口
ADC_Init(SoilMoisture_ADC);
// 启