随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力。

物联网场景中设备大多都是资源限制型的,比如 CPU、RAM、Flash、网络宽带等。尤其是由电池供电的设备,对传输协议的功耗以及带宽非常敏感,直接使用 TCP 和 HTTP 协议来实现设备与平台之间的数据交换无法满足设备对低功耗的要求。

为了让这部分设备能够顺利接入网络,CoAP 协议应运而生。作为致力于为物联网各类场景提供数据连接能力的全托管 MQTT 消息服务,EMQX Cloud 也支持 CoAP 协议的设备接入,允许符合某种定义的 CoAP 消息格式向 EMQX Cloud 执行发布、订阅、和接收消息等操作。

本文将介绍如何使用 EMQX Cloud 实现 CoAP 协议设备的接入。

CoAP 协议简介

由于物联网场景复杂多样,设备端硬件条件、网络稳定性、流量限制、设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与传统互联网场景有着很大不同,也因此产生了多种物联网通讯协议。

CoAP 协议网关作为一种在物联网世界的类 HTTP 的协议,使用在资源受限的物联网设备上,它的详细规范定义在 RFC 7252。

协议特性

CoAP 参考了很多 HTTP 的设计思路,同时也根据受限资源限制设备的具体情况改良了诸多设计细节,增加了很多实用的功能。如:

  • 基于消息模型
  • 传输层基于 UDP 协议,支持受限设备
  • 使用类似 HTTP 请求的请求/响应模型,HTTP 是文本格式,CoAP 为二进制格式,且比 HTTP 更加紧凑
  • 支持双向通信
  • 轻量、低功耗
  • 支持可靠传输,数据重传,块传输,确保数据可靠到达
  • 支持 IP 多播
  • 支持观察模式
  • 支持异步通信

市场状况

相比于 MQTT,CoAP 更加轻量、开销更低,在某些特定的设备和网络环境下更为合适,EMQX Cloud 以及部分公有云物联网平台都提供提供了 CoAP 接入能力。

CoAP 协议接入 EMQX Cloud

创建部署

新建部署,在 EMQX Cloud 部署页面,获取到公网连接地址:120.77.x.x。

开通 CoAP 接入网关

CoAP 接入网关目前处于内测阶段,您可以提交工单开启接入能力。开通后 CoAP 接入网关地址是您的部署连接地址,即 120.77.x.x,端口为 udp 5683 。

连接到部署、发布订阅消息

libcoap 是一个非常易用的 CoAP 客户端库,此处我们使用它作为 CoAP 客户端来测试 EMQX Cloud CoAP 接入网关的功能。

安装部署可参考如下示例。

git clone http://github.com/obgm/libcoap
cd libcoap
./autogen.sh
./configure --enable-documentation=no --enable-tests=no
make

1、发布示例

我们使用 libcoap 往 EMQX Cloud 部署发布一条消息:

  • 主题名称为:“topic1”
  • Client ID 为:“client1”
  • 用户名为:“emqx”
  • 密码为:“public”
  • Payload 为:“hello,EMQX Cloud”
# CoAP 终端发送消息 "hello EMQX Cloud",topic 为 topic1
./examples/coap-client -m put -e "hello,EMQX Cloud" "coap://120.77.x.x:5683/mqtt/topic1?c=client1&u=emqx&p=public"

接下来,我们使用 MQTT X 订阅对应主题 topic1,即可看到消息已成功发布。

2、订阅示例

我们使用 libcoap 订阅一个主题:

  • 主题名称为:“topic1”
  • Client ID 为:“client1”
  • 用户名为:“emqx”
  • 密码为:“public”
  • Payload 为:“hello,EMQX Cloud”

接下来,我们使用 MQTT X 发送 “hello,EMQX Cloud” 给 topic1 主题。

# CoAP 终端订阅 topic1 主题,-s 20表示订阅维持20秒./examples/coap-client -m get -s 20 "coap://120.77.x.x:5683/mqtt/topic1?c=client1&u=emqx&p=public"

在这期间,如果主题 topic1 上有消息产生,libcoap 便会收到该条消息。

小结

至此,我们完成了使用 CoAP 协议网关接入 EMQX Cloud 的全部流程。

当前物联网协议呈现多元化发展,不同行业和场景适用不同的协议,在相同的场景下也能够有多个协议可供选择,没有任何协议能够在市场上占有统治地位,各种协议之间存在一定的互补效应。因此,要实现物联网设备和数据的互联互通,关键点并不在与协议的统一,而在于不同协议之间的互联互通、上层业务应用层协议的统一。CoAP 协议网关则为解决物联网设备数据连接问题提供了新的可能性。而 EMQX Cloud 支持多协议接入,通过开放标准的物联网协议 MQTT、MQTT over WebSocket、CoAP/LwM2M 将数以亿计的物联网设备可靠地连接到 EMQX Cloud,让物联网数据发挥出更大的价值。

版权声明: 本文为 EMQ 原创,转载请注明出处。

原文链接:https://www.emqx.com/zh/blog/connecting-coap-devices-to-emqx-cloud

