当前位置: 首页 > news >正文

硬件开发_基于STM32单片机的家养绿植生长健康管理系统

一.系统概述

家养绿植生长健康管理系统具备以下功能:

  1. 主控及数据处理:系统采用STM32单片机作为主控,负责数据处理和外设的控制。

  2. 实时监测功能:实时监测土壤湿度,确保土壤水分保持在适宜范围内。同时,实时检测光照强度,确保植物获得足够的光照。

  3. PH值监测:持续采集土壤的PH值,帮助用户了解土壤的酸碱性。

  4. 自动控制模式:根据检测到的数据进行自动调整;当土壤湿度过高时,系统将自动开启水泵进行排水;当光照不足时,系统根据设定的最低光照值自动开启补光灯。

  5. 手动控制功能:提供手动控制选项,用户可以通过按键自定义控制水泵模块、补光灯等三个外设。

  6. 数据显示与传输:通过OLED显示屏实时显示监测到的土壤湿度、光照强度和PH值等相关数据。同时,利用无线通信模块将采集的数据上传到小程序端,用户可以远程查看植物的生长情况和环境参数,并进行远程控制以启动补水和补光功能。

在这里插入图片描述

二.电路设计

电路图采用Altium Designer进行设计,主要包括以下内容:

  1. 核心控制单元:使用STM32F103C8T6单片机作为系统的主控,最小系统电路构成整个电路的核心。

  2. 温湿度检测:通过DHT11传感器进行温湿度检测,连接方式为通过one-wire总线与单片机的GPIO脚连接。

  3. 光强检测:采用光敏电阻模块进行光强检测,传感器的模拟输出端与单片机的模拟输入端相连。

  4. 水质PH值检测:使用玻璃型PH传感器测量水质的PH值,其模拟输出端与单片机的模拟输入端相接。

  5. 数据上传:通过ESP8266-01S将采集到的数据上传至上位机,利用UART串口与单片机进行通信。

  6. 阈值设定与手动控制:配置独立按键用于阈值设定和手动控制,按键一端接地,另一端连接至单片机的GPIO口。

  7. 温湿度调节及补液控制:通过继电器实现温度调节、湿度调节和补液控制,继电器的数据输出脚与单片机的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);Adc_Init();Adc2_Init();Adc_Init_ch0();KEY1_Init();OLED_Init();OLED_CLS();             //OLED清屏OLED_ShowCN(32,2,0);			//小常硬件OLED_ShowCN(32+16,2,1);OLED_ShowCN(32+32,2,2);OLED_ShowCN(32+32+16,2,3);Relay_init();ALi_ESP8266_GPIO_Init();MQTT_Buff_Init();AliIoT_Parameter_Init();OLED_CLS();OLED_ShowCN(0,0,12);			//小常硬件OLED_ShowCN(16,0,13);OLED_ShowCN(0,2,14);OLED_ShowCN(16,2,15);OLED_ShowCN(0,4,38);OLED_ShowCN(16,4,39);while(1){OLED_Display_Cotrol(); //显示控制函数}	 
} 

四.资料内容

在这里插入图片描述

24-32-48

http://www.dtcms.com/a/391436.html

相关文章:

  • 安装Node.js与NPM包管理器
  • 【数据结构】深入浅出图论:拓扑排序算法全面解析与应用实践
  • 全矩阵布局+硬核技术,中资机器人管家重塑智能服务新格局
  • Linux进程间通信(IPC)完全指南:从管道到共享内存的系统性学习
  • vllm安装使用及问题
  • redis配置与优化(2)
  • 苹果开发者账号( Apple Developer)登录出现:你的 Apple ID 暂时不符合使用此应用程序的条件(您的apple账户不符合资格)
  • Git常用命令和分支管理
  • AI报告撰写实战指南:从提示词工程到全流程优化的底层逻辑与实践突破
  • 主流数据库压测工具全解析(从工具选型到实战压测步骤)
  • Vue的理解与应用
  • TDMQ CKafka 版客户端实战指南系列之一:生产最佳实践
  • 苹果群控系统的资源调度
  • Qt如何实现自定义标题栏
  • Qt QPlugin界面插件式开发Q_DECLARE_INTERFACE、Q_PLUGIN_METADATA和Q_INTERFACES
  • 梯度增强算法(Gradient Boosting)学习笔记
  • 确保邵氏硬度计测量精度问题要考虑事宜
  • `scroll-margin-top`控制当页面滚动到某个元素滚时,它在视口预留的位置,上方留白
  • 内存管理-伙伴系统合并块计算,__find_buddy_pfn,谁是我的伙伴???
  • 【LVS入门宝典】LVS核心原理与实战:Director(负载均衡器)配置指南
  • 算法常考题:描述假设检验的过程
  • IEEE会议征集分论坛|2025年算法、软件与网络安全国际学术会议(ASNS2025)
  • 洞见未来:计算机视觉的发展、机遇与挑战
  • MongoDB集合学习笔记
  • C++ 中 std::list使用详解和实战示例
  • IO流的简单介绍
  • 【AI论文】SAIL-VL2技术报告
  • 基于 SSM(Spring+SpingMVC+Mybatis)+MySQL 实现(Web)软件测试用例在线评判系统
  • 【2/20】理解 JavaScript 框架的作用:Vue 在用户界面中的应用,实现一个动态表单应用
  • Android冷启动和热启动以及温启动都是什么意思