天气时钟:WiFi模块、OLED模块开发
上一篇文章,我们了解了天气时钟用到的材料、以及串口模块的开发,本篇文章,我们将把重心移到WiFi模块、OLED模块和NTP模块的开发,但在此之前,我们仍有必要学习相关知识。
WiFi模块
WiFi库介绍
WiFi库是用于Arduino平台上的WiFi模块(如ESP8266等)进行无线网络连接的一个重要库。它提供了丰富的功能来管理WiFi连接、网络配置和数据传输。以下是WiFi库的一些关键功能和用法:
- 模式设置:
WiFi.mode(mode): 设置WiFi的工作模式。常用模式包括:WIFI_STA: 站点模式,设备作为客户端连接到路由器。WIFI_AP: 接入点模式,设备作为热点供其他设备连接。WIFI_AP_STA: 同时支持站点和接入点模式。
关于更多解释,可以参考之前的文章: 【STA模式、AP模式、体验天气时钟】
-
连接管理:
WiFi.begin(ssid, password): 开始连接到指定的WiFi网络,ssid是网络名称,password是网络密码。WiFi.disconnect(): 断开当前的WiFi连接。WiFi.status(): 获取当前的WiFi连接状态,返回值包括WL_CONNECTED(已连接)、WL_DISCONNECTED(未连接)等。
-
网络信息:
WiFi.localIP(): 获取设备的本地IP地址。WiFi.SSID(): 获取当前连接的网络SSID。WiFi.RSSI(): 获取当前连接的信号强度。
-
其他功能:
WiFi.scanNetworks(): 扫描周围可用的WiFi网络。WiFi.softAP(ssid, password): 设置设备为接入点模式,创建一个新的WiFi网络。
WiFi库通常用于物联网(IOT)项目中,使设备能够连接到互联网或局域网,从而实现远程数据传输、设备控制和监控等功能。通过结合其他网络协议(如HTTP、MQTT等),可以实现更复杂的网络应用。
代码实现
头文件
#ifndef WIFI_H
#define WIFI_H
#include <Arduino.h>
#include <ESP8266WiFi.h>
// 定义WiFi名称及密码
#define WiFi_SSID "josh"
#define WiFi_PASSWORD "38669836"
void wifiInit();
bool wifiConnect(const char *ssid = WiFi_SSID, const char *password = WiFi_PASSWORD);
#endif
cpp文件
#include "wifi.h"
#include "serial.h"
// WiFi初始化函数
void wifiInit() {
WiFi.mode(WIFI_STA); // 设置为无线终端模式,方便连接网络
WiFi.disconnect(); // 先断开连接再重连,以免发生某些故障
delay(100); // 等待WIFI模块稳定
serialPrint("WIFI模块初始化完成");
}
// WiFi连接函数,返回布尔值
bool wifiConnect(const char *ssid, const char *password) {
serialPrint("正在连接WiFi...");
WiFi.begin(ssid, password);
int attempts = 0; // 记录连接次数
while(WiFi.status() != WL_CONNECTED && attempts < 20) {
delay(1000);
serialPrint("等待连接..." + String(attempts + 1));
attempts++;
}
// 如果WiFi连接成功
if(WiFi.status() == WL_CONNECTED){
serialPrint("WiFi连接成功");
serialPrint("IP地址:"<

最低0.47元/天 解锁文章
3308

被折叠的 条评论
为什么被折叠?



