项目合集:
2024届大三大四毕业生也到了毕业论文写作阶段,很多第一次写毕设的学弟学妹一头雾水,对于论文选题、开题报告、论文写作、答辩PPT等流程很是陌生,为了帮助电子信息类学弟学妹及时完成论文写作、通过答辩最终实现顺利毕业,在这里分享优质毕业设计项目的整个流程,今天要分享的是:
2024单片机/电子信息/物联网毕设 基于STM32的农业大棚环境监控系统设计与实现(源码+硬件+论文+答辩)
这里给一个题目综合评分(每项满分5分)
难度系数:3分
工作量:3分
创新点:4分
项目分享:见文末!
本系统主要由单片机系统STM32F103、OLED显示、温湿度采集模块、CO2采集模块、光线强度采集模块以及风扇、水泵等控制模块。采用单片机作为主控芯片,将采集到的温湿度和光线,二氧化碳浓度显示到1.8寸OLED显示屏上,来实现当前大棚的采集和控制。
总体的设计和要求如下:
(1)检测农业大棚中各种环境数据,例如:光照、空气温湿度、气体浓度和土壤湿度等。通过手动或自动实现对环境的控制,使大棚内的环境保持在适宜农作物生长的状态。(2)及时显示大棚内温湿度、光照强度、气体浓度和土壤湿度等状态。(3)大棚内的环境参数的上限和下限值可手动进行预设定。(4)大棚内的环境参数低于或高于上下限值时,蜂鸣器启动报警功能,以便用户执行相应的措施,控制参数的变化。(5)手机APP上设置自动和手动状态,满足用户的需求。(6)设置无线通信模块,可通过手机APP显示并远程监控各种环境参数。原理图:
PCB:
模块清单(淘宝搜索直接购买):
核心代码main.c
void chuishi_1(void) // 初始界面1显示 {Gui_DrawFont_GBK16(0, 0, BLACK, WHITE, "空气温度: ℃");Gui_DrawFont_GBK16(0, 16, BLACK, WHITE, "空气湿度: %");Gui_DrawFont_GBK16(0, 32, BLACK, WHITE, "土壤湿度: %");Gui_DrawFont_GBK16(0, 48, BLACK, WHITE, "光照强度: lux");Gui_DrawFont_GBK16(0, 64, BLACK, WHITE, "二氧化碳: ‰");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, "未连接:"); } void chuishi_2(void) {Gui_DrawFont_GBK16(10, 30, BLACK, WHITE, "温度阈值:");Gui_DrawFont_GBK16(10, 46, BLACK, WHITE, "温度阈值:");Gui_DrawFont_GBK16(10, 62, BLACK, WHITE, "土壤湿度阈值:");Gui_DrawFont_GBK16(10, 88, BLACK, WHITE, "光照阈值:");Gui_DrawFont_GBK16(10, 102, BLACK, WHITE, "二氧化碳阈值:"); } void control_gui(void) // 控制端口显示 {switch (control_mode){case 0:Gui_DrawFont_GBK16(0, 128, BLUE, WHITE, "自动");Gui_DrawFont_GBK16(45, 128, BLACK, WHITE, "手动");Gui_DrawFont_GBK16(90, 128, BLACK, WHITE, "云端");break;case 1:Gui_DrawFont_GBK16(0, 128, BLACK, WHITE, "自动");Gui_DrawFont_GBK16(45, 128, BLUE, WHITE, "手动");Gui_DrawFont_GBK16(90, 128, BLACK, WHITE, "云端");break;case 2:Gui_DrawFont_GBK16(0, 128, BLACK, WHITE, "自动");Gui_DrawFont_GBK16(45, 128, BLACK, WHITE, "手动");Gui_DrawFont_GBK16(90, 128, BLUE, WHITE, "云端");break;} } void GUI_Test1(void) /// 主界面控制和显示,环境数据显示 {if (Gui_mode_last != Gui_mode) // 判断是否改变,更新固定显示{chuishi_1();Gui_mode_last = Gui_mode;}LCD_ShowNum(70, 0, SUR_status.air_tem, 2, BLACK, WHITE);LCD_ShowNum(70, 16, SUR_status.air_hum, 2, BLACK, WHITE);LCD_ShowNum(70, 32, SUR_status.soil_hum, 2, BLACK, WHITE);LCD_ShowNum(70, 48, SUR_status.light, 4, BLACK, WHITE);LCD_ShowNum(70, 64, SUR_status.car, 2, BLACK, WHITE); // 数据显示 } void GUI_Test2(void) // 参数设置显示 {if (Gui_mode_last != Gui_mode) // 初始显示{Gui_DrawFont_GBK16(40, 0, BLACK, WHITE, "参数设置");Gui_DrawFont_GBK16(10, 16, BLACK, WHITE, "温度阈值:");Gui_DrawFont_GBK16(10, 32, BLACK, WHITE, "土湿阈值:");Gui_DrawFont_GBK16(10, 48, BLACK, WHITE, "光照阈值:");Gui_DrawFont_GBK16(10, 64, BLACK, WHITE, "CO2阈值:");Gui_mode_last = Gui_mode;}Gui_DrawFont_GBK16(0, threshold_sta * 16, BLACK, WHITE, "*");LCD_ShowNum(80, 16, SUR_status.air_tem_num, 2, BLACK, WHITE);LCD_ShowNum(80, 32, SUR_status.soil_hum_num, 2, BLACK, WHITE);LCD_ShowNum(80, 48, SUR_status.light_num, 4, BLACK, WHITE);LCD_ShowNum(80, 64, SUR_status.car_num, 3, BLACK, WHITE); // 参数显示 } void GUI_Test3(void) // 手动控制界面 {if (Gui_mode_last != Gui_mode) // 界面显示{Gui_DrawFont_GBK16(40, 0, BLACK, WHITE, "手动控制");Gui_DrawFont_GBK16(20, 16, BLACK, WHITE, "风扇:");Gui_DrawFont_GBK16(20, 32, BLACK, WHITE, "水泵:");Gui_DrawFont_GBK16(20, 48, BLACK, WHITE, "灯光:");Gui_mode_last = Gui_mode;}Gui_DrawFont_GBK16(0, threshold_sta_control * 16, BLACK, WHITE, "*"); // 显示选择位置if (FAN_KEY) // 手动控制显示文字Gui_DrawFont_GBK16(80, 16, BLACK, WHITE, "开");elseGui_DrawFont_GBK16(80, 16, BLACK, WHITE, "关");if (Water_pump_KEY)Gui_DrawFont_GBK16(80, 32, BLACK, WHITE, "开");elseGui_DrawFont_GBK16(80, 32, BLACK, WHITE, "关");if (LED_KEY)Gui_DrawFont_GBK16(80, 48, BLACK, WHITE, "开");elseGui_DrawFont_GBK16(80, 48, BLACK, WHITE, "关"); } int main(void) {unsigned char *dataPtr = 0;delay_init(); // 延时函数初始化SWITCH_Init(); // 初始化与LED连接的硬件接口 水泵 风扇Usart2_Init(115200); // wifi模块串口uart_init(115200); // 串口1I2C_GPIO_Config(); // iic初始化 ccs811,模块初始化 检测CO2CS_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_VersionSingle_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);// 延迟} }
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176论文目录:
整体结构:大概一万多字
联系+Q:1364225494
相关知识
大学生学业预警系统设计与实现(源码+开题)
基于STM32单片机的鲜花售卖机系统设计
基于node.js+vue花店连锁经营管理系统设计与实现(开题+程序+论文)计算机毕业设计
电科毕设 远程智能浇花灌溉系统
基于ssm+vue基于web的软件资源库的设计与实现(开题报告+源码+论文)
基于STM32的智能花盆浇水系统设计
温室环境监控系统论文
基于物联网的农业虫害智能监控系统
基于STM32开发的智能空气质量监测系统
【IoT开发】机智云平台+STM32的植物浇水系统的设计与实现
网址: 2024届毕设 基于STM32的农业大棚环境监控系统设计与实现(源码+硬件+论文+答辩) https://m.huajiangbk.com/newsview454068.html
上一篇: 智能道面系统“铺到”花湖机场 |
下一篇: 无人机助力违法毒品种植智能监测预 |