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

2023-05-16

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

摘要

粤嵌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   系统总体设计

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.3 ZigBee网络感知层:

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

2.3 ZigBee网络感知层:

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

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

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

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操作系统之上,具有微内核、实时性、多任务等特点。

测试

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

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

 

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

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

 

3.3  两个终端节点

图3.3 集  两个终端节点

 

3.4  NB-IOT模块与协调器

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

 

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

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

3.6  TCP客户端显示控制平台

图3.6  TCP客户端显示控制平台

 

3.7   网页端数据显示平台

图3.7   网页端数据显示平台

 

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

图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类的开发。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

物联网系统网关开发与实现 的相关文章

  • 以太坊的Ethash算法

    Ethash认真的阅读 xff0c 理解 xff0c 计算和调试了一番 xff0c 顺便自己翻译了一下 xff0c 共同学习 此规范是修订版23 Ethash 是 Ethereum 1 0 的计划的PoW算法 这是最新版本的Dagger H
  • MinGW下载

    下载地址 https www mingw w64 org downloads 选择windows版本 点击MingW W64 builds进入页面 https www mingw w64 org downloads mingw builds
  • 关于c语言中printf的几个问题

    问题在执行下列代码时发现的 int main int a 61 1 float b 61 1 0 float c 61 a 10 printf 34 d 34 int b printf 34 d 34 b 问题一 为什么不一样啊 用 d输出
  • 北斗定位与GPS定位的区别

    欢迎来到东用小知识课堂 xff0c 每天学习一分钟 xff0c 让你紧跟时代 xff0c 扩充自己 xff0c 成为大佬不是梦 xff01 1 覆盖范围 xff1a 北斗定位系统是覆盖中国本土的区域导航系统 覆盖范围东经约70 一140 x
  • 污水处理远程监控系统解决方案

    一 行业背景 随着我国科技和经济的发展 xff0c 近年来工厂数量日益增多 xff0c 而生产所带来的工业垃圾及污水就是一个重要的环境污染问题 xff0c 部分工厂甚至会在监管部门的监控死角下偷偷进行污水排放 xff0c 对周围水质造成严重
  • 5G工业路由器安全性怎么样?工业路由器的特点

    路由器 xff0c 本身就是一个具有相当大潜力的网络通信设备 xff0c 即使再是网络小白的用户 xff0c 可能也知道路由器是家中用于发布无线网络的设备 xff0c 如果深入了解的话 xff0c 其作用和发展会让人大为感慨 相信很多用户也
  • 路由器有防火墙?工业路由器的那些安全防护

    想要网络安全光是电脑装了杀毒软件可不行 xff0c 如果一个企业或者大型工厂一旦因为网络防护疏忽 xff0c 那么丢失数据信息所造成的损失是无法估量的 xff0c 所以企业及工厂网络通信及数据传输所使用的路由器一般都是工业级的 xff0c
  • Cat.1和Cat.4有哪些区别

    Cat 1的全称为LTE UE Category 1 xff0c 它是4G LTE网络的一个类 xff0c 也可以理解为低配的4G终端 xff0c 属于广域网 xff0c 蜂窝联网 xff0c 上行峰值为5Mbit s xff0c 下行峰值
  • RS485接口连接设备数量总共有多少?

    RS485总线可以连接256个设备 xff0c 但测试后发现这个数字有比较大的差异 有一种说法认为专门开发串行嵌入式的RS485总线只能连接32个节点 xff0c 这由自身的驱动能力决定的 有人说网上的各种485总线产品可以支持128个 x
  • 预防山体滑坡,泥石流监测智能预警系统

    一 行业背景 我国是一个山区面积较大的国家 xff0c 山地 丘陵约占国土总面积的2 3 xff0c 在众多的山区中 xff0c 都具备泥石流形成的基本条件 xff0c 这也让我国成为受泥石流灾害影响最大的国家 在我国境内 xff0c 泥石
  • 如何扩大无线网络信号强度?

    欢迎来到东用小知识课堂 xff0c 每天学习一分钟 xff0c 让你紧跟时代 xff0c 扩充自己 xff0c 成为大佬不是梦 xff01 无线网络通信设备存在一个问题 xff0c 那就是他的信号发射都是直线型 xff0c 因此一旦家中或者
  • OpenWrt 添加cpu温度显示监控

    opkg update opkg install lm sensors lm sensors detect 然后修改一下 usr lib lua luci view admin status index htm 增加一个温度的显示 lt C
  • RS485接线方式小科普

    欢迎来到东用知识小课堂 xff01 RS 485采用平衡发送和差分接收方式实现通信 xff1a 发送端将串行口的ttl电平信号转换成差分信号a xff0c b两路输出 xff0c 经过线缆传输之后在接收端将差分信号还原成ttl电平信号 RS
  • 传输数据稳如老狗,还支持多种接口,这款DTU让智能化更简单

    如果你的项目正在向着智慧化转变或发展 xff0c 那么你一定会深刻意识到数据传输的稳定性对于整个系统的稳定运行的重要性 毕竟 xff0c 项目的智能化发展需要时刻保持数据的可靠性和稳定传输 xff0c 如果一旦传输因设备或者网络等因素导致中
  • 什么是光耦隔离?光耦隔离的主要作用

    欢迎来到东用知识小课堂 xff01 光耦合器的结构相当于把发光二极管和光敏三极管封装在一起 光耦隔离电路使被隔离的两部分电路之间没有电的直接连接 xff0c 主要是防止因有电的连接而引起的干扰 xff0c 特别是低压的控制电路与外部高压电路
  • ORB305与CISCO路由器构建L2TP over IPSec VPN操作手册

    1 网络拓扑 在思科路由器与ORB305之间建立一个安全隧道 xff0c 对客户路由器端设备子网 xff0c 与思科路由器端服务器子网之间的数据流进行安全保护 xff0c 组网拓扑图如图所示 2 思科路由器端配置指导 此处以多数客户使用专线
  • linux下使用UDP发送接收数据

    接收 static int sock fd struct sockaddr in recv addr 读取参数 struct sockaddr in send addr 发送参数 sock fd 61 socket AF INET SOCK
  • 0长度数组的使用,重点掌握的知识

    0长度的数组在ISO C和C 43 43 的规格说明书中是不允许的 xff0c 但是GCC的C99支持的这种用法 GCC对0长度数组的文档参考 xff1a Arrays of Length Zero 如下代码片段 xff0c 哪个更简洁更灵
  • Freertos中检测内存的剩余函数

    static uint16 t prvTaskCheckFreeStackSpace const uint8 t pucStackByte
  • 重定位

    一 必须知道的几个概念 1 链接地址和运行地址 运行地址 xff0c 顾名思义就是程序运行的时候的地址 xff0c 也就是你用工具将代码下载到RAM的那个地址 xff0c 也叫加载地址 链接地址 xff0c 由链接脚本指定的地址 为什么需要