将 CoAP 协议设备接入 EMQX Cloud相关推荐

  1. 基于奇特物联MQTT协议设备接入示例

    目录 准备工作 第一步:创建产品 第二步:启动MQTT组件 第三步:准备MQTT连接参数 第四步:使用mqtt客户端模拟设备 第五步:设备数据上报 第六步:指令下发到设备 第七步:使用真实设备接入 准 ...

  2. All in one,EasyCVR解决所有类型的视频协议设备接入的问题(RTSP/Onvif/RTMP/GB28181/Ehome/DSS/IMOS/海康大华宇视SDK)

    之前我有一篇博客<我们为什么要做一款EasyCVR这样的视频平台>专门聊到过为什么已经有了EasyNVR.EasyDSS.EasyGBS这样的专业视频服务器,我们还要做EasyCVR这样的 ...

  3. 【安信可NB-IoT模组EC系列应用笔记⑨】使用CoAP协议接入OneNET Studio实现数据收发

    文章目录 前言 一.OneNET Studio CoAP协议设备创建 1.产品生成 2.添加设备 3.Token 验证信息生成 二.接入OneNET Studio 1.配置入网 2.登录请求 三.数据 ...

  4. 安防互联网无插件直播如何将支持Ehome协议的设备接入新版安防视频云服务平台EasyCVR?

    EasyCVR是由TSINGSEE青犀视频团队研发的一套安防视频云服务融合平台.它主要适合多品牌.多协议.多通道的安防网络设备的接入,可以将RTSP协议.RTMP协议.GB28181国标协议.海康SD ...

  5. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >

    CoAP连接通信 更新时间:2020-08-27 17:20:05 编辑我的收藏 本页目录 基础流程 使用对称加密自主接入 使用DTLS自主接入 物联网平台支持CoAP协议连接通信.CoAP协议适用在 ...

  6. 中国移动物联网开放平台OneNET学习笔记(1)——设备接入(MQTT协议)OneNET Studio篇

    一.平台简介 中国移动物联网开放平台(OneNET) 是中移物联网有限公司基于物联网技术和产业特点打造的开放平台和生态环境,适配各种网络环境和协议类型,支持各类传感器和智能硬件的快速接入和大数据服务, ...

  7. NB-IoT使用CoAP协议接入华为IoT平台(NB-IoT项目实战专栏—8)

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/m0_38106923/article/ ...

  8. NB-IoT使用CoAP协议接入华为IoT平台教程

    文章目录 1.准备 1.1.NB-IoT模组 1.2.NB-IoT SIM卡 1.3.IoT平台 2.模块配置与IMEI号的获取 3.设备注册 该文章为本人原创,首发在华为云社区 上一次我们讲了&qu ...

  9. 利用nodemcu和mqtt协议让嵌入式设备接入互联网(一.layui前端框架)

    文章目录 前言 HTML知识简单总结 vscode快捷操作 HTML知识总结 HMTL结构 头部 身体 样式表CSS layui介绍 源码 前言 为了让自己的嵌入设备接入互联网,而且能互相通讯,用直接 ...

  10. 宇视摄像机/硬盘录像机等设备接入到国标GB28181协议视频平台EasyGBS的注意事项

    经常有用户咨询宇视的现场对接TSINGSEE青犀视频云边端架构中,国标GB28181协议视频平台EasyGBS需要注意哪些事项,本文我们就在这里整理一下,给大家介绍一下宇视设备接入到国标平台的注意事项 ...

最新文章

  1. python的编程模式-Python 编程,应该养成哪些好的习惯?
  2. java为什么还需要分布式锁?
  3. stm32实验报告心得体会_STM32实验报告
  4. 中软孙秀芳跳槽戴尔出任中国区大企业事业部主管
  5. [转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)
  6. MySQL的自定义函数
  7. 简体生僻汉字大全21418个-GBK编码中的汉字
  8. [深度学习] 自然语言处理 ----- Attention机制中的Q,K,V介绍
  9. EasyUI入门—Layout布局
  10. 大数据给人们生活带来的改变_大数据给我们的生活带来了哪些改变?
  11. sox处理mp3_ffmpeg sox 音频转换 MP3 转 wav
  12. Invalid use of SingleClientConnManager: connection still allocated解决方案
  13. spark kryo java,在Spark中自定义Kryo序列化输入输出API
  14. python:TypeError:takes at least 8 arguments (9 given)
  15. TYVJ P1061 [Mobile Service]
  16. 无人机斜影(倾斜摄影)数据(OSGB)转 Cesium 3dtile 数据归纳总结以及亲测可用示例
  17. 计算机房屋出租系统毕业设计选题意义的说明
  18. mate30pro 优化 开发者选项_mate30pro怎么打开开发者选项
  19. 2.3 VLAN间路由
  20. 为什么IT互联网行业工资这么高?

热门文章

  1. matlab数控加工,关于MATLAB复杂型面数控加工编程.pdf
  2. 吉林大学计算机学院控制与应用实验室,2019计算机考研吉林大学国家物联网虚拟仿真实验教学中心简...
  3. (转)简体繁体转换代码(Big5-GB | GBK简体-GBK繁体)
  4. 繁简体(GB-Big5)字符串互转的JAVA方式实现
  5. 关于矩阵乘法的记忆方法
  6. 华为路由器 dopra linux passwd,使用华为光猫ONT使能工具后,本地主机如何通过Telnet登录光猫进行配置...
  7. 从空运物流到无人机物流,圆通将战火烧到了时效件
  8. 修正Linux下WPS字体库缺失
  9. 二分法求函数零点:(递归方法和非递归方法)
  10. Anlink中文版(免费安卓投屏软件)官方正式版V3.0 | 优秀的电脑控制手机软件 | anlink官网下载