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

2024-06-15 03:52

本文主要是介绍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);//延迟}}

六、实验效果 

七、资料内容

项目分享

这篇关于STM32项目分享:智能大棚/智慧农业系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1062361

相关文章

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

将Python应用部署到生产环境的小技巧分享

《将Python应用部署到生产环境的小技巧分享》文章主要讲述了在将Python应用程序部署到生产环境之前,需要进行的准备工作和最佳实践,包括心态调整、代码审查、测试覆盖率提升、配置文件优化、日志记录完... 目录部署前夜:从开发到生产的心理准备与检查清单环境搭建:打造稳固的应用运行平台自动化流水线:让部署像