随机推荐

  • CC2541低功耗的实现方法

    转自 xff1a http blog csdn net mzy202 article details 42091537 CC2541 CC2540 实现超低功耗是非常重要的 xff1a 我们来总结一下实现方法 xff1a 1 xff0c 有
  • Macbook pro/air 2013 late -2014 使用转接卡更换NVME SSD休眠不醒问题的解决办法

    2021年1月更新 xff0c 发现升级 big sur 11 1之后 xff0c 固件版本变成了429 0 0 0 睡眠问题又回来了 xff0c 每次都睡死 xff0c 不醒 于是我按老办法 xff0c 把mbp114的nvme驱动刷到m
  • stm32使用stlink v2.0下载的sw接线方式

    stm32的sw下载需要用到4根线 GND VCC SWCLK SWDIO xff0c 对应好即可 xff0c 相比较3根线的方式 xff0c 优先推荐4根线下载方式
  • stm32芯片的焊接

    stm32的焊接 xff0c 使用到东西 xff1a 松香 xff0c 维修佬 xff0c 烙铁 1 首先将stm32的一个角的脚上涂上维修佬 xff0c 要特别特别少 xff0c 太多了 xff0c 容易粘连到其他脚上面 xff0c 不好
  • Modbus-RTU通讯协议中CRC校验码的计算步骤

    在CRC计算时只用8个数据位 xff0c 起始位及停止位 xff0c 如有奇偶校验位也包括奇偶校验位 xff0c 都不参与CRC计算 CRC计算方法是 xff1a 1 预置1个16位的寄存器为十六进制FFFF xff08 全1 xff09
  • 一个很好的makefile例子(经典)

    转自http www cnblogs com sld666666 archive 2010 04 08 1707789 html 相信在unix下编程的没有不知道makefile的 xff0c 刚开始学习unix平台 下的东西 xff0c
  • 无线传输距离计算公式

    转自一篇文档 无线传输距离计算 Pr dBm 61 Pt dBm Ct dB 43 Gt dB FL dB 43 Gr dB Cr dB Pr xff1a 接受端灵敏度 Pt 发送端功率 Cr 接收端接头和电缆损耗 Ct 发送端接头和电缆损
  • hex文件解析

    Keil开发环境编程时对源程序进行编译链接后都 可以 成一个可执行文件即 hex文件 xff0c 但是有不完全是一个可执行文件 然后 可以 通过烧录工具烧写到对应的单片机的 flash中 xff0c 当然也还有其他方法可以进行烧录 大家在编
  • Ubuntu下如何挂载以及卸载U盘?

    l 在挂载U盘前 xff0c 首先运行命令cat proc partitions xff0c 看看现在系统中有哪些分区 插上u盘以后 xff0c 再次运行上述命令 xff0c 看看多出来什么分区 xff08 通常是sda1 xff0c 由于
  • 链接脚本文件的写法

    对于 lds文件 xff0c 它定义了整个程序编译之后的连接过程 xff0c 决定了一个可执行程序的各个段的存储位置 虽然现在我还没怎么用它 xff0c 但感觉还是挺重要的 xff0c 有必要了解一下 先看一下GNU官方网站上对 lds文件
  • Ubuntu18.04+思岚激光雷达A2M7+ROS测试

    Ubuntu18 04 43 思岚激光雷达A2M7 43 ROS测试 1 测试环境搭建 测试环境 xff1a Ubuntu18 04 43 ROS Melodic测试工具 xff1a 思岚科技激光雷达A2M7 43 USB转接工具 2 下载
  • ROS系统的串口数据读取和解析

    原帖地址 xff1a https blog csdn net Tansir94 article details 81357612 一 Ubuntu下的串口助手cutecom 下载 xff1a sudo apt get install cut
  • tcp buffer设置

    本文基于CENTOS DEBIAN UBUNTU 编写 我有两台位于不同数据中心的服务器 xff0c 都用来处理很多并行的大文件传输 但是处理大文件 xff0c 网络性能非常差 并且涉及到一个大文件 xff0c 会导致性能降级 我怎样通过调
  • URL模块之parse方法

    url parse urlString boolean boolean parse这个方法可以将一个url的字符串解析并返回一个url的对象 参数 xff1a urlString指传入一个url地址的字符串 第二个参数 xff08 可省 x
  • Makefile 知识点记录

    Makefile 知识点记录 1 依赖类型 xff1a normal Prerequisites xff0c order only prerequisites normal Prerequisites xff1a 标准依赖具有两层含义的声明
  • 视频矩阵系统中三代OSD字符叠加技术全面解析

    视频矩阵系统中三代OSD字符叠加技术全面解析 屏显信息更丰富 中文效果更出色 使用设置更灵活 视频矩阵系统中三代OSD字符叠加技术全面解析 前言 xff1a 在以矩阵为控制中枢的视频监控系统中 xff0c 大量的视频信号需要在数目有限的监视
  • CV_...报错

    在出错的程序里面添加相应的头文件即可 1 CV LOAD IMAGE COLOR was not declared in this scope include 34 opencv2 imgcodecs legacy constants c
  • 优化IMU数据避免突变的建议

    影响IMU数据变化的主要因素是应力 温度和电气干扰 xff1b xff11 温度的的骤升 xff0c 比如芯片的位置附件有相关器件几秒钟工作一次 xff0c 此时温度骤升 xff0c 可能会引起数据也发生突变 xff0c 周围有变化的热源和
  • JAVA HtmlParser Filter解析网页和表格(半个教程)

    package sometry import java io BufferedReader import java io InputStreamReader import java io FileInputStream import jav
  • 物联网系统网关开发与实现

    项目是大学时期的课程设计 摘要 粤嵌GEC 6818开发板作为系统的网关板 xff0c 其为系统数据的中枢 启动串口收发 xff0c 可以接收到ZigBee网络的协调器通过串口发送的数据 xff1b lCD屏幕编程 xff0c 实现传感网的