查看: 9688|回复: 1

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

[复制链接]
  • TA的每日心情
    开心
    2019-12-26 22:21
  • 签到天数: 310 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 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
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2020-5-29 08:44
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2020-5-28 17:18:38 | 显示全部楼层
    楼主,你好,我按照你的教程把这个工程烧录进esp32后,esp32一直无线重启,是我哪里的配置有问题吗?
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 06:58 , Processed in 0.129256 second(s), 18 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.