基于农作物需求的管理系统(国三)

一、项目简介

在农田内的硬件端,结合可插拔的感应模块,可以依据不同需求,选择需要采集的数据。农田内的GPRS通信模块将采集的数据上传服务器。 在APP端将收集到的数据进行可视化展示,提供高效的参考意见。当用户打开APP发现农田需要灌溉时,可以远程选择灌溉的农田及灌溉量。 同时,检测温室大棚内二氧化碳的浓度,及时做出调整,达到作物生长最适宜的浓度。整个过程不要求用户到达现场。
创新点:
①智能滴灌:间隔一定时间检测一次土壤信息,当实际的湿度低于预期湿度范围,硬件设备才执行滴灌操作,避免多余的水资源浪费。
②作物可选择:针对农田不同作物,在APP端调整作物名称,数据库中对应的最佳生长环境标准也随之改变,以此避免频繁更换设备。
③因物制宜:根据不同作物的生长周期对水需求性的不同,进行针对性的灌溉。
④节能减排:在大棚内实时监测植物需要的二氧化碳的浓度,避免产生多余的二氧化碳,达到减排效果。
作品思维导图:

二、图片展示

下图为管理系统的灌溉部分。(1)代表水源;(2)代表水肥混合桶;(3)代表肥料。通过(4)水泵将水肥桶中的液体抽出,沿着传输管道,每个一定距离,安置一个硬件设备。(5)代表滴灌的终端节点,靠近植物根部放置。

下图为使用的手机端app。注意,该app实际是由网络上公布代码的模版app(主要参考为最左侧的左侧弹出式菜单 )修改得来。原本自己设计的app因为初学时间有限,界面相较起来简单、没有美感(太丑),最终弃用(最终版也非本人修改)。 APP制作工具见文章:《用App Inventor制作自己的安卓App(准备阶段)》

三、负责模块介绍

下图为个人负责的模块“有方N10阿里云iot物联网模组”,该模块主要通过2G网络与服务器连接。使用STM32向该模块发送AT指令进行MQTT格式的网络连接,获取到返回信息后再返回给STM32。 STM32进一步处理后,通过终端带有的显示屏显示出来。模组插上正常功能的手机卡后,还可以拨打电话和发送短信,功能扩展性很强。但是个人认为,目前(2023年)2G通信已经几乎没有更多的应用价值了(相比于4G模块的信号和价格)。

四、项目思考

在编写物联网模组的AT指令程序时遇到了经典的if else嵌套的问题。想法是把每次模块返回的OK都检测到后,才执行下一个AT指令的发送,但是这样就会导致许多的if else语句嵌套。 如果流程需要10条AT指令才能完成连接和信息交换,那么if else就要嵌套10层!一般都会尽量避免这种情况。目前的解法是把if else的语句分成“OK”计数程序和switch case语句,以提高可读性。