WiFiClient

使用Arduino IDE的範例連接WiFi

WiFiClient.ino + 磁簧開關

EPS-32 WROOM-32

Arduino IDE Setup

檔案、偏好設定、額外的開發板管理員網址:https://dl.espressif.com/dl/package_esp32_index.json

工具、開發板、ESP32 Arduino: ESP32 Dev Module

#include <WiFi.h>

const char* ssid     = "SSID名稱";

const char* password = "密碼";

// 磁簧開關連接的GPIO腳位

const int magnetSwitchPin = 32;

volatile int switchCount = 0;

// 記錄前一次磁簧開關的狀態

int prevSwitchState = HIGH;


void setup()

{

    Serial.begin(115200);

    delay(10);


    // We start by connecting to a WiFi network


    Serial.println();

    Serial.println();

    Serial.print("Connecting to ");

    Serial.println(ssid);


    WiFi.begin(ssid, password);


    while (WiFi.status() != WL_CONNECTED) {

        delay(500);

        Serial.print(".");

    }


    Serial.println("");

    Serial.println("WiFi connected");

    Serial.println("IP address: ");

    Serial.println(WiFi.localIP());

    // 設定磁簧開關腳位為輸入

    pinMode(magnetSwitchPin, INPUT);

}


void loop() {

     // 主程式邏輯---輪詢

  int switchState = digitalRead(magnetSwitchPin);

  // 檢查磁簧開關的狀態是否從高電位變成低電位

  if (switchState == LOW && prevSwitchState == HIGH) {

    // 進行計數

    switchCount++;

    Serial.println("磁簧開關觸發!");

  }

  // 更新前一次狀態

  prevSwitchState = switchState;

  // 顯示磁簧開關觸發次數

  Serial.print("磁簧開關觸發次數:");

  Serial.println(switchCount);

  // 可以根據需要調整延遲時間

  delay(500);

}