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

STM32项目分享:智能植物灌溉系统

“我们不做一锤子买卖,只做技术成长的长期伙伴!”

目录

一、视频展示

二、项目简介

三、原理图设计

四、PCB硬件设计

五、程序设计

六、资料分享


一、视频展示

智能植物灌溉系统 -视频分享

二、项目简介

题目:智能植物灌溉系统
主控:STM32
土壤湿度传感器
DS18B20温度传感器
oled显示
蓝牙模块
三按键
灌溉继电器
DC供电
功能如下:

1、屏幕实时显示当前土壤湿度,温度等数据。
2、可按键设置温湿度阈值。
3、当土壤湿度低于最低湿度阈值时或土壤温度高于最大温度阈值时,打开灌溉继电器进行灌溉,
     直到数据恢复正常即可关闭。
4、手机连接蓝牙,可得到单片机传来的的数据。

三、原理图设计

四、PCB硬件设计

五、程序设计

#include "stm32f10x.h"                  // Device header
#include "delay.h"
#include "lcd.h"
#include "IOput.h"
#include "usart.h"
#include "adc.h"
#include "ds18b20.h"extern u8 res,ress;
extern u8 receiving_flag; // 新增一个标志,用于标记是否开始接收数组
extern u16 buf[20];
u8 mode,controlState;u8 gz,sw;
u8 show_flag,show1_flag,f,dec_gz=30,dec_ts=20,count=0,ph,mode_flag=0;void wifi(){if(res=='a'){res=0;set_flag=1;}else if(res=='b'){res=0;add_flag=1;}else if(res=='c'){res=0;dec_flag=1;}}int main (void)
{delay_init();NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);OLED_Init();delay_ms(1);OLED_Clear();output_init();input_init();Usart1_Init(9600);Usart2_Init(9600);DS18B20_Init();Adc_Init();while(1){wifi();temp_get();count++;sw=100-Get_Adc_Average(1,10)*100/4096; key_scan(1,0,0);if((set_flag==1 && show_flag!=1) || res=='a'){res=0;OLED_Clear();show1_flag=0;set_flag=0;show_flag++;if(show_flag>=2){show_flag=0;}}if(show_flag==0){OLED_ShowCH(0,0,"智能植物灌溉系统");OLED_ShowCH(0,2,"温度:");OLED_ShowNum(40,2,wd,2,16);OLED_ShowCH(64,2,"土湿:");OLED_ShowNum(104,2,sw,2,16);OLED_ShowCH(0,4,"灌溉:");if(jdq1==0){OLED_ShowCH(40,4,"打开");}else{OLED_ShowCH(40,4,"关闭");}if(add_flag==1){mode_flag++;add_flag=0;if(mode_flag>=2)mode_flag=0;}if(mode_flag==0){BEEP=1;OLED_ShowCH(0,6,"手动模式");if(dec_flag==1){dec_flag=0;jdq1=~jdq1;}}else{OLED_ShowCH(0,6,"自动模式");if(sw<=dec_ts || wd>=dec_gz){jdq1=0;BEEP=0;}else{jdq1=1;BEEP=1;}}}if(show_flag==1){OLED_ShowCH(0,0,"最高温度:");OLED_ShowCH(0,2,"最低土湿:");OLED_ShowNum(72,0,dec_gz,2,16);OLED_ShowNum(72,2,dec_ts,2,16);if((set_flag==1 && show_flag==1) || res=='b'){res=0;set_flag=0;show1_flag++;if(show1_flag>=2){show_flag=0;	OLED_Clear();}}if(show1_flag==0){OLED_ShowCH(112,0,"←");if(add_flag==1 || res=='c'){res=0;add_flag=0;dec_gz++;}if(dec_flag==1 || res=='d'){res=0;dec_flag=0;dec_gz--;}if(dec_gz>=100 || dec_gz<=0){dec_gz=0;}}if(show1_flag==1){OLED_ShowCH(112,2,"←");if(add_flag==1 || res=='c'){res=0;add_flag=0;dec_ts++;}if(dec_flag==1 || res=='d'){res=0;dec_flag=0;dec_ts--;}if(dec_ts>=100 || dec_ts<=0){dec_ts=0;}}}if(count>=50){count=0;UsartPrintf(USART1,"温度:%f\r\n",wd);UsartPrintf(USART1,"土湿:%d\r\n",sw);if(jdq1==0)UsartPrintf(USART1,"灌溉继电器已打开\r\n");elseUsartPrintf(USART1,"灌溉继电器已关闭\r\n");UsartPrintf(USART1,"\r\n");}}
}

六、资料分享

点击即可查看当前资料分享。

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

相关文章:

  • 高级软考-系统架构设计师知识点1
  • 东城企业网站建设潍坊网站优化培训
  • 信阳网站建设哪个好河北邢台重大新闻
  • 《Python 自动化上传豆瓣电影到飞书:十个真实踩坑记录与避坑指南》
  • ubuntu24.4下载mysql报错解决、下载maraiDB
  • 建设银行网站修改预留手机号企业展厅设计公司100%正品保障
  • 数据结构 08 线性结构
  • 【Linux网络】Socket编程UDP
  • 互动网站建设多少钱wordpress怎么开发app
  • Linux 常见命令汇总:从入门到实用的效率工具包
  • Linux修炼:进程控制(二)
  • 机器学习笔记-假设检验
  • 自然语言处理(NLP)—发展历程(背景、技术、优缺点、未来方向)
  • 【实战】自然语言处理--长文本分类(1)DPCNN算法
  • 兰州网站建设多少钱网页制作和设计实验目的
  • 专门做动漫的网站有哪些网站开发文件结构组成
  • Flexbox
  • `.bat`、`.cmd`、`.ps1`的区别
  • MySQL 安装教程(Windows 版):从入门到配置全流程
  • 网站建设责任分解杭州市建筑业协会官网
  • 【数据库】MySQL数据库基础
  • 四川省建设厅官方培训网站网站顶部
  • 图解Vue3 响应式,手动实现核心原理
  • 压缩与缓存调优实战指南:从0到1根治性能瓶颈(三)
  • 【设计模式】外观模式/门面模式(Facaed)
  • 矽塔 SA8206 36V/2.5A 过压/过流保护芯片
  • 莱州做网站网站建设给客户看的ppt
  • Windows - Maven 安装到 IDEA 配置全流程
  • java填充word模版导出word文件支持导出pdf,支持本地下载和网络下载,使用jar包
  • 网络安全:Apache Druid 安全漏洞