Noduino Airkiss

来自Jack's Lab
2016年9月5日 (一) 12:59Comcat (讨论 | 贡献)的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到: 导航, 搜索

目录

1 开发环境准备

根据您的系统,选择如下快速指南:




2 硬件准备

准备一块 Noduino Falcon 开发板



3 编译烧写

进入你的 i2c-scan 目录:

$ cd /PATH/TO/noduino-sdk/examples/noduino/airkiss


编译、上传一步完成:

$ make flash

不同平台下,你的串口设备号可能不一样,确认一下你的串口设备,Linux 下 Falcon 开发板可能被识别为 /dev/ttyUSB1(dmesg 查看),则:

$ make flash ESPPORT=/dev/ttyUSB1


Windows 下 Falcon 开发板可能被识别为 COM6(控制面板 --> 设备管理器里查看),则:

$ make flash ESPPORT=COM6



4 查看结果

上传完之后,用串口工具,用 115200 的波特率打开串口,即可看到串口输出:


Windows 下可用串口调试助手这类插看


Linux 下推荐使用 picocom:

$ sudo apt-get install picocom
$ picocom -b 115200 /dev/ttyUSB1
picocom v1.7

port is        : /dev/ttyUSB2
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv
imap is        : 
omap is        : 
emap is        : crcrlf,delbs,

Terminal ready

......
......
Noduino Airkiss Example!
SC version: V2.5.4
scandone
scandone
SC_STATUS_FIND_CHANNEL
......
......


Ctrl + a q 退出 picocom


打开微信,扫一扫如下二维码,关注公众号:

Wechat-qcode-maike.jpg


进入公众号后,点下方菜单: 添加设备 ---> 配置 WiFi:

点 ”开始配置“


WiFi 配置的过程中,开发板的串口输出为:
scandone
f r0, scandone
SC_STATUS_FIND_CHANNEL

TYPE: AIRKISS
T|sniffer on ch:8
T|PHONE MAC: 38 27 99 69 33 75
T|AP MAC   : e0 46 39 8b 32 4e
T|Head Len : 74

SC_STATUS_GETTING_SSID_PSWD
SC_TYPE:SC_TYPE_AIRKISS
T|sync:wait
T|retain data: 2
T|all data: 22

T|sync:mgc end
T|ssid len 11
T|SSID: Jackslab
T|SCAN CRC SSID: 1
T|index:2, remain:3
T|password len: 10
T|sync:pfx end
T|seq:0
T|seq:1
T|seq:2
T|pswd : 87987898
T|ssid : Jackslab
SC_STATUS_LINK
Store the ssid and password into flash
f r0, scandone
state: 0 -> 2 (b0)
state: 2 -> 3 (0)
state: 3 -> 5 (10)
add 0
aid 9

connected with Jackslab, channel 8
dhcp client start...
cnt 
ip:192.168.13.62,mask:255.255.255.0,gw:192.168.13.1
SC_STATUS_LINK_OVER
free heap size:50496
pm open phy_2,type:2 0 0



5 微信 AirKiss

微信 AirKiss 的原理,参考此文档:http://iot.weixin.qq.com/airkiss_developer_manual.pdf

微信 AirKiss 目前支持的硬件:http://iot.weixin.qq.com/document-0_4.html#rd



6 代码示例

#include "noduino.h"
#include "smartconfig.h"

void smartconfig_done(sc_status status, void *pdata)
{
	switch (status) {
	case SC_STATUS_WAIT:
		os_printf("SC_STATUS_WAIT\n");
		break;
	case SC_STATUS_FIND_CHANNEL:
		os_printf("SC_STATUS_FIND_CHANNEL\n");
		break;
	case SC_STATUS_GETTING_SSID_PSWD:
		os_printf("SC_STATUS_GETTING_SSID_PSWD\n");
		sc_type *type = pdata;
		if (*type == SC_TYPE_ESPTOUCH) {
			os_printf("SC_TYPE:SC_TYPE_ESPTOUCH\n");
		} else {
			os_printf("SC_TYPE:SC_TYPE_AIRKISS\n");
		}
		break;
	case SC_STATUS_LINK:
		os_printf("SC_STATUS_LINK\n");
		struct station_config *sta_conf = pdata;

		os_printf("Store the ssid and password into flash\n");
		wifi_station_set_config(sta_conf);

		wifi_station_disconnect();
		wifi_station_connect();
		break;
	case SC_STATUS_LINK_OVER:
		os_printf("SC_STATUS_LINK_OVER\n");
		if (pdata != NULL) {
			uint8 phone_ip[4] = { 0 };

			os_memcpy(phone_ip, (uint8 *) pdata, 4);
			os_printf("Phone ip: %d.%d.%d.%d\n", phone_ip[0],
				  phone_ip[1], phone_ip[2], phone_ip[3]);
		}
		smartconfig_stop();
		break;
	}

}

void setup()
{
	//serial_begin(115200);
	uart_init(115200, 115200);

	os_printf("Noduino Airkiss Example!\r\n");

	//SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS
	smartconfig_set_type(SC_TYPE_AIRKISS);

	wifi_set_opmode(STATION_MODE);

	smartconfig_start(smartconfig_done);
}

void loop()
{

}




7 扩展阅读

更多问题参考:








个人工具
名字空间

变换
操作
导航
工具箱