智慧农业大棚_第1页
智慧农业大棚_第2页
智慧农业大棚_第3页
智慧农业大棚_第4页
智慧农业大棚_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计说明书课程名称: 课程设计题目: 专 业: 班 级: 姓 名: 学 号: 2016年 7月 22日指导教师评语成绩: 指导教师(签章):年月日目录1需求分析说明11.1设计背景11.2组成部分11.3功能需求12概要设计说明22.1各模块功能描述22.2模块调用图22.3系统执行流程图33详细设计说明53.1温湿亮度检测模块53.2棚顶异物检测模块63.3危险区域保护模块63.4防盗监控模块73.5蓄水罐液面高度监测模块83.6火灾监控模块83.7串口控制模块93.8灯光控制模块103.9遮阳网控制模块143.10灌溉模块154调试分析174.1终端节点与协调器之间通信测试174.2协

2、调器与开发板之间通信测试185用户使用说明196课程设计总结191需求分析说明1.1设计背景智能化控制系统应用到大棚种植上,利用最先进的生物模拟技术,模拟出最适合棚内植物生长的环境,采用温度、湿度、CO2、光照度传感器等感知大棚的各项环境指标,并通过微机进行数据分析,由微机对棚内的水帘、风机、遮阳板等设施实施监控,从而改变大棚内部的生物生长环境。 智能大棚是自动化控制程序用于在温室大棚智能控制的结果: 比较人工的控制来说,智能控制最大的好处就是能够相对恒定的控制大棚内部的环境,对于环境要求比较高的植物来说,更能避免因为人为因素而造成生产损失。 相对生产来说,将智能化控制系统应用到大棚生产以后,

3、产量与质量比人工控制的大棚都有极大的提高,对于不同的种植品种而言,提高产量与质量相对不同,对于档次较高的经济作物来说,生产效率可以提高30%以上。 相对运行成本来的核算,对于有一定规模的种植企业来说,极大的降低了劳动力成本,设备的投入与运行,可以完全由节约下来的劳动力成本中核算出来,使用时间越长,光节约的劳动力成本就是一笔巨大的利润。1.2组成部分现代化经济的迅速发展,促使了人们对机械智能化的强烈认知。现代化智能温 室也称作自动化温室,是指配备了由计算机控制的可移动天窗、遮阳系统、保温、湿窗帘/风扇降温系统、喷滴灌系统或滴灌系统、移动苗床等自动化设施,基于农业温室环境的高科技“智能”温室。智能

4、温室的控制一般由信号采集系统、中心计算机、控制系统三大部分组成。1.3功能需求(1) 对大棚内温度、湿度、光照情况等基本信息的采集并显示。(2) 实现灌溉远程化、自动化,大大节省人力成本。(3) 对大棚整体结构情况的监测、火灾等突发事件的检测并发出警报。(4) 实现大棚内灯等基本电器的远程化、自动化控制,使系统更加智能,用户体验感更好。(5) 实现遮阳网等蔬菜保护机制的远程化、自动化控制。(6)对于监测到的大棚内的各种信息输出到客户端的显示屏上。2概要设计说明2.1各模块功能描述(1) 主函数模块:初始化系统界面,调用各个模块实现各种功能。(2) 协调器模块:接收各个节点发送的数据并通过串口进

5、行转发到客户端,通过串口接收客户端发送的指令并转发给各个节点。(3) 温、湿、亮度监测模块:使用温湿度光电传感模块对智慧农业大棚内的温度、湿度、亮度进行监测并实时显示到控制系统界面上。(4) 棚顶异物监测模块:使用震动传感器模块对智慧农业大棚的棚顶进行实时监测并实时显示到控制系统界面上。(5) 危险区域保护模块:使用触摸传感器模块对存放药品等危险区域、仓库进行监测,一旦监测到有人触摸门把手,立刻在控制系统界面上给出警报。(6) 防盗监控模块:使用红外热释电传感器模块对智慧农业大棚内进行实时监测,有人进入,控制系统界面立刻显示警报。(7) 蓄水罐液面高度监测模块:使用超声波测距模块对智慧农业大棚

6、的蓄水罐中水的剩余量进行监测,实时显示在控制系统界面上。(8) 火灾监控模块:使用烟雾传感器模块对智慧农业大棚内进行实时监测,一旦检测到烟雾,控制系统界面上立刻给出警报。(9) 串口控制模块:控制COM1串口的开启和关闭。(10) 遮阳网控制模块:使用电机控制模块实现智慧农业大棚遮阳网的收起、放下、紧急停止功能。(11) 灌溉模块:使用继电器控制模块实现开始智慧农业大棚的开始灌溉和停止灌溉功能。(12) 灯光控制模块:使用电机控制模块的灯光部分实现对智慧农业大棚A、B、C、D四个区的灯光控制。2.2模块调用图图1.1 模块调用图2.3系统执行流程图图1.2 系统执行流程图3详细设计说明3.1温

7、湿亮度检测模块/*mainwindow.c*/void MainWindow:updateTempHumiLig()/温湿亮度 ui->lcd_temp->display(temp_humi_light->getTemperature(); ui->lcd_humi->display(temp_humi_light->getHumidity(); ui->lcd_lig->display(QString:number(temp_humi_light->getLight(), 'f', 1);void MainWindow:p

8、rocessMsgFromSerial(QByteArray msg)/协调器消息解析 if(msg.length() < 6) return; /温湿亮度模块 if(msg3 = 0x02 && msg4 = 0x01) temp_humi_light->setValue(msg); updateTempHumiLig(); /*temp_humi_light*/void Temp_Humi_Light:setValue(QByteArray& byte) unsigned char adc_value2; temperature = (byte5 <

9、;< 8) + byte6; humidity = (byte7 << 8) + byte8; adc_value0 = byte10; adc_value1 = byte9; adc_value0 = adc_value0 >> 2; light = (adc_value1*256 + adc_value0) * 3.3 / 8192; light = light / 4; light = light * 913;使用温湿度光电传感模块对智慧农业大棚内的温度、湿度、亮度进行实时监测,温湿度光电传感模块把监测的信息发送给协调器,协调器把信息通过串口发送到运行着智慧

10、农业大棚监控系统的开发板,监控系统void MainWindow:processMsgFromSerial(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("棚顶有异物"

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

12、模块else if(msg3 = 0x07 && msg4 = 0x01) if(msg5 = 0x01) touch->setState(1); ui->label_touch->setPalette(pe_red); ui->label_touch->setText("有人进入危险区域"); else if(msg5 = 0x00) touch->setState(0); ui->label_touch->setPalette(pe_black); ui->label_touch->setTex

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

14、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("安全"); 使用热释红外传感模块对智慧农业大棚进行防盗监控,热释红外传感模块通过协调器不断向智慧农业大棚监控系统发送消息,当监测到有人进入大棚时,监控系统界面上显示“违法者进入”;没有检测到周围有人时,监

15、控系统界面上显示“安全”。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),液面高度即为1000mm减

16、去安装在蓄水罐顶部的超声波测距模块测出的距离,并实时显示在监控系统的界面上。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_f

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

18、om() ui->btn_serial->setText("打开"); ui->btn_serial->setStyleSheet(BACKGROUND_COLOR_WHITE); emit addLog("close-success"); else emit addLog("warning!-close-failed"); else if(0 = state) if(serial_server->openCom() ui->btn_serial->setText("关闭"

19、); ui->btn_serial->setStyleSheet(BACKGROUND_COLOR_GREEN); emit addLog("open-success"); else emit addLog("warning!-open-failed"); 控制协调器与运行智慧农业大棚监控系统间的通信,只有在打开串口的状态下,用户才可以通过监控系统控制各个模块。3.8灯光控制模块/*mainwindow.c*/void MainWindow:on_btn_light_1_clicked()/A区灯光打开 if(-1 = serial_serv

20、er->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"); lighta=1;void MainWindow:on_btn_light_5_clicked()/A区灯光关闭 if(lighta = 0) emit addLog("wa

21、rning!-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 off-success"); lighta = 0;void MainWindow:o

22、n_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_clicke

23、d()/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

24、-success"); lightb = 0;void MainWindow: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");l

25、ightc=1;void MainWindow:on_btn_light_7_clicked()/c区灯关闭 if(lightc = 0) emit addLog("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(BACKGROU

26、ND_COLOR_GREEN);emit addLog("lightC off-success");lightc = 0;void MainWindow:on_btn_light_4_clicked()/D区灯打开 if(-1 = serial_server->writeToSerial(Motor:MSG_LIGHT_DON) emit addLog("warning!-lightD on-failed"); return;ui->btn_light_4->setStyleSheet(BACKGROUND_COLOR_GREEN);e

27、mit addLog("lightD on-success");lightc=1;void MainWindow:on_btn_light_8_clicked()/D区灯关闭 if(lightd = 0) emit addLog("warning!-lightD off-already"); return; if(-1 = serial_server->writeToSerial(Motor:MSG_LIGHT_DOFF) emit addLog("warning!-lightD off-failed"); return; ui

28、->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(); on_btn_light_3_clicked(); on_btn_light_4_clicked();void MainWindow:on_btn_light_10_click

29、ed()/一键关闭 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_server->writeToSerial(Motor:MSG_MOTOR_STOP) emit addLog("warning!-emergency stop

30、-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("emergency stop-success"); else if(1 = sta

31、te)/电机正转 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_m

32、otor_stop->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_mo

33、tor_b->setStyleSheet(BACKGROUND_COLOR_GREEN); ui->btn_motor_f->setStyleSheet(BACKGROUND_COLOR_WHITE); ui->btn_motor_stop->setStyleSheet(BACKGROUND_COLOR_WHITE); emit addLog("light cover put down-success"); 使用电机控制模块的灯光部分对智慧农业大棚的A、B、C、D四个区进行灯光控制,用户在智慧农业大棚监控系统界面上的灯光控制区通过点击“开启”、

34、“关闭”等按钮发送控制指令,指令通过串口发送到协调器并由协调器进行广播。添加“一键开灯”、“一件关灯”按钮。3.10灌溉模块/*mainwindow.c*/void MainWindow:changeRelay(int state)/继电器模块操作 /对传入的参数取反操作 if(1 = state) if(-1 = serial_server->writeToSerial(Relays:MSG_RELAY_CLOSE) emit addLog("warning!-stop irrigate-failed"); return; relays->setState(0); ui->btn_relay->setStyleSheet(BACKGROUND_COLOR_WHITE); ui->btn_relay->setText("开始灌溉"); emit addLog("stop irrigate-success"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论