ESP8266+安信可微信智能配网
文章目录
- ESP8266
- 一.前言
- 二.环境
- 三.代码讲解
- 1.讲解
- 2.示例
- 3.blinker添加智能配网
- 四.开始配网
- 1.微信配网
- 2. EspTouch软件
- 五.总结
ESP8266
一.前言
ESP8266模块深受发大电子爱好者的追捧,但是ESP8266连接网络是个问题,相信好多朋友都是将wifi名称和密码写死在代码中的,就像我这样
char ssid[] = "IT老翟"; //你的WiFi热点名称
char pswd[] = "123456789"; //你的WiFi密码
但是问题来啦,当我们的设备或一个地方或是wifi名称变了,那还得我们拆开设备来,重新改代码烧程序,作为客户来这样使用,估计换做谁都无法接受。今天给大家说用如何用微信或者软件,一键给我们的wifi模块配网
二.环境
- 我们使用 Arduin IDE 来编译我们的程序
- 微信 安信可 公众号
- EspTouch 安卓软件
三.代码讲解
1.讲解
当我们模块上电,先来检测看望了有没有连接成功,如果连接成功就不需要再继续配网,如果5s后没有连接成功,之间进入微信配网
/*连接网络*/
void ESP_Connect()
{Serial.println("\r\n正在连接WIFI...");while(WiFi.status()!=WL_CONNECTED)//判断是否连接WIFI成功{if(WIFI_Status){Serial.print(".");digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); count++;if(count>=5)//5s{WIFI_Status = false;Serial.println("WiFi连接失败,请用手机进行配网"); } }else{smartConfig(); //微信智能配网}}Serial.println("连接成功"); Serial.print("IP:");Serial.println(WiFi.localIP());
}
下面是微信配网的程序,配置成功的
wif名称为: WiFi.SSID().c_str()
密码为: WiFi.psk().c_str()
/* 微信智能配网 */
void smartConfig()
{WiFi.mode(WIFI_STA);//设置STA模式Serial.println("\r\nWait for Smartconfig...");//打印log信息WiFi.beginSmartConfig();//开始SmartConfig,等待手机端发出用户名和密码while(1){Serial.println(".");digitalWrite(LED_BUILTIN,HIGH);//指示灯闪烁delay(1000);digitalWrite(LED_BUILTIN,LOW);//指示灯闪烁delay(1000);if(WiFi.smartConfigDone())//配网成功,接收到SSID和密码{Serial.println("SmartConfig Success");Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());break; }}
}
2.示例
//智能配网
#include <ESP8266WiFi.h> //WIFI库,配网必需int count = 0; //时间计数
bool WIFI_Status = true; //WIFI状态标志位/* 微信智能配网 */
void smartConfig()
{WiFi.mode(WIFI_STA);//设置STA模式Serial.println("\r\nWait for Smartconfig...");//打印log信息WiFi.beginSmartConfig();//开始SmartConfig,等待手机端发出用户名和密码while(1){Serial.println(".");digitalWrite(LED_BUILTIN,HIGH);//指示灯闪烁delay(1000);digitalWrite(LED_BUILTIN,LOW);//指示灯闪烁delay(1000);if(WiFi.smartConfigDone())//配网成功,接收到SSID和密码{Serial.println("SmartConfig Success");Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());break; }}
}/*连接网络*/
void blinkerConnect()
{Serial.println("\r\n正在连接WIFI...");while(WiFi.status()!=WL_CONNECTED)//判断是否连接WIFI成功{if(WIFI_Status){Serial.print(".");digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); count++;if(count>=5)//5s{WIFI_Status = false;Serial.println("WiFi连接失败,请用手机进行配网"); } }else{smartConfig(); //微信智能配网}}Serial.println("连接成功"); Serial.print("IP:");Serial.println(WiFi.localIP());
}void setup() {// 初始化有LED LED_BUILTIN 为开发板的指示灯管脚pinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);//网络连接blinkerConnect();
}void loop() {}
3.blinker添加智能配网
如果我们使用blinker点灯科技,也需要连接网络,blinker给的库函数为 Blinker.begin(auth,ssid,pswd)
,那我们如何配置可以看下面代码
这里以点灯程序为例
//智能配网
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT#include <Blinker.h>
#include <ESP8266WiFi.h> //WIFI库,配网必需// 新建组件对象
BlinkerButton Button1("key");
BlinkerNumber Number1("num-abc");int counter = 0;int count = 0; //时间计数
bool WIFI_Status = true; //WIFI状态标志位#define led D3 //要操作的IO
char auth[] = "xxxxxxxxx"; //设备秘钥自己改/* 微信智能配网 */
void smartConfig()
{WiFi.mode(WIFI_STA);//设置STA模式Serial.println("\r\nWait for Smartconfig...");//打印log信息WiFi.beginSmartConfig();//开始SmartConfig,等待手机端发出用户名和密码while(1){Serial.println(".");digitalWrite(LED_BUILTIN,HIGH);//指示灯闪烁delay(1000);digitalWrite(LED_BUILTIN,LOW);//指示灯闪烁delay(1000);if(WiFi.smartConfigDone())//配网成功,接收到SSID和密码{Serial.println("SmartConfig Success");Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());break; }}
}/*连接网络*/
void blinkerConnect()
{Serial.println("\r\n正在连接WIFI...");while(WiFi.status()!=WL_CONNECTED)//判断是否连接WIFI成功{if(WIFI_Status){Serial.print(".");digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(500); count++;if(count>=5)//5s{WIFI_Status = false;Serial.println("WiFi连接失败,请用手机进行配网"); } }else{smartConfig(); //微信智能配网}}Serial.println("连接成功"); Serial.print("IP:");Serial.println(WiFi.localIP());
}// 按下按键即会执行该函数
void button1_callback(const String & state) {BLINKER_LOG("get button state: ", state);if(state == "on"){Button1.print("on");digitalWrite(led, HIGH);}else if(state == "off"){Button1.print("off");digitalWrite(led, LOW);}
}// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{BLINKER_LOG("Blinker readString: ", data);counter++;Number1.print(counter);
}void setup() {// 初始化串口Serial.begin(115200);#if defined(BLINKER_PRINT)BLINKER_DEBUG.stream(BLINKER_PRINT);#endif//初始化控制的led灯pinMode(led, OUTPUT);digitalWrite(led, LOW);// 初始化有LED的IOpinMode(LED_BUILTIN, OUTPUT);digitalWrite(LED_BUILTIN, HIGH);//网络连接blinkerConnect();// 初始化blinkerBlinker.begin(auth,WiFi.SSID().c_str(),WiFi.psk().c_str()); //根据配网得到的WIFI信息和设备秘钥,连接到Blinker云Blinker.attachData(dataRead);Button1.attach(button1_callback);//注册按键回调函数
}void loop() {Blinker.run();
}
四.开始配网
我们将程序烧入我们的开发板,接下来就来配网,这里介绍两种方式一种是微信一种是app ,两种方式都是一样的,都是利用Arduino 封装好的 smartConfigDone()
函数来实现
1.微信配网
我们首先来关注微信公众号 “安信可科技”,注意配网时需要手机连接需要配置的 wifi热点,还需要开启定位
进入公众号需要点击右下角,进入配网
2. EspTouch软件
先下载软件,同样需要连接wifi热点,大家定位,我这没有连接热点所有SSID: 没有显示
下载地址:EspTouch 下载
五.总结
这种办法配置网络还是比较方便的,我们配置一次后我们的wifi名称和密码会被写入到flash中,所以下次开启后会自动连接网络,不会让我们继续配网,如何wifi名称和密码和之前的不一样,就需要我们配网
再说一下配网过程中,esp8266指示灯的一个变化
模块上电之后,自动进入配网判断,指示灯每0.5s闪闪一次,5s内网络配置成功,指示灯熄灭,如果超过5s,还没连接成功进入微信配网,每1s灯闪烁一次,一直循环,知道连接成功,指示灯停止闪烁
代码中的打印信息大家调试完可以屏蔽,这样可以提高代码的运行速度
ESP8266+安信可微信智能配网相关推荐
- STM32 ESP8266 微信Airkiss智能配网连接WiFi并接入OneNET
你是否还在直接将wifi的ssid和密码直接写入STM32程序中通过串口发送给ESP8266?本文教你用微信Airkiss协议实现可视化地为ESP8266发送WiFi ssid和密码信息并连接WiFi ...
- USB转ESP8266 01 WIFI串口模块 电脑无线通信单片机转接板烧录固件 AirKiss SmartConfig 智能配网
ESP8266 01/01S USB串口转接板,用于跟WIFI调试软件工具通信,还可以烧录固件. 转接板图: 直接使用CH340G串口驱动,可以使用官方esp8266 调试工具发送指令进行设置. 烧写 ...
- 借鉴华为HiLink实现微信小程序智能配网功能
借鉴华为HiLink实现微信小程序智能配网功能 微信小程序介绍 微信公众号智能配网 Smartconfig实现原理 Smartconfig技术的弊端 AP配网技术的出现 微信小程序智能配网 模块端设置 ...
- ESP8266学习进阶实用篇(1)——SmartConfig智能配网(附带完整简配版有害气体检测仪开发)
家里有智能家居的小伙伴应该都知道,给新买的玩具配网上线都是直接安装教程扫描二维码然后安装个软件输入家里路由器的账号密码或者直接到一个网页输入这种联网方式,然而我们在玩8266还没出新手村之前都是将Wi ...
- ESP8266微信一键配网smartconfig,esp32可用
ESP8266微信一键配网 第一步 下载程序 微信配网 恢复出厂设置 ESP32 接入 第一步 下载程序 简单配网例程:点击下载 配网并控制LED例程:点击下载 例程下载后,需要使用arduino i ...
- 【Arduino自动配网+微信Airkiss配网】
Arduino自动配网+微信Airkiss配网 一.Arduino自动配网 当密码输入正确时 当密码输入错误时 自动配网的代码 二.Arduino微信Airkiss配网. 关注安信可公众号选择微信配网 ...
- SmartConfig配网之微信AirKiss配网——AT指令
文章目录 前言 第一章 介绍 第二章 固件烧录 第三章 操作步骤 微信AirKiss配网 总结 联系我们 前言 上一篇文章我们介绍了乐鑫的ESP-Touch软件完成SmartConfig配网功能,本篇 ...
- ESP8266-01模块接入巴法云,SmartConfig智能配网,设置断电记忆模式,可以使用米家控制和普通开关控制
文章目录 前言 Demo下载地址 一.项目介绍 1.开关控制方式: 2.SmartConfig配网: 3.重置配网: 4.断电记忆模式切换: 5.通过MQTT设备云方式接入网络 二.使用步骤 1.文件 ...
- esp8266 wifi模组手机一键配网,配置一次,下次重启设备后不需再进行配网
编写时间:2018年9月2日 #define ATCMDLEN 20 extern uint8_t usart3RecvEndFlag; extern UART_HandleTypeDef hu ...
- ESP32-C3入门教程 WiFi篇⑤——WiFi Smart Config 智能配网(基于AirKiss)
文章目录 一.前言 二.代码修改 三.运行效果 一.前言 本文基于VS Code IDE进行编程.编译.下载.运行等操作 基础入门章节请查阅:ESP32-C3入门教程 基础篇①--基于VS Code构 ...
最新文章
- 【Todo】Java的JIT机制
- Spark与Flink:对比与分析
- ffmpeg-简单AES加解密记录
- java excel表格数据导入
- P/Invoke调用SipEnumIM枚举SIP失败?
- MySQL案例分析--QueryCache
- 朴素贝叶斯算法--过滤垃圾短信
- MySQL—delete和truncate的区别
- AOP就是面向切面编程,我们可以从几个层面来实现AOP。 ![](https://upload-im
- split(v1,v2)用于把一个字符串分割成字符串数组
- react项目在配置webpack的时候问题
- c语言高斯法解方程,用C语言实现解线性方程组的高斯消去法
- python爬公众号图片,Python爬虫实例:爬取微信公众号图片(表情包)
- Quartus-II入门实战
- 什么叫做罗列式_申论作文写作之案例罗列式开头
- centos 安装SDCC编译器
- PYMOL-note
- SNN 脉冲神经网络
- 耕作方式对微生物群落的影响
- 【清单】搜索引擎使用大法