新手求助!-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 744|回复: 2

新手求助!

[复制链接]
发表于 2022-1-7 18:53 | 显示全部楼层 |阅读模式
最近有个项目需要用到连接wifi,主控用esp8266,就是想做到手机设置里会自动扫描周边的wifiIP地址,这样就不用自己去烧写程序来改wifi账号和密码了。我用AT指令可以获取到周边的WIFI,但是用arduino来编程该如何实现?急求!

要做到能自动检测周边的wifi

要做到能自动检测周边的wifi
发表于 2022-1-7 22:19 | 显示全部楼层
  1. /*
  2.     This sketch demonstrates how to scan WiFi networks.
  3.     The API is almost the same as with the WiFi Shield library,
  4.     the most obvious difference being the different file you need to include:
  5. */

  6. #include <ESP8266WiFi.h>

  7. void setup() {
  8.   Serial.begin(115200);
  9.   Serial.println(F("\nESP8266 WiFi scan example"));

  10.   // Set WiFi to station mode
  11.   WiFi.mode(WIFI_STA);

  12.   // Disconnect from an AP if it was previously connected
  13.   WiFi.disconnect();
  14.   delay(100);
  15. }

  16. void loop() {
  17.   String ssid;
  18.   int32_t rssi;
  19.   uint8_t encryptionType;
  20.   uint8_t* bssid;
  21.   int32_t channel;
  22.   bool hidden;
  23.   int scanResult;

  24.   Serial.println(F("Starting WiFi scan..."));

  25.   scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);

  26.   if (scanResult == 0) {
  27.     Serial.println(F("No networks found"));
  28.   } else if (scanResult > 0) {
  29.     Serial.printf(PSTR("%d networks found:\n"), scanResult);

  30.     // Print unsorted scan results
  31.     for (int8_t i = 0; i < scanResult; i++) {
  32.       WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);

  33.       Serial.printf(PSTR("  %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %s\n"),
  34.                     i,
  35.                     channel,
  36.                     bssid[0], bssid[1], bssid[2],
  37.                     bssid[3], bssid[4], bssid[5],
  38.                     rssi,
  39.                     (encryptionType == ENC_TYPE_NONE) ? ' ' : '*',
  40.                     hidden ? 'H' : 'V',
  41.                     ssid.c_str());
  42.       delay(0);
  43.     }
  44.   } else {
  45.     Serial.printf(PSTR("WiFi scan error %d"), scanResult);
  46.   }

  47.   // Wait a bit before scanning again
  48.   delay(5000);
  49. }
复制代码
 楼主| 发表于 2022-1-7 22:21 | 显示全部楼层

呜啊!感谢大神!等了好久都没人回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:47 , Processed in 0.090163 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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