Skip to content

xiaoLBGitHub/esp8266-aliyun-demo

 
 

Repository files navigation

ESP8266 对接阿里云指南

目录

介绍

ESP8266 是一颗低功耗、高集成度、性能稳定的 Wi-Fi 芯片,是物联网开发的首选设备。ESP8266EX 专为移动设备、可穿戴电子产品和物联网应用而设计,通过多项专有技术实现了最低功耗。ESP8266EX 有三种运行模式:激活模式、睡眠模式和深度睡眠模式,能够延长电池寿命。 ESP8266EX 是业内集成度最高的 Wi-Fi 芯片,最小封装尺寸仅为 5mm x 5mm。ESP8266EX 高度集成了天线开关、射频 balun、功率放大器、低噪放大器、过滤器和电源管理模块,仅需很少的外围电路,可将所占 PCB 空间降到最低。ESP8266EX 集成了更多的元器件,性能稳定,易于制造,工作温度范围达到 -40°C 到 +125°C。

阿里云物联网套件是阿里云专门为物联网领域的开发人员推出的,其目的是帮助开发者搭建安全性能强大的数据通道,方便终端(如传感器、执行器、嵌入式设备或智能家电等等)和云端的双向通信。全球多节点部署让海量设备全球范围都可以安全低延时接入阿里云IoT Hub,安全上提供多重防护保障设备云端安全,性能上能够支撑亿级设备长连接,百万消息并发。物联网套件还提供了一站式托管服务,数据从采集到计算到存储,用户无需购买服务器部署分布式架构,用户通过规则引擎只需在web上配置规则即可实现采集+计算+存储等全栈服务。总而言之,基于物联网套件提供的服务,物联网开发者可以快速搭建稳定可靠的物联网平台。

一:目的

本文基于 linux 环境和 windows 环境,介绍 ESP8266 对接阿里云平台的具体流程,供读者参考。

二:硬件准备

esp-launcher

  • USB 线
    连接 PC 和 ESP8266,用来烧写/下载程序,查看 log 等作用。

三:阿里云平台准备

根据阿里官方文档,在阿里云平台创建产品,创建设备,同时自动产生 product key, device name, device secret。
product key, device name, device secret 将在 6.1.1 节用到。

四:环境搭建

如果您熟悉 ESP8266 开发环境,可以很顺利理解下面步骤; 如果您不熟悉某个部分,比如编译,烧录,需要您结合官方的相关文档来理解。如您需阅读 ESP8266 快速入门指南文档等。

4.1 编译器环境搭建

linux 系统:
根据官方链接中第二步 Requirements,下载并编译整个 esp-open-sdk。
esp-open-sdk 中主要包含 ESP8266 SDK(ESP8266_RTOS_SDKESP8266_NONOS_SDK)的编译器 xtensa-lx106-elf, 以及 ESP SDK(ESP SDK 包括 esp-idf, ESP8266 SDK等) 的烧写工具 esptool。
注意:编译 esp-open-sdk 过程中,国内可能会比较慢,挂载 VPN 会快一些。

windows 系统:
你有两种方式 a) 或 b) 获取编译器,推荐使用 a)
a) 下载包含有编译器的 cygwin
下载链接
下载并解压 cygwin, cygwin 为用户贴心准备了 windows 下的 linux 环境和 ESP8266 的编译器 xtensa-lx106-elf。
xtensa-lx106-elf 位于 cygwin/opt/ 目录下,更多信息请参考 cygwin/使用说明.pdf

b) 下载虚拟机 && 下载包含有编译器的 lubuntu 镜像
根据官方的 ESP8266 SDK 入门指南 中 3.3 节来获取编译器

4.2 烧录工具/下载工具获取

linux 系统:
烧录工具位于 4.1节中 esp-open-sdk/esptool/esptool.py
烧录方式参考命令:

$ esp-open-sdk/esptool/esptool.py --help

windows 系统:
烧录工具链接:Flash 下载工具(ESP8266 & ESP32)
烧录方式参考 ESP8266 SDK 入门指南 中第六节下载固件

五:SDK 准备

用户可通过如下方式获取整个 SDK。

$ git clone https://github.com/espressif/esp8266-aliyun.git
$ cd esp8266-aliyun
$ git submodule update --init --recursive

or

$ git clone --recursive https://github.com/espressif/esp8266-aliyun.git

目录结构如下:

├── bin                         // 存放编译后生成的文件
├── components                  // 相关组件
|       ├── aliyun              // 阿里云相关组件
|       |      ├── config       // ESP8266 平台配置
|       |      ├── iotkit-embedded  // 阿里 SDK
|       |      ├── Makefile     // 编译 makefile
|       |      └── platform     // 适配
|       └── Makefile            // 阿里云 makefile
├── docs                        // 说明文档相关文件
├── esp8266-rtos-sdk            // ESP8266 RTOS 核心组件
├── gen_misc.sh                 // 编译脚本
├── include                     // 用户可配头文件
|      ├── aliyun_config.h      // 配置连接阿里云相关参数
├── ld                          // 链接脚本
├── Makefile                    // 总编译入口 makefile
├── README.md                   // 说明文档
└── user                        // 用户程序入口

六:编译&烧写&运行

6.1 编译

6.1.1 SDK 修改

aliyun_config.h

#define PRODUCT_KEY             "********"  // type:string
#define DEVICE_NAME             "********"  // type:string
#define DEVICE_SECRET           "********"  // type:string
...
#define WIFI_SSID       "********"       // type:string, your AP/router SSID to config your device networking
#define WIFI_PASSWORD   "********"       // type:string, your AP/router password

将第三节中阿里云平台产生的参数填充到 PRODUCT_KEY,DEVICE_NAME,DEVICE_SECRET
将你可用的热点/路由器用户名密码填充到 WIFI_SSID,WIFI_PASSWORD

6.1.2 导出编译器

导出 4.1 节下载的编译器,如:

$ export PATH=/opt/xtensa-lx106-elf/bin/:$PATH

6.1.3 编译 SDK

$ ./gen_misc.sh

编译完成后,将生成 esp8266-aliyun/bin/upgrade/user1.2048.new.5.bin 固件。

6.2 烧写/下载固件

将 USB 线连接好 ESP8266 和 PC,确保下面烧写端口正确。windows 烧写方法参考 4.2 节,烧写 bin 和烧写地址参考 6.2.2 节。

6.2.1[可选] 擦除 flash

$ ~/esp/esp-open-sdk/esptool/esptool.py --port /dev/ttyUSB0 --baud 921600 erase_flash

6.2.2 烧录程序

$ ~/esp/esp-open-sdk/esptool/esptool.py --port /dev/ttyUSB0 --baud 921600 write_flash --flash_size 2MB-c1 0x1000 bin/upgrade/user1.2048.new.5.bin 0x0000 ~/bin/boot_v1.6.bin  0x1fc000 ~/bin/esp_init_data_default.bin 0x1fe000 ~/bin/blank.bin

6.3 运行

打开串口工具,连接,连接配置如下:
波特率: 74880
数据位: 8
停止位: 1
奇偶校验: None
流控: None

如 linux 中使用 miniterm 串口工具:

$ miniterm.py /dev/ttyUSB3 74880

将 ESP8266 拨至运行状态,即可看到如下 log:
log 显示了 ESP8266 基于 TLS 建立了与阿里云的安全连接通路,接着通过 MQTT 协议订阅和发布消息,同时在阿里云控制台上,也能看到 ESP8266 推送的 MQTT 消息。

p2

p3

p4

About

Demo project for Alibaba Aliyun

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 79.2%
  • Makefile 18.8%
  • Shell 2.0%