数码之家

 找回密码
 立即注册
搜索
查看: 8915|回复: 6

[Arduino] 分享:ESP8266,ESP32使用微信安信可公众号配网的方法

[复制链接]
发表于 2020-3-16 14:22:14 | 显示全部楼层 |阅读模式
本帖最后由 jjbboox 于 2020-3-16 14:46 编辑

air_kiss_connect.cpp

  1. #include <Arduino.h>
  2. #ifdef ESP32
  3. #include <WiFi.h>
  4. #else
  5. #include <ESP8266WiFi.h>
  6. #endif

  7. void air_kiss_connect()
  8. {
  9.     int cnt = 0;

  10.     WiFi.mode(WIFI_STA);

  11.     WiFi.begin();

  12.     while (WiFi.status() != WL_CONNECTED)
  13.     {
  14.         delay(500);

  15.         Serial.print(".");
  16.         if (cnt++ >= 30)
  17.         {
  18.             
  19.             WiFi.beginSmartConfig();
  20.             while (true)
  21.             {
  22.                 delay(1000);

  23.                 if (WiFi.smartConfigDone())
  24.                 {
  25.                     Serial.println("SmartConfig Success");
  26.                     break;
  27.                 }
  28.             }
  29.         }
  30.     }
  31. }

复制代码

将上面这个代码文件添加到Arduino的工程目录中或者把上面这个函数直接添加到.ino文件里面
在setup()函数中调用这个函数就可以了。

1.手机微信关注 [安信可科技]
2.然后手机连接WiFi后是由该公众号下部菜单的[WiFi配置]3.打开Esp8266,然后跟着手机提示输入当前WiFi热点的密码就可以了。可以将手机连着的WiFi热点配置到Esp8266上。
3.下次Esp8266开机会自动连上一次的WiFi热点,除非尝试15秒,连不上就会进入等待配网的状态,此时可以再次使用微信配置网络连接。

这种方式叫做AirKiss
很方便,唯一的缺点是不能手动输入WiFi的SSID,所以只能将手机当前的WiFi发送给Esp8266,如果想要将8266连上手机自己开的热点就会比较麻烦。

打赏

参与人数 2家元 +20 收起 理由
家睦 + 10
人艰不拆了 + 10

查看全部打赏

发表于 2020-3-16 15:31:00 | 显示全部楼层
里面有用的是这句:  WiFi.beginSmartConfig();本来就带的功能。
回复 支持 反对

使用道具 举报

发表于 2020-3-16 16:28:15 | 显示全部楼层
本帖最后由 qingkong 于 2020-3-16 17:00 编辑

感觉还是 WiFiManager 更加人性化和简单一些

微信配网这个其实很多软件都行,用的是一个标准协议。但是貌似没几个这么用的。。。。 ESP8266的东家还有一个APP也可以进行配网,而不用关注它的微信号。。。。

WiFiManager 是启用一个AP,然后手机打开页面。。填上。。。。。。


  1. #include <ESP8266WiFi.h>
  2. #include <DNSServer.h>
  3. #include <ESP8266WebServer.h>
  4. #include <WiFiManager.h>
  5. //使用库  WiFiManager
  6. //实例化 wifiManager 对象。这将在访问点模式下启动ESP,并将一个强制门户网站重定向到配置网页:
  7. void setup() {
  8.   WiFiManager wifiManager;
  9.   Serial.begin(115200);
  10.   //reset saved settings
  11.   //wifiManager.resetSettings();

  12.   //set custom ip for portal
  13.   //wifiManager.setAPStaticIPConfig(IPAddress(10,0,1,1), IPAddress(10,0,1,1), IPAddress(255,255,255,0));

  14.   //fetches ssid and pass from eeprom and tries to connect
  15.   //if it does not connect it starts an access point with the specified name
  16.   //here  "AutoConnectAP"
  17.   //and goes into a blocking loop awaiting configuration
  18.   //  wifiManager.autoConnect("AutoConnectAP");
  19.   //or use this for auto generated name ESP + ChipID
  20.   //wifiManager.autoConnect();

  21. //将到期超时设置为240秒:

  22.   wifiManager.setConfigPortalTimeout(240);
  23.   if (!wifiManager.autoConnect("ESP_AP", "changeit")) {
  24.     Serial.println(F("Failed to connect. Reset and try again. . ."));
  25.     delay(3000);
  26.     //重置并重试
  27.     ESP.reset();
  28.     delay(5000);
  29.   }

  30. //在我们从网络浏览器中选择Wi-Fi网络和密码后,我们现在连接到Wi-Fi网络:

  31.   //如果你到这里,你已经连接到WiFi
  32.   Serial.println(F("Connected to Wifi."));
  33.   Serial.print(F("My IP:"));
  34.   Serial.println(WiFi.localIP());
  35. }

  36. void loop() {
  37.   //为loop()添加你的代码
  38. }
复制代码





回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 17:00:11 | 显示全部楼层
kindzhon 发表于 2020-3-16 15:31
里面有用的是这句:  WiFi.beginSmartConfig();本来就带的功能。

是的
很多只是不知道这个可以和安信可的微信配网合起来用而已。
以前是安卓有个app叫SmartConfig的可以配合使用,其实安信可是一样的。
回复 支持 反对

使用道具 举报

发表于 2020-12-19 08:50:23 | 显示全部楼层
jjbboox 发表于 2020-3-16 17:00
是的
很多只是不知道这个可以和安信可的微信配网合起来用而已。
以前是安卓有个app叫SmartConfig的可以配 ...

ESP32用不了这个库吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-20 14:03:59 | 显示全部楼层
虫行天下 发表于 2020-12-19 08:50
ESP32用不了这个库吗?

可以用
可以用
可以用
可以用
回复 支持 反对

使用道具 举报

发表于 2023-3-15 13:05:38 | 显示全部楼层
qingkong 发表于 2020-3-16 16:28
感觉还是 WiFiManager 更加人性化和简单一些

微信配网这个其实很多软件都行,用的是一个标准协议。但是貌 ...

请问用什么软件WiFiManager?
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-4-25 08:59 , Processed in 0.093600 second(s), 10 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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