STM32开发实例_基于STM32单片机的稻田水质检测系统(电路图+程序+流程图)24-32-45

一.系统概述

稻田环境监控系统的功能如下:
1. 信息采集功能模块设计:
   传感器类型:使用DS18B20温度传感器、光敏传感器、CO2传感器、液位传感器、PH传感器、浑浊度传感器、土壤氮磷钾传感器等,分别监测稻田的温度、光照强度、二氧化碳浓度、水位状态、土壤PH值、浑浊度、土壤养分等。
   数据监控:实时采集以上环境参数数据,并传输到上位机进行实时显示和记录。
2. 通信功能模块设计:
   使用ESP8266无线模块将采集到的环境数据上传到MQTT服务器。
   通过MQTT服务器将数据转发到上位机,以便用户远程监控和管理稻田环境状态。
3. 环境调节模块设计:
   继电器模块:控制不同比例肥料的释放,维持稻田环境的营养平衡。
   液位传感器和继电器:监测和调节稻田水位,确保水量稳定性和适量灌溉。
4. 定期排水设计:
   利用时钟模块定期排水,保持稻田水质适宜。
5. 报警模块设计:
   当环境数据超过设定的阈值(如温度、PH值异常等),系统通过蜂鸣器发出警报。
   上位机也会显示相应的警报信息,提醒用户注意稻田环境的异常情况。
通过以上设计,稻田环境监控系统能够实现对稻田生态环境的全面监测和调节,通过远程通信和定时操作功能,为农业管理者提供及时有效的农田管理手段,从而提高农田的产量和生态效益。

二.电路设计 

电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 通过DS18B20进行温度检测,并通过单总线与单片机完成数据通信;
3. 使用玻璃型PH传感器检测水质PH值,传感器的模拟端与单片机的模拟输入端相接;
4. 使用铜制水位感应板的电阻式水位传感器,传感器的模拟端与单片机的模拟输入端相接;
5. 采用红外透光浑浊度传感器进行水质浑浊度检测,模块模拟输出脚与单片机模拟输入脚连接;
6. 使用MQ-135进行CO2浓度检测并将模块的模拟输出脚与单片机的模拟输入脚相接;
7. 通过DS18B20进行温度检测,并通过单总线与单片机完成数据通信;
8. 使用光敏电阻模块进行光强检测,传感器的模拟端与单片机的模拟输入端相接;
9. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
10. 通过ESP8266-01S将检测到数据上传到上位机,通过UART串口与单片机进行通信;
11. 通过继电器模拟控制施肥和浇水,并将继电器的数据输出脚与单片机的GPIO脚进行连接。
12. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动。

三.程序设计 

#include "sys.h"
#include "delay.h"
#include "adc.h"
#include "math.h"
#include "key.h"
#include "OLED_I2C.h"
#include "Beep_Led_Relay.h"
#include "Control_Report_To_Police.h"
/************************************************
版权:小常硬件
公众号:微信搜索“小常硬件“在公众号免费下载相关资料
************************************************/

	static char p1[16]=" ";
//	u8 flag;
  float co,ye,zhuo,dan,wen,phh;
	int zhuod,danl,wend,yew,guan,coo,ph;
	int wd,gz,yw,zd,eyht,phz,dlj,dang,lin,jia,baoj;
	u16 guang,g,n=1,m,x=1,y=1;
	char time1[16];
	char p[5];
	int q,w=1,t,sec=62,mun=25,a,o;
	char  DAN[20]={0x01,0x03,0x00,0x1E,0x00,0x01,0xE4,0x0C};
	char  LIN[20]={0x01,0x03,0x00,0x1F,0x00,0x01,0xB5,0xCC};
	char  JIA[20]={0x01,0x03,0x00,0x20,0x00,0x01,0x85,0xC0};
//	u16 speed;
int main(void) 
 {	

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();	    	 //延时函数初始化	
	Relay_init();
	TIM4_Init(300,7200);
	OLED_Init();            //OLED初始化
	 
	KEY1_Init();
	 Beep_init();
	 Beep=1;
	DS18B20_Init();
	 Adc_Init();            //PA1  温度
	 Adc_Init1();           //pb0光照
	 Adc_Init2();       		//pb1  液位
// Adc_Init3();						//pa5 浊度
	 Adc_Init4();           //pa4PH
	 Adc_Init5();  					//PA0氮磷钾d
	 DS1302_GPIO_Init_Write_Time();
	 OLED_CLS();              //OLED清屏
	 Usart1_Init(4800);
	ALi_ESP8266_GPIO_Init();
	MQTT_Buff_Init();
  AliIoT_Parameter_Init();

	while(1)
	{		
     OLED_Display_Cotrol(); //显示控制函数
	}	 
} 

四.资料内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小常硬件

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值