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

下载本文档

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

文档简介

从天空俯瞰荷兰,你会发觉奇迹般景观——地面被一块块不一样田地拼凑着,因为荷兰农业标准,其中大多数田地都非常小,而且还会被喧闹城市与郊区分割开。在荷兰关键农业种植地,摩天大楼和制造业工厂附近,就是马铃薯地、蔬菜大棚和猪舍。可以说,荷兰超出二分之一国土都被用于了农业与园艺。当然,最显著就是蔬菜大棚建筑群,有大棚建筑群占地面积高达175公顷(2625亩)。他们就像巨型镜子一样蔓延在荷兰国土上,在阳光照耀下闪闪发光,到了夜晚则会从内部发出光芒。目录TOC\o"1-3"\h\u94951需求分析说明 179021.1设计背景 1221501.2组成部分 1124851.3功效需求 135432概要设计说明 294392.1各模块功效描述 2163822.2模块调用图 2197582.3系统执行流程图 3195563详细设计说明 5212803.1温湿亮度检测模块 519903.2棚顶异物检测模块 6198313.3危险区域保护模块 6222523.4防盗监控模块 7232023.5蓄水罐液面高度监测模块 882343.6火灾监控模块 827603.7串口控制模块 9209313.8灯光控制模块 10325103.9遮阳网控制模块 14278283.10浇灌模块 1539874调试分析 17159714.1终端节点与协调器之间通信测试 1764844.2协调器与开发板之间通信测试 1823835用户使用说明 19210326课程设计总结 191需求分析说明1.1设计背景智能化控制系统应用到大棚种植上,利用最先进生物模拟技术,模拟出最适合棚内植物生长环境,采取温度、湿度、CO2、光照度传感器等感知大棚各项环境指标,并经过微机进行数据分析,由微机对棚内水帘、风机、遮阳板等设施实施监控,从而改变大棚内部生物生长环境。智能大棚是自动化控制程序用于在温室大棚智能控制结果:比较人工控制来说,智能控制最大好处就是能够相对恒定控制大棚内部环境,对于环境要求比较高植物来说,更能防止因为人为原因而造成生产损失。相对生产来说,将智能化控制系统应用到大棚生产以后,产量与质量比人工控制大棚都有极大提升,对于不一样种植品种而言,提升产量与质量相对不一样,对于档次较高经济作物来说,生产效率能够提升30%以上。相对运行成原来核实,对于有一定规模种植企业来说,极大降低了劳动力成本,设备投入与运行,能够完全由节约下来劳动力成本中核实出来,使用时间越长,光节约劳动力成本就是一笔巨大利润。1.2组成部分当代化经济快速发展,促使了人们对机械智能化强烈认知。当代化智能温室也称作自动化温室,是指配置了由计算机控制可移动天窗、遮阳系统、保温、湿窗帘/风扇降温系统、喷滴灌系统或滴灌系统、移动苗床等自动化设施,基于农业温室环境高科技“智能”温室。智能温室控制通常由信号采集系统、中心计算机、控制系统三大部分组成。1.3功效需求对大棚内温度、湿度、光照情况等基本信息采集并显示。实现浇灌远程化、自动化,大大节约人力成本。对大棚整体结构情况监测、火灾等突发事件检测并发出警报。实现大棚内灯等基本电器远程化、自动化控制,使系统愈加智能,用户体验感愈加好。实现遮阳网等蔬菜保护机制远程化、自动化控制。(6)对于监测到大棚内各种信息输出到客户端显示器上。2概要设计说明2.1各模块功效描述主函数模块:初始化系统界面,调用各个模块实现各种功效。协调器模块:接收各个节点发送数据并经过串口进行转发到客户端,经过串口接收客户端发送指令并转发给各个节点。温、湿、亮度监测模块:使用温湿度光电传感模块对智慧农业大棚内温度、湿度、亮度进行监测并实时显示到控制系统界面上。棚顶异物监测模块:使用震动传感器模块对智慧农业大棚棚顶进行实时监测并实时显示到控制系统界面上。危险区域保护模块:使用触摸传感器模块对存放药品等危险区域、仓库进行监测,一旦监测到有些人触摸门把手,立刻在控制系统界面上给出警报。防盗监控模块:使用红外热释电传感器模块对智慧农业大棚内进行实时监测,有些人进入,控制系统界面立刻显示警报。蓄水罐液面高度监测模块:使用超声波测距模块对智慧农业大棚蓄水罐中水剩下量进行监测,实时显示在控制系统界面上。火灾监控模块:使用烟雾传感器模块对智慧农业大棚内进行实时监测,一旦检测到烟雾,控制系统界面上立刻给出警报。串口控制模块:控制COM1串口开启和关闭。遮阳网控制模块:使用电机控制模块实现智慧农业大棚遮阳网收起、放下、紧急停顿功效。浇灌模块:使用继电器控制模块实现开始智慧农业大棚开始浇灌和停顿浇灌功效。灯光控制模块:使用电机控制模块灯光部分实现对智慧农业大棚A、B、C、D四个区灯光控制。2.2模块调用图图1.1模块调用图2.3系统执行流程图图1.2系统执行流程图3详细设计说明3.1温湿亮度检测模块/*mainwindow.c*/voidMainWindow::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));}voidMainWindow::processMsgFromSerial(QByteArraymsg)//协调器消息解析{if(msg.length()<6)return;//温湿亮度模块if(msg[3]==0x02&&msg[4]==0x01){temp_humi_light->setValue(msg);updateTempHumiLig();}}/*temp_humi_light*/voidTemp_Humi_Light::setValue(QByteArray&byte){unsignedcharadc_value[2];temperature=(byte[5]<<8)+byte[6];humidity=(byte[7]<<8)+byte[8];adc_value[0]=byte[10];adc_value[1]=byte[9];adc_value[0]=adc_value[0]>>2;light=(adc_value[1]*256+adc_value[0])*3.3/8192;light=light/4;light=light*913;}使用温湿度光电传感模块对智慧农业大棚内温度、湿度、亮度进行实时监测,温湿度光电传感模块把监测信息发送给协调器,协调器把信息经过串口发送到运行着智慧农业大棚监控系统开发板,监控系统voidMainWindow::processMsgFromSerial(QByteArraymsg)对接收到信息进行解析并实时显示在监控系统界面上。3.2棚顶异物检测模块/*mainwindow.c*///振动事件elseif(msg[3]==0x03&&msg[4]==0x01){if(msg[5]==0x01){shake->setState(1);ui->label_shake->setPalette(pe_red);ui->label_shake->setText("棚顶有异物");}elseif(msg[5]==0x00){shake->setState(0);ui->label_shake->setPalette(pe_black);ui->label_shake->setText("棚顶安全");}}使用震动传感模快对智慧农业大棚棚顶进行异物检测,震动传感模块不停向协调器发送消息,协调器经过串口向运行着智慧农业大棚监控系统开发板发送消息,监控系统对消息进行解析。未检测到震动,在监控系统界面上显示棚顶安全;检测到震动,在监控系统界面上显示棚顶有异物。3.3危险区域保护模块/*mainwindow.c*///触摸模块elseif(msg[3]==0x07&&msg[4]==0x01){if(msg[5]==0x01){touch->setState(1);ui->label_touch->setPalette(pe_red);ui->label_touch->setText("有些人进入危险区域");}elseif(msg[5]==0x00){touch->setState(0);ui->label_touch->setPalette(pe_black);ui->label_touch->setText("无人进入危险区域");}}使用触摸传感模块对存放药品等危险房间进行保护,触摸模块可安装在房间门把手上。一旦有些人触碰该模块,监控系统会立刻从协调器发送消息中解析出,并显示“有些人进入危险区域”在监控系统界面上;没有些人触碰该模块,监控系统界面上显示“无人进入危险区域”。3.4防盗监控模块/*mainwindow.c*///热释红外传感模块elseif(msg[3]==0x05&&msg[4]==0x01){if(msg[5]==0x01){infray->setState(1);ui->label_inf_ray->setPalette(pe_red);ui->label_inf_ray->setText("违法者进入");}elseif(msg[5]==0x00){infray->setState(0);ui->label_inf_ray->setPalette(pe_black);ui->label_inf_ray->setText("安全");}}使用热释红外传感模块对智慧农业大棚进行防盗监控,热释红外传感模块经过协调器不停向智慧农业大棚监控系统发送消息,当监测到有些人进入大棚时,监控系统界面上显示“违法者进入”;没有检测到周围有些人时,监控系统界面上显示“安全”。3.5蓄水罐液面高度监测模块/*mainwindow.c*///超声波测距模块elseif(msg[3]==0x08&&msg[4]==0x01){intlen=1000-msg[5]*256+msg[6];//应用于液面检测ui->label_ultra->setText(QString::number(len));ultra->setState(len);}emitaddLog(msg.toHex());使用超声波测距模块对智慧农业大棚蓄水罐液面高度进行监测,假定蓄水罐高度1000mm(10m),液面高度即为1000mm减去安装在蓄水罐顶部超声波测距模块测出距离,并实时显示在监控系统界面上。3.6火灾监控模块/*mainwindow.c*///烟雾模块elseif(msg[3]==0x04&&msg[4]==0x01){if(msg[5]==0x01){smoke->setState(1);ui->label_fire->setPalette(pe_red);ui->label_fire->setText("发生火灾");}elseif(msg[5]==0x00){smoke->setState(0);ui->label_fire->setPalette(pe_black);ui->label_fire->setText("没有火灾");}}使用烟雾模块对智慧农业大棚火灾情况进行监测,并经过协调器向智慧农业大棚监控系统发送消息。没有检测到烟雾时,监控系统界面上显示“没有火灾”;当检测到烟雾时,监控系统界面上显示“发生火灾”。3.7串口控制模块/*mainwindow.c*/voidMainWindow::changeSerial(intstate)//串口打开关闭操作{//对传入参数取反操作if(1==state){if(serial_server->closeCom()){ui->btn_serial->setText("打开");ui->btn_serial->setStyleSheet(BACKGROUND_COLOR_WHITE);emitaddLog("closesuccess");}elseemitaddLog("warning!!closefailed");}elseif(0==state){if(serial_server->openCom()){ui->btn_serial->setText("关闭");ui->btn_serial->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("opensuccess");}elseemitaddLog("warning!!openfailed");}}控制协调器与运行智慧农业大棚监控系统间通信,只有在打开串口状态下,用户才能够经过监控系统控制各个模块。3.8灯光控制模块/*mainwindow.c*/voidMainWindow::on_btn_light_1_clicked()//A区灯光打开{if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_AON)){emitaddLog("warning!!lightAonfailed");return;}ui->btn_light_1->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightAonsuccess");lighta=1;}voidMainWindow::on_btn_light_5_clicked()//A区灯光关闭{if(lighta=0){emitaddLog("warning!!lightAoffalready");return;}if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_AOFF)){emitaddLog("warning!!lightAofffailed");return;}ui->btn_light_1->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightAoffsuccess");lighta=0;}voidMainWindow::on_btn_light_2_clicked()//B区灯打开{if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_BON)){emitaddLog("warning!!lightBonfailed");return;}ui->btn_light_2->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightBonsuccess");lightb=1;}voidMainWindow::on_btn_light_6_clicked()//B区灯关闭{if(lightb=0){emitaddLog("warning!!lightBoffalready");return;}if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_BOFF)){emitaddLog("warning!!lightBofffailed");return;}ui->btn_light_6->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightBoffsuccess");lightb=0;}voidMainWindow::on_btn_light_3_clicked()//c区灯打开{if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_CON)){emitaddLog("warning!!lightConfailed");return;}ui->btn_light_3->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightConsuccess");lightc=1;}voidMainWindow::on_btn_light_7_clicked()//c区灯关闭{if(lightc=0){emitaddLog("warning!!lightCoffalready");return;}if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_COFF)){emitaddLog("warning!!lightCofffailed");return;}ui->btn_light_7->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightCoffsuccess");lightc=0;}voidMainWindow::on_btn_light_4_clicked()//D区灯打开{if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_DON)){emitaddLog("warning!!lightDonfailed");return;}ui->btn_light_4->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightDonsuccess");lightc=1;}voidMainWindow::on_btn_light_8_clicked()//D区灯关闭{if(lightd=0){emitaddLog("warning!!lightDoffalready");return;}if(-1==serial_server->writeToSerial(Motor::MSG_LIGHT_DOFF)){emitaddLog("warning!!lightDofffailed");return;}ui->btn_light_8->setStyleSheet(BACKGROUND_COLOR_GREEN);emitaddLog("lightDoffsuccess");lightd=0;}voidMainWindow::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();}voidMainWindow::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*/voidMainWindow::changeMotor(intstate){if(0==state)//电机停顿{if(-1==serial_server->writeToSerial(Motor::MSG_MOTOR_STOP)){emitaddLog("warning!!emergencystopfailed");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);emitaddLog("emergencystopsuccess");}elseif(1==state)//电机正转{if(-1==serial_server->writeToSerial(Motor::MSG_MOTOR_FORE)){emitaddLog("warning!!lightcoverpackupfailed");return;}motor->setState(1);ui->btn_motor_f->setStyleSheet(BACKGROUND_COLOR_GREEN);ui->btn_motor_b->setStyleSheet(BACKGROUND_COLOR_WHITE);ui->btn_motor_stop->setStyleSheet(BACKGROUND_COLOR_WHITE);emitaddLog("lightcoverpackupsuccess");}elseif(2==state)//电机反转{if(-1==serial_server->writeToSerial(Motor::MSG_MOTOR_BACK)){emitaddLog("warning!!lightcoverputdownfailed");return;}motor->setState(2);ui->btn_motor_b->setStyleSheet(BACKGROUND_COLOR_GREEN);ui->btn_motor_f->setStyleSheet(BACKGROUND_COLOR_WHITE);ui->btn_motor_stop->setStyleSheet(BACKGROUND_COLOR_WHITE);emitaddLog("lightcoverputdownsuccess");}}使用电机控制模块灯光部分对智慧农业大棚A、B、C、D四个区进行灯光控制,用户在智慧农业大棚监控系统界面上灯光控制区经过点击“开启”、“关闭”等按钮发送控制指令,指令经过串口发送到协调器并由协调器进行广播。添加“一键开灯”、“一件关灯”按钮。3.10浇灌模块/*mainwindow.c*/voidMainWindow::changeRelay(intstate)//继电器模块操作{//对传入参数取反操作if(1==state){if(-1==serial_server->writeToSerial(Relays::MSG_RELAY_CLOSE)){emitaddLog("warning!!stopirrigatefailed");return;

温馨提示

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

评论

0/150

提交评论