氦氪云入门教程04-基于氦氪主控协议的作品-SDK演示插座-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4427|回复: 0

氦氪云入门教程04-基于氦氪主控协议的作品-SDK演示插座

[复制链接]
发表于 2017-8-3 08:51 | 显示全部楼层 |阅读模式
本帖最后由 lawrencedon 于 2017-8-3 09:00 编辑

本次教程,我们来基于氦氪主控协议,使用氦氪ESP8266 SDK里的demo Smart Plug(智能插座)来完成一个作品。
教程内不包含智能插座的硬件设计部分。你只要准备一个ESP8266的模块(FLASH容量大于等于1MB)和氦氪的个人开发者账号就可以玩了。我们ESP8266 SDK里的demo Smart Plug中使用GPIO14控制继电器,GPIO4用于指示网络状态。

第一步:在console.hekr.me中建立一个基于氦氪主控协议的产品。
200648c5y48xly14a7lw74.png
点击右下角的 200802jlzusgztgcec2ct7.png ,添加新产品。
200919v1ahahxtk1hb84nb.png
200958n2122gq8q8dqis18.png
162701xozhqs4j6toazjbt.png
203115nq7gihgr9rxiiyg8.png
点击上图中的 查看,可以看到产品的prodKey,我们会在user_main.c里用到这个prodKey(将ra_set_parameter_string("prodKey", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")中的xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx用这里的prodKey替换)。
203319bdattm1fr3admd73.png
这样我们就完成了产品信息的录入,接着来填写产品协议。
201112xvtzw5qwwefewgff.png
点击右下角的 201456rfbpxr80yz1manbx.png 在弹出的菜单 201544fj5zmm59kbb7kn7k.png 中点击导入协议图标。
202541gm8ypv54p4h0vqvl.png
将附件 通信协议.txt 中的内容复制到上图中的文字编辑框中。点击提交。
202740hi5ixhsfj0g05wlf.png
点击确认,协议会自动加载进来。
202847un97n09h5kzuinun.png
接下来我们来上传控制页面。
204102x6fzphhhhyt99s13.png
点击右下角的 204138hpjjem4ykdgfglmf.png 添加新的控制页面。
204404h2n34m3b4bdb225a.png
点击 选择文件,选择附件中的 SDK演示插座20170427v01.zip
204421ql1jpl2i2ycc9myq.png
204755r0kzs8eeei99isey.png
到这里我们就完成了控制页面的上传。
调试页面的使用请参考上一篇教程中的“第4步,在控制台使用虚拟设备进行调试。

第二步:编译固件,烧录固件。
0.下载 ESP8266 SDK 入门指南
http://www.espressif.com/sites/default/files/documentation/2a-esp8266-sdk_getting_started_guide_cn.pdf
1.按照 3.3.1 编译器 章节 把编译环境搭建好。
2.从 http://git.oschina.net/HEKRCLOUD/hekr-esp8266-sdk-ra 下载我们的SDK(下载时需要登录,没有账号的需要注册一下)。

3.第2步下载下来的是名称为HEKRCLOUD-hekr-esp8266-sdk-ra-master.zip的压缩包,将HEKRCLOUD-hekr-esp8266-sdk-ra-master.zip解压缩。
在HEKRCLOUD-hekr-esp8266-sdk-ra-master\hekr-esp8266-sdk-ra目录下你可以看到如下图所示的内容:

095018m38owfof3od3fd93.png
4.将app文件夹中的内容全部删除掉。
5.将examples\Smart Plug文件夹下的内容拷贝到app文件夹内。
   将app\user\user_main.c这个文件里的ra_set_parameter_string("prodKey", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")中的xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx用你刚才建立的产品的prodKey替换。
6.将hekr-esp8266-sdk-ra文件夹拷贝至你在第1步骤中建立的虚拟机共享文件夹(我使用的是D:\VM\share)。
7.打开Oracle VM VirtualBox,双击名称为"ESP8266_lubuntu"的虚拟机。
8.打开lubuntu虚拟机桌面上的终端工具LXTerminal。
9.输入命令 ./mount.sh 根据提示输入密码 espressif
10.输入命令 cd Share/hekr-esp8266-sdk-ra/app
11.输入命令 make
12.如果你看到编译过程结束时有输出以下内容,说明你的固件编译成功了。在hekr-esp8266-sdk-ra\bin\upgrade目录下会生成用户固件 1.bin。

095641fr6r40ufmiscif99.png
13.烧录固件我们需要乐鑫的官方工具,下载地址如下:
http://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.3.6_win.zip
14.烧录固件需要的文件位于hekr-esp8266-sdk-ra\bin和hekr-esp8266-sdk-ra\bin\upgrade,如下图所示:
095738nxlrl55d33kw2ey6.png
095742vqm3lwtoklx4otrr.png
如果你暂时不打算搭建编译环境,只是想体验一下这个作品的话,那可以直接使用附件 固件.zip 中的文件进行烧录。
15.固件烧录设置如下:
使ESP8266模块进入烧录模式的方法:
1.GPIO0保持接地,给模块上电,然后GPIO0与地断开。
2.给模块上电,GPIO0保持接地,RST接地一下就断开,然后GPIO0与地断开。
095819imzy7j7cr7zjspm7.png
我使用的模块是氦氪官方的Hekr v1.1,FLASH大小为2MB,如果你的FLASH是其他容量的,请参照下表设置烧录工具。
bin文件1024KB( 512KB+ 512KB) 8Mbit2048KB( 512KB+ 512KB) 16Mbit4096KB( 512KB+ 512KB) 32Mbit
boot_v1.5.bin0x00x00x0
1.bin0x10000x10000x1000
params_section_blank.bin0x7D0000x7D0000x7D000
esp_init_data_default.bin0xFC0000x1FC0000x3FC000
blank.bin0xFE0000x1FE0000x3FE000

第三步:使用丛云APP添加设备,实际测试。
固件烧录好之后,把模块重新上电,如果你的模块上GPIO4有接LED的话,LED会进入两秒闪烁一次的状态,这表明模块处在配网模式。在丛云APP主页面的右上角点击"+"图标,然后按照提示一步步完成设备添加。

更多关于 丛云APP 的使用方法请参考 丛云APP使用手册

GPIO4用于指示网络状态,其具体含义如下:
1.亮2s、灭2s:进入一键配置模式
2.亮0.1s、灭5s:已经登录上服务器(正常状态)
3.亮0.1s、灭1s:无法登录上服务器
4.亮0.1s、灭0.5s:服务器域名解析失败(可能路由器外网不通)
5.常亮:配网超时或wifi连接失败(配网时WiFi密码错误、WiFi网络状况不好)

设备控制页面实际测试
点击查询按钮:
101355cgr5tetq92wuqw5q.png
点击开按钮:
101406ldjzdkbbomjzo1kd.png
点击关按钮:
101413lseiei01bqqle0lv.png
备注:本固件的源码没有提供 使模块再次进入配网模式 和 用其他GPIO控制GPIO14输出的功能。开发者可以参考主控固件插座demo源码对本例进行完善。

通信协议.zip

567 Bytes, 下载次数: 13

SDK演示插座20170427v01.zip

29.99 KB, 下载次数: 18

固件.zip

234.35 KB, 下载次数: 13

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:47 , Processed in 0.077623 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表