更全的杂志信息网

开源硬件Arduino与乐联网的农业环境实时监测系统*

更新时间:2016-07-05

引 言

农业生产环境复杂多变,传统农业生产过程对各项参数全凭经验进行模糊处理,农作物的生长环境参数无法实时监测及追溯,不利于精准农业的推进。尽管在实际监测工作中已有很多环境参数监测系统,但此类系统大多需要在各监测节点之间组网,将数据汇总至本地服务器后上传广域网,需开发配套的上位机软件系统复杂,可拓展性差,不利于远程实时监测。同时,系统线路铺设复杂,在湿度高、光照强的环境中使用极易使线路老化,缩短使用寿命[1-3]。为解决上述问题,本文提出基于Arduino、ESP-01S和乐联网的环境参数实时监测设计方案,本方案将各监测节点采集的环境参数通过数据透传直接上传乐联网,结构简单,扩展性好。系统现已完成可靠性试验,即将投入农业环境参数的监测中使用。

硝盐(硝酸钠、硝酸钾、亚硝酸钠)是肉制品中应用历史最久、范围最广的添加剂之一,具有发色、抑菌防腐、抗氧化和增香等功能,即不仅是作为腌肉的发色剂使产品具有美观鲜艳的色泽,还对肉毒杆菌及其他腐败菌和致病菌有良好的抑制作用,此外还具有抑制脂肪氧化和增强腌制品风味的作用,可显著降低肉品安全风险,延长肉制品保质期[1]。

传感技术:通过这一技术,可在提高机电设备中传感器精度、灵敏度的基础上,进一步提高传感其的性能;同时,还要在基本技术发展的基础上,不断提高传感技术的抗干扰性,以确保传感技术的可靠性。

1 环境监测系统总体设计

环境参数监测系统按功能分为三部分:数据采集、数据记录及云端上传、数据实时监测与导出,系统总体结构如图1所示。

图1 系统总体结构

① 数据采集。此部分包含温湿度传感器、光照强度传感器及时钟模块,是系统的参数感知层,Arduino读取传感器传回的电信号并将其转换为环境参数。

② 数据记录及实时上传。此部分实现了数据存储、转发,是本系统的核心。系统根据时钟模块提供的时钟,每两分钟上传一次数据至乐联网服务器,每30 min系统存储一次数据至Micro SD卡。

③ 数据实时监测与报警。管理员可通过观察监测系统的LCD或通过手机等互联网设备获取实时数据。乐联网提供了参数超差提醒功能,用户可以对特别关注的参数定义报警区间,一旦检测到该参数超差,乐联网会自动发送短信或微信消息通知用户。

2 系统硬件设计

2.1 主要元件及电路搭建

① Arduino UNO R3。

⑧ AMS1117-3.3 V降压模块。

③ DHT22温湿度传感器。

3)因此,输入序列x(n)可以表示为单位抽样序列δ(n)的移位相加;输出序列y(n)可以表示为单位脉冲响应序列h(n)的移位相加。相对于输出序列的卷积表达式而言,输入序列的卷积表达示中,由于单位抽样序列仅在零点有值,因此序列翻转前后没有变化,相乘运算只是乘以1个采样点的值,且幅度为1,因此相当于没有翻转和相乘的运算步骤。

④ GY-30 光照强度传感器。

⑤ LCD5110。

if (SD.exists(logFileName) == 0 ) {

⑦ Micro SD卡模块。

② ESP-01S WiFi模块。

三角诈骗是诈骗罪的一种特殊类型。与一般诈骗不同的是该学说将顾客和商家分别置于被骗人与受害人的地位。持该种观点的学者认为,行为人通过偷换二维码欺骗了顾客,进而让顾客错误扫码支付处分了商家的财物,由于顾客获得了商品对价,不存在损失,故本案最终受害者是商家。

硬件电路连接图如图2所示。

图2 系统硬件构成及连接

2.2 Arduino UNO R3

本系统的控制器选用Arduino UNO R3。 Arduino是一种开源硬件,用户可从开源网站上获取丰富的第三方库和示例程序,实现快速开发。Arduino UNO的微控制器核心是ATmega328,该处理器核心有14个数字输入/输出端口,其中6个可作为PWM输出,6个模拟输入端口[4]。Arduino支持标准串口通信、SPI通信以及I2C通信,这使Arduino传感器的选择范围大大增加。

2.3 ESP-01S

ESP-01S是一款低功耗UART-WiFi模组,用户可通过AT指令将设备接入互联网。该模块使用ESP8266微型MCU作为核心芯片,模块集成有板载天线,支持IEEE802.11 b/g/n协议,完整的 TCP/IP协议栈。Arduino通过串口与ESP-01S通信,波特率为115 200,能高效地将数据发送至互联网。由于ESP-01S的工作电压为3.3 V,本系统使用AMS1117-3.3 V将Arduino输出的5 V电源降压后为模块供电。ESP-01S接入Arduino前,使用串口调试工具对其进行工作模式配置:

① 将ESP-01S预设为SoftAP+Station模式,并将此配置保存到Flash。管理员如需变更WiFi名称密码,只需用手机接入ESP-01S发射的WiFi热点进行配置,无需再次编程烧录,配网界面如图3所示。

图3 网络配置界面

dataFile.print(sTime);

2.4 LCD5110

本系统选用LCD5110作为参数实时显示单元,其芯片核心为Philips PCD8544。PCD8544是低功耗CMOS LCD控制驱动器,芯片上集成所有的显示功能,通过SPI总线与Arduino通信,传输速度快。LCD5110内置背光,拥有52×52像素分辨率,可显示6行西文字符,单屏即可显示所有信息[5-6]。该屏幕驱动电压位宽,耗电量低,价格低廉,适合作为本系统的显示器。

2.5 DHT22温湿度传感器

DHT22温湿度传感器集成了一个NTC测温元件和一个电容式感湿元件,与8位单片机连接,该传感器具有响应速度快、性价比高、抗干扰能力强等优点。传感器采集数据过程中调用内部储存的校准系数进行校正,测量精度高。传感器采用单总线输出,与Arduino连接简单、传输距离远。

2.6 GY-30光照度传感器

GY-30数字光强传感器通过I2C总线接入Arduino。I2C总线是一种多主机总线,可以灵活拓展传感器数量,如需增加传感器,将从端设备时钟线、数据线连接在一起,通过访问不同的地址即可读取目标传感器[7]。GY-30拥有接近视觉的光谱灵敏度特性,测量范围为1~65 535 lx,受红外线影响小。GY-30提供了三种测量模式,分别为高分辨率模式1、高分辨率模式2和低分辨率模式。本系统采用高分辨率模式2,此模式下采集的数据可抑制部分噪声,数据采集精度高。

2.7 Micro SD卡读写模块

该模块与Arduino通信方式为SPI总线通信,MISO、MOSI、SCK为SPI总线。通过文件系统及SPI接口驱动程序,Arduino即可完成对Micro SD卡的文件的读写。该模块内置电平转换电路,接口电平支持5 V和3.3 V。 Arduino IDE提供了SD卡读写库,用户可方便的在SD卡上创建、读取、更新、删除文件。本系统设定的数据存储间隔为30 min,存储格式为逗号分隔符格式(Comma-Separated Values, CSV),用此格式存储数据,可直接用EXCEL打开。

2.8 DS3231时钟单元

DS3231是高精度的I2C总线实时时钟,工作温度宽,内部集成的温补晶振和晶体使得DS3231的计时精度高达±2分钟/年。此模块内置的电池可以使时钟在断电情况下仍保持运行,是系统理想的时钟单元。

3 系统软件设计

3.1 程序流程

系统上电后首先初始化各传感器、时钟、各总线及串口。同时ESP-01S自动与乐联平台建立透传连接,WiFi接入点信息及透传建立命令存储于ESP-01S Flash中,无需Arduino再对其发送指令控制,节省了Arduino的内存开销,提高了程序循环效率。程序采用轮询方式判断是否需要上传数据及记录数据到Micro SD卡。程序流程图如图4所示。

图4 程序流程图

3.2 Arduino关键程序

本系统有两个关键子程序:

① 向服务器发送数据。我们定义一个函数PostData()完成数据推送。其中,全局变量temp、humi、light分别存储当前温度、湿度及光照强度数值。在数据包透传过程中,要使用大量字符串,但Arduino UNO只有2 KB主存储器(SRAM)空间,字符串使用过多导致系统动态内存不足,运行不稳定,本程序对字符串存储进行了优化,将字符串存储于Flash中,程序执行时自动从Flash中调用字符串,大大节省了内存空间[8]。源程序如下所示:

recordFlag = tm.minute();

Serial.print(F("{"method":"update","gatewayNo":"01","userkey":"af5c50f620"}&^! "));

Serial.print(F("{"method":"upload","data":[{"Name":"TEMP","Value":""));

Serial.print(temp);

Serial.print(F(""},{"Name":"HUMI","Value":""));

Serial.print(humi);

培养小学生的数学计算能力,重在激发兴趣,让学生理解算理,切实重视口算,加强估算,熟练掌握四则运算,并根据实际采用简算、速算,使用不同的计算工具进行计算,培养学生良好的计算习惯,这既是在培养学生应用数学的意识和能力,也是在培养学生多样化解决问题的能力促使学生的创新能力得到发展,为学生的后续学习打下坚实的基础。

Serial.print(light);

Serial.print(F(""}]}&^! "));

}

② 向Micro SD卡中存储当前各参数及时间。我们编写了函数dataLog()来完成数据存储,每天新建一个文件存储当天数据,以日期作为文件名。程序首先改变标志位recordFlag,避免了同一分钟内数据记录多次,随后使用逗号分隔符格式向文件写入表头,最后写入各项参数。源程序如下:

void dataLog() {

void PostData() {

pinMode(CS_PIN, OUTPUT);

StringlogFileName;

logFileName = String(tm.month()) + "-" + String(tm.day()) + ".csv";

SD.begin(CS_PIN);

//向新创建的文件写入表头

⑥ DS3231 时钟模块。

三是继续加大教育投入,推动教育体制改革,提升人力资本数量与质量。不仅要重视学校教育,也要重视就业后的再培训工作。人力资本的提升不仅可以提高全要素生产率,也会阻止投资效率的降低。

FiledataFile = SD.open(logFileName,FILE_WRITE);

dataFile.print("DATE");

dataFile.print(F(","));

dataFile.print("Time");

dataFile.print(F(","));

dataFile.print("Humidity");

(2)丰富的旅游资源支撑。庐山景点分布密集,在300多km2的景区内,有知名景观16处,景点474处,且景点质优。它自古以来有“匡庐奇秀甲天下”的美誉,依江临湖,有名山、大江、名湖三者浑然一体,山的险峻与江、湖的柔美秀丽相结合,以“雄、奇、险、秀”闻名于世。庐山多奇峰险峻、深谷峭壁,秀峰、五老峰、锦绣谷、龙首崖、汉阳峰等山地景观都是值得游览的好去处,为庐山民宿发展提供了旅游资源支撑。

dataFile.print(F(","));

随着“互联网+”的兴起,无论是计算机专业还是非计算机专业的中职学生,社会对其计算机能力的要求越来越高。然而现实生活中很多中职毕业学生缺少利用计算机技术解决实际生活中遇到问题的能力。很多时候,中职学生所面临的并不是单纯的文凭门槛,更多面临的是运用知识和实践动手能力不足的尴尬境地。在这样的时代背景下,互联网正成为信息时代的主要载体和工具,中职学生需要学会利用“互联网+”技术,更需要培养计算机运用能力,成为具有解决实际问题能力的信息人才。

dataFile.print("Temperature");

上式中,和分别表示非耐用品与耐用品的价格;Ht表示消费者新购买的耐用品;Bt表示无风险债券;与分别表示非耐用品部门与耐用品部门名义工资;与表示消费者在非耐用品部门与耐用品部门的就业;Rt表示名义利率;为物质资本租金率;常量K表示物质资本,与Barsky et al. 相同,[17]我们将物质资本设定为常数,原因在于任意时期经济中可供使用的物质资本数量是一定的(取决于上一时期末物质资本存量);Ot表示消费者获得的其他收入。定义δ为耐用品的折旧率,耐用品Dt的动态积累过程为:

dataFile.print(F(","));

Serial.print(F(""},{"Name":"LIGHT","Value":""));

小陇山林区是天然次生林区,次生林经营是森林经营的重要组成部分,为确保该地区能长期获得森林的生态效益,应尽可能减少人工采伐对自然环境造成的破坏,做好森林抚育管理工作。林业管理人员需明确当前开展森林抚育管理工作时所面临的问题,总结前期管理经验,针对幼龄林、中龄林、风景林以及受害木林等不同林区采取有针对性的森林抚育管理措施,以确保萌生林能顺利成长为实生林。

(1)仅在预应力作用下,箱梁翼缘板上产生的正应力不均匀分布现象,仍然符合传统意义上关于剪力滞的定义,即由于翼缘板不均匀剪力流引起的,所以引用剪力滞概念来描述这种正应力不均匀分布现象是有理论依据的。由本研究得出来的结论如下:宽跨比对于箱梁剪力滞系数沿着纵向分布没有影响;腹板越来越厚时,靠近支座的剪力滞系数和剪力滞系数峰值有所减小,其他位置的剪力滞系数差别不是很大。

dataFile.println("Illuminance");

dataFile.close();}

主要观察缼齿蓑藓的枝叶形态和细胞性状,并参照Yu等[7]的方法进行测量。缼齿蓑藓配子体枝叶13个形态性状具体见表2。

FiledataFile = SD.open(logFileName, FILE_WRITE);

dataFile.print(sDate);

dataFile.print(F(","));

sTime=String(tm.hour())+":"+String(tm.minute());

② 将ESP-01S与乐联建立TCP透传。透传即透明传送,整个传输过程中不对数据进行二次加工,即不加密、不分组、不编码等,信息原封不动地到达数据接收端。ESP8266芯片提供了保存透传到Flash指令,将透传模式及建立的TCP连接保存在Flash区域,重新上电时自动建立与乐联网的TCP透传连接。

dataFile.print(F(","));

dataFile.print(humi);

dataFile.print(F(","));

dataFile.print(temp);

在室内空间设计中通过选择合理的材料会对室内环境产生重要的影响,同时也能较好的体现用户的审美情趣与审美品位。这就要求在实际的室内设计中设计人员可以选择合适的材料,材料之间互相搭配作用,在比较有限的室内空间内给人带来比较愉悦、舒适的感受。根据室内空间的特点、区域以及功能不同就需应用不同的装饰材料,从而使用户产生不同的视觉感受。在室内空间设计中,设计人员要及时的与用户进行沟通,了解用户的喜好与需求,并集合建筑风格、建筑结构,选取多种不同特色与功能的装饰材料,并对其进行灵活、合理的搭配,这样才能将用户的审美与室内空间的功能有机统一起来。

dataFile.print(F(","));

dataFile.println(light);

dataFile.close();

}

4 测试结果分析

数据实时监测:经测试,环境参数上传稳定,无丢包。使用电脑或微信访问乐联网即可查看各参数实时数据、历史走势、数据分布等,图5给出乐联平台微信端实时数据查询界面。

图5 实时数据查询

历史数据导出:管理员可登陆乐联平台进入下载历史数据导出界面,选择时间段导出数据,也可使用读卡器读取本地的Micro SD卡导出历史数据。本系统存储的数据可直接在Excel中操作,管理员可利用Excel高效地对采集的环境参数进行统计学分析,如图6所示。

图6 导出数据并分析

数据采集精度:本系统测得的环境参数值与温湿度计、光照度计测试结果非常近似,达到了预期要求,精度完全满足农业监测需求。

结 语

本系统以Arduino、ESP-01S和乐联网作为开发平台,设计了农业环境参数实时监测系统。系统将传感器采集的数据直接上传乐联网,无需搭建本地服务器,大大节省硬件及开发成本,缩短了开发周期。系统具有一定的拓展性,如需增加监测节点,只需在乐联网后台添加新设备即可。借助Arduino丰富的接口及通信协议,可轻松增加传感器的数目及种类。系统通信选用WiFi传输,不受物理网线的约束。综上,本系统给出一种价格低廉、方便实用的环境参数监测方案,可在生产中推广应用。

参考文献

[1] 李岩. 基于Arduino与LabVIEW的农作物生长环境检测系统的设计与实现[D]. 滁州:安徽科技学院,2017.

[2] 毛敏, 马艳. 基于Arduino和Labview的蔬菜大棚温湿度监测系统[J]. 中国仪器仪表,2017(9):65-68.

[3] 朱晓雷. 基于单片机的温室环境数据监测系统的设计[D]. 呼和浩特:内蒙古农业大学,2015.

[4] 张亮. 轻松玩转Arduino[M]. 北京:电子工业出版社,2016.

[5] 蒙克. Arduino编程指南:75个智能硬件程序设计技巧[M].张家进,译. 北京:人民邮电出版社,2016.

[6] 宋楠,韩广义. Arduino开发从零开始学—学电子的都玩这个[M]. 北京:清华大学出版社,2014.

[7] 马格里斯. Arduino权威指南[M].2版.杨云坤,译. 北京:人民邮电出版社,2015.

[8] 赵英杰. 完美图解Arduino互动设计入门[M]. 北京:科学出版社,2014.

汪传生,方德光,张金秀,李绍明,边慧光,贾喜梅
《单片机与嵌入式系统应用》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号