一.系统概述
鱼塘水质检测系统实现了对鱼塘水质的实时监测、报警处理和远程管理,利用STM32单片机的高效控制能力和无线通信功能,提升了系统的智能化和操作便捷性,实现以下主要功能:
1. 环境参数采集:
- 使用STM32单片机作为核心控制器,采集鱼塘内的环境参数包括温度、浑浊度和液位信息。
- 设计显示功能,将采集到的参数数据显示在本地显示器上。
2. 参数设定和报警功能:
- 提供按键界面,用户可以设定各个参数的阈值。
- 当参数低于设定阈值时,触发蜂鸣器报警,并控制加水泵工作以维持水质。
3. 远程数据管理:
- 集成无线通信功能,将采集到的数据信息上传到服务器端。
- 监控端通过读取服务器数据,实现对鱼塘水质数据的远程管理和监控。
二.电路设计
电路图采用Altium Designer进行设计:
1. 通过STM32F103C8T6单片机作为系统主控,最小系统电路是整个电路的核心;
2. 通过DS18B20进行温度检测,并通过单总线与单片机完成数据通信;
3. 使用独立按键进行阈值设定,按键的一端接地,一端接单片机的GPIO口;
4. 使用蜂鸣器进行报警,蜂鸣器采用的有源蜂鸣器,使用NPN三极管进行蜂鸣器进行驱动。
5. 使用铜制水位感应板的电阻式水位传感器,传感器的模拟端与单片机的模拟输入端相接;
6. 通过0.96寸的OLED12864进行数据显示,采用IIC总线的形式与单片机进行通信;
7. 使用玻璃型PH传感器检测水质PH值,传感器的模拟端与单片机的模拟输入端相接;
8. 通过继电器进电器的数据输出脚与单片机的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(9600);
TIM4_Init(300,7200);
while(DS18B20_Init()){}
OLED_Init();
OLED_CLS();
Adc_Init_ch0();
Adc2_Init();
KEY1_Init();
Beep_init();
Led0_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();
OLED_ShowCN(0,0,10);
OLED_ShowCN(0+16,0,11);
OLED_ShowCN(0,2,35);
OLED_ShowCN(0+16,2,36);
OLED_ShowCN(0,4,37);
OLED_ShowCN(0+16,4,38);
OLED_ShowCN(16+16,4,39);
ALi_ESP8266_GPIO_Init();
MQTT_Buff_Init();
AliIoT_Parameter_Init();
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}