爱板网论坛

查看: 546|回复: 0

[教程] 10.ESP32-DevkitC教程之中移动OneNet MQTT协议使用

[复制链接]

主题

好友

1717

积分

进士

  • TA的每日心情
    开心
    昨天 23:03
  • 签到天数: 202 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2018-1-19 15:19:17 |显示全部楼层
    对于IOT应用,需要把少量的数据定时上传到服务器上,而这不仅需要部署一个服务器,还需要复杂而可靠的协议。而现在,有很多物联网解决方案平台,可提供接入、储存、计算等等服务,其中OneNET是中国移动打造的平台,可以在上面注册一个账号即可使用。可把数据上传上去,它支持丰富的协议,其中MQTT协议(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种比较适合微处理器的协议,简单轻便、省流量、低功耗,提供即时通讯。
    s1.png

    协议也不是太复杂,比较轻量。
    在这里要做一个发送MQTT协议的程序,可以把采集数据通过MQTT发送到oneNET上。这里使用一个开源的MQTT库,定时把os_random() % 20 + 15 这个数发送到oneNET服务器上。

    1.首先把开源代码下载下来,这里包含了两个,分别是oneNET连接程序和MQTT库,输入以下命令:
    1. git clone https://github.com/tidyjiang8/esp32-onenet.git ~/project/onenet-esp32/
    2. git clone https://github.com/tidyjiang8/espmqtt.git ~/project/onenet-esp32/components/espmqtt
    复制代码
    1.png


    2.等下载完之后,在Eclipse新建一个project,同样选择Makefile project with existing code,点击下一步,选中<解压缩文件夹>\cygwin\home\aithinker\project\onenet-esp32,选中Cygwin GCC作为工具链编译器,点击Finish。
    8.png


    9.png


    3.未有oneNET账号的去申请一下,有的话登陆网页版https://open.iot.10086.cn/,然后点击开发者中心,点击创建产品。
    s2.png

    4.填写好产品名称等信息,联网方式选择wifi,接入方式选择公开协议,注意设备接入协议选择MQTT!!!
    s3.png


    5. 为这个产品添加一个设备,在产品列表中点击产品名称打开产品管理页面,如下图所示。顺便把产品ID记下来,后面要用到。
    s4.png


    6.点击页面中的“设备管理”菜单,进入设备管理页
    s5.png


    7. 点击“立即接入设备”,弹出接入设备对话框,设置好设备名称和鉴权信息。最重要的是鉴权信息,这个要记下来,后面也要用。入设备名称和鉴权信息,选择设备的数据保密性,点击“接入设备”完成产品的设备添加。
    s6.png

    8.新建好设备之后,记录设备ID,后面要用。现在需要添加数据流来记录数据。点击产品的“设备管理”菜单,找到已创建好的设备,如下图所示。
    s7.png

    9. 为设备新建一条数据流,点击“数据流管理”进入设备的数据展示页面。
    s8.png

    10. 点击“添加数据流”,弹出添加数据流对话框。此处可以建立多个数据流,但此处只建一个temperature,用以记录温度。
    s9.png

    11.添加应用来在线显示数据。在产品管理页面点击“应用管理”菜单,进入应用管理页面,点击创建应用。把预先的控件拖入,此处不细讲了,数据流选择刚才设定的设备和数据流,按保存即可。

    12.完成之后打开onenet-esp32/main/include/config.h文件,之后修改WIFI设置与onenet账号有关设定:
    1. WIFI_SSID : ESP32连接上的WIFI名字
    2.   WIFI_PASS : ESP32连接上的WIFI密码
    3.   ONENET_DEVICE_ID : 上面新建设备之后系统生成的设备ID号码
    4.   ONENET_PROJECT_ID : 上面新建产品之后系统生成的产品ID号码
    5.   ONENET_AUTH_INFO : 上面新建设备的时候自己填写的鉴权信息
    6.   ONENET_DATA_STREAM : 上面新建数据流的时候自己起的名字
    7.   ONENET_PUB_INTERVAL : 设定数据更新间隔,单位为秒
    复制代码
    2.png

    13.设置完之后保存一下。然后在build的时候按序运行Menuconfig和Download。在menuconfig中设置好串口端口号码,耐心等待一下即可编译下载完。(不会的,参考一下之前的教程)
    10.png

    11.png

    4.png

    5.png

    6.png

    7.png

    3.png


    14.路由器上看见多了一个设备,正是ESP32
    14.png


    15.数据上传服务器后,APP显示的效果。

    13.png

    12.png
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网

    GMT+8, 2018-8-16 21:35 , Processed in 0.132021 second(s), 13 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-5   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001056号

    Powered by Discuz!

    返回顶部