CN106940577A - 一种基于Android平台的温室监控*** - Google Patents
一种基于Android平台的温室监控*** Download PDFInfo
- Publication number
- CN106940577A CN106940577A CN201710280129.6A CN201710280129A CN106940577A CN 106940577 A CN106940577 A CN 106940577A CN 201710280129 A CN201710280129 A CN 201710280129A CN 106940577 A CN106940577 A CN 106940577A
- Authority
- CN
- China
- Prior art keywords
- short message
- greenhouse
- slave computer
- mobile phone
- chip microcomputer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D27/00—Simultaneous control of variables covered by two or more of main groups G05D1/00 - G05D25/00
- G05D27/02—Simultaneous control of variables covered by two or more of main groups G05D1/00 - G05D25/00 characterised by the use of electric means
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Selective Calling Equipment (AREA)
Abstract
本发明公开了一种基于Android平台的温室监控***,上位机为兼容GSM网络的智能手机,基于Android操作***的4.1.2版本以JAVA语言设计编写手机应用软件,该软件与下位机通过GSM模块建立连接,以SMS短消息的形式进行数据传输,用于接收下位机发送的信息,并将温室环境信息显示到手机上,手机可设置参数上下限及直接控制执行设备;下位机通过测量设备采集温室现场的环境参数,再经过单片机分析及处理后,在液晶模块上显示出来;对预设的环境参数进行超限判断,并自动控制执行设备对超限状态进行调节,及时通知用户。本发明提高了杨凌地区温室测控技术、降低了生产成本和人员工作强度、提高了生产水平。
Description
技术领域
本发明涉及农业领域,具体涉及一种基于Android平台的温室监控***。
背景技术
随着自动化技术、计算机技术、通信技术等科学技术的发展与应用,以及农业工程技术的不断发展,无线网络技术逐渐应用到农业生产中。进入新世纪以来,我国科研人员和专家学者在引进外国先进技术的基础上,经过长期的努力,在温室环境的光、热、湿、气、肥等要素调控、应用技术、智能控制等方面开展很多的研究工作,同时在温室内部加装加热机构、灌溉机构、控制机构、施肥机构、通风机构等执行设备,逐渐形成了具有中国特色的温室产业体系,取得了客观的成绩。地方各级政府将温室工程作为发展现代农业的切入点,纷纷建立了现代化农业示范园区,极大地促进了我国设施农业的发展。
杨凌农业高新技术产业示范区,是列入国家高新区序列中的唯一的农业高新区,在国家农业发展中占有重要地位。杨凌地区设施农业发展迅速,设施农业温室大棚果蔬的种植效益显著,农民的种植积极性很高,大棚种植面积迅速扩大,与此同时也产生出新的问题。
针对设施农业监控***的使用情况,在杨凌示范区大寨镇进行了实地调查,大寨镇耕地面积15688亩,包括孟寨、西小寨、寨西村、寨东村等13个村,16734人,从2009年开始发展设施农业以来,成立了10个村土地银行,流转土地11000亩,其中流转入合作社2723亩,建设设施农业大棚1483座,2244.5亩,中棚222座,478.7亩,成立合作社31个,包括示范社13个,包括1个猕猴桃合作社和12个果蔬合作社,调查其中12个果蔬合作社自然棚418个,标准棚692个,其中,寨西村的农鑫果蔬合作社有137座标准棚、老秦人果蔬人合作社有94座标准棚,位居前列。以这两个合作社为重点调查对象,调查设施农业大棚环境监测手段及设备,大寨镇设施农业大棚环境监测主要使用简易温湿度计为主,部分使用电子温湿度计、极少使用智能环境监控***,环境调节则多是人工控制卷帘机实现。
使用智能环境监控***的农户则采用的是北京派得伟业科技发展有限公司生产的温室环境智能监测调控器,该调控器由政府资助建设,能够实时监视温室大棚温湿度、光照度、空气露点等信息,用户可以通过手机查询,实现大棚的无人值守,使用较为方便。该调控器及传感器等,仅仅3个测量节点,单价在一万元以上,价格昂贵,农户安装意愿不强。
通过实地调查发现,杨凌的大部分设施农业从业者还是使用传统的温度计、湿度计来采集温室中的温、湿度值,并通过人工调节方式实现加温、降温、加湿、除湿和通风来控制环境参数。这样的低机械化的生产模式存在监测精度低、成本高、劳动强度大、调控繁琐、效率低下等弊端,降低农民将设施农业自动化、信息化的积极性,从而影响农民的经济效益。
发明内容
为解决上述问题,本发明提供了一种基于Android平台的温室监控***。
为实现上述目的,本发明采取的技术方案为:
基于Android平台的温室监控***,包括下位机及上位机,所述上位机为兼容GSM网络的智能手机,基于Android操作***的4.1.2版本以JAVA语言设计编写手机应用软件,该软件与下位机通过GSM模块建立连接,以SMS短消息的形式进行数据传输,用于接收下位机发送的信息,并将温室环境信息显示到手机上,同时还可以通过手机设置参数上下限及直接控制执行设备;下位机以单片机为控制核心,通过温度传感器、湿度传感器、光照传感器等测量设备采集温室现场的环境参数,再经过单片机分析及处理后,在液晶模块上显示出来;同时单片机对预设的环境参数进行超限判断,并自动控制执行设备对超限状态进行调节,发出声光报警、短信报警,及时通知用户。
所述SMS短消息采用英文短信,并将其设定为Text方式。
所述***分为手动及自动控制两个部分,在自动控制部分出现故障或者工作人员根据经验判断温室环境需要调节时,切换到手动模式,手动开启喷灌、滴灌、通风、补光、加热等执行设备。
本发明具有以下有益效果:
可以实现对温室温度、湿度、光照等环境参数进行检测、控制与报警,对提高杨凌地区温室测控技术、降低生产成本和人员工作强度、提高生产水平具有重要意义。
附图说明
图1为本发明实施例的***框图。
图2为本发明实施例的***硬件框图
图3为本发明实施例中电源电路设计图
图4为本发明实施例中TC35i硬件电路示意图。
图5为本发明实施例中TC35i模块与单片机接口电路图。
图6为本发明实施例中继电器与单片机接口电路图。
图7为本发明实施例中温室环境监控***主程序流程图。
图8为本发明实施例中GSM模块的初始化子程序流程图
图9为本发明实施例中空气温湿度数据采集子程序流程图
图10为本发明实施例中电话处理子程序流程图。
图11为本发明实施例中下位机短信处理子程序流程图。
图12为本发明实施例中电话配对子程序流程图。
图13为本发明实施例中上下限设置子程序流程图。
图14为本发明实施例中短信控制继电器子程序流程。
图15为本发明实施例中发送APP数据短信子程序流程图。
图16为本发明实施例中继电器控制方式切换子程序流程图。
图17为本发明实施例中超限判定子程序流程图。
图18为本发明实施例中串口中断服务子程序流程图。
具体实施方式
为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明实施例提供了一种基于Android平台的温室监控***,包括下位机及上位机,所述上位机为兼容GSM网络的智能手机,基于Android操作***的4.1.2版本以JAVA语言设计编写手机应用软件,该软件与下位机通过GSM模块建立连接,以SMS短消息的形式进行数据传输,用于接收下位机发送的信息,并将温室环境信息显示到手机上,同时还可以通过手机设置参数上下限及直接控制执行设备;下位机以单片机为控制核心,通过温度传感器、湿度传感器、光照传感器等测量设备采集温室现场的环境参数,再经过单片机分析及处理后,在液晶模块上显示出来;同时单片机对预设的环境参数进行超限判断,并自动控制执行设备对超限状态进行调节,发出声光报警、短信报警,及时通知用户。所述SMS短消息采用英文短信,并将其设定为Text方式。
根据***结构,本控制***具有两种工作模式,即手动及自动两个部分,通过转换开关人工转换,具体硬件结构框图如图2所示。
手动模式工作时,自动控制部分断电,工作人员根据作物需求及人工经验进行手动控制,手动模式包括模式转换开关、操作按键、设备指示灯以及相关的辅助元件;
自动控制模式工作时,手动控制部分断电,单片机按照设定好的参数运行,该部分分为上位机和下位机,下位机监控温室环境、超限报警、接收上位机指令等功能,包括微控制器模块、电源模块、土壤温度检测模块、环境温湿度检测模块、土壤湿度检测模块、光照强度检测模块、液晶显示模块等。
本***主控芯片采用宏晶公司生产的一种高性能、低功耗的单片机STC89C52;温室大棚土壤温度传感器采用美国DALLAS公司生产的DS18B20,土壤湿度传感器采用具有DO输出的传感器,可以宽范围控制土壤的湿度,通过电位器调节控制相应阀值,湿度低于设定值时,DO输出高电平,高于设定值时,DO输出低电平;使用时直接与单片机I/O口连接;空气温湿度传感器选择DH11型数字式温湿度传感器;光照传感器采用具有DO输出的光照传感器,采用薄片式光敏电阻,在光线变化时输出高低电平,工作电压3.3V-5V,配可调电位器可调节检测光线亮度,使用时直接与单片机I/O口连接;本次控制***使用的是带中文字库的128X64型LCD液晶屏幕,该屏具有128*64点阵,GSM通信模块直接采用自带的12V电源,单片机***采用自行设计的5V电源,如图3所示。
上位机与下位机通信模块采用西门子公司生产的TC35i型GSM模块。该模块发射电流为300mA(平均),峰值电流2.5A;支持Text和PDU格式的SMS,可通过AT命令或关断信号实现重启和故障恢复,完全可满足本***的信息发送功能。TC35i硬件电路示意图如图4所示。
TC35i模块性能稳定,工作可靠,使用时通过MAX232与的单片机的串口连接,电路图如图5所示。
选择欧姆龙噶UN光电耦合器G3MB-202P将下位机与执行设备进行电气隔离,与单片机的连接电路如图6所示。
下位机软件***件下位机选择51内核单片机作为硬件平台,采用C语言进行设计,一开始会有会显示一个欢迎界面,该界面使用12864型LCD显示器显示,这段时间内可以进行一些非显示类的***初始化的操作,接下来便进入主循环部分,
下位机完成一次主循环的总时长大约为3秒,其中盲区的总时长不超过0.5秒,超限判定子程序安排在主循环的最后位置。
GSM模块(西门子TC351)的初始化子程序如图8所示,包括
查询部分主要是查询GSM模块的连接状态与当前网状况,分别在模块初始化工作的开头与结尾处。查询模块的连接状态是单片机通过发送指令“AT\r\n”来实现的,若连接正常,GSM模块会返回“OK”,此时程序会进行下一步操作,否则发挥“EEROR”,此时程序会重复发送指令直至连接成功。查询模块的连接状态是单片机通过发送指令“AT+CRGE?\r\n”来实现的,此时GSM模块会返回当前的注册信息,若信息中包含成功注册到网络(包括漫游状态),则该初始化子程序结束,否则程序会重复发送指令直至网络注册成功。过程中的查询结果均会反映在12864上,当程序长时间未能通过时,可根据提示信息检查硬件连接。
设置部分,包括:
(1)设置短信到来时的通知方式。单片机通过发送指令“AT+CNMI=2,1\r\n”将短信到来的通知方式设定为串口空闲时发送。
(2)设置GSM模块关闭回显功能,该功能会将单片机发送的指令回传给单片机用于确认指令是否正确,一般不需要使用。
(3)设置GSM模块打开来电显示,该功能可在电话到来时向单片机发送来电号码,本设计中有电话配对机制,因此必须打开该功能。
环境温湿度检测子程序流程图,如图9所示,DHT11控制过程中的要点如下:
(1)首先要给其2号引脚一个至少18ms的低电平然后拉高20-40us启动该传感器。
(2)正常的话,DHT11会返回一个80us的响应信号,表示已经开始采集数据。
(3)随后DHT11会将电平拉高,待再次拉底时表示已经开始传输数据。
(4)随后DHT11会以一个持续26-28us的高电平表示一位数据0,持续70us的高电平表示一位数据1。
(5)单片机根据时常来判断并存储该数据。
(6)DHT11一共发送5个字节数据,第一个字节为湿度整数部分,第二个字节为湿度小数部分,第三个字节为温度整数部分,第四个字节为温度小数部分,第五个字节是校验数据,若前四个字节的和等于第五个字节则表示数据正确。
在本设计中,上位机向下位机拨打电话将实现两种功能,分别是解锁短信电话报警功能以及查询当前温室环境状态。实现哪种功能取决于报警功能是否已被锁定,当拨打电话之前下位机已经触发报警并且成功向上位机发送报警短信及拨打电话,上位机向下位机拨打的电话会被立即挂断并且恢复短信电话报警功能,若非此种情况,下位机会在挂断电话之后向上位机发送包含温室环境当前状态信息的短信。
在单片机控制GSM模块发送短信之前必须先通过发送指令“AT+CMGF=X\r\n”来指定短消息的发送格式。其中X为1代表TEXT格式,为0代表PDU格式。
单片机控制GSM模块发送短信的过程可分解为3个步骤,首先单片机向GSM模块发送目标号码,其中涉及的指令为“AT+CMGS=“xxxxxxxxxxx”\r\n”,其中x代表的是目标电话号码;然后单片机在检测到GSM模块返回字符‘>’后向GSM模块发送短信的内容,这里需要注意的是,短信内容的总字符长度是140,并且该步操作时间不宜过长,否则GSM模块会返回“EEROR”表示超时;最后单片机向GSM模块发送16进制数据0x1A,表示短信编写结束,此时其余的发送工作均由GSM模块自行完成,成功后会返回“+CMGS”以及表示总发送短信数量的数据,因此在发送完结束符后需要检测该成功信号并完成数据缓冲区及相关变量的复位工作。为了方便编写发送不同内容短信的子程序,减少代码冗余,在程序设计时将第一步和第三步均设计为子程序。温室环境信息短信仅会向以配对的号码发送,并且,若拨打电话的号码非当前配对号码,下位机在挂断短信后不会进行短信发送的操作,同时会在12864上提示该号码为非法的信息。具体程序流程图如图10所示。
在本文所设计的***中,短信是用户实现对下位机控制的主要手段,该子程序的流程如图11所示,其主要功能就是解析短信的内容。
***下位机调用该子程序的触发条件为单片机串口接收到字符串“+CMTI”,该字符串只有在GSM模块接收到一条新的短信时向单片机发送一次。换句话说,当单片机串口接收到该字符串时证明有可能用户向下位机发送了控制信息;该子程序首先会读取短信的内容,该过程是由单片机向GSM模块发送“AT+CMGR=X\r\n”指令实现的。这里需要提到的是,在本设计中串口是GSM模块与单片机之间传输数据的唯一通道,所有的指令、返回信息以及短信内容等数据均需要通过串口传输;如果短信读取成功,GSM模块会向单片机返回一个“OK”。在串口中断子程序中,已设定好了读取方式,保证能将短信内容和确认信息读取到固定的内部缓冲区内,该缓冲区是专门用于接收GSM模块数据的,并且是GSM模块发送的所有数据的共用区域,因此,在读取完短信后,为了保护已读取到的短信内容不被修改,需要暂时关闭中断以停止接受数据,待根据短信内容执行完相应操作后再恢复接收。这里不将缓冲区的数据进行转移的原因有两点,其一是单片机内部高速可用的RAM空间十分有限;其二是有效的短信无非是通知单片机完成某种操作的自定义指令,需要单片机立即执行,执行后便没有存在的意义,需要马上删除,以免影响后面的操作,因此没必要长时间保存。如果短信读取失败,则***会给出提示信息并保留该条短信,等待用户处理。
短信读取成功后便根据短信内容调用对应的子程序进行处理。在本设计中,控制指令短信的格式设定为TEXT英文模式,短信的第一个字母用来标识所需执行的操作,之后为该操作所需要的数据。本***下位机负责将根据短信内容完成以下五种操作,分别如下:
(1)电话配对操作:该操作用来更改用于控制***的手机号码,是唯一一个以数字字符打头的指令,因为正确的手机号码必定为1打头,而常规的短信一般情况下是不会使用数字作为开头的,因此该指令设计为单纯的电话号码。
(2)上下限设置操作:该操作用来设定***判定温室环境参数处于正常范围的阈值,因此取英文单词Limit的首字母L作为该指令的首字母,之后便是设定阈值所需的数据。
(3)继电器控制操作:该操作用来远程控制各继电器的开关状态,因此取英文单词Relay的首字母R作为该指令的首字母,之后便是用来标识所需各继电器状态的数据。
(4)发送APP数据操作:该操作用来向上位机发送包含温室环境信息的指定格式的短信,上位机通过APP软件解析该短信并将解析的结果显示在APP软件界面之上,因此取英文单词Send的首字母S作为该指令,之后可以是空,也可以是目标的电话号码。
(5)继电器控制方式切换操作:下位机本身就具备根据温室环境参数信息自动的控制相关继电器的开关状态,在允许下位机自动控制的条件下会与用户的控制操作相互冲突,因此用户控制与下位机自动控制两种方式不能同时使用。该操作就是用来切换***对继电器的控制方式,因此取英文单词Control的首字母C作为该指令的首字母,之后便是用来表示用户需要的控制方式的数据。
若读取到的短信内容首字母并非以上五种之一,则***判定该短信为无效短信,提示用户短信格式非法。成功读取短信并执行相应操作后便删除该短信后返回主流程。
电话配对子程序用于负责完成电话配对的操作,只有经过配对的号码向***发送短信或者拨打电话才能够完成预设的功能。电话配对的过程如图12所示。***下位机调用该子程序的触发条件为成功读取短信后判断出短信内容的首字符为字符‘1’,该短信的内容需要保存在下位机当中直到下次更新,因此该子程序首先将号码存储至专门的数组当中。考虑到该数据只是在短信、电话到来时进行比对,以及向上位机发送短信、拨打电话时使用,使用频率并不是很高,为了优化单片机程序的运行效率,在编程时对该数组进行idata标识,这样编译器在编译时会优先安排其它变量在单片机内部读取效率最高的00H~7FH空间内,并且内部RAM使用数量在超过127(堆栈至少需要一个字节)时能够正常编译通过。需要注意的是,该操作只对内部RAM数量大于128个字节的相应型号的单片机有效,比如STC89C52RC,否则只是改变数据的寻址方式,反倒降低效率,同时也不能破除127个字节的限制。
完成号码存储后便恢复串口接收功能并且删除短信。删除短信操作是通过单片机向GSM模块发送“AT+CMGD=x\r\n”而实现的,其中x表示的是要删除短信所在的槽位,操作成功后GSM模块会返回字符串“OK”,否则会返回字符串“EEROR”,因此在删除短信前必须先打开串口接收中断以保证能够读取到GSM模块返回的信息,从而进行适当的处理。
之后便向刚才配对的号码拨打电话用来测试是否配对成功,拨打电话操作是通过单片机向GSM模块发送“ATDxxxxxxxxxxx;\r\n”而实现的,其中x代表的是目标号码,该电话设定在持续10秒后自动挂断。这里需要注意以下两点,其一,拨打电话指令中的‘;’容易被忽略而造成错误;其二,被呼叫手机最好等待下位机自动挂断电话,因为在实际测试过程当中,西门子TC35型号的GSM模块拨打出的电话被挂断后会有很大的可能出现一段时间的假死状态,期间无法正常拨打电话以及返回正常数据(大多数情况下返回EEROR)。
在通过配对电话测试后,会在12864上显示该号码一段时间,该显示操作可在后面通过按键重复执行。本***没有扩展通过短信查询当前配对号码功能的原因是,根据前面提到的,只有配对的号码才能够让***正常实现想要的功能,因此如果忘记号码,只能在下位机附近进行确认或者复位***(***在code中预置了一个默认号码),后期将进一步实现此功能。
前面提到GSM模块相关的数据共用一个数据缓冲区,因此在最后必须在复位串口数据缓冲区及相关变量后返回主流程,以保证后面的操作能够正常执行。
***中温室环境变量正常值的上下限设过程如图13所示。***下位机调用该子程序的触发条件为成功读取短信后判断出短信内容的首字符为字符‘L’,同电话配对短信一样,该短信内容同样需要保存在下位机当中直到下次更新,因此也需要专门的数组进行存储,该数组分为Up_Limit和Down_Limit,长度均为6个字节,每两个字节对应一个环境变量的一个限制值。其使用频率相对固定,在每次主循环当中只需要读取一次,因此在该数组前同样加上idate标识。
在本***中,一共涉及5个环境变量,分别为:空气温度、空气湿度、光照强度、土壤温度以及土壤中水分的饱和度。其中光照强度以及土壤中水分饱和度同过***电路来实现阈值的设定,单片机读取到的是经***电路处理后的开关量,因此不需要对这两个变量在单片机内部设定上下限。其中当负责光照强度的电路输出1时表示当前光照强度弱,输出0时表示当前光照充足;负责土壤水分饱和度的电路输出0时表示土壤中富水,输出1时表示土壤中缺水。
其它三个变量的上下限在数组中均按照空气温度,空气湿度,土壤温度的顺序排列。短信发送的上下限值是字符型的,通常来讲需要将其转换为对应的数值,但是在程序中有LCD12864显示当前环境信息的程序,为了方便显示,在该程序中已经将各环境变量转换为对应的字符,根据ASCII码的编排规则,数字和其对应的字符存在同样的大小关系,即在内存当中,数值上,数字2比1大1,对应的字符‘2’也比字符‘1’大1,因此,为了提高***运行效率,可以直接用字符进行对比,在大小关系上可以得到同样的结果。
更新完上下限数据后,则在LCD上显示该数据进行确认,该功能同样可以通过按键重复执行,然后在打开串口中断后删除短信。最后在复位串口数据缓冲区及相关变量后返回主流程。
短信继电器控制子程序用来处理远程控制继电器任务,其程序流程如图14所示。在本设计中一共设计5个环境调节设备,对应5个继电器,在环境参数超限时能够喷灌、滴灌、加热、通风、补光,调节温室环境参数。
为了方便实现该功能,在硬件设计时将所有继电器的控制端连续的安排在单片机同一组IO口上,如此,在程序设计时,便可很方便的通过对一个char型数据进行位移操作同时控制所有继电器。***下位机调用该子程序的触发条件是成功读取短信后,判断出短信内容的首字符为字符‘R’。在短信指令设计上,其数据部分从先到后依次对应连接在单片机IO口上位数由高到低的继电器,字符‘1’表示打开其对应的继电器,字符‘0’表示关闭对应的继电器。
负责控制继电器的字符变量可以选择是否定义在单片机内部RAM的可位寻址区。如果是,程序功能为通过短信内容直接通过位操作将继电器的开关信息设置好后赋值给相关IO口,该方式需要预先将变量中的每一位进行定义,并且在程序相关的位置进行对是哪一位的判断操作,好处就是在编写程序时比较容易判断,减少出错的机会,后期读起比较容易。如果否,则采用对变量进行位移操作来实现,程序从第一个短信内容数据的数据位开始解析,判定为字符‘1’时,将变量的最低为清零,否则置1,后进行左移一位操作,如此循环,直到解析完整条短信,这种方法代码量相对较小,但需要短信指令数据部分的长度要严格对应继电器的数量,编程过程中也容易将各继电器所连设备混淆,后期读起来相对比较困难。在本设计中优先考虑代码效率,因此采取后一种方式。完成继电器控制后,恢复串口接收,在删除短信并复位串口数据缓冲区及相关变量后返回主流程。
发送APP数据短信子程序用于序完成向上位机发送包含APP更新显示所需数据的短信,其被***下位机调用的触发条件是成功读取短信后,判断出短信内容的首字符为字符‘S’。
该短信指令后面的数据部分可以为空,也可以是APP数据短信发送目标手机的号码,在本设计中,GSM模块规定仅向已配对手机发送短信;有关单片机控制GSM模块发送短信的过程可参考X.1.3中向用户发送当前温室环境信息的部分,其区别只在于短信内容部分。前者的传递信息的目标是人,后者为上位机APP,因此后者只需要考虑短信中包含的信息是否完整、组织方式是否适合解析等方面,不用考虑用户的阅读习惯。
在本设计中,下位机向上位机发送的用于APP的环境数据信息有两种,一种是当用户主动通过APP进行查询当前环境信息时发送的,另一种是当下位机检测到环境参数异常时发送的,为了进行区分,前一种短信在开头处添加字符串“APP”进行标识,后一种则添加字符串“Warning!”进行标识,方便上位机有针对性的对短信数据部分进行处理。用户主动查询时发送短信的流程,与异常时下位机发送短信的流程区别在于中间调用了传感器子程序。在传感器子程序设计时,已经添加了将数据转换为字符型并且存在专门的数组当中的代码。因此,当发现环境异常时在主流程中已经获取过所需数据,不必重复调用相关传感器子程序。
短信数据部分由照空气温度、空气湿度、土壤温度、土壤水分饱和度以及光照强度的实际数据组成,并且按照此顺序进行排列。需要注意的是,为了使上位机能够正确解析,每个数据之间必须使用特定的字符隔开,该字符可以是任意一个ASCII码字符,在选择时避免和有效字符重叠,并且保证所有分隔字符相同即可。在本设计中,选择的是空格作为该分隔字符。完成APP数据短息发送后,恢复串口接收,在删除短信并复位串口数据缓冲区及相关变量后返回主流程。
继电器控制方式切换的流程如图16所示,该子程序被***下位机调用的触发条件为成功读取短信后,检测到短信内容的第一个字符为字符‘C’。短信内容的数据部分用字符‘1’表示将***继电器控制设定为手动方式,也可称为夺取控制权,字符‘0’表示将***继电器控制设定为自动方式,也可称为放弃控制权。
该切换功能的具体实现方式是通过设定单片机内部特定的标志变量的值来实现的,子程序实际的工作就是根据指令短信数据部分的内容将该变量置1或清0。本设计中变量清0代表自动方式,变量置1代表手动模式。该标志变量可使用单片机内部RAM中的可位寻址区中的位变量,也可以直接使用一个字节的unsigned char型变量。如果使用前者,要注意可位寻址区内的所有位均可以以字节的方式寻址,程序在运行过程中有可能使位变量的值被其他字节型变量改写,因此在变量定义时需要特别注意,一般用在单片机内部RAM资源十分紧张的情况。在本设计中所有的标志性变量均使用unsigned char型变量。
因为控制方式的选择对整个***功能有着决定性的影响,因此,必须设计一个校验机制。也就是说,下位机在执行完操作后必须向上位机返回当前的控制方式以达到确认的目的。该返回同样是通过短信来实现的,并且短信的内容并不是由上位机发送的指令短信内容决定,而是由继电器控制方式标志变量的值来决定,这样可以确保上位机收到的返回短信的内容与下位机实际的控制方式一致。当标志变量设定为自动时,下位机发送内容为“AT”的短信给上位机,当标志变量设定为手动时,下位机发送内容为“MT”的短信给上位机。若上位机未能成功接收到该返回短信,则需要重新发送指令短信或者进行现场确认。
在控制方式切换成功后,会在LCD上显示当前所选择的控制方式进行现场确认,该功能可以通过按键重复实现。最后***下位机会在该子程序删除短信并复位串口数据缓冲区及相关变量后返回主流程。
超限判定子程序负责检测当前温室环境各参数中是否存在异常,并且根据异常情况选择开关相应的环境调整设备进行调整。以上的功能可以通过两种思路实现,一种是从各环境参数的角度出发,另一种是从环境调整设备的角度出发。
从环境参数的角度出发是比较常规的一种思路,也就是逐个判定每个环境参数值是否超过限制,如果是,则开启相应的环境调整设备。这种设计思路适用于环境参数与调整设备之间存在一一对应的关系,相互没有交集时。当各环境参数与调整设备之间的对应关系存在交集,比如某几个环境参数均对应某个调整设备,或者某个环境参数需要若干个调整设备进行调整时仍采取这种思路进行程序设计时,逻辑关系就会变得十分复杂。比如,两个环境参数均需要打开通风设备,当判断完第一个参数时,在判断第二个参数时必须考虑到前一次判断后是否已打开设备,如不进行此判断,则第一次判断打开设备后,可能会因为第二次判断参数为正常而关闭设备,然而这种结果明显是错误的。以上的情况会随着交集程度的增加在逻辑复杂度上程指数倍的增加,这种情况下采用从环境调整设备角度出发的思路进行程序设计比较适合。从环境调整设备角度出发的思路其实就是将各环境参数的超限情况按照环境调整设备进行分类,这样每一类超限情况就只对应一种调整设备,本来的交集情况自然就不复存在了。本设计中采用的就是这种思路进行子程序设计的,流程图如图17所示,环境参数的分类情况如表1所示。
表1环境参数超限分类表
当该子程序检测到有环境参数超限后会自动打开相关的环境调整设备,并且向上位机发送报警短信并拨打电话,并且短信电话功能在执行一次后便会锁定,此时需要通过上位机控制解锁此功能。
单片机串口发送数据部分采用查询方式,图18所示流程图中仅包含单片机对串口接收到数据的处理。GSM模块一次发送的数据长度并不固定,前后均包含一组“\r\n”(回车换行符),其余部分最少时2个字节,比如“0K”,最多时可超过100个字节,比如短信内容。不过每次发送的数据并不是全部都是有效内容,比如“\r\n”以及短信60多个字节的前缀信息等。我们都知道,单片机内部的RAM资源十分紧张,最有效率的部分仅128个字节,其中还包含特殊应用部分,用户可使用的更少,即便退而求其次使用寄存器寻址,也不超过256个字节,因此,单片机对GSM模块发送的数据不应该也没必要全部读取进来。出于以上原因,并结合GSM返回数据的格式,在单片机串口中断服务子程序中采用4中方式对GSM模块发送的数据进行读取,采用哪种模式,由R_mode标量值决定。
(1)读取方式0:该读取方式无差别的读取指定字节数量的数据,也就是连续读取GSM模块发送的靠前的固定数量的数据。通过大量实验,该数量值取24比较合适。这种读取方式读取效率最高,适合读取GSM模块发送的数据中有效信息均包含在前端或者总数据长度不超过24的那部分数据,一般在单片机检测GSM模块返回确认信息时使用该模式。
(2)读取方式1:仅读取第二个和第四个字符‘\n’后的数据。该读取方式专门设计用来读取短信内容。在GSM模块发送的短信内容中第二个字符‘\n’之前均是用于表示该短信的源地址、发送时间、读取状态等头信息,之后便是短信的真正内容,因此从第二个字符‘\n’开始读取,在实际的短信内容后再经过两个‘\n’会发送一个表示读取成功或错误的信息(“OK”或者“ERROR”),为了检测短信读取的是否正确,也要将该信息读取进来。
(3)读取方式2:该读取方式只读取字符‘+’之后的数据。以字符‘+’开头的数据一般都是通知类信息,比如通知短信到来的“+CMTI”、通知电话到来的“+CLIP”以及来电号码等,这里需要注意的是,来电号码不一定均以“+86”开头,在程序设计时应考虑该情况。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.基于Android平台的温室监控***,包括下位机及上位机,其特征在于,所述上位机为兼容GSM网络的智能手机,基于Android操作***的4.1.2版本以JAVA语言设计编写手机应用软件,该软件与下位机通过GSM模块建立连接,以SMS短消息的形式进行数据传输,用于接收下位机发送的信息,并将温室环境信息显示到手机上,同时还可以通过手机设置参数上下限及直接控制执行设备;下位机以单片机为控制核心,通过测量设备采集温室现场的环境参数,再经过单片机分析及处理后,在液晶模块上显示出来;同时单片机对预设的环境参数进行超限判断,并自动控制执行设备对超限状态进行调节,发出声光报警、短信报警,及时通知用户。
2.如权利要求1所述的基于Android平台的温室监控***,其特征在于,所述SMS短消息采用英文短信,并将其设定为Text方式。
3.如权利要求1所述的基于Android平台的温室监控***,其特征在于,所述***分为手动及自动控制两个部分,在自动控制部分出现故障或者工作人员根据经验判断温室环境需要调节时,切换到手动模式,手动开启执行设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710280129.6A CN106940577A (zh) | 2017-04-25 | 2017-04-25 | 一种基于Android平台的温室监控*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710280129.6A CN106940577A (zh) | 2017-04-25 | 2017-04-25 | 一种基于Android平台的温室监控*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106940577A true CN106940577A (zh) | 2017-07-11 |
Family
ID=59464755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710280129.6A Pending CN106940577A (zh) | 2017-04-25 | 2017-04-25 | 一种基于Android平台的温室监控*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106940577A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048829A (zh) * | 2022-07-01 | 2023-05-02 | 荣耀终端有限公司 | 接口调用方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536393A (zh) * | 2014-12-05 | 2015-04-22 | 浪潮集团有限公司 | 一种温室短信监测、报警及控制*** |
CN205375251U (zh) * | 2016-03-04 | 2016-07-06 | 张万军 | 一种基于智能化的温室大棚控制*** |
CN205656523U (zh) * | 2016-04-22 | 2016-10-19 | 安徽京师方圆信息技术有限公司 | 一种蔬菜大棚监测*** |
-
2017
- 2017-04-25 CN CN201710280129.6A patent/CN106940577A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536393A (zh) * | 2014-12-05 | 2015-04-22 | 浪潮集团有限公司 | 一种温室短信监测、报警及控制*** |
CN205375251U (zh) * | 2016-03-04 | 2016-07-06 | 张万军 | 一种基于智能化的温室大棚控制*** |
CN205656523U (zh) * | 2016-04-22 | 2016-10-19 | 安徽京师方圆信息技术有限公司 | 一种蔬菜大棚监测*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048829A (zh) * | 2022-07-01 | 2023-05-02 | 荣耀终端有限公司 | 接口调用方法、设备及存储介质 |
CN116048829B (zh) * | 2022-07-01 | 2023-10-10 | 荣耀终端有限公司 | 接口调用方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106017727B (zh) | 一种多芯片温度测试及标定***及方法 | |
CN103505847B (zh) | 一种基于数据监测实现运动指导的跑步健身*** | |
CN205161283U (zh) | 一种智能种植机 | |
CN106872650A (zh) | 一种二氧化碳浓度校准修正装置及校准修正方法 | |
CN105444336A (zh) | 空调器的控制方法和空调器 | |
CN104767791A (zh) | 基于无线传感器网络的农产品储运控制*** | |
CN110264675A (zh) | 一种楼宇建筑内有毒气体远程监测和报警的控制*** | |
CN104503310A (zh) | 远程监测温室的环境和土壤信息的装置及使用方法 | |
CN101335670A (zh) | 基于ZigBee技术的无线传感器网络仓库监测***及监测方法 | |
CN110545529A (zh) | 一种温室大棚环境监测与管理服务*** | |
CN106940577A (zh) | 一种基于Android平台的温室监控*** | |
Zhou et al. | Application of WeChat mini-program and Wi-Fi Soc in agricultural IoT: A low-cost greenhouse monitoring system | |
CN202870546U (zh) | 新型智能虫情测报灯可编程控制*** | |
CN109828627A (zh) | 一种温室大棚的智能农业监测*** | |
CN112380076A (zh) | 一种基于光感应的移动终端性能测试方法和装置 | |
CN203350752U (zh) | 通用监控器 | |
CN201607806U (zh) | 一种地震现场分布式震情与次生灾情综合采集*** | |
CN106124699A (zh) | 一种智能空气质量实时评价装置及其控制方法 | |
CN106839298A (zh) | 基于widget的显示装置、***及方法 | |
CN203287044U (zh) | 环境状态嵌入式检测模块 | |
CN206919924U (zh) | 智能化土壤测量仪及检测*** | |
Qun et al. | Greenhouse data monitoring system | |
CN205910615U (zh) | 一种基于安卓手机app的远程交互监控*** | |
CN105467905B (zh) | 智能农业监控***装置 | |
CN201117087Y (zh) | 大空间场所火灾及典型干扰物信息数据采集装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170711 |