ESP8266 AirKiss NFF

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(概述)
(概述)
第34行: 第34行:
 
* 设备主动向特定端口广播自己需要关联的公众号 (deviceType) 和设备 ID (deviceId)
 
* 设备主动向特定端口广播自己需要关联的公众号 (deviceType) 和设备 ID (deviceId)
 
* 微信客户端扫描可直接进入监听 UDP 端口的二维码(微信型号码),直接进入监听状态
 
* 微信客户端扫描可直接进入监听 UDP 端口的二维码(微信型号码),直接进入监听状态
* 微信客户端会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,设备存在(做过[http://iot.weixin.qq.com/document-2_6.html 设备授权])则进入绑定界面
+
* 微信客户端会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,设备存在(厂家用 deviceId 做过[http://iot.weixin.qq.com/document-2_6.html 设备授权])则进入绑定界面
  
 
<br><br>
 
<br><br>

2015年11月12日 (四) 23:30的版本

1 概述

设备主动定时(5s 一次)往 255.255.255.255 这个地址的 12476 端口,广播数据包:

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"}}

如上,监听 12476 这个 UDP 端口就知道,其广播数据含有两个关键的数据:

  • deviceType: gh_95fae1ba6fa0
  • deviceId: gh_95fae1ba6fa0_8312db1c74a6d97d04063fb88d9a8e47


这个 deviceType 实际就是公众号的原始ID: gh_95fae1ba6fa0

微信客户端在收到这个 UDP 广播包后,会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,看是否有这个设备存在

如果存在,则也往 12476 这个端口发一个,确认包,设备收到后,再回一个响应包,则完成过程


由此过程可发现,新思路和传统方法的差别在:

  • 设备主动向特定端口广播自己需要关联的公众号 (deviceType) 和设备 ID (deviceId)
  • 微信客户端扫描可直接进入监听 UDP 端口的二维码(微信型号码),直接进入监听状态
  • 微信客户端会用得到的 deviceType 和 deviceId 去对应公众号的数据库里查找,设备存在(厂家用 deviceId 做过设备授权)则进入绑定界面



2 快速尝试

Noduino Falcon 开发板 或 nodemcu v1.0 开发板,USB 连上 PC


下载 SDK:

# 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)


插上开发板,编译上传一步完成:

$ cd ../example/wechat-airkiss-nff

$ make flash


打开微信,扫一扫如下二维码,直接进入微信,自动开始探测设备:

Wechat-qcode-maike-noduino.jpeg



3 参考























个人工具
名字空间

变换
操作
导航
工具箱