查看ESP8266 AirKiss NFF的源代码
←
ESP8266 AirKiss NFF
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 概述 == <br><br> == 快速尝试 == Noduino Falcon 开发板 或 nodemcu v1.0 开发板,USB 连上 PC 下载 SDK: <source lang=bash> # clone the whole sdk $ git clone git://github.com/icamgo/noduino-sdk.git noduino-sdk # fetch the toolchain of esp8266 $ cd noduino-sdk $ git submodule init $ git submodule update $ cd toolchain $ ./gen.py # generate the toolchain (you need Python 2.7) </source> 插上开发板,编译上传一步完成: <source lang=bash> $ cd ../example/wechat-airkiss-nff $ make flash </source> 打开微信,扫一扫如下二维码,直接进入微信,自动开始探测设备: [[文件:Wechat-qcode-maike-noduino.jpeg]] <br><br> == 流程分析 == 设备主动定时(5s 一次)往 255.255.255.255 这个地址的 12476 端口,广播数据包: <source lang=bash> comcat@jackslab:/work/xwifi/noduino-sdk/lib$ nc -u -l -p 12476 | xxd -g 1 0000000: fd 01 fe fc 00 10 00 01 00 00 00 7d 00 00 10 02 ...........}.... 0000010: 7b 22 64 65 76 69 63 65 49 6e 66 6f 22 3a 7b 22 {"deviceInfo":{" 0000020: 64 65 76 69 63 65 54 79 70 65 22 3a 22 67 68 5f deviceType":"gh_ 0000030: 39 35 66 61 65 31 62 61 36 66 61 30 22 2c 22 64 95fae1ba6fa0","d 0000040: 65 76 69 63 65 49 64 22 3a 22 67 68 5f 39 35 66 eviceId":"gh_95f 0000050: 61 65 31 62 61 36 66 61 30 5f 38 33 31 32 64 62 ae1ba6fa0_8312db 0000060: 31 63 37 34 61 36 64 39 37 64 30 34 30 36 33 66 1c74a6d97d04063f comcat@jackslab:/work/xwifi/noduino-sdk/lib$ nc -u -l -p 12476 ������}��{"deviceInfo":{"deviceType":"gh_95fae1ba6fa0","deviceId":"gh_95fae1ba6fa0_8312db1c74a6d97d04063fb88d9a8e47"}} </source> 如上,监听 12476 这个 UDP 端口就知道,其广播数据含有两个关键的数据: * deviceType: gh_95fae1ba6fa0 * deviceId: gh_95fae1ba6fa0_8312db1c74a6d97d04063fb88d9a8e47 这个 deviceType 实际就是公众号的原始ID: gh_95fae1ba6fa0 微信客户端在收到这个 UDP 广播包后,会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,看是否有这个设备存在 如果存在,则也往 12476 这个端口发一个,确认包,设备收到后,再回一个响应包,则完成过程 由此过程可发现,新思路和传统方法的差别在: * 设备主动向特定端口广播自己需要关联的公众号 (deviceType) 和设备 ID (deviceId) * 微信客户端扫描可直接进入监听 UDP 端口的二维码(微信型号码),直接进入监听状态 * 微信客户端会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,设备存在(厂家用 deviceId 做过[http://iot.weixin.qq.com/document-2_6.html 设备授权])则进入绑定界面 * 用户点绑定后,微信后台会给厂商的后台一个如下消息: <source lang=xml> <xml> <ToUserName><![CDATA[gh_95fae1ba6fa0]]></ToUserName> <FromUserName><![CDATA[o7okrt5x5y0QF3ZoORfhBs_XM4I8]]></FromUserName> <CreateTime>1447343815</CreateTime> <MsgType><![CDATA[device_event]]></MsgType> <Event><![CDATA[bind]]></Event> <DeviceType><![CDATA[gh_95fae1ba6fa0]]></DeviceType> <DeviceID><![CDATA[gh_95fae1ba6fa0_8312db1c74a6d97d04063fb88d9a8e47]]></DeviceID> <Content><![CDATA[]]></Content> <SessionID>0</SessionID> <OpenID><![CDATA[o7okrt5x5y0QF3ZoORfhBs_XM4I8]]></OpenID> </xml> </source> 厂商的后台只要解析后,将相关信息登记入数据库,即可完成绑定过程,再也无需一一对应地人肉贴带参二维码了 厂家生产时,还是要把从 weixin 申请的 deviceId 写入设备 flash/eeprom 上 <br><br> == 参考 == * 微信设备授权新接口:http://iot.weixin.qq.com/document-2_11.html * [http://mp.weixin.qq.com/s?__biz=MjM5MTgyNzQ5Nw==&mid=400271859&idx=1&sn=299a72ad8ee6189b365586d11cdad333 “型号码”帮助企业简化设备生产 ] * 型号二维码介绍:http://iot.weixin.qq.com/document-7_3.html <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br> <br><br>
返回到
ESP8266 AirKiss NFF
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面