精华内容
下载资源
问答
  • 发布了一个简单的物联网平台: http://mqtt.phodal.com,简单地写一下使用指南。CoAP协议使用Libcoap的话可以用coap-client -m get coap://mqtt.phodal.com:5683/topics/zero 用coap-cli则可以用:echo -n 'hello ...

    在忙了一个周末之后,还是小有成果的。发布了一个简单的物联网平台: http://mqtt.phodal.com,简单地写一下使用指南。

    CoAP协议

    使用Libcoap的话可以用

    coap-client -m get coap://mqtt.phodal.com:5683/topics/zero
    

    用coap-cli则可以用:

    echo -n 'hello world' | coap post coap://mqtt.phodal.com/topics/zero
    echo -n '{"lettuce": 123}' | coap post coap://mqtt.phodal.com/topics/zero
    

    MQTT协议

    Mosquitto示例

    mosquitto_pub -h mqtt.phodal.com -d -t lettuce -m "Hello, MQTT. This is my first message."
    

    Python MQTT示例:

    import mosquitto
    mqttc = mosquitto.Mosquitto("python_pub")
    mqttc.connect("mqtt.phodal.com", 1883, 60, True)
    
    mqttc.publish("lettuce", "Hello, World!")
    

    HTTP协议

    POST示例

    $ curl -X PUT -d '{ "dream": 1 }' \
    -H "Content-Type: application/json" \
    http://mqtt.phodal.com/topics/lettuce
    

    GET示例

    $ curl http://mqtt.phodal.com/topics/lettuce
    { "dream": 1 }
    展开全文
  • QT使用MQTT协议对接阿里云物联网平台 版本信息 Windows10 + Qt 5.6.3 +minGW4.9.2 或者QT 5.10.1+minGW5.10.1 理论上可以使用任意版本的QT,均能支持MQTT协议,以及上传信息到云平台。目前测试了2个版本,均没有问题...

    QT使用MQTT协议对接阿里云物联网平台

    版本信息

    Windows10 + Qt 5.6.3 +minGW4.9.2 或者QT 5.10.1+minGW5.10.1
    理论上可以使用任意版本的QT,均能支持MQTT协议,以及上传信息到云平台。目前测试了2个版本,均没有问题。
    

    参考资料

    1.使用MQTT.fx接入物联网平台:使用MQTT.fx接入物联网平台
    2.QT添加MQTT协议:Qt开发MQTT(二) 之第三方QMQTT
    3.使用QT登录阿里云:MQTT连接阿里云IoT(一)

    步骤

    1.首先使用MQTT.fx模拟实现通信链路过程。实现参考资料中第1点“使用MQTT.fx接入物联网平台”;
    2.实现QT加载MQTT协议,实现参考资料中第2点“QT添加MQTT协议”;
    3.结合参考资料1.2.3,开展自主设计。

    UI设计

    简单Ui设计
    简单界面设计,实现MQTT的Connect,Publish,Subscrible,UnSubscrible、Disconnect等基本功能,并设置信息区,实时显示调试信息。

    运行截图

    运行截图
    如上图所示,点击connect,服务器连接正常后,信息栏显示“server connected”,点击“publish”,发布正常后,信息栏显示“topic”和“payload”(红色圈出),收到服务器的响应后,把响应显示出来(绿色圈出)。
    在这里插入图片描述
    登录阿里云可以看到温度为25℃,和发送一致。

    核心代码

        QHostAddress m_address("axxxxxx.aliyuncs.com");
        client = new QMQTT::Client(m_address, 1883);
        client->setClientId("1xxxxx");
        client->setUsername("xxxx1JZcgS");
        client->setPassword("xxxxxxxxxxxxxxB");
        client->setVersion(QMQTT::MQTTVersion::V3_1_1);
        client->setKeepAlive(120);
        connect(client,SIGNAL(connected()),this,SLOT(doprocess_connected()));
        connect(client,SIGNAL(subscribed(QString,quint8)),this,SLOT(doprocess_subscribled(QString,quint8)));
        connect(client,SIGNAL(received(QMQTT::Message)),this,SLOT(doprocess_receivemessage(QMQTT::Message)));
        connect(client,SIGNAL(unsubscribed(QString)),this,SLOT(doprocess_unsubscrbled(QString)));
        connect(client,SIGNAL(error(QMQTT::ClientError)),this,SLOT(doprocess_mqtterror(QMQTT::ClientError)));
        connect(client,SIGNAL(disconnected()),this,SLOT(doprocess_disconnected()));
    

    完整工程下载

    QT5.6.1+MQTT+minGW4.9.2.zip
    QT5.10.1+MQTT+minGW5.10.1.zip

    展开全文
  • 贝壳物联平台通讯协议

    万次阅读 2019-04-21 23:28:17
    贝壳物联平台通讯协议 贝壳物联平台通讯协议TCP、UDP、HTTP、Websocket说明,设备登录服务器,收发命令,发送实时数据,上传图片等协议。 首页 帮助文档 API文档 目录 一、概述 二、通讯地址 三、通讯...

     

    贝壳物联平台通讯协议

    贝壳物联平台通讯协议TCP、UDP、HTTP、Websocket说明,设备登录服务器,收发命令,发送实时数据,上传图片等协议。

    1. 首页
    2.  
    3. 帮助文档
    4.  
    5. API文档

    目录

    一、概述

    二、通讯地址

    三、通讯数据格式

    四、命令列表

    1、设备登录 2、发送实时数据 3、用户和设备上线通知 4、用户和设备下线通知 5、用户与设备、设备与设备、用户与用户间沟通指令数据 6、查询设备或用户是否在线 7、查询当前设备状态 8、发送报警信息 9、查询服务器时间 10、强制目标设备下线

    五、PC端模拟测试

    六、用户相关指令

    一、概述

        贝壳物联云平台采用以TCP协议为主,UDP协议为辅的形式进行通讯,两种协议间信息互通(主要为UDP可以发送指令给TCP在线设备)。

        在TCP协议的基础上,可以直接使用TCP或者websocket建立长连接,定时发送心跳数据,保持用户、设备在线,在线期间与服务器可进行Json字符串格式数据进行通讯,也可采用http(s)通讯协议获取用户资源、向设备发送指令、上传图片等。

        以UDP协议为基础的通讯,设备可不必保持在线,随时在需要的时候向服务器发送指令进行相关操作。

    1. https上传图片协议

    2. UDP通讯协议

    3. TCP(websocket)长连接协议,如下。

    二、通讯地址

    贝壳物联通讯框架图

    通讯方式:TCP或websocket

    地址:www.bigiot.net 

    TCP端口:8181、8282、8585(ssl加密)

    Websocket端口:8383、8484(ssl加密)

    8181端口——服务器不主动发送心跳包,靠客户端主动发送心跳包保持在线,心跳间隔以40~50s为佳;

    8282端口——服务器主动向客户端发送心跳包

    {"M":"b"}\n

    每40s发送一次,如果两次没有应答(即在80s内没有向服务器发送有效数据),服务将自动与客户端断开连接。

    8383端口(ws://)——服务器主动向客户端发送心跳包

    {"M":"ping"}

    每30s发送一次,如果两次没有应答(即在60s内没有向服务器发送有效数据),服务将自动与客户端断开连接。

    8484端口(wss://)——心跳同8383

    8585端口(tcp+ssl)——心跳同8181

    心跳包格式:任何符合通讯数据格式的字符串均可(websocket可不带\n),如:

    {"M":"beat"}\n

    三、通讯数据格式 

    Json字符串+换行符 
    形如:{"M":"beat"}\n 
    称之为Json New Line。 

    四、命令列表 

    1、设备登录 (加密

    {"M":"checkin","ID":"xx1","K":"xx2"}\n

    说明: 
    M —— 固定(Method) 
    checkin —— 固定,登录指令 
    ID —— 固定 
    xx1 —— 可变,设备ID,在会员中心查看 
    K —— 固定(apiKey) 
    xx2 —— 可变,设备apikey,在会员中心查看 
    设备登录后,如果在1分钟内无数据传送,连接将被自动关闭。 
    若保持设备长期在线,可每隔50秒向服务器发送一次信息,任何信息均可。 

    返回结果(登录信息正确时返回,错误无任何返回,如果设备已登录,也将无任何返回信息,且不会登录成功):

    {"M":"checkinok","ID":"xx1","NAME":"xx2","T":"xx3"}\n

    说明: 
    M —— 固定(Method) 
    checkinok —— 固定,设备登录成功指令 
    ID —— 固定
    xx1 —— 可变,设备登录成功后,用于通讯的唯一ID,其组成为字符“D"+设备ID,如D24

    NAME —— 固定
    xx2 —— 可变,该设备的名称 
    T —— 固定(time) 
    xx3 —— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

    2、发送实时数据 

    {"M":"update","ID":"xx1","V":{"id1":"value1",...}}\n

    说明:此命令无返回信息,两次发送间隔不得小于5s,发送数据前应确保该设备已登录在线。

    M —— 固定(Method) 
    update —— 固定,实时更新数据指令(可用 u 代替 update,减小命令长度) 
    ID —— 固定 
    xx1 —— 可变,设备ID,在会员中心查看 
    V —— 固定(Value) 
        id1 —— 可变,数据接口ID,在会员中心查看 
        value1 —— 可变(数值型),本地数据(譬如:传感器测量数据) 
        ... —— 可以更新该设备下多个数据接口的数据 

    示例

    一次上传单个接口数据示例:

    {"M":"update","ID":"2","V":{"2":"120"}}\n

    同时上传多个接口数据示例:

    {"M":"update","ID":"112","V":{"6":"1","36":"116"}}\n

    实时上传定位接口数据示例:

    {"M":"update","ID":"112","V":{"36":"116,40"}}\n

    其中116为经度值,40是为维度值,详见:定位数据上传说明

    3、用户和设备上线通知数据 

    {"M":"login","ID":"xx1","NAME":"xx2","T":"xx3"}\n

    说明:用户和设备登录成功后,贝壳服务器会向所属用户,及该用户名下所有其他设备发此信息

    M —— 固定(Method) 
    login —— 固定,用户或设备登录成功指令 
    ID —— 固定
    xx1 —— 可变,用户登录成功后,用于通讯的唯一ID,其组成为字符“U"+用户ID,如U23
    NAME —— 固定
    xx2 —— 可变,用户的名称 
    T —— 固定(time) 
    xx3 —— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。

    4、用户或设备下线通知数据

    {"M":"logout","ID":"xx1","NAME":"xx2","T":"xx3"}\n

    说明:设备和用户离线后,贝壳服务器会向所属用户,及该用户名下其他所有设备发此信息

    M —— 固定(Method) 

    logout —— 固定,用户或设备下线指令 

    ID —— 固定

    xx1 —— 可变,下线设备或用户的唯一通讯ID,其组成为字符"D"+设备ID、"U"+用户ID、"P"+游客ID,如D24、U23

    NAME —— 固定

    xx2 —— 可变,下线设备或用户的名称

    T —— 固定(time) 
    xx3 —— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

    5、用户与设备、设备与设备、用户与用户间沟通指令数据

    发送指令格式:

    {"M":"say","ID":"xx1","C":"xx2","SIGN":"xx3"}\n

    提醒:此命令发送目标不受限制,无论目标是否属于自己,无论是用户、游客还是设备,只要对方在线都将收到此指令(设置为不公开监听的除外)。

    M —— 固定(Method) 
    say —— 固定,沟通指令(可用 s 代替 say,减小命令长度) 
    ID —— 固定

    xx1 —— 可变,发送目标的唯一通讯ID,其组成为字符"D"+设备ID、"U"+用户ID、"G"+群组ID、"P"+游客ID,如D24、U23,当xx1为“ALL”时,将向该用户及其名下所有设备发送该消息

                  xx1也可以是多个通讯ID组成的数组,用于同时向多个设备发送信息,此时的写法为 "ID":["U2","D112","D21","G11"] ,方括号及其内容替代"xx1"

                  注:当发送目标是群组时,只有当前登录设备或用户属于目标群组,才能发送成功。

    C —— 固定(content)

    xx2 —— 可变(数据类型自定,符合Json字符串要求即可),发送指令内容

    SIGN —— 固定(可选)

    xx3 —— 可变(可选),自定义字符串,可用于对指令的签名标识

    对方接收到的指令格式:

    {"M":"say","ID":"xx1","NAME":"xx2","C":"xx3","SIGN":"xx4","T":"xx5","G":"xx6"}\n

    提醒:此指令不管设备公开还是隐藏都将收到,可能来自游客、其他用户或其他用户的设备,重要操作请对指令来源ID进行判断。设备设置为不公开监听,可拒绝接收非同一用户名下设备发来的消息(当信息来自群组消息时,不受此限制)。

    M —— 固定(Method) 

    say —— 固定,沟通指令 

    ID —— 固定

    xx1 —— 可变,指令来源的唯一通讯ID,其组成为字符"D"+设备ID、"U"+用户ID、"P"+游客ID,如D24、U23

    NAME —— 固定

    xx2 —— 可变,指令来源的名称

    C —— 固定(content)

    xx3 —— 可变(数据类型自定,符合Json字符穿要求即可),发送指令内容

    SIGN —— 固定(可选)

    xx4 —— 可变(可选),来自指令发送方的签名标识

    T —— 固定(time) 
    xx5 —— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

    G —— 固定(可选),当信息来自群组时,会有此项,可用此项判断信息是否来自群组。

    xx6 —— 可变,群组ID,形如"G20"

    6、查询设备或用户是否在线

    {"M":"isOL","ID":["xx1",...]}\n

    说明:可以查询设备自身和其他设备及用户在线状态,两次查询间隔不得小于10s,此命令使用前需登录。

    M —— 固定(Method) 

    isOL —— 固定,是否在线查询指令 

    ID —— 固定

        xx1 —— 可变,目标设备或用户的唯一通讯ID,其组成为字符"D"+设备ID、"U"+用户ID、"P"+游客ID,如D24、U23

        ... —— 可以同时查询多个目标

    返回结果:

    {"M":"isOL","R":{"XX1":"xx1",...},"T"":"xx3"}\n

    M —— 固定(Method) 

    isOL —— 固定,是否在线查询指令 

    R —— 固定(Respone)

        XX1 —— 可变,查询目标设备或用户的唯一通讯ID,其组成为字符"D"+设备ID、"U"+用户ID、"P"+游客ID,如D24、U23

        xx1 —— 可变,XX1的查询结果0或1,0代表不在线,1代表在线

        ... —— 多个查询结果

    T —— 固定(time) 
    xx2—— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

    7、查询当前设备状态

    {"M":"status"}\n

    说明:(两次查询间隔不得小于10s)

    M —— 固定(Method) 

    status —— 固定,查询当前设备状态指令(可用 t 代替 status,减小命令长度)

    返回结果:

    {"M":"xx1"}\n

    M —— 固定(Method) 

    xx1 —— 可变(connected/checked),当前设备状态,connected代表已连接服务器尚未登录,checked代表已连接且登录成功

    8、发送报警信息

    {"M":"alert","ID":"xx1","C":"xx2"}\n

    说明:(设备主动发送报警信息,通过触发已在用户中心设置的报警提示,可通过邮件、微博、钉钉机器人、微信(方糖)、webhook等方式,对外发送指定提示内容。两次发送间隔不得小于10min,无返回)

    M —— 固定(Method) 

    alert —— 固定,设备主动发送报警指令

    ID —— 固定

    xx1 —— 可变,要触发的报警提示ID,可在用户中心查看或添加。

    C —— 固定(Content)

    xx1 —— 可变,自定义的报警内容。

    9、查询服务器时间

    {"M":"time","F":"xx1"}\n

    说明:(需在设备登录后进行查询,两次查询间隔不得小于10s)

    M —— 固定(Method) 

    time —— 固定,查询服务器时间指令

    F —— 固定(Format)

    xx1 —— 可变,定义返回格式stamp(返回:1466659300)、Y-m-d(返回:2016-06-21)、Y.m.d(返回:2016.06.21)、Y-m-d H:i:s(返回:2016-06-21 10:25:30)

    返回结果

    说明:查询过快或格式错误无返回

    {"M":"time","T":"xx1"}\n

    M —— 固定(Method) 

    time —— 固定,查询服务器时间返回指令

    T —— 固定(Time)

    xx1 —— 可变,根据查询格式返回服务器的时间

    10、强制目标设备下线

    {"M":"checkout","ID":"xx1","K":"xx2"}\n

    说明:发送此命令无需登录,只需与服务建立连接即可。用于清除设备在极端情况掉线(断电、断网等)后,有一分多钟在线滞留,在这段时间内无法checkin成功,如果无法接受一分钟等待,可使用此命令消除滞留,消除后即可登录。也可用于在其他地方强制目标设备下线。

    M —— 固定(Method) 

    checkout —— 固定,强制目标设备下线指令

    ID —— 固定 
    xx1 —— 可变,设备ID,在会员中心查看 
    K —— 固定(apiKey) 
    xx2 —— 可变,设备apikey,在会员中心查看

    发送命令端返回结果

    说明:发送频率过快或apikey错误无返回,目标设备不在线无返回。

    {"M":"checkout","ID":"xx1","T":"xx2"}\n

    M —— 固定(Method) 

    checkout —— 固定,强制目标设备下线成功返回指令

    ID —— 固定 
    xx1 —— 可变,成功下线设备ID,可在会员中心查看

    T —— 固定(time) 
    xx2—— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

    被强制下线设备在下线前收到信息

    {"M":"checkout","IP":"xx1","T":"xx2"}\n

    说明:可根据此命令判断是否人为强制下线,从而决定是否需要继续自动重连、登录。

    M —— 固定(Method) 

    checkout —— 固定,强制目标设备下线成功返回指令

    IP —— 固定 
    xx1 —— 可变,发送强制命令设备IP地址

    T —— 固定(time) 
    xx2—— 可变,服务器发送信息时的时间戳,自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数

    五、PC端模拟测试

    PC模拟测试TCP长连接教程见:《贝壳物联通讯协议TCP连接测试教程

    六、用户相关指令

    用户相关指令另起一章说明,详见:《贝壳物联用户通讯协议


     

    贝壳物联公众号 贝壳物联小程序

    展开全文
  • BC95的CoAP测试需要云平台配合,当前的支持CoAP协议平台有华为OceanConnect平台、电信天翼云(除了 Logo 其他和华为的一样)、移动 OneNet等。此教程以华为的OceanConnect 平台为例进行测试。下面我将就平台申请、...

    目录

    1、华为 NB-IoT CoAP总体方案拓扑

    2、华为IoT平台环境搭建

    3、NB-IoT上传数据到云平台


    BC95的CoAP测试需要云平台配合,当前的支持CoAP协议的平台有华为OceanConnect平台、电信天翼云(除了 Logo 其他和华为的一样)、移动 OneNet等。此教程以华为的OceanConnect 平台为例进行测试。下面我将就平台申请、平台测开发、NB-IoT实验开发板与平台的收发测试做出详细介绍。

    1、华为 NB-IoT CoAP总体方案拓扑

    华为提供NB-IoT端到端解决方案的支持,提供多种开放能力供合作伙伴快速集成应用。提供海思的NB-IoT芯片,基站网络和Ocean Connect连接管理平台。开发者可以根据芯片/模组开发手册进行终端的开发,基于IoT平台进行APP Server开发。

    • Device:NB-IoT终端(如智能水表、智能气表等)通过空口连接到eNodeB。
    • eNodeB:主要承担空口接入处理和小区管理等相关功能,通过S1-lite接口与IoT核心网进行连接,将非接入层数据转发给高层网元处理。
    • IoT Core:承担与终端非接入层交互的功能,将IoT业务相关数据转发到IoT平台进行处理。
    • IoT Platform:IoT联接管理平台汇聚从各种接入网得到的IoT数据,根据不同类型转发给相应的业务应用进行处理。
    • APP Server:是IoT数据的最终汇聚点,根据客户的需求进行数据处理等操作。

    从总体拓扑中可以看到,华为在这里放置了一个CoAP Server,所有使用CoAP的模组,都得先连接到华为这边。

    当然,有办法绕过这个限制,那就是不使用模组内置的CoAP相关的AT指令。

    自己在UDP基础上做这个协议。 

    2、华为IoT平台环境搭建

    第1步:登录华为云平台,官网:https://www.huaweicloud.com/

     第2步:注册账号,可以申请企业账号和个人账号,这里我申请个人账号。

    第3步:实名认证,华为云认证个人信息。

    选择合适的认证方式,支持银行卡、身份证扫码、个人证件认证三种方式,这里使用扫码认证。

    第4步:选择“开发者”—>“开发者资源”—>“资源”—>“IoT专区”,开通IoT业务(使用开发者资源是免费的,但是创建项目有限,适合新手练习)。

    第5步:创建项目,填写项目信息。

    第6步:创建产品,填写相关信息。

    用户可以选择华为云提供的不同类型产品:灯、电表等,用户也可以自定义产品。

     点击自定义产品后,会弹出设置产品信息的框,协议类型选择CoAP的二进制码流。

     第7步:定义Profile,设备的 Profile 文件是用来描述设备类型和设备服务能力的文件。定义了同一类设备具
    备的服务能力,属性,命令等。

    “新建服务”—>创建属性(获取传感器数据)和命令(云平台下发控制设备)。

    新增属性,这里模拟创建一个光照传感器 ,具体参数说明如下:

    • 属性名(propertyName):指示属性名称。
    • 属性类型(dataType):指示数据类型,取值范围:int、float、datetime、string、jsonObject、array。这里以 int 类型为例。上报数据时,复杂类型数据格式如:DateTime:yyyyMMdd’T’HHmmss’Z’如:20151212T121212Z 、 jsonObject:自定义 json 结构体,平台不理解只透传。
    • 最小(min)/最大值(max):指示最小/最大值,仅当 dataType 为 int、float 时生效,逻辑大于等于/小于等于。
    • 步长(step):指示步长,暂不使用,可填 0 即可。
    • 单位(unit):指示单位,英文,取值根据参数确定。如:温度单位:“°C”;百分比单位:“%”。
    • 访问模式(method):指示访问模式。R:可读;W:可写;E 可订阅。取值范围:R、RW、RE、RWE、null。

    新增下发命令,这里模拟创建一个LED灯控制器,具体参数说明如下:

    • 长度(maxLength):指示字符串长度,仅当 dataType 为 string、datetime、jsonObject、array 时生效。
    • 枚举值(enumList):如LED灯属性 ,0,1:0代表关闭LED灯,1代表打开LED灯。

    保存 Profile文件。

     第8步:开发完 Profile 文件后,可以在界面上通过图形化的方式完成设备与平台之间的消息映射。在平台中预集成了编解码插件的模板,可以根据设备类型和接入协议在插件模板中选择模板修改开发编解码插件。

    制作编解码插件,点击“新增消息”,这里有两种模式:数据上传和命令下发,分别对应第7步中创建的光照传感器属性和LED灯控制器命令。 

    在第7步中设置的光照传感器范围为0~100的整形数据,所以建立的消息映射也要对应,长度为1,偏移为0—1(若长度为2,偏移就为0—2,这个可以看作存储空间)。

    LED灯控制器对应第7步,创建有开关两种状态的字符串类型数据,0代表关,1代表开。

     第9步:部署插件与profile建立映射关系。

    第10步:新建测试设备

    这里侧重设备端的开发工作,华为云平台为了方便大家调试,提供了虚拟设备和真实准备两种渠道来调试之前编写profile的正确性,其中虚拟设备不需要任何硬件就可以在华为的网站上虚拟出一个设备,可以收发数据,真实设备自然就是指的是NB模块。

    首先为了验证我们的写的profile的正确性,这里先创建一个虚拟设备,进行调试。

    进入刚刚创建的设备,进行调试,由于模拟器以及NB-IoT数据都是ASCII的十六进制数据,上传光照数据和下发LED灯控制状态否会转换对应的十六进制。

    同时也能在设备详情中查看到历史的发送数据。

    到此为止,如果都正常的情况下,说明华为OC云端服务器配置已经完成,而且验证成功。

    3、NB-IoT上传数据到云平台

    第1步:配置云平台硬件设备

    上面讲述的是模拟设备,这里我们使用真实的硬件设备,在使用之前需要注册设备。

    设备名称可以自定义,验证码是唯一的,必须使用模块的IMEI号,这个IMEI号印刷在模块上(86打头的数据),也可以使用串口调试助手通过AT指令(“AT+CGSN=1”)获取模块的的IMEI号,然后点击创建,不使用模块的IMEI号,会导致NB模块无法对接云平台 

    刚刚创建的的设备,其状态是离线的,需要模块发送上报数据一次数据 。

    第2步:测试NB-IoT模块 

    针对不同的模块可能有些差异,模块上电之后,发送AT可以有OK返回,表示通信正常,执行指令:AT+CEREG?,一定要注网成功之后才能进行后续的网络操作,否则都是失败 。

    AT指令 含义说明
    AT+CEREG? 查看注网是否成功,这里需要返回0,1表示成功,其他值表示失败,特别是在模块复位(包括上下电)之后一段时间内需要等待模块注网成功,大约5~20秒时间不等。

    第3步:NB-IoT模块上传数据

    NB-IoT模块上传数据只需要两步:第一步使用AT+NCDP指令配置服务器地址,第二步使用AT+NMGS指令发送数据。

    AT指令 含义说明
    AT+NCDP=ip 配置服务器地址,其中ip地址在左右的对接信息中可以找到(位于左侧应用–>对接信息–>设备接入信息–> 49.4.85.232:5683 (CoAP),如下图所示),故本例是49.4.85.232,例如AT+NCDP=49.4.85.232
    AT+NMGS=length,data[,<seq_num>] 发送数据指令,length表示后续数据长度(10进制表示,后续数据的字节长度),data表示需要发送的数据,例如AT+NMGS=12,32342E3135352E3636352E34

     配置服务器地址。

     配置成功后,发送数据指令,十六进制46为十进制70,实质上传到华为云的数据为70。

    接收到数据后,华为云设备为在线状态。

    进入设备查看上传的的信息 。

    向NB-IoT设备下发控制指令。

    NB-IoT接收到的数据为字符串数值“1”,转换为十六进制为0x31,注意:NB-IoT采用低功耗模式,发送完数据后就会休眠,所以云端下发的数据是在下一次上传数据成功后,才会下发到设备。

     

    展开全文
  • nodeMCU是物联网硬件模块,要联网,要发信息,就用mqtt协议走起来。怎么走,请看本文咯
  • 使用TCP转MQTT协议连接onenet平台

    千次阅读 2019-03-04 18:05:56
    走tcp协议连接MQTT可以解决模块不支持MQTT协议的问题。 首先我们得在onenet平台上创建设备。 具体如何创建,请看onenet平台的手册教程。 创建设备后,我们把产品ID、设备ID和鉴权信息,记录下来。 第二步 我们...
  • JetLinks物联网基础平台-官方协议

    千次阅读 多人点赞 2020-03-24 15:34:15
    设备可以使用协议接入平台. 设备协议已经确定并且无法修改协议的时候,建议使用自定义协议接入 MQTT接入 目前支持MQTT3.1.1和3.1版本协议. 认证 CONNECT报文: clientId: 设备实例ID username: secureId+"|"+...
  • NB-IoT使用CoAP协议接入华为IoT平台教程

    千次阅读 热门讨论 2019-12-28 18:39:25
    上一次我们讲了“华为IoT平台环境搭建”,只用了虚拟设备进行演示,今天我们用真实的NB-IoT模块来进行通信。 1、准备 要完成这次实验需要以下几个东西。 1.1、NB-IoT模组 目前NB-IoT厂商与模组主要有以下几个 ...
  • 使用的是visual studio code 的IDE来开发esp8266,我把我手上的DHT22,AM2305的一个温湿度传感器上传到onenet平台,并且可以在手机上看到。接入协议使用的是edp的方式,硬件连接如图: 使用的是一个nodemcu的模块...
  • ARM平台上蓝牙协议栈Bluez的移植使用和配置

    万次阅读 多人点赞 2015-10-22 20:50:34
    使用的CSR的chip是我们直接build在板子上,通过串口和cpu通讯的,芯片默认使用BCSP作为通讯协议,所以我选择了 HCI UART driver 和 BCSP protocol support 如果你是通过usb接口使用蓝牙适配器,需要选择 HCI ...
  • CSDN图片许可使用协议

    千次阅读 2020-07-16 11:28:14
    本《图片许可使用协议》(以下简称“本协议”)是您(或称为“CSDN博客作者”)与北京创新乐知网络技术有限公司(以下简称“CSDN”)之间就您在“CSDN博客”平台搜索、浏览、使用图片编辑自有内容进行资讯传播所达成...
  • 最近在做一个智慧路灯项目,构思使用STM32结合NB-IoT模组实现数据上传和联动控制,并且可以使用GPS模块上传路灯节点的位置信息,便于故障路灯维修。暂选定移远BC20模组实现本项目。 2018年7月30日,移远通信正式...
  • 在此基础上,XMPP协议已经被用来构建大规模即时通信系统、游戏平台、协作空间及语音和视频会议系统。XMPP由几个小的构造块组成,并在此基础上扩展出了更多的构造块。XMPP中有众多系统:发布-订阅服务、多人聊天、...
  • WebSocket 协议使用

    千次阅读 2017-03-25 11:20:58
    浏览器使用的基于来源的安全模型。该协议包括一个打开阶段握手、接着是基本消息帧、TCP 之上的分层(layered over TCP)。 参考文档: 中文版:WebSocket协议中文版.pdf  英文版:the Web
  • 在wildfly中使用SAML协议连接keycloak

    万次阅读 2020-12-19 19:06:52
    我们知道SSO的两个常用的协议分别是SAML和OpenID Connect,我们在前一篇文章已经讲过了怎么在wildfly中使用OpenID Connect连接keycloak,今天我们会继续讲解怎么使用SAML协议连接keycloak。
  • 使用网络协议分析仪Wireshark

    千次阅读 2018-09-29 16:24:05
    环境 操作系统:运行Win10操作系统...2)熟悉使用Wireshark分析网络协议的基本方法 3)加深对协议格式、协议层次和协议交互过程的理解。 实验内容及步骤 1.安装网络协议分析仪 安装wireshark版本2.6.3。双击wiresha...
  • STM32+ESP8266+MQTT协议连接腾讯物联网开发平台

    千次阅读 多人点赞 2021-05-16 20:41:16
    腾讯的物联网平台比起其他厂家的物联网平台更加有优势,腾讯物联网平台可以将数据推到微信小程序上,用户可以直接使用小程序绑定设备,完成与设备之间交互,现在用户基本都会使用微信,所以使用起来非常方便。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 461,102
精华内容 184,440
关键字:

平台使用协议