农业温度监测系统

原创
2019/01/05 17:24
阅读数 799

一、前言

1.1物联网是什么?

物联网就是物物相连的互联网。这有两层意思:其一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;其二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信,也就是物物相息。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新2.0是物联网发展的灵魂。

1.2什么是物联网技术?

       什么是物联网技术?我个人认为什么都是物联网技术,物联网就是一种应用开发,应用创新,软硬件技术的整合应用。所以物联网并不是什么新的技术,而是一种各类技术的整合手段。软件技术、通信技术、硬件技术等都属于物联网技术的一部分,也是物联网技术必备的一部分。

1.3物联网通信

       物联网的三层架构分为:应用层、网络层、感知层。应用层以软件为主,感知层以硬件为主,这两类技术也就是传统的软件、硬件技术。技术成熟,规范、协议较统一。

网络层以通信为主,而传统的大多通信协议主要是针对PC对PC,软件对软件协定开发普及应用的,主要为短连接协议。

物联网应用有很多场景需求是实时通信。而由于终端设备一般都处于复杂得网络环境中,没有固定独立的ip地址,服务器无法主动向终端设备发送数据。如果采用传统的短连接通信协议轮询,让终端设备主动向服务器询问获取实时数据,会带来资源开销大,不灵活,开发难度大等问题。为解决这些问题,沿用和开发了一些协议,主要为长连接协议。

目前较统一,使用比较多的有MQTT、COAP、LWM2M、TCP透传、MODBUS等。这些协议都可以实现服务器向设备下发数据。

其中COAP协议基于UDP协议开发的,而LWM2M又是基于COAP的,所以COAP很特殊。为此将使用该协议来进行实际的应用,来分析一下该协议。

二、需求分析

       这里以无有线网络(或部署成本高)的场景来做分析,以农业温度监测控制(无网关)为例。

农田很多都是处于离住宅区比较远的,部署有线网络成本高,需用无线通信。

又因为传感器可能放于农田的任何位置,拉电线供电麻烦,成本高,需采用电池供电,但又因电量有限,需要求设备低功耗。

要能在客户端控制节点的一些行为,需数据下发。

需求总结:无线通信、电池供电、低功耗、数据下发、无网关。

三、解决方案

3.1确定通信架构

 
       由前面的需求分析应采用的通信架构为:客户端-服务端-终端设备(CST)架构(如图1)。

 

按以上的通信架构架构可知:终端与服务端需实时双向通信,客户端与服务端也需实时双向通信,来间接达到客户端与终端点对点通信。

3.2确定通信硬件

终端应采用NB-IOT通信模块,原因:低成本、低速率、低功耗、低延时、广域网连接。

3.3确定客户端与服务端的通信协议

客户端与终端应采用MQTT、HTTP混合通信,原因:MQTT主要来接收实时数据的主动推送与客户端数据上传,http用来获取不需实时主动推送的数据,两者混合使用,减少资源开销。

3.4确定通信模块的通信协议

       通过综合考虑,选用稳恒科技公司型号为WH-NB75-B5的NB-IOT通信模块。通过阅读该模块的技术文档,对比所支持的协议,结合使用的场景,确定采用coap协议的PSM模式。

3.5系统架构

       综上分析得出最终的解决方案架构(如图2),其中终端设备采用的通信模块为WH-NB75-B5的NB-IOT通信模块。

四、系统实现

4.1终端

    温度传感器采用DS18B20,因为该传感器成本低,采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点。测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。

单片机按照DS18B20的时序图规定编码读取传感器数据,转换成为十进制,通过串口发给NB-IOT模块传到服务器(单片机没有用AT指令规定的格式来发送数据,而是直接吧数据发送给NB-IOT模块,去除了不必要的数据),可采用电池供电,大概架构如图3。

 

 

 

 

4.2服务端

4.2.1数据处理层

       部署系统为centos,采用java进行开发,执行效率较快,易开发,跨平台,可封装打包,稳定性高。

       该层主要监听接收电信服务器(由于直接对接电信服务器需申请资质,所有这里将模块注册在已对接电信服务器的第三方平台,来间接达到此目的)转发过来的NB-IOT模块上传的数据,将数据处理,存储到数据库。

4.2.2接口服务层

       查询:部署系统为centos,采用php语言开发,通信协议为HTTP,给用户提供数据库数据查询接口,以json格式返回,支持jsonp跨域访问。

       控制:通过客户端发送给服务务器,再由服务器到终端设备,这一部分的转发功能由于只能通过电信服务器(因为NB-IOT采用COAP协议)进行转发,对接的第三方平台已经提供了转发接口,没必要通过私有服务器-第三方平台-电信服务器进行三次转发,这样时延将变高,因此没做二次开发,直接调用即可。

接口服务层主要目的是将MVC架构开发的V层分离出去,使得客户端开发接口统一,更灵活,不受编程语言限制,易于扩展。

五、客户端

       采用html+css+JavaScript进行开发,可接收实时数据,以图表显示,可向终端设备发送指令。

六、附录

NB-IOT

待写

COAP

待写

MQTT

待写

源码地址

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部