当前位置: 首页 > news >正文

使用ESP8266扫描WiFi列表

一、简介

准备用基于esp8266的nodemcu开发板做一个天气时钟。目前只实现了第一阶段任务的第一点要求。使用arduino编程,在基于esp8266的nodemcu开发板上实现开机自动连接wifi。
这里记录一下使用ESP8266扫描WiFi列表的方法。还需要研究怎么把列表显示在网页上,并且可以通过点击某个WiFi信号后输入密码来进行连接,最好还能给网页返回一个连接是否成功的提示消息。

二、我目前在使用的云服务器推荐

学Linux不搞个云服务器始终感觉不爽!
要稳定性、安全性、不差钱的可以使用阿里、腾讯等大厂的云服务器。
本人穷屌丝一枚,所以我用的是免费的“三丰云”,同时提供"免费虚拟主机"和“免费云服务器”产品,有兴趣的可以试一下。
“三丰云”我已经用了一段时间,感觉还是很不错的,速度快也很稳定。
三丰云 https://www.sanfengyun.com 链接。
大家可以点击前往查看是否需要。

三、程序代码如下

使用ESP8266扫描WiFi列表的程序如下:

#include <ESP8266WiFi.h>void wsf() {String ssid;int32_t rssi;uint8_t encryptionType;uint8_t *bssid;int32_t channel;bool hidden;int scanResult;Serial.println(F("开始WiFi扫描..."));scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);if (scanResult == 0) {Serial.println(F("找不到WiFi网络"));} else if (scanResult > 0) {Serial.printf(PSTR("%d 扫描出的网络数量:\n"), scanResult);// 打印扫描出的WiFi列表for (int8_t i = 0; i < scanResult; i++) {WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);// 获取扩展信息const bss_info *bssInfo = WiFi.getScanInfoByIndex(i);String phyMode;const char *wps = "";if (bssInfo) {phyMode.reserve(12);phyMode = F("802.11");String slash;if (bssInfo->phy_11b) {phyMode += 'b';slash = '/';}if (bssInfo->phy_11g) {phyMode += slash + 'g';slash = '/';}if (bssInfo->phy_11n) {phyMode += slash + 'n';}if (bssInfo->wps) {wps = PSTR("WPS");}}Serial.printf(PSTR("  %02d: [CH %02d] [%02X:%02X:%02X:%02X:%02X:%02X] %ddBm %c %c %-11s %3S %s\n"), i, channel, bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5], rssi, (encryptionType == ENC_TYPE_NONE) ? ' ' : '*', hidden ? 'H' : 'V', phyMode.c_str(), wps, ssid.c_str());yield();}} else {Serial.printf(PSTR("WiFi扫描出现错误 %d"), scanResult);}
}void setup() {Serial.begin(115200);Serial.println(F("\nWiFi扫描"));// 设置WiFi为客户端模式WiFi.mode(WIFI_STA);// 断开WiFi连接WiFi.disconnect();delay(100);wsf();
}void loop() {}


http://www.mrgr.cn/news/38854.html

相关文章:

  • mysql 05 InnoDB数据页结构
  • huggingface使用国内镜像站下载
  • Sqoop面试整理
  • 海口网站建设的最佳实践
  • Spring MVC 参数校验 总结
  • Go语言接口的基本概念
  • MongoDB的索引功能及其在Java中的实现
  • 头歌 应用密码学实验(1-3实验代码)
  • 【win11】关闭windows11系统的讲述人
  • PageRank算法:从原理到实战
  • spring-boot 整合 mybatis
  • 9.29今日错题解析(软考)
  • 0108 Spring Boot启动过程
  • 2024年国庆节不能错过好物!旅行必备性价比高西圣充电宝!
  • FPGA IO延迟的约束与脚本
  • [kylin D2000]麒麟系统飞腾D2000下LVDS屏幕BIOS下能亮系统下不亮问题解决方法
  • Python __getattr__()函数的应用
  • 论文阅读(十一):CBAM: Convolutional Block Attention Module
  • 84、Python之鸭子类型:魔术方法自定义类型也可以实现加减乘除
  • 告别“军备竞赛”!L2进入下沉普及周期,谁在领跑本土方案市场?