本帖最后由 Ameba_Arduino 于 2016-7-5 11:49 编辑
1 QQ LinkQQ物联提供的云端服务可将QQ帐号体系、好友关系链、QQ消息通道及音视频服务等核心能力与设备相连接,不再需要单独的APP,可通过手机QQ来与设备进行通讯。
Ameba目前已经提供支持QQ物联平台的解决方案,可在http://iot.open.qq.com/wiki/#!SDK/RTOS_SDK_Download.md中看到相关的Realtek8711 的库文件。
为方便用户使用,我们同时提供了范例在中。(申请公测账号需要1-3个工作日)
1.1 手机QQ与Ameba相互通讯1.1.1 材料准备l Ameba x 1 2 Patch file for QQ-Link:
1.1.2 QQ物联准备可结合http://iot.open.qq.com/wiki/#!CASE/Air_Purifier.md的步骤来完成准备。
1.1.2.1 申请公测进入链接http://iot.open.qq.com/?from=management,选择“申请公测”,为您的QQ号取得QQ物联的公测资格。公测申请提交到白名单开通,大约需要1-3个工作日时间。
1.1.2.2 配置平台在白名单开启后,可进入“开发配置平台” http://iot.open.qq.com/对设备进行注册及配置。
进入 配置平台 - 设备 之后,点击添加设备按钮,填写“设备名称“及选择“设备类型”后即可开始快速注册一个新设备
完成后,我们已经获得了该产品获得重要信息:pid和serverkey。
点击编辑设置设备的信息
即可开始对设备的相关信息进行设置
1.设备信息
· 设备型号 您可以自由填写。 · 操作系统 RTOS · 联网方式 WiFi · 配网方式QQLink(配合example使用)
- QQLink: 可通过手机QQ将设备配置WiFi网络
- WiFi Router: 设备自行连接WiFi,手机QQ要连接同一WiFi在局域网内搜索设备
· 公钥上传 点击 网页上的”公钥&证书工具下载(Win 7 Only)”链接,然后运行”密钥生成工具”(CreateKeySnLicenceTool),点击下图中的”生成公私钥对”按钮,会在您指定的目录下生成一对非对称密钥文件: ec_key.pem (需妥善保管)和 public.pem。之后点击上传按钮上传public.pem 就可以了。
2. 功能配置
为配合提供的范例的使用,在公有功能中,开启ID:10000手机QQ给设备发文本消息以及ID:10101剩余电量功能。
3. 控制器设置
可使用默认的“自动生成控制器”,点击“下一步”进行保存。
4. OTA固件管理
在IAR编译好之后,可将固件上传至此。
5. “动作”设置
点击配置页面左侧的“动作”,然后点击“添加动作”,来添加由手机QQ所触发的设备需要做的动作内容。
以此example为例,设定动作名称(以“文本”为例),消息类型为“动态消息”,消息模板为“纯文本”,然后点击保存。
6. “触发器”设置
添加触发器来触发上一步中所设定的动作,以完成范例中设备要发给QQ的文本信息的动作。
设定触发器时,首先选定要设定的设备,然后选择“设备给手机QQ发消息”的功能,在设置触发条件时,临界值设定为“8”,在下面选择“等于”,被触发的动作选择在上一步中设定的动作“文本”。
此处设定的临界值为8是因为在qq_device.c($sdk\component\common\application\qqlink\v1.1.101\src)中设定了msg trigger为8.
1.1.2.3 初始化信息要完成手机QQ与Ameba的对接,需要几个关键信息。PID,SN, LICENSE以及二维码。具体的名词解释可参考http://iot.open.qq.com/wiki/#!FUNC/ExplanationOfTerms.md。
· pid(product id:产品ID) 成功添加设备后即可获得,可在设备配置页面的上方找到。
进入http://iot.open.qq.com,选择相应的设备,点击“编辑”,即可在页面上方获取“设备PID”。
· sn(serialnumber:序列号) 依然使用生成公私密钥时使用的工具(CreateKeySnLicenceTool),若没有,可到http://iot.open.qq.com/wiki/#!SDK/RTOS_SDK_Download.md的“工具下载”中下载“key_tools”
可选择“使用自有序列号”,序列号格式要求:长度必须是16个字符的字母、数字或者连词符的组合;
也可以选择随机生成
然后点击下方的“生成SN”,所有生成的SN将会保存至所填的“选择路径”下。
· license(sn对应的认证签名) 生成license时需要使用到“设备信息”中和公钥一起产生的私钥ec_key.pem。
添加私钥,然后点击“生成Licence”,在每个SN对应的文件夹中,就会存有对应license的txt 文档。点击“验证文件签名是否正确”对SN和license进行验证。
· 二维码 每一个SN会对应一个二维码,内容为http://iot.qq.com/add?pid=<PID>&sn=<SN>
您可以到http://liantu.com/或使用其他二维码生成工具来获取二维码。
以“联图网”为例,点击左侧的“网址”图标,输入URL内容,将PID和SN改为对应的值,点击“保存图片”即可获得二维码。
1.1.2.4 下载手机QQ可以在http://im.qq.com/下载最新的手机QQ版本,支持智能硬件接入的手机QQ的版本为:
Android QQ : 要求5.7版本以上 iPhoneQQ : 要求5.7版本以上
1.1.3 范例说明1.1.3.1 将QQLink patch加入Ameba project1. 将QQLink patch中的文件添加到SDK对应的位置 · qqlink 文件夹复制到SDK下“\component\common\application”中 · atcmd_qqlink_example.c 复制到SDK下“\component\common\api\at_cmd\”中 · lib_rtlstd.a文件替换SDK中的“\component\soc\realtek\8195a\misc\bsp\lib\common\IAR\lib_rtlstd.a” · 2. 在IAR中添加相关文件。 · 在IARproject中,在“console”文件夹中添加“atcmd_qqlink_example.c” 右键单击“console”文件夹,选择“Add”下的“Add Files”,加入刚刚复制到“component\common\api\at_cmd”中的“atcmd_qqlink_example.c”。
· 在IARproject中,添加“qqlink”文件夹 单击右键,选择“Add”下的“Add Group”, “Group name”为“qqlink”。
· 添加“...\qqlink\v1.1.101\src”中的C文件以及lib文件到“qqlink”文件夹 右键单击“qqlink”,选择“Add”下的“Add Group”,添加“...\qqlink\v1.1.101\src”中的所有C文件,
若为芯片为RTL8711AF, 添加“Lib_txdevice_1.1.101_sram.a”;
若为RTL8711AM或RTL8195AM, 添加“Lib_txdevice_1.1.101_sdram.a”
1.1.3.2 修改相关设定并编译有四个文档需要修改:
· platform_opts.h($sdk\project\realtek_ameba1_va0_example\inc)($sdk\component\common\application\) 添加: “#define CONFIG_QQ_LINK 1”
关闭“fast reconnect”:#define CONFIG_EXAMPLE_WLAN_FAST_CONNECT 0
关闭“simple config”: #defineCONFIG_INCLUDE_SIMPLE_CONFIG 0
· example_entry.c($sdk\component\common\example\) 在example_entry()中添加:
voidexample_entry(void)
{
... ...
#if CONFIG_QQ_LINK
example_qq_link();
#endif
... ...
}
· update.c($sdk\component\common\utilities) 打开WRITE_OTA_ADDR: #defineWRITE_OTA_ADDR 1
· qq_device.c($sdk \component\common\application\qqlink) 1. 将void device_run()中info.product_id = XXXXXXXXX;的 info.product_id的数值改为在QQ物联中您的设备的PID值。 2. uint8_tCLIENT_PUB_KEY[] 和uint8_t AUTH_KEY[]的值 需要用到密钥生成工具以及服务器公钥
点击设备编辑页面中的“服务器公钥下载”
下载后打开密钥生成工具,点击“生成共享密钥和客户端公钥”,用记事本打开刚刚下载的服务器公钥,将其复制到“请输入服务器公钥:”中,点击“生成”,即可获得”client_pub_key”和”ecdh_key”.
uint8_t CLIENT_PUB_KEY[] = “client_pub_key”后面的内容,
uint8_t AUTH_KEY[] = “ecdh_key”后面的内容
完成如上修改后,点击make,然后将其download到Ameba中。
1.1.3.3 使用步骤
1. 如果是第一次是有,Ameba会提示没有“SN/LICENSE”,因此需要用AT commad “ATCQ”将您生成好的一组SN 和LICENSE存入flash。
2. ATcommad “ATCQ” 使用方法: 因为license较长,因此将其分为part1和part2两部分存入。您可输入ATCQ来查看其用法。 · ATCQ=sn,xxxxxxxxxx · ATCQ=licensepart1,xxxxxxxxxxxxx · ATCQ=licensepart2,xxxxxxxxxxxxx
3. ResetAmeba, “**********RTOS SDK 1.1.101**********”的字样将会显示,并且Ameba 开始scan channel
4. 将手机连上可连接网络的WiFi,并打开手机QQ(需版本5.7以上)。 5. 在QQ联系人列表中,打开“我的设备”,点击“发现新设备”,准备好Ameba中储存的SN和PID所对应的二维码,用“扫一扫”来锁定设备(二维码的内容为http://iot.qq.com/add?pid=<PID>&sn=<SN>)
6. 扫描二维码后,在添加新设备页面点击“我已确认”,然后输入WiFi的相关信息点击“下一步”进行配置。
7. Ameba在搜索到网络配置信息后,会锁定channel,然后连接WiFi。
8. 配置好后,手机将会搜索到该设备,并提示进行绑定,点击“确认绑定”,即可将设备添加到手机QQ的通讯录中。Ameba的log也会显示“[device_on_bind_status] : Bind status[bound].”
9. 点击“进入设备”可看到显示电量的界面,也可点击右上方的信息按钮,进入聊天模式,example中,ameba会回复用户它刚收到的信息
1.1.3.4 OTA在设备编辑页面选择OTA固件管理,点击”上传OTA包”, 将IAR 编译后的固件上传。固件为ota.bin($ sdk\ project\realtek_ameba1_va0_example\EWARM-RELEASE\Debug\Exe),并设置版本号为100。
若有更新,将最新的ota.bin上传,并更改版本号为大于100的数值。在手机QQ中,点击设备的“设置”,选择“检查设备更新”,若检测到不是最新版本,可选择“下载更新文件”来升级固件。
在下载没有完成时,可随时点击红色×来停止下载。
下载完成后,手机QQ会显示“重启设备安装更新”,Ameba的log会显示 “Otadownload succeed”。
下载完成后,点击“重启设备安装更新” ,再点击“确认”后,Ameba会reset进入新的固件。
关于更多介绍请访问官方主页:http://ameba.realsil.com.cn/
QQ交流群:Ameba Arduino 技术交流群(184666894)
论坛干货:
【新品推荐】Ameba Arduino全功能IoT解决方案
【Ameba Arduino】入手教程之一:开发环境搭建
【Ameba Arduino】入门教程之二:5分钟玩转小车无线控制
【AmebaArduino】入门教程之三: Wi-Fi之初体验
【Ameba Arduino】入门教程之四:Ameba WebServerLED 控制
【Ameba Arduino】入门教程之五:给无线小车添加“眼睛”
【Ameba Arduino】入门教程之六:无线小车进阶控制---六轴姿态控制
【Ameba Arduino】实战:用Ameba打造Wi-Fi控制的MP3播放器
【AmebaArduino】实战:用Ameba读写SD卡
【AmebaArduino】实战:Airkiss配置Ameba连接Wi-Fi
|