Gizwits ESP8266
尝试一下机智云的软硬件环境
机智云
机智云是一个比较常用的物联网云平台,由于手上有相关的硬件,因此准备尝试一下。
GAgent
GAgent 是机智云的固件产品,写入到 ESP8266 wifi 模块后可以简化物联网 wifi 上网的主要功能。烧写固件需要到乐鑫(Espressif)下载工具软件,并从 机智云下载固件映像。按照机智云上的固件烧写说明却无法连接成功。由于我 用的模块来自第三方,猜想是 GPIO0 的管脚位置不同,最后查了淘宝上的一款 ESP-12F 模块,才知道我的 GPIO0 在从指示灯开始数的第五个位置。
第一次烧还是不成功,报 efuse 错误,结果第二次烧就成功了。
机智云串口调试助手
使用调试助手和 wifi 模块连接上之后,点击模拟 V4MCU,则可以自动和 wifi 模块 通过串口协议通信。输入 product_key 之后,可以在界面上看到我在机智云上建立 的产品信息。
在手机端安装上机智云的产品调试 APP(登录有问题,用我注册的个人用户帐号好像 无法登录,不过可以跳过登录,不影响使用),在调试助手中打开指令界面,选择 AirLink按钮,然后在手机端输入 AP 的信息并搜索硬件。大概十几秒之后 wifi 模块就可以登录机智云了,在手机段也可以看到我的产品信息。
手机软件根据我设置的产品信息可以看到照明的按钮,我在手机上对这个按钮进行 操作就可以在调试助手中看到照明的数值被改变了,也就是基本实现了我所需要 的功能。
连接 Arduino
使用 Arduino 连接到串口 wifi 模块,比较麻烦的是每次下载代码必须把 wifi 模块拿掉,否则会干扰下载。按照示例的代码下载了之后,从 DEV 到 APP 的通道 没有问题。但从 APP 到 DEV 就是不行。通过机智云网上的日志可以看到,消息传递 没有问题,应该就是 Arduino 这边的代码问题了。
后来把检测是否有相关命令的 hasBeenSet 调用去掉,直接用 read 读取相应的值, 结果就正常了。顺便说一下机智云自带的调试 APP 和下载参考代码生成的 APP 都可以用,功能类似。(3月17日更新:这个部分后来发现还是我自己的代码问题)
写入 AT 固件
后来想在 ESP8266 模块中写入 AT 固件,自己控制 WIFI 接入,但确多次无法成功。 网上下载的不同固件都无法正常启动,在 minicom 中只能看到乱码。后来看资料 指导启动信息的波特率是 74880,minicom 和 screen 都不支持,最后还是 esptool 中带的 miniterm.py 支持。
看到的错误原因是 csum err,但 verify_image 也没有问题,不知道原因是什么。 网上看到有人说用 dout 方式写入就没有问题了,可用 win 下面的官方写入软件 根本就写不进去,最后下载开源的 esptool 就可以用 dout 方式写入了,结果看到 错误信息不一样了,变成
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DOUT
SPI Flash Size & Map: 32Mbit(512KB+512KB)
jump to run user1 @ 1000
mismatch map 5,spi_size_map 4
system_partition_table_regist fail
还是看网上的信息,说 1.7 的固件会有这个问题,但 1.6.2 的就没有问题了。 真是历尽千辛万苦终于获得了 ready 提示信息。
虽然记录的过程看来很简单,但实际经过的尝试复杂的多。
总结
总体感觉机智云上手还是比较容易的,从昨天看资料开始,全部用掉的时间估计在 4 个小时左右。要不是软件这边有一点坑,应该更快的可以完成设计。