一.系统概述

1. 环境监测:使用温湿度传感器和二氧化碳传感器监测环境数据,超过阈值时控制风扇进行通风。
2. 土壤管理:土壤湿度传感器监测土壤湿度,根据数据启动RGB灯警示。
3. 安全警报:烟雾传感器监测烟雾浓度,触发蜂鸣器进行警告。
4. 数据显示:OLED显示屏实时显示当前监测数据,包括温度、湿度、CO2浓度、土壤湿度等。
5. 光强监测:光敏传感器检测光强,用于日照模拟和自动灌溉控制。
6. 智能控制:根据监测数据和预设条件实现自动灌溉系统。
7. 数据库管理:管理农作物的种类、种植时间、状态、收成时间,以及相关的浇水和施肥时间。
8. 远程监控:基于WiFi云平台实现远程监测和控制,提升系统的灵活性和便利性。
9. 用户界面:使用QT界面进行系统操作和监控,提供用户友好的交互体验。

二.电路设计

电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 通过DHT11进行温湿度检测,并通过one-wire总线与单片机的GPIO脚进行连接;
3. 使用MQ-135进行CO2浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
4. 通过土壤湿度模块进行土壤湿度检测,模块输出的模拟信号与单片机ADC输入口连接;
5. 使用MQ-2进行烟雾浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
6. 使用光敏电阻模块进行光强检测,传感器的模拟端与单片机的模拟输入端相接;
7. 通过ESP8266-01S将检测到数据上传到上位机,通过UART串口与单片机进行通信;
8. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
9. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动。

三.程序设计 

#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);	 
	while(DHT11_Init()){}
	Adc_Init();
	Adc2_Init();
	Adc2_Init_ch1();
	Adc_Init_ch0();
	OLED_Init();
	OLED_CLS();	
	OLED_ShowCN(32,2,0);
	OLED_ShowCN(32+16,2,1);	
	OLED_ShowCN(32+32,2,2);	
	OLED_ShowCN(32+32+16,2,3);	
  usart2_init(115200);	 				//串口初始化为115200
  printf("初始化成功");
	if(esp8266_start_trans())//esp8266进行初始化 
	{
		printf("初始化成功");
	}
	Led1_init();
	Led0_init();
	Relay_init();
	Beep_init();
	OLED_CLS();		
	OLED_ShowCN(0,0,10);
	OLED_ShowCN(0+16,0,11);	
	OLED_ShowCN(64,0,12);	
	OLED_ShowCN(64+16,0,13);
	OLED_ShowCN(0,2,14);	
	OLED_ShowCN(0+16,2,15);
	OLED_ShowCN(0,4,18);	
	OLED_ShowCN(16,4,19);	
  while(1)
	{
    OLED_Display_Cotrol(); //显示控制函数
	}	 
} 


 四.资料内容

Logo

宁波官方开源宣传和活动阵地,欢迎各位和我们共建开源生态体系!

更多推荐