请选择 进入手机版 | 继续访问电脑版
论坛
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 2149|回复: 4

ESP8266_21基于ESP8266的一键配网

[复制链接]

24

主题

49

帖子

196

积分

注册会员

Rank: 2

积分
196
发表于 2019-12-9 18:58:05 | 显示全部楼层 |阅读模式
本帖最后由 lazyduck 于 2019-12-10 16:38 编辑


这一节,说一下一键配网的用法。首先说为什么需要一键配网?
原因很简单,因为设备要上网?那,给那些设备配一个屏幕和一个输入设备行不行?
不是不可以,对那些成本没要求的设备是没问题的。但物联网设备大部分都是一些简单的监测、通信设备,需要的数量又很多,基本配置好以后放在那里就没人动了。所以给这样的设备添加屏幕和输入设备,在资源上是很大的浪费。
举个例子,我之前买过一个小度音箱(低配版,非广告~),使用时,先用蓝牙去连接这个设备,然后把wifi的账号、密码发给它。再然后,它会连接当前wifi。
从此以后,你再让它干什么,只要说话就行了,根本用不到屏幕或按键。
那么,说到一键配网,你的第一反应想到什么?
smartconfig还是airkiss?
先说smartconfig,具体是哪个厂家提出的我没查到,不过当前支持的厂家还是很多的,如下图所示:
注意:每家的smartconfig技术可能会有些细微的差别。
以乐鑫支持的smartconfig技术为例,首先需要手机通过UDP的方式把wifi的账号、密码通过广播的方式发送出去;然后需要ESP8266进入混杂模式,扫描当前环境下有哪些AP;第三步,进入该AP的channel接收UDP数据包,如果有,进行解析,如果没有,进入下一个channel。
再说airkiss,这个用的也比较多。因为是它是腾讯家提出的概念,懒得写了,直接放个官网截图:
具体就不说了,感兴趣的可以自行搜索一下。
这一节的内容已smart-config为主,会了一个,另一个就so easy了!
跟MQTT的调试一样,打开官方的SDK,因为官方已经帮我们写好了,我们只要会调用即可。在SDK的examples文件夹下面,文件夹名字为smart_config,如下图所示:
打开该文件夹下的user目录下的user_main.c文件,可以看到相关源码:
不光有smartconfig,还有airkiss:
所以,做个简单的演示程序,以之前GPIO控制LED的工程为模版,添加smartconfig的代码,使其在配网成功后,控制LED闪烁。
由于整体功能比较简单,这里只看一下主函数内的代码:
  1. <font size="4">void ICACHE_FLASH_ATTR
  2. user_init(void)
  3. {
  4.     partition_item_t partition_item;
  5.     uart_init(BIT_RATE_115200, BIT_RATE_115200);
  6.     os_printf("SDK version:%s\n", system_get_sdk_version());//打印输出SDK版本
  7.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U,FUNC_GPIO12);         //设置相关引脚为GPIO模式
  8.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U,FUNC_GPIO13);
  9.     PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U,FUNC_GPIO15);
  10.     gpio_output_set(0, BIT15, BIT15, 0);   //设置GPIO15为低电平
  11.     smartconfig_set_type(SC_TYPE_ESPTOUCH);         
  12.     //SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS
  13.     wifi_set_opmode(STATION_MODE);
  14.     smartconfig_start(smartconfig_done);
  15. }</font>
复制代码
前面是串口初始化,并打印SDK版本。然后是GPIO初始化,并设置初始状态(根据你们的LED电路来设置初始状态)。
下面这行比较关键:
smartconfig_set_type(SC_TYPE_ESPTOUCH);
用来选择你要配网的方法:ESPTOUCH,还是AIRKISS,还是两者皆可。
ESPTOUCH是乐鑫提供的一键配网的APP,这里代表的是smartconfig模式,文章结尾会提供APP下载链接。
后面两行代码,一行用来设置ESP8266的工作模式,另一行启动配网,并设置相关的回调函数。
控制LED的函数,我放在了配网完成的代码里。
程序修改完成,保存、清理、编译、下载一条龙,然后重新上电。这里借助串口助手来查看效果。设备上电之后,效果如下所示:
先输出上面红框里的信息,此时,打开ESPTOUCH 这个APP,注意,前提是要确保你的手机连接在当前的wifi环境下。
如图,SSID是wifi名称,自动显示出来。我们要做的就是输入密码,然后点击下面的 Confirm。此时,APP页面变成下面的样子:
同时,ESP8266收到相关信息后,开始解析,并打印工作状态:
如图所示,8266获取到了相关的SSID和密码,连接成功,并打印出了自身、网关、手机的IP。此时,手机APP显示内容如下:
连接成功~~~
至此,基于ESP8266的smartconfig方式下一键配网聊完了,感兴趣的可以下载源码试一下。
完整工程源码,请关注公众号:单片机爱好者,回复关键字:ESP8266,即可获取。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2019-12-9 20:31:15 | 显示全部楼层
ESP8266,
回复

使用道具 举报

24

主题

49

帖子

196

积分

注册会员

Rank: 2

积分
196
 楼主| 发表于 2019-12-10 11:37:16 | 显示全部楼层

嗯,,,,,,,,,,,,,,,,,,,
回复

使用道具 举报

0

主题

6

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2019-12-13 19:36:53 | 显示全部楼层
接入物联网平台,进行数据通信,可用的协议有很多。开奖网 例如HTTP、Modbus、EDP、MQTT、TCP透传等等,前段时间ONENET还搞了个MQTTS,算是对原有MQTT协议做了一些约束。如果是有过网络通信经验的人,看到这里应该是比较亲切的。如果没有这方面经验,也不用紧张。北京pk10 因为我们是应用工程师,会用就行。

以Modbus为例,就是用串口/网口做为通信接口,构建了一个使用方便重庆欢乐生肖 、规则严格的通信协议。说它方便,是因为使用的时候,只要发送特定的几个指令,就能获得想要的数据。说它严格,是因为必须严格遵守Modbus的协议,通信才能正常进行。

回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 7 天前 | 显示全部楼层
想下载点资源,过来看下  ESP8266
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|安信可论坛    

GMT+8, 2020-2-24 04:49 , Processed in 0.020467 second(s), 14 queries , Redis On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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