一.系统概述
系统具体工作内容如下:
- 控制温湿度传感器,完成果园内温湿度数据的采集;
- 控制光照传感器,完成果园内光照强度数据的采集;
- 控制酸碱传感器,完成果园土壤酸碱环境数据的采集;
- 控制无线通信模块,将所有采集到的数据上传至服务器端;
- 采用Uniapp编程软件,开发配套的监控软件;
- 上位机端支持远程设定各项环境参数的阈值;
- 下位机端可实现对各项参数阈值的智能调节。

二.电路设计
电路图采用Altium Designer设计,具体如下:
- 以STM32F103C8T6单片机作为系统主控,其最小系统电路为整个电路的核心;
- 通过DHT11实现温湿度检测,该传感器通过单总线(one-wire)与单片机的GPIO脚连接;
- 采用光敏电阻模块进行光强检测,传感器的模拟端接入单片机的模拟输入端;
- 使用玻璃型PH传感器检测水质PH值,传感器的模拟端与单片机的模拟输入端相连;
- 借助0.96寸OLED12864显示屏进行数据展示,通过IIC总线与单片机通信;
- 蜂鸣器用于报警,采用有源蜂鸣器,通过NPN三极管驱动;
- 利用ESP8266-01S将检测数据上传至上位机,该模块通过UART串口与单片机通信;
- 继电器用于模拟生态环境控制,其数据输出脚与单片机的GPIO脚连接。
三.程序设计
#include "sys.h"
#include "delay.h"
#include "adc2.h"
#include "math.h"
#include "adc.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Control_Report_To_Police.h"
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
Usart1_Init(115200);
TIM4_Init(300,7200);
while(DHT11_Init()){}
Adc_Init();
Adc2_Init();
Relay_init();
Beep_init();
OLED_Init();
OLED_CLS();
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
OLED_ShowCN(32,2,0);
OLED_ShowCN(32+16,2,1);
OLED_ShowCN(32+32,2,2);
OLED_ShowCN(32+32+16,2,3);
OLED_CLS();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容

24-32-56