计划实现功能:将STM32F103采集到的温湿度,PM2.5等数值,通过UART与ESP8266通讯,使得ESP8266对外仅充当串口功能的黑盒。ESP8266通过MTQQ发布订阅数据,设备上传、接收 阿里云的数据,通过SmartConfig配网。

  用到工具和环境:

    1.安信可ESP8266 IDE集成环境,https://wiki.ai-thinker.com/ai_ide_install 

      注:cygwin的文件已存在在下载文件中,不需要网上搜索下载。不要被链接中的内容误导

    2.如何使用安信可ESP系列集成环境   https://wiki.ai-thinker.com/ai_ide_use

    3.ESP 系列模组烧录固件: https://wiki.ai-thinker.com/esp_download

    4.官方SDK下载链接   https://www.espressif.com/zh-hans/products/hardware/esp8266ex/resources

      注:本人使用的是 ESP8266_NONOS_SDK-3.0 + aliyun_mqtt_app。

    5.下载 aliyun_mqtt_app。  https://github.com/AngelLiang/esp8266_aliyun_mqtt_app

  

  一.  免费注册阿里云,https://www.aliyun.com/   阿里云物联网平台目前收费方法是按消息数量收费,不过每月前100万条消息免费,对于个人玩转物联云是完全够用的。获取阿里云IoT hub设备认证三元组方法流程:

    注册阿里云->开通物联网平台->创建产品->创建设备->获取认证三元组(DeviceName、ProductKey、DeviceSecret)。具体参照阿里云文档https://help.aliyun.com/document_detail/73728.html?spm=5176.11485173.0.0.3fc459afRok2la    这里只介绍部分注意点。

  附阿里云创建完成后页面:

    1.新建产品时,选择的数据格式决定后续的通讯方式

       1)ALINK JSON的数据格式: Alink协议是针对物联网开发领域设计的一种数据交换规范,数据格式是JSON,用于设备端和物联网平台的双向通信,官方给出的SDK中包含了ALINK JSON需要上报的数据格式,一般在设备端处理能力足够的情况下采用此方式,这里采用此种格式。

       2)透传/自定义 数据格式:使用这种数据格式的上报方式,需要在物联网平台网页中(路径为 产品->数据解析)调用数据解析脚本中的 protocolToRawData方法,将结果数据转换成Alink JSON格式。阿里云文档参照https://help.aliyun.com/document_detail/68702.html?spm=a2c4g.11186623.6.575.64e920a8CHKJBw   注: 数据格式选择为透传/自定义时, 产品页面下的才有数据解析的选项。ALINK JSON格式下无需设置。

                        

    2.创建设备时输入的DeviceName将用于认证三元组中。获取认证三元组之后要在  产品->功能定义  中填入需要设备属性和服务以及事件,这里我使用的是自定义功能,设备的属性数据只要可读就能更新来自设备的数据。此页面下可查看已创建好的物模型(后续将用到)。

  

    二:MQTT协议简介:基于TCP协议栈上,轻量级的发布订阅,不实时,低开销,低宽带占有。MQTT的topic和三个角色:发布者,订阅者,代理

        1.topic,附加在消息中的标签,发布信息时附带topic。

        2.发布者:发布一条带有topic的信息。

        3.订阅者:订阅感兴趣的topic(多个topic在代码中进行string的判断选择)。

        4.代理:负责对来自发布者的信息进行存储操作,并将消息发送至正确的订阅者去。

          附:产品topic查看位置,各个topic功能参展后面的描述,(可自定义topic)。

                                  ----------------今天也是充满希望的一天呦~(为什么博客园要限制ID长度,好想用这个ID)

                                                      

关于STM32F103+ESP8266+阿里云过程之环境搭建和阿里云数据格式设置及注意点(一)的更多相关文章

  1. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  2. 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装

    阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装1. 背景在我们购买阿里云ECS服务器之后,默认的系统环境是很干净的,我购买的是ubuntu16.04,远程登录进入之后 ...

  3. 阿里云centos+java环境搭建

    目录 .准备 .安装jdk .安装tomcat .安装mysql 1.准备 购买阿里云服务器,我买的是Centos 6.5. 因为是linux,在window下管理我使用XManager,这个软件可以 ...

  4. 阿里云数据库RDS环境搭建

    前言 现在云数据库越来越流行,国外的亚马逊AWS微软Azure,国内的BAT和京东都推出了自己的云数据库服务,各自优劣不表,个人推荐国外的用AWS,国内的用阿里云,这是我这几天刚申请的阿里云的过程的一 ...

  5. 阿里云ECS服务器环境搭建 ubuntu 16.04 图形界面的安装

    https://blog.csdn.net/zwq912318834/article/details/80528374

  6. ESP8266 RTOS SDK(IDF)编译环境搭建

    前提条件 按照https://www.cnblogs.com/ansersion/p/10458171.html的步骤搭建非IDF环境 下载 https://github.com/espressif/ ...

  7. ESP8266 鼓捣记 - 入门(环境搭建)

    一.前言 以前没怎么接触过硬件开发,ESP8266 这个名字还是从朋友处得知,用它做了许多好玩的东西,便想着自己也来玩一玩.定了一个小目标,做一个温度计.本文介绍从0到 "Hello Wor ...

  8. 腾讯云centos7服务器环境搭建,tomcat+jdk+mysql+nginx

    软件:jdk 1.8.0_45 tomcat 8.5.8 mysql 5.6.36 nginx 1.10.x或以上 其中tomcat在centos6.8中没问题,centos7中会出现卡在启动那里 I ...

  9. 从零开始学习音视频编程技术(三) 开发环境搭建(Qt4.86手动设置环境,主要就是设置g++和qmake,比较透彻,附下载链接)

    1.先下载安装Qt 我们使用的版本是4.8. 可以自行百度下载也可以从下面的网盘地址下载: Qt库和编译器下载: 链接:http://pan.baidu.com/s/1hrUxLIG 密码:0181 ...

随机推荐

  1. 跟我学SpringCloud | 第一篇:介绍

    首先讲一下我为什么要写这一系列的文章,现在网上大量的springcloud相关的文章,使用的springboot和springcloud的版本都相对比较老,很多还是在使用springboot1.x的版 ...

  2. never下的easysql

    什么是EasySql 在我们早期写的代码中,想实现组装灵活的sql语句与参数,我们可以去翻阅早期自己写的代码 var @sb = new StringBuilder(); sb.Append(&quo ...

  3. Spark学习之路(九)—— Spark SQL 之 Structured API

    一.创建DataFrame和Dataset 1.1 创建DataFrame Spark中所有功能的入口点是SparkSession,可以使用SparkSession.builder()创建.创建后应用 ...

  4. PATA 1009. Product of Polynomials (25)

    1009. Product of Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yu ...

  5. Docker中使用CentOS7镜像

    因后面会将操作系统从CentOS6.4升级到CentOS7,先试用下CentOS7. 启动容器服务 systemctl start docker.service 下载CentOS7 镜像   [roo ...

  6. Linux系统中sysctl命令详解

    sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下.sysctl配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发.IP碎 ...

  7. gmap 获取瓦片数

    在 gmap1.7版本中 gMapControl1.MapProvider.Projection.GetAreaTileCount(area, i, 0); 可用来获取到erea里i层的瓦片数量. 但 ...

  8. Java多线程(2)线程锁

    多线程访问同一个资源进行读写操作,就很容易出一些问题(比如我们常见的读者写者,生产者消费者模型)所以我们会选择对他们设置信号量或者加锁,来限制同一个时刻只有一个线程对某个对象进行操作. 多线程是一个蛮 ...

  9. 剑指offer第二版-6.从尾到头打印链表

    描述:输入一个链表的头节点,从尾到头打印每个节点的值. 思路:从尾到头打印,即为“先进后出”,则可以使用栈来处理:考虑递归的本质也是一个栈结构,可递归输出. 考点:对链表.栈.递归的理解. packa ...

  10. 教你用Python制作微信好友背景墙

    目录: 0 引言 1 环境 2 代码实现 3 后记 0 引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这 ...