STM32项目分享:智能大棚/智慧农业系统

 

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图 

 2.PCB板打样焊接图

五、程序设计 

六、实验效果 

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1FZ421m7Zd/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末) 

二、项目简介

1.功能详解

基于STM32的智能大棚/智慧农业系统。功能如下:

  1. 温湿度采集:使用DHT11温湿度传感器采集环境温湿度
  2. 土壤湿度采集:通过土壤湿度模块采集土壤湿度
  3. 光照强度采集:通过BH1750模块采集环境光照强度
  4. 二氧化碳浓度采集:通过CCS811模块采集环境二氧化碳浓度
  5. 风扇控制:可自动模式下根据环境温度触发或手动模式下按键开闭
  6. 水泵控制:可自动模式下根据土壤湿度触发或手动模式下按键开闭
  7. LED照明灯控制:可自动模式下根据环境光强触发或手动模式下按键开闭
  8. 蜂鸣器报警:二氧化碳浓度超标时蜂鸣器报警
  9. TFT显示屏显示:显示环境温湿度、土壤湿度、光照强度、二氧化碳浓度和工作模式等信息。
  10. 工作模式选择:按键选择工作模式为自动、手动或者云端
  11. OneNET云端:通过旧版OneNET网页平台查看设备上报的实时数据。

2.主要器件

  • STM32F103C8T6最小系统板
  • 1.8寸TFT显示屏
  • DHT11温湿度传感器
  • BH1750光照传感器
  • 土壤湿度传感器
  • CCS811二氧化碳传感器
  • WiFi模块(ESP8266-01s)
  • 大功率LED照明灯模块
  • 5V风扇模块
  • 5V水泵模块
  • 继电器
  • 蜂鸣器

三、原理图设计

四、PCB硬件设计

1.PCB图 

 2.PCB板打样焊接图

五、程序设计 

int main(void){unsigned char *dataPtr = 0;delay_init();	    	 //延时函数初始化	  SWITCH_Init();		  	 	//初始化与LED连接的硬件接口 水泵 风扇Usart2_Init(115200);    //wifi模块串口uart_init(115200);  //串口1I2C_GPIO_Config();   //iic初始化  ccs811,模块初始化  检测CO2 CS_EN();  //对ccs811 配置delay_ms(100);ON_CS();delay_ms(100);Single_ReadI2C(CCS811_Add,0x20,Information,1);  //Read CCS's information  ,ID,0x81Single_ReadI2C(CCS811_Add,0x23,&Information[1],2);	//FW_Boot_Version  Single_ReadI2C(CCS811_Add,0x24,&Information[3],2); 	//FW_App_VersionSingle_ReadI2C(CCS811_Add,0x00,&Status,1);if(Status&0x10)	 Single_MWriteI2C_byte(CCS811_Add,0xF4,&temp,0);	//Used to transition the CCS811 state from boot to application mode, a write with no data is required.Single_ReadI2C(CCS811_Add,0x00,&Status,1);Single_ReadI2C(CCS811_Add,0x01,&MeasureMode,1);Single_WriteI2C_byte(CCS811_Add,0x01,0x10); //Write Measure Mode Register,sensor measurement every second,no interruptOFF_CS(); 	//二氧化碳模块初始化KEY_Init();//按键初始化Lcd_Init();//st7735 LCD屏幕初始化LCD_LED_SET;//通过IO控制背光亮		Lcd_Clear(WHITE);  //清屏Adc_Init();  //ADc初始化,采集土壤湿度模块的模拟量init_data();  //初始阈值参数设置while(DHT11_Init())	//DHT11初始化	温湿度{delay_ms(200);}//TIM4_Int_Init(999,7199);bh1750_iic_init();///光照模块初始化Gui_DrawFont_GBK16(10,60,BLACK,WHITE,"正在连接ONENET");ESP8266_Init();					//初始化ESP8266 wifiwhile(OneNet_DevLink())			//接入OneNETdelay_ms(500);Onenet_succes=1;  ///表示接入成功Lcd_Clear(WHITE);//清屏Shuju();//获取环境数据Gui_DrawFont_GBK16(10,144,BLACK,WHITE,"WIFI:");if(Onenet_succes)Gui_DrawFont_GBK16(60,144,BLACK,WHITE,"已连接:");elseGui_DrawFont_GBK16(60,144,BLACK,WHITE,"未连接:");while(1){		key=KEY_Scan(0);//检测按键threshold_value();  //界面和按键处理counts++;//累加,用于onenet数据上传计时control_set();//控制处理if(counts>20)   //counts>90  向云平台发送数据{OneNet_SendData();	//发送数据ESP8266_Clear();   //清理esp8266 wifi模块数据缓存  counts=0;Shuju();    //数据采集}dataPtr = ESP8266_GetIPD(0);//检测onenet是否下发数据if(dataPtr != NULL)OneNet_RevPro(dataPtr);//处理下发数据delay_ms(2);//延迟}}

六、实验效果 

七、资料内容

项目分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/27395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超全Midjourney自学教程,怒码1万3千字!这是我见过最良心的教程啦!

前段时间,后台有网友私信我,说想跟我一起学AI~当时一边开心一边惶恐,满足于被人看到自己的努力、又担心自己是不是教不好别人,毕竟我自己也是业余时间边学边发的那种~ 不过,我还是会继续搬运或整理一些我认为值得记录…

Spark学习——不同模式下执行脚本

举个简单的例子:使用spark官方用例"取pi值" 一、local模式 进入spark目录执行后台命令: bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[*] \ ./examples/jars/spark-examples_2.12-3.2.1.jar \ 10运行结…

七、IP路由原理和路由引入

目录 一、IP路由原理 二、路由引入 2.1、双点双向路由引入 2.2、路由回灌 三、路由策略与路由控制 路由匹配工具(规则) ACL IP前缀列表 路由控制工具(控制) 策略工具1 策略工具2 搭配组合 组…

理解Es的DSL语法(二):聚合

前一篇已经系统介绍过查询语法,详细可直接看上一篇文章(理解DSL语法(一)),本篇主要介绍DSL中的另一部分:聚合 理解Es中的聚合 虽然Elasticsearch 是一个基于 Lucene 的搜索引擎,但…

LaTeX 学习 第2节 数学结构

----用教授的方式学习 目录 2.1 上标与下标 2.2 上下画线与花括号 2.3 分式 2.4 根式 2.5 矩阵 ​​​​​​​LaTex安装包:https://download.csdn.net/download/weixin_38135241/89416392 LaTex- windows安装包:https://download.csdn.net/down…

SpringBoot3 整合 Mybatis 完整版

本文记录一下完整的 SpringBoot3 整合 Mybatis 的步骤。 只要按照本步骤来操作&#xff0c;整合完成后就可以正常使用。1. 添加数据库驱动依赖 以 MySQL 为例。 当不指定 依赖版本的时候&#xff0c;会 由 springboot 自动管理。 <dependency><groupId>com.mysql&l…

yolo案例项目学习记录

box-ocr: 监控摄像头视频流实时计数传送带的货物&#xff0c;并提取货物上面文字或二维码 1.本地环境&#xff1a; 1.1torch、torchvison、torchaudio版本对应关系 PyTorch中torch、torchvision、torchaudio、torchtext版本对应关系_torch2.0.1对应的torchvision-CSDN博客 1…

Python 全栈系列252 一些小计划

说明 最近整体进展还比较顺利&#xff0c;不过也因为这样&#xff0c;好几个线头怎么继续平衡和推进需要稍微捋一下。 内容 按重要|紧急方法来看&#xff0c;线头1是重要且紧急的&#xff0c;QTV200也算重要且紧急&#xff0c;其他都算是重要不紧急。 线头1: 数据清洗 虽然…

OpenGL3.3_C++_Windows(10)

最终演示 ​ demo演示 Assimp模型渲染 模型导入库Assimp&#xff1a;导入很多种不同的模型文件格式&#xff0c;加载至Assimp的通用数据结构&#xff08;树形&#xff09;中&#xff0c;不论导入的是什么种类的文件格式&#xff0c;用同一种方式访问我们需要的数据。 Assimp库…

【python-AI篇】人工智能技能树思维导图

大致总结一下得出如下思维导图&#xff0c;如不完善日后迭代更新 1. python基础三方库 1.1 科学计算库 ---- numpy库 1.2 科学计算库 ---- Scipy库 1.3 数据分析处理库 ---- pandas库 1.4 可视化库 ---- matplotlib库 1.5 可视化库 ---- seaborn库 1.6 机器学习和数据挖掘库 …

这世上又多了一只爬虫(spiderflow)

让我们一起默念&#xff1a; 爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫 接着大声喊出来&#xff1a; 一&#xff01;只&#xff01;爬&#xff01;虫&#xff01;呀&#xff01;爬&#xff01;呀&#xff01;爬&#xf…

高考志愿填报选专业,兴趣爱好和就业前景哪个优先?

每个人都有自己的兴趣与爱好&#xff0c;而高考志愿填报是在为自己选择职业方向。最理想的状态就是把自己的兴趣和爱好与自己的职业统一起来&#xff0c;让兴趣和爱好促进职业的发展&#xff0c;为职业增添动力。但现实生活中&#xff0c;这种理想的状态并不是每个人都能达到的…

AXI 1G/2.5G Ethernet Subsystem IP核使用过程中参数配置全解

AXI 1G/2.5G Ethernet Subsystem 是一个为FPGA设计的以太网子系统&#xff0c;它支持1Gbps和2.5Gbps的数据传输速率&#xff0c;使得FPGA能够直接进行高速以太网通信。这个子系统通常包含以太网MAC控制器、GMII&#xff08;千兆媒体独立接口&#xff09;或RGMII&#xff08;简化…

抖音视频素材在哪找无版权?免版权可以剪辑视频素材网站分享

在抖音视频制作中&#xff0c;素材的选择至关重要。今天&#xff0c;我就为大家推荐几个宝藏网站&#xff0c;帮你找到既好用又无版权纠纷的视频素材。无论你是新手还是老手&#xff0c;这些网站都能满足你的需求。 蛙学府 首先推荐的是蛙学府。这个网站提供丰富的视频素材&am…

[CUDA编程] cuda graph优化心得

CUDA Graph 1. cuda graph的使用场景 cuda graph在一个kernel要多次执行&#xff0c;且每次只更改kernel 参数或者不更改参数时使用效果更加&#xff1b;但是如果将graph替换已有的kernel组合&#xff0c;且没有重复执行&#xff0c;感觉效率不是很高反而低于原始的kernel调用…

Linux-笔记 设备树插件

目录 前言&#xff1a; 设备树插件的书写规范&#xff1a; 设备树插件的编译&#xff1a; 内核配置: 应用背景&#xff1a; 举例&#xff1a; 前言&#xff1a; 设备树插件&#xff08;Device Tree Blob Overlay&#xff0c;简称 DTBO&#xff09;是Linux内核和嵌入式系统…

【Ardiuno】使用ESP32单片机网络功能调用API接口(图文)

接着上文连通wifi后&#xff0c;我们通过使用HTTPClient库进行网络相关操作&#xff0c;这里我们通过http协议进行接口调用。 为了简化操作&#xff0c;小飞鱼这里使用了本地服务器上的文件作为接口&#xff0c;正常操作时会调用接口后&#xff0c;将服务器返回的数据进行解析…

门控循环单元GRU与长短期记忆网络LSTM

门控循环单元与长短期记忆网络 门控隐状态 问题提出&#xff1a;对于一个序列来说不是每个观察值都是同等重要想只记住相关的观察需要&#xff1a; 能关注的机制&#xff08;更新门&#xff09;能遗忘的机制&#xff08;重置门&#xff09; 第一个词元的影响至关重要。 我们…

【第10章】Vue之Element Plus常用组件

文章目录 前言一、表格1. 带斑马纹表格2. 展示 二、分页1.国际化(中文)2.分页代码3. 展示 三、表单1. 表单代码2. 展示 四、卡片1. 卡片代码2. 展示 总结 前言 通过上一章的快速入门&#xff0c;我们已经学习了按钮使用&#xff0c;接下来学习Element Plus的常用组件&#xff…

统计信号处理基础 习题解答10-12

题目&#xff1a; 如果&#xff0c;其中&#xff1a; 对某个&#xff0c;令。证明当时使最大。另外&#xff0c;证明。它们为什么是相同的&#xff1f;如果&#xff0c;基于的的MMSE估计量是什么&#xff1f; 解答&#xff1a; 根据多维高斯分布的定义&#xff0c;可以得到&am…