#include <WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16,2); // 使用 LiquidCrystal_I2C 類別建立一個 lcd 物件,I2C 位址為 0x27,LCD 尺寸為 16x2
const char* ssid = "wifi ssid"; // WiFi 網路名稱
const char* password = "wifi 密碼"; // WiFi 密碼
int btnState = false; // 按鈕狀態(未使用)
void setup()
{
lcd.init(); // 初始化 LCD
lcd.backlight(); // 打開 LCD 背光
Serial.begin(115200); // 初始化串口通訊,波特率為 115200
delay(10);
Serial.println();
Serial.print("[WiFi] Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password); // 嘗試連接到 WiFi 網路
int tryDelay = 500; // 連接嘗試之間的延遲時間(毫秒)
int numberOfTries = 20; // 最大連接嘗試次數
while (true) {
switch(WiFi.status()) {
case WL_CONNECTED:
lcd.setCursor(0, 0); // 設定 LCD 游標位置為第一行第一列
lcd.print("WiFi connected!"); // 在 LCD 上印出 WiFi 連接成功的訊息
return; // 離開 setup 函式
break;
}
delay(tryDelay);
if(numberOfTries <= 0){
Serial.print("[WiFi] Failed to connect to WiFi!"); // 串口印出失敗的訊息
WiFi.disconnect(); // 斷開 WiFi 連接
return; // 離開 setup 函式
} else {
numberOfTries--; // 減少剩餘嘗試次數
}
}
}
void loop()
{
// 這是 loop 函式,主要用於持續執行的程式邏輯,但在這裡是空的,什麼也不做。
}