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

描述

项目成品图片:
 

智能大棚


 

 

01

项目简介

 

1.功能详解


 

基于STM32的智慧农业系统。

功能如下:

 

温湿度采集:使用DHT11温湿度传感器采集环境温湿度

土壤湿度采集:通过土壤湿度模块采集土壤湿度

光照强度采集:通过BH1750模块采集环境光照强度

二氧化碳浓度采集:通过CCS811模块采集环境二氧化碳浓度

风扇控制:可自动模式下根据环境温度触发或手动模式下按键开闭

水泵控制:可自动模式下根据土壤湿度触发或手动模式下按键开闭

LED照明灯控制:自动模式下根据环境光强触发或手动模式下按键开闭

蜂鸣器报警:二氧化碳浓度超标时蜂鸣器报警

TFT显示屏显示:显示环境温湿度、土壤湿度、光照强度、二氧化碳浓度和工作模式等信息。

工作模式选择:按键选择工作模式为自动、手动或者云端

OneNET云端:通过旧版OneNET网页平台查看设备上报的实时数据。

 

2.材料清单

STM32F103C8T6最小系统板

1.8寸TFT显示屏

DHT11温湿度传感器

BH1750光照传感器

土壤湿度传感器

CCS811二氧化碳传感器

WiFi模块(ESP8266-01s)

大功率LED照明灯模块

5V风扇模块

5V水泵模块

继电器

蜂鸣器


 

02


 

原理图设计

 

智能大棚

 

03

PCB硬件设计


 

1.PCB图
 

智能大棚

智能大棚

2.PCB板及元器件图

智能大棚

 

04

程序设计

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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);//延迟 } }

 

05

实验效果


 

智能大棚

智能大棚

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分