一、功能简介
项目:基于Zigbee技术的农田土壤监测系统
项目编号:mcuclub-dz-1110
单片机类型:STM32F103C8T6
具体功能:
从机:
1、通过DHT11监测当前环境的温湿度
2、通过光照检测模块检测光照值
3、通过七合一土壤监测模块检测土壤中的温度、水分、电导率、PH、氮磷钾,水分小于最小值自动打开水泵灌溉,直到水分大于最大值停止;监测到PH大于设置最大值或小于设置最小值,加中和液进行中和;监测到氮磷钾小于最小值,加营养液。任意一个参数异常时进行声光报警提醒。
4、通过zigbee将数据发送到主机端
主机:
1、通过zigbee获取从机端数据
2、通过按键可以设置从机的水分阈值、PH阈值、氮磷钾阈值;
3、通过OLED显示测试的数据;
4、通过WiFi模块将检测的数据传输到手机端,手机可以设置参数,控制各器件。手机端数据异常进行弹窗震动提醒
二、系统框图设计
绘制软件:VISIO
本设计以STM32F103C8T6单片机为核心控制器,分为从机和主机两部分协同工作。从机部分主要负责环境数据采集与处理,主机部分负责数据接收、显示以及报警处理。从机的输入由四部分组成,第一部分是DHT11模块,用于检测当前环境的温湿度;第二部分是光照检测模块,用于检测当前环境的关照亮度;第三部分是土壤环境检测模块,用于检测当前土壤环境的温度、水分、电导率、PH、氮磷钾;第四部分是供电模块,为从机提供电源。输出由二部分组成,第一部分是继电器模块,分别为加水继电器,加中和液继电器,加营养液继电器并在不同情况下提供对应的功能;第二部分是声光报警模块,用于在测量值超出最大值时进行报警提醒;除此之外还有Zigbee模块,即作为输入也作为输出,用于将数据发送至主机端。系统框图如图3.1所示。
主机的输入由两部分组成,第一部分是按键模块,用于设置温度、湿度、光照、土壤环境的温度、水分、电导率、PH、氮磷钾;。第二部分是供电模块,为主机提供电源。输出由OLED显示模块组成,用于显示从机检测的数据;还有WiFi模块,即作为输入也作为输出,可以远程设置阈值和控制继电器。除此之外还有Zigbee模块,即作为输入也作为输出,用于将数据发送至主机端。系统框图如图3.2所示。

三、32实物图
单片机型号:STM32F103C8T6
板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。
供电接口:TYPE-C
四、原理图
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

五、PCB图
由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。

六、部分程序展示
软件版本:keil5
逻辑程序和驱动程序分开,分布于main.c和其他.c文件
/**********************************
函数名:处理函数
传参值:无
返回值:无
**********************************/
void Manage_Function(void)
{
if(flag_begin == 1)
{
if(time_num % 100 == 0)//数据比对
{
if(water_value < water_min)//水分小于最小值开启弹窗
{
if(flag_sf_tc == 0)
{
flag_sf_tc = 1;
}
}




