Alios things + ESP8266入门教程
前言
主要介绍Alios things在ESP8266 WIFI模块上跑helloworld程序,开发语言是C语言。
ESP8266模块的图片:
ESP8266这款芯片使用了3.3V的直流电源,体积小,功耗低,支持透传,丢包现象不严重,而且价格超低,上图是ESP8266-01系列
引脚说明:
他有两种启动模式:1、烧写程序模式;2、正常运行模式。通过拉高拉低对应引脚(GPIO)的电位来控制,也就是说是物理控制启动方式的。
下载Alios things SDK
git clone https://gitee.com/alios-things/AliOS-Things.git -b rel_3.1.0
配置环境变量
AOS_SDK_PATH=/opt/AliOS-things
注意: 选择好稳定版本的分支,因为目前最新版本是3.1.0,因此这里选择了rel_3.1.0分支。登录Gitee可以看到发布的分支都设置有保护不能随意修改稳定分支的源代码的。
安装编译环境
alios things采用他们开发的aos-cube来编译源码。aos-cube使用python开发的,我们需要安装python的环境和pip工具。这个更便捷的方式使VScode开发工具。
python.exe -m pip install --upgrade pip
python -m pip install -U aos-cube -i https://mirrors.aliyun.com/pypi/simple/
注意事项:
– python用3.5含以上的版本,我这里使用的python3.8;
– 如果你使用的VsCode装aos-studio插件,他自带有安装aos-cube提示(点击安装即可;
– aos-sudio默认使用的python的虚拟环境执行命令;
– 在mac新版本系统更换了bash -> zsh默认命令行,注意环境变量的配置是否生效,不然可能在VSCode上执行不了命令的;
–
使用aos快速创建HelloWorld程序并编译
cd ~/
# 创建demo项目
aos create project -b esp8266 -t helloworld_demo -d tmp myapp
# 成功创建工程后,进入工程目录,执行编译
cd tmp/myapp
# 编译项目(编译结果会输出到out目录里)
aos make
官方文档的入门例子是developerkit开发版的,这里我们没用使用开发版直接使用的ESP8266模块,所以-b 传递的esp8266。
这个helloworld_demo例子是循环在串口输出Hellworld+次数。
注意
:Alios Things 的ESP8266板子程序的 的默认波特率 是921600,有点偏高有的软件支持不太好的就会乱码。我们可以修改为更加通用的波特率。修改文件路径为: $AOS_SDK_PATH/platform/mcu/esp8266/bsp/driver/uart.c
大概在最后新增一行代码:
UART_SetBaudrate(UART0, 115200);
修改后需要重新编译
# 清理上一次编译结果
aos clean
# 编译项目
aos make
下载编译好的固件
esptool.py 是aos-cube会自动装的下载工具。不同的项目路径会有不同的编译固件路径,不要复制。如果不会用也可以用GUI版本的下载工具鑫乐官方有的。
使用TTL的USB串口工具,接线到ESP8266
TTL串口模块 | ESP8266模块 |
---|---|
VCC | VCC(3.3V) & CH_PD |
TXD | URXD |
RXD | UTXD |
GND | GND |
注意接线:
1、先将IO0接GND,再将EN接VCC。
2、断电启动后应该是几秒内是刷机模式。
3、下载完毕后,恢复IO0的高电位或悬空
# 上传程序到硬件
aos upload myapp@esp8266
# 这个是需要修正的脚本例子,不然不能上传成功
esptool.py --chip esp8266 --port /dev/cu.usbserial-1440 --baud 115200 write_flash --flash_mode dout --flash_size 4MB
0x0 /Users/marker/sdk/AliOS-Things/platform/mcu/esp8266/bsp/boot_v1.7_921600.bin
0x3fc000 /Users/marker/sdk/AliOS-Things/platform/mcu/esp8266/bsp/esp_init_data_default.bin
0x3fe000 /Users/marker/sdk/AliOS-Things/platform/mcu/esp8266/bsp/blank.bin
0x1000 /Users/marker/aosApp/myapp1/out/myapp1@esp8266/binary/myapp1@esp8266.bin
跑起来
串口波特率设置为115200,打开窗口,ESP8266上电。
# 不太疯狂的循环输出Hello world
这套Helloword的硬件成本在5-6元左右。
make flash烧录ESP8266版本的问题集合
- 1、有时候会遇到这样一个问题:a fatal error occurred :MD5 of file does not match data in flash!
网上找的处理办法:
esptool.exe --port COM4 write_flash_status --non-volatile 0
esptool.exe --port COM4 flash_id
- 2、 ets Jan 8 2013,rst cause:1, boot mode:(3,6) ets_main.c
处理办法:
这个需要修改模式为 --flash_mode dout