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);  //串口1
    I2C_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,0x81
    Single_ReadI2C(CCS811_Add,0x23,&Information[1],2);	//FW_Boot_Version  
	Single_ReadI2C(CCS811_Add,0x24,&Information[3],2); 	//FW_App_Version
  	Single_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 interrupt
    OFF_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 wifi
	while(OneNet_DevLink())			//接入OneNET
	delay_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,"已连接:");
	else
	Gui_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智慧农业大棚实现方案 #### 一、硬件选型与配置 在构建基于STM32智能温室大棚控制系统时,选用STM32F103C8T6作为核心控制器。该型号具备丰富的外设接口资源以及强大的处理能力,能够满足多传感器数据采集及远程通信的需求[^1]。 #### 二、功能模块介绍 整个系统实现了多项自动化管理功能: - **温湿度监测**:利用DHT11传感器获取空气中的温度和相对湿度信息; - **土壤水分检测**:采用专门设计用于测量介质含水量变化特性的探针式感应元件来感知植物根部周围基质湿润程度; - **光照度量测**:借助高精度光学感测组件BH1750完成对自然光源强度数值化表征的任务; - **CO₂浓度监控**:集成CCS811气体分析单元负责识别并量化空气中存在的微量成分——特别是对于作物生长至关重要的二氧化碳水平; - **通风降温装置调控**:当室内气温超过预设阈值时启动风扇进行强制散热操作;反之则停止运行以节省能源消耗; - **灌溉供水机制指挥**:依据埋入土层深处探测头反馈回来的数据判断是否开启喷淋设施给农作物补水保湿; - **补光灯具开关指令下发**:按照当前时段内接收到的日光照射情况决定要不要打开人工辅助照明源补充不足部分; - **可视化界面呈现**:经由图形液晶屏直观展示各项参数指标及其变动趋势供现场人员参考决策之用; - **网络传输协议适配**:配合Wi-Fi模组接入互联网服务平台(如阿里云IoT套件),使得远端用户也能随时随地掌握最新动态[^2]。 #### 三、软件架构概述 为了确保各个子系统的协调运作,程序逻辑遵循分层设计理念展开编码实践。具体而言就是把整体流程拆解成若干独立却又相互关联的功能块,再分别编写对应的驱动函数和服务例程予以支持。下面给出一段简化后的Python伪代码片段用来说明这一过程: ```python import time from machine import Pin, I2C from dht import DHT11 from bh1750 import BH1750 from ccs811 import CCS811 def setup(): global i2c_bus, temp_humi_sensor, light_level_meter, co2_detector # 初始化IIC总线对象实例 i2c_bus = I2C(scl=Pin(5), sda=Pin(4)) # 创建各类传感设备的操作句柄 temp_humi_sensor = DHT11(Pin(2)) # 温湿计位于GPIO2引脚上 light_level_meter = BH1750(i2c_bus) # 光照仪挂载到上述定义好的I²C通道里 co2_detector = CCS811(i2c_bus) # CO₂测试盒同样如此连接起来 while True: try: temperature, humidity = read_temperature_and_humidity(temp_humi_sensor) lux_value = measure_illuminance(light_level_meter) ppm_concentration = detect_carbon_dioxide(co2_detector) adjust_fan_speed_based_on_temperature(temperature) control_watering_system_according_to_soil_moisture() toggle_supplemental_lighting(lux_value) update_display_with_latest_readings( temperature, humidity, lux_value, ppm_concentration ) check_for_excessive_gas_levels(ppm_concentration) upload_data_to_cloud_server({ 'temp': temperature, 'humi': humidity, 'lux' : lux_value, 'ppm' : ppm_concentration }) sleep_interval_between_measurements() except Exception as e: handle_error(e) # 下面是一些假设已经实现的具体方法声明... def read_temperature_and_humidity(sensor): ... def measure_illuminance(meter): ... def detect_carbon_dioxide(detector): ... def adjust_fan_speed_based_on_temperature(t): ... def control_watering_system_according_to_soil_moisture(): ... def toggle_supplemental_lighting(brightness): ... def update_display_with_latest_readings(*args): ... def check_for_excessive_gas_levels(concentration): ... def upload_data_to_cloud_server(data_dict): ... def sleep_interval_between_measurements(): ... def handle_error(exception_obj): ... ``` 请注意以上仅为示意性质而非可以直接执行的真实语法结构。实际开发过程中还需要考虑更多细节问题比如错误恢复策略制定、电源管理模式切换等方面的内容。 #### 四、电路布局规划 针对所提及的主要元器件之间的电气连接关系绘制出清晰易懂的原理图有助于提高组装效率降低调试难度。这里提供了一个简化的框图表示法以便快速理解各部件间的交互方式: ![Smart Greenhouse Block Diagram](https://example.com/block_diagram.png) 其中包含了但不限于以下几个要点: - STM32微处理器为核心节点与其他外围电路建立稳定可靠的通讯链路; - 各类模拟信号输入端口需经过适当滤波处理后再送至AD转换器内部做进一步加工; - 数字IO管脚分配应充分考虑到抗干扰能力和兼容性因素的影响; - 动力输出级的设计要兼顾安全性和效能最优化原则; - 数据交换路径尽可能缩短减少延迟时间提升响应速度。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值