ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1.14MB ,
资源ID:10646063      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10646063.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智慧农业大棚系统设计.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智慧农业大棚系统设计.docx

1、智慧农业大棚系统设计从天空俯瞰荷兰,你会发现奇迹般的景观地面被一块块不同的田地拼凑着,由于荷兰的农业标准,其中大多数的田地都非常小,并且还会被喧闹的城市与郊区分割开。在荷兰核心的农业种植地,摩天大楼和制造业工厂的附近,就是马铃薯地、蔬菜大棚和猪舍。可以说,荷兰超过一半的国土都被用于了农业与园艺。当然,最显著的就是蔬菜大棚建筑群,有的大棚建筑群占地面积高达175公顷(2625亩)。他们就像巨型镜子一样蔓延在荷兰国土上,在阳光的照耀下闪闪发光,到了夜晚则会从内部发出光芒。1需求分析说明1.1设计背景智能化控制系统应用到大棚种植上,利用最先进的生物模拟技术,模拟出最适合棚内植物生长的环境,采用温度、

2、湿度、CO2、光照度传感器等感知大棚的各项环境指标,并通过微机进行数据分析,由微机对棚内的水帘、风机、遮阳板等设施实施监控,从而改变大棚内部的生物生长环境。 智能大棚是自动化控制程序用于在温室大棚智能控制的结果: 比较人工的控制来说,智能控制最大的好处就是能够相对恒定的控制大棚内部的环境,对于环境要求比较高的植物来说,更能避免因为人为因素而造成生产损失。 相对生产来说,将智能化控制系统应用到大棚生产以后,产量与质量比人工控制的大棚都有极大的提高,对于不同的种植品种而言,提高产量与质量相对不同,对于档次较高的经济作物来说,生产效率可以提高30%以上。 相对运行成本来的核算,对于有一定规模的种植企

3、业来说,极大的降低了劳动力成本,设备的投入与运行,可以完全由节约下来的劳动力成本中核算出来,使用时间越长,光节约的劳动力成本就是一笔巨大的利润。1.2组成部分现代化经济的迅速发展,促使了人们对机械智能化的强烈认知。现代化智能温 室也称作自动化温室,是指配备了由计算机控制的可移动天窗、遮阳系统、保温、湿窗帘/风扇降温系统、喷滴灌系统或滴灌系统、移动苗床等自动化设施,基于农业温室环境的高科技“智能”温室。智能温室的控制一般由信号采集系统、中心计算机、控制系统三大部分组成。1.3功能需求(1)对大棚内温度、湿度、光照情况等基本信息的采集并显示。(2)实现灌溉远程化、自动化,大大节省人力成本。(3)对

4、大棚整体结构情况的监测、火灾等突发事件的检测并发出警报。(4)实现大棚内灯等基本电器的远程化、自动化控制,使系统更加智能,用户体验感更好。(5)实现遮阳网等蔬菜保护机制的远程化、自动化控制。(6)对于监测到的大棚内的各种信息输出到客户端的显示屏上。2概要设计说明2.1各模块功能描述(1)主函数模块:初始化系统界面,调用各个模块实现各种功能。(2)协调器模块:接收各个节点发送的数据并通过串口进行转发到客户端,通过串口接收客户端发送的指令并转发给各个节点。(3)温、湿、亮度监测模块:使用温湿度光电传感模块对智慧农业大棚内的温度、湿度、亮度进行监测并实时显示到控制系统界面上。(4)棚顶异物监测模块:

5、使用震动传感器模块对智慧农业大棚的棚顶进行实时监测并实时显示到控制系统界面上。(5)危险区域保护模块:使用触摸传感器模块对存放药品等危险区域、仓库进行监测,一旦监测到有人触摸门把手,立刻在控制系统界面上给出警报。(6)防盗监控模块:使用红外热释电传感器模块对智慧农业大棚内进行实时监测,有人进入,控制系统界面立刻显示警报。(7)蓄水罐液面高度监测模块:使用超声波测距模块对智慧农业大棚的蓄水罐中水的剩余量进行监测,实时显示在控制系统界面上。(8)火灾监控模块:使用烟雾传感器模块对智慧农业大棚内进行实时监测,一旦检测到烟雾,控制系统界面上立刻给出警报。(9)串口控制模块:控制COM1串口的开启和关闭

6、。(10)遮阳网控制模块:使用电机控制模块实现智慧农业大棚遮阳网的收起、放下、紧急停止功能。(11)灌溉模块:使用继电器控制模块实现开始智慧农业大棚的开始灌溉和停止灌溉功能。(12)灯光控制模块:使用电机控制模块的灯光部分实现对智慧农业大棚A、B、C、D四个区的灯光控制。2.2模块调用图图1.1 模块调用图2.3系统执行流程图图1.2 系统执行流程图3详细设计说明3.1温湿亮度检测模块/*mainwindow.c*/void MainWindow:updateTempHumiLig()/温湿亮度 ui-lcd_temp-display(temp_humi_light-getTemperatur

7、e(); ui-lcd_humi-display(temp_humi_light-getHumidity(); ui-lcd_lig-display(QString:number(temp_humi_light-getLight(), f, 1);void MainWindow:processMsgFromSerial(QByteArray msg)/协调器消息解析 if(msg.length() setValue(msg); updateTempHumiLig(); /*temp_humi_light*/void Temp_Humi_Light:setValue(QByteArray& by

8、te) unsigned char adc_value2; temperature = (byte5 8) + byte6; humidity = (byte7 2; light = (adc_value1*256 + adc_value0) * 3.3 / 8192; light = light / 4; light = light * 913;使用温湿度光电传感模块对智慧农业大棚内的温度、湿度、亮度进行实时监测,温湿度光电传感模块把监测的信息发送给协调器,协调器把信息通过串口发送到运行着智慧农业大棚监控系统的开发板,监控系统void MainWindow:processMsgFromSer

9、ial(QByteArray msg)对接收到的信息进行解析并实时显示在监控系统的界面上。3.2棚顶异物检测模块/*mainwindow.c*/振动事件 else if(msg3 = 0x03 & msg4 = 0x01) if(msg5 = 0x01) shake-setState(1); ui-label_shake-setPalette(pe_red); ui-label_shake-setText(棚顶有异物); else if(msg5 = 0x00) shake-setState(0); ui-label_shake-setPalette(pe_black); ui-label_s

10、hake-setText(棚顶安全); 使用震动传感模快对智慧农业大棚的棚顶进行异物检测,震动传感模块不断向协调器发送消息,协调器通过串口向运行着智慧农业大棚监控系统的开发板发送消息,监控系统对消息进行解析。未检测到震动,在监控系统界面上显示棚顶安全;检测到震动,在监控系统界面上显示棚顶有异物。3.3危险区域保护模块/*mainwindow.c*/触摸模块else if(msg3 = 0x07 & msg4 = 0x01) if(msg5 = 0x01) touch-setState(1); ui-label_touch-setPalette(pe_red); ui-label_touch-s

11、etText(有人进入危险区域); else if(msg5 = 0x00) touch-setState(0); ui-label_touch-setPalette(pe_black); ui-label_touch-setText(无人进入危险区域); 使用触摸传感模块对存放药品等危险房间进行保护,触摸模块可安装在房间门把手上。一旦有人触碰该模块,监控系统会立刻从协调器发送的消息中解析出,并显示“有人进入危险区域”在监控系统的界面上;没有人触碰该模块,监控系统界面上显示“无人进入危险区域”。3.4防盗监控模块/*mainwindow.c*/热释红外传感模块 else if(msg3 = 0

12、x05 & msg4 = 0x01) if(msg5 = 0x01) infray-setState(1); ui-label_inf_ray-setPalette(pe_red); ui-label_inf_ray-setText(违法者进入); else if(msg5 = 0x00) infray-setState(0); ui-label_inf_ray-setPalette(pe_black); ui-label_inf_ray-setText(安全); 使用热释红外传感模块对智慧农业大棚进行防盗监控,热释红外传感模块通过协调器不断向智慧农业大棚监控系统发送消息,当监测到有人进入大棚

13、时,监控系统界面上显示“违法者进入”;没有检测到周围有人时,监控系统界面上显示“安全”。3.5蓄水罐液面高度监测模块/*mainwindow.c*/超声波测距模块 else if(msg3 = 0x08 & msg4 = 0x01) int len = 1000 - msg5 * 256 + msg6;/应用于液面检测 ui-label_ultra-setText(QString:number(len); ultra-setState(len); emit addLog(msg.toHex();使用超声波测距模块对智慧农业大棚蓄水罐液面高度进行监测,假定蓄水罐高度1000mm(10m),液面高

14、度即为1000mm减去安装在蓄水罐顶部的超声波测距模块测出的距离,并实时显示在监控系统的界面上。3.6火灾监控模块/*mainwindow.c*/烟雾模块 else if(msg3 = 0x04 & msg4 = 0x01) if(msg5 = 0x01) smoke-setState(1); ui-label_fire-setPalette(pe_red); ui-label_fire-setText(发生火灾); else if(msg5 = 0x00) smoke-setState(0); ui-label_fire-setPalette(pe_black); ui-label_fire

15、-setText(没有火灾); 使用烟雾模块对智慧农业大棚的火灾情况进行监测,并通过协调器向智慧农业大棚监控系统发送消息。没有检测到烟雾时,监控系统界面上显示“没有火灾”;当检测到烟雾时,监控系统界面上显示“发生火灾”。3.7串口控制模块/*mainwindow.c*/void MainWindow:changeSerial(int state)/串口打开关闭操作 /对传入的参数取反操作 if(1 = state) if(serial_server-closeCom() ui-btn_serial-setText(打开); ui-btn_serial-setStyleSheet(BACKGRO

16、UND_COLOR_WHITE); emit addLog(close-success); else emit addLog(warning!-close-failed); else if(0 = state) if(serial_server-openCom() ui-btn_serial-setText(关闭); ui-btn_serial-setStyleSheet(BACKGROUND_COLOR_GREEN); emit addLog(open-success); else emit addLog(warning!-open-failed); 控制协调器与运行智慧农业大棚监控系统间的

17、通信,只有在打开串口的状态下,用户才可以通过监控系统控制各个模块。3.8灯光控制模块/*mainwindow.c*/void MainWindow:on_btn_light_1_clicked()/A区灯光打开 if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_AON) emit addLog(warning!-lightA on-failed); return; ui-btn_light_1-setStyleSheet(BACKGROUND_COLOR_GREEN); emit addLog(lightA on-success); lig

18、hta=1;void MainWindow:on_btn_light_5_clicked()/A区灯光关闭 if(lighta = 0) emit addLog(warning!-lightA off-already); return; if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_AOFF) emit addLog(warning!-lightA off-failed); return; ui-btn_light_1-setStyleSheet(BACKGROUND_COLOR_GREEN); emit addLog(lightA o

19、ff-success); lighta = 0;void MainWindow:on_btn_light_2_clicked()/B区灯打开 if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_BON) emit addLog(warning!-lightB on-failed); return;ui-btn_light_2-setStyleSheet(BACKGROUND_COLOR_GREEN);emit addLog(lightB on-success);lightb=1;void MainWindow:on_btn_light_6_c

20、licked()/B区灯关闭 if(lightb = 0) emit addLog(warning!-lightB off-already); return; if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_BOFF) emit addLog(warning!-lightB off-failed); return; ui-btn_light_6-setStyleSheet(BACKGROUND_COLOR_GREEN); emit addLog(lightB off-success); lightb = 0;void MainWindow

21、:on_btn_light_3_clicked()/c区灯打开 if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_CON) emit addLog(warning!-lightC on-failed); return;ui-btn_light_3-setStyleSheet(BACKGROUND_COLOR_GREEN);emit addLog(lightC on-success);lightc=1;void MainWindow:on_btn_light_7_clicked()/c区灯关闭 if(lightc = 0) emit addL

22、og(warning!-lightC off-already); return; if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_COFF) emit addLog(warning!-lightC off-failed); return; ui-btn_light_7-setStyleSheet(BACKGROUND_COLOR_GREEN);emit addLog(lightC off-success);lightc = 0;void MainWindow:on_btn_light_4_clicked()/D区灯打开 if(-1 = s

23、erial_server-writeToSerial(Motor:MSG_LIGHT_DON) emit addLog(warning!-lightD on-failed); return;ui-btn_light_4-setStyleSheet(BACKGROUND_COLOR_GREEN);emit addLog(lightD on-success);lightc=1;void MainWindow:on_btn_light_8_clicked()/D区灯关闭 if(lightd = 0) emit addLog(warning!-lightD off-already); return;

24、if(-1 = serial_server-writeToSerial(Motor:MSG_LIGHT_DOFF) emit addLog(warning!-lightD off-failed); return; ui-btn_light_8-setStyleSheet(BACKGROUND_COLOR_GREEN);emit addLog(lightD off-success);lightd = 0;void MainWindow:on_btn_light_9_clicked()/一键打开 on_btn_light_1_clicked(); on_btn_light_2_clicked();

25、 on_btn_light_3_clicked(); on_btn_light_4_clicked();void MainWindow:on_btn_light_10_clicked()/一键关闭 on_btn_light_5_clicked(); on_btn_light_6_clicked(); on_btn_light_7_clicked(); on_btn_light_8_clicked();3.9遮阳网控制模块/*mainwindow.c*/void MainWindow:changeMotor(int state) if(0 = state)/电机停止 if(-1 = serial

26、_server-writeToSerial(Motor:MSG_MOTOR_STOP) emit addLog(warning!-emergency stop-failed); return; motor-setState(0); ui-btn_motor_stop-setStyleSheet(BACKGROUND_COLOR_GREEN); ui-btn_motor_b-setStyleSheet(BACKGROUND_COLOR_WHITE); ui-btn_motor_f-setStyleSheet(BACKGROUND_COLOR_WHITE); emit addLog(emergen

27、cy stop-success); else if(1 = state)/电机正转 if(-1 = serial_server-writeToSerial(Motor:MSG_MOTOR_FORE) emit addLog(warning!-light cover pack up-failed); return; motor-setState(1); ui-btn_motor_f-setStyleSheet(BACKGROUND_COLOR_GREEN); ui-btn_motor_b-setStyleSheet(BACKGROUND_COLOR_WHITE); ui-btn_motor_st

28、op-setStyleSheet(BACKGROUND_COLOR_WHITE); emit addLog(light cover pack up-success); else if(2 = state)/电机反转 if(-1 = serial_server-writeToSerial(Motor:MSG_MOTOR_BACK) emit addLog(warning!-light cover put down-failed); return; motor-setState(2); ui-btn_motor_b-setStyleSheet(BACKGROUND_COLOR_GREEN); ui-btn_motor_f-setStyleSheet(BACKGROUND_COLOR_WHITE); ui-btn_motor_stop-setSty

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1