物联网系统网关开发与实现

项目是大学时期的课程设计

摘要

粤嵌GEC 6818开发板作为系统的网关板,其为系统数据的中枢。启动串口收发,可以接收到ZigBee网络的协调器通过串口发送的数据; lCD屏幕编程,实现传感网的数据实时显示;建立有MySQL数据库的连接,可以将传感网络的温湿度及门状态信息保存到远端的数据库服务器中;建立有TCP服务器,可以实现与上层应用的通讯;通过串口与NB-IOT模块连接,实现外网通讯数据转发。

物联网的感知层使用的是ZigBee网络,实现多个终端节点的传感器数据获取,多个终端节点的的设备控制,将数据统一由协调器进行管理;网络层使用的是粤嵌6818开发板,实现多种协议的整合,实现数据的转发与处理;应用端有WEB端数据显示和手机端灯控制。

关键词: NB-IOT;物联网网关;数据库; TCP/IP;MQTT

概述

1.1  课题描述

      相比于互联网时代,物联网的通信协议更加多样,物的碎片化非常严重,网关的重要性也就由此凸显——物联网网关能够把不同的物收集到的信息整合起来,并且把它传输到下一层次,因而信息才能在各部分之间相互传输。物联网网关可以实现感知网络与通信网络,以及不同类型感知网络之间的协议转换;既可以实现广域互联,也可以实现局域互联。

      物联网网关,作为一个新的名词,在未来的物联网时代将会扮演非常重要的角色,它将成为连接感知网络与传统通信网络的纽带。此外物联网网关还需要具备设备管理功能,运营商通过物联网网关设备可以管理底层的各感知节点,了解各节点的相关信息,并实现远程控制。

1.2  系统目标

      物联网的感知层使用的是ZigBee网络,实现多个终端节点的传感器数据获取,多个终端节点的的设备控制,将数据统一由协调器进行管理;网络层使用的是粤嵌6818开发板,实现多种协议的整合,实现数据的转发与处理;应用端有WEB端数据显示和手机端灯控制。

1.3  环境

       a) 操作系统:

               Windows10教育版 64位

               Linux

        b) 使用软件:

              安卓开发:Android Studio2.0

              网页开发:Adobe Dreamweaver CC 2017

              数据库:MySql

              文档编写:Microsoft Word 2016

              串口命令行登入:putty.exe

              Tftp服务器:tftpd32

        c) 开发语言:

              Java语言

              PHP语言

              C语言

系统总体设计与详细设计

2.1   系统总体设计

物联网系统网关开发与实现_第1张图片

2.2 网关板设计:

       物联网网关开发板使用的是粤嵌的6818开发板,GEC6818开发平台,核心板采用10层板工艺设计,确保稳定可靠,可以批量用于平板电脑,车机,学习机,POS 机,游戏机,行业监控等多种领域。该平台搭载三星Cortex-A53系列高性能八核处理器S5P6818,最高主频高达1.4GHz,可应用于嵌入式Linux和Android等操作系统的驱动、应用开发。开发板留有丰富的外设,支持千兆以太网、板载LVDS接口、MIPI接口、USB接口等。

      GEC6818开发平台支持三大操作系统,具备完整的教学资源和教学内容,包括:ARM微处理器系统驱动的实验、嵌入式实时操作系统Linux开发、嵌入式Android系统开发、嵌入式Android应用开发、嵌入式系统项目实战开发等内容。

      GEC6818开发板使用的是嵌入式Linux系统,内部运行有TCP服务器,可以等待TCP客户端连接以提交数据与接收控制指令;内部运行有数据库客户端,可向数据库服务器保存感知层上报的传感器数据;板子集成有800*480的显示屏,可以通过显示屏实现模块状态及传感器数据的显示;板子通过两个串口分别与ZigBee网络感知层的协调器、NB-IOT模块进行通信。实现多协议的集成,数据的收发、处理、转发。

      GEC6818开发板是系统的数据中枢。

物联网系统网关开发与实现_第2张图片

2.3 ZigBee网络感知层:

    系统的感知层使用的是ZigBee网络进行组网数据传输,其有一个协调器和两个终端节。终端节点实现感知与控制,其感知部分分别包括有温湿度传感器、霍尔门控传感器;其控制部分是分布在每个终端上的三色LED灯。

物联网系统网关开发与实现_第3张图片

2.3 ZigBee网络感知层:

    系统的感知层使用的是ZigBee网络进行组网数据传输,其有一个协调器和两个终端节。终端节点实现感知与控制,其感知部分分别包括有温湿度传感器、霍尔门控传感器;其控制部分是分布在每个终端上的三色LED灯。

物联网系统网关开发与实现_第4张图片

2.4 显示控制平台及数据保存:

       显示控制平台是基于网关板面向用户的开发,其将需要将网关的数据经过处理后通过图文等简易方式返回给用户观看与操作,实现数据的快速利用。6818网关板上接有LCD屏幕显示,实现门开关状态的显示、两个终端模块的上下线显示、温湿度的实时显示。TCP显示控制台,是通过连接网关板的TCP服务器实现的,可以通过获取网关板所发送的数据,进行解析后显示模块状态、门状态、温湿度数据,也可通过按钮触发实现控制命令的下发。数据保存是会将网关接收的传感器数据实时保存到数据库,数据库的数据展示将会通过网页进行查询展示。手机端的数据接收与控制指令的发送是通过MQTT协议,而网关板实现MQTT协议是通过NB-IOT模块。

物联网系统网关开发与实现_第5张图片

2.5 NB-IOT模块实现:

 网关通过串口与NB模块进行通信,NB模块通过MQTT应用协议与应用层通信,应用层的实现是手机接收相关传感器数据与发送控灯指令。MQTT服务器是搭建在腾讯云主机上的。

BC26的特性:

全网通

支持AT指令

支持OpenCPU,可省去外围MCU

支持高速移动(80km/h~120km/h)

采用联发科的MT2625芯片

OpenCPU

1. OpenCPU是基于移远模块的二次开发方案,用户可以直接在模块里开发集成应用,从而省掉外部主控MCU。OpenCPU已被广泛的用于M2M领域,例如智能家居、智能城市、资产追踪,汽车能源等领域。

2. OpenCPU与传统方案对比如下图。 在传统方案中,需要一个MCU作为主控制器,控制硬件外设,例如控制路灯的亮或灭,然后使用MCU的UART接口与标准模块进行AT指令通信,上报当前路灯状态,或接收来自远程服务器的开关灯命令。而OpenCPU方案,可以直接在模块中编写程序控制路灯,节约硬件成本,加速应用开发。

3. OpenCPU核心系统是NB-IoT模块的软硬件结合。它内置ARM Cortex-M4处理器,构建在FreeRTOS操作系统之上,具有微内核、实时性、多任务等特点。

物联网系统网关开发与实现_第6张图片

测试

3.1    智能控制及网关系统硬件整体:

物联网系统网关开发与实现_第7张图片 图3.1  智能控制及网关系统硬件整体

 

3.2  粤嵌6818开发板网关显示界面:

物联网系统网关开发与实现_第8张图片 图3.2 粤嵌6818开发板网关显示界面

 

3.3  两个终端节点

图3.3 集  两个终端节点

 

3.4  NB-IOT模块与协调器

图3.4集  协调器与NB-IOT模块

 

3.5  模块1下线时网关板上显示

物联网系统网关开发与实现_第9张图片 图3.5模块1下线时网关板上显示

3.6  TCP客户端显示控制平台

物联网系统网关开发与实现_第10张图片 图3.6  TCP客户端显示控制平台

 

3.7   网页端数据显示平台

物联网系统网关开发与实现_第11张图片 图3.7   网页端数据显示平台

 

3.8   通过手机与NB-IOT模块通信实现开关等

物联网系统网关开发与实现_第12张图片 图3.8   通过手机与NB-IOT模块通信实现开关等

 

课程设计总结或结论

1    物联网网关的重要性:

相比于互联网时代,物联网的通信协议更加多样,物的碎片化非常严重,网关的重要性也就由此凸显——物联网网关能够把不同的物收集到的信息整合起来,并且把它传输到下一层次,因而信息才能在各部分之间相互传输。物联网网关可以实现感知网络与通信网络,以及不同类型感知网络之间的协议转换;既可以实现广域互联,也可以实现局域互联。

 

2    JPEG图片的定点显示问题:

6818网关板上有800*480的LCD屏,如何在板子上显示图片,可以使用jpeg库。其需要的效果是显示实时的传感层数据,如果想要达到较好的效果是不能直接更换整张图片的,这将要涉及到定点替换图片,实现背景图片的显示和实时数据的替换。

参考原整张图片替换的函数,修改函数为void jpeg_show(int xx,int yy,char *fullfilename),函数携带X和Y轴的偏移量和图片地址,通过写像素点函数lcd_draw_point(cinfo.output_scanline+yy,i+xx,color);加上偏移量实现定点写图片,定点更换显示的效果。

 

3    OpenCPU的联想:

三年来接触过的开发板也算是挺多了吧,ESP8266、ESP32、NB-IOT都是支持AT指令和OPenCPU类的开发,为什么要有OpenCPU呢,之前和移远技术人员通电话他给我的解释是BC26之所以支持OpenCPU就是针对于那些舍不得买个外部MCU的人使用的,一般的都是使用AT加外部MCU开发的。哈哈,此处有点接不上话。

根据个人开发经验,AT指令方便于测试,OPenCPU类方便于开发。如果将一个自带有IO口的单片机只是实现一些特定的功能或者仅仅是数据转发,而且还要严格按照AT指令的格式进行数据解析,那将是一件和为难自己认知的事情。

作为物联网工程专业学生,在面对系统开发时应该正确的使用AT与OpenCPU类的开发。

你可能感兴趣的:(物联网项目,物联网,嵌入式,网络)