跳到:
ESP32 教學 1/55 - SunFounder ESP32 IoT 學習套件軟件同 Arduino IDE 簡介 ESP32 教學 2/55 - 咩係 ESP32、相機擴展板、開箱 SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 3/55 - 電阻、LED、麵包板項目:Hello LED -ESP32 IoT 學習套件 ESP32 教學 4/55 - 數據類型 定義變量 Int、bool、char、序列監視器 - ESP32 IoT 套件 ESP32 教學 5/55 - LED 漸變,控制 LED 亮度 - ESP32 物聯網學習套件 ESP32 教學 6/55 - 使用 RGB LED 項目 2.3 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 7/55 - 使用陣列配合 ESP32 Arduino 程式設計 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit ESP32 教學 9/55 - 用按鈕切換 LED,按一下開,按一下關 - SunFounder ESP32 IoT 套件 ESP32 教學 10/55 - 使用七段顯示器 74HC595 嘅數字計數器 - ESP32 IoT 學習套件 ESP32 教學 11/55 - 使用 LCD1602 LCD2004 同 ESP32 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 12/55 - WS2812 RGB 燈帶 4 項目,配合 SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 13/55 - Arduino 用有源蜂鳴器發出嗶聲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 14/55 - 使用 SunFounder ESP32 IoT 學習套件播放自訂音樂音符 ESP32 教學 15/55 - 用 ESP32 L293D 控制直流馬達速度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 16/55 - 使用 ESP32 同 L293D 嘅迷你水泵 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 17/55 - 使用 ESP32 同電位器控制伺服馬達 - ESP32 IoT 學習套件 ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 19/55 - 使用紅外線感測器偵測障礙物 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 20/55 - 循線模組 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 21/55 - 用 PIR 動作感應器偵測人體 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 22/55 - 用 LED Arduino 感受光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 23/55 - 使用 ESP32 讀取電位器電壓 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 24/55 - 量度土壤濕度用於灌溉 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 25/55 - 使用 NTC 同 LCD 測量溫度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 26/55 - 使用搖桿配合 Arduino 採取行動 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 27/55 - 用超聲波感測器量度距離 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 28/55 - DHT11 溫度感測器配合 LCD | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 29/55 - 用 ESP32 讀取紅外線遙控器按鍵| SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 30/55 - 使用 Adafruit IO 服務透過 MQTT 喺網頁上控制伺服摩打 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 31/55 - 專案 LED 燈帶配合避障功能 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教程 32/55 - 汽车倒车距离警告(带LCD同蜂鸣器)| SunFounder嘅物联网学习套件 ESP32 教學 33/55 - 使用 SunFounder 嘅 ESP32 IoT 學習套件整數碼骰仔 ESP32 教學 34/55 - 用 RGB LED 同旋鈕整顏色漸變 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 35/55 - 植物監測器,土壤、溫度同光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 36/55 - 猜數字遊戲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 37/55 - 使用藍牙應用程式配合 ESP32 BLE | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 38/55 - 用手機控制 RGB LED | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 39/55 - 用 ESP32 做藍牙音樂播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 40/55 - 讀寫 Micro SD 卡 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 41/55 - 使用 Micro SD 卡嘅 MP3 播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 42/55 - 用相機影相並儲存喺 Micro SD CAM-1 | SunFounder 嘅 ESP32 套件 ESP32 教程 43/55 - 物聯網互聯網天氣站 | SunFounder 嘅 ESP32 物聯網學習套件 ESP32 教學 44/55 - ESP32 相機網絡伺服器透過 WiFi 傳輸視頻串流 CAM-2 | SunFounder 嘅 ESP32 套件 ESP32 教學 45/55 - 自訂串流伺服器配合 LED 控制 CAM-3 l SunFounder 嘅 ESP32 學習套件 ESP32 教學 46/55 - 使用 HiveMQ MQTT 進行遠程溫度監控 | SunFounder 嘅 ESP32 套件 ESP32 教學 47/55 - 使用 MQTT 透過互聯網嘅 WS2812 CheerLights | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 48/55 - 遠程溫度監控同 LED 控制 MQTT | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 49/55 - 透過 Adafruit IoT 控制直流摩打 | SunFounder 嘅 ESP32 套件 ESP32 教學 50/55 - 喺世界任何地方控制 RGB LED | SunFounder 嘅 ESP32 套件 ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit ESP32 教學 52/55 - WS2812 CheerLights MQTT 全球同步連 LCD | SunFounder ESP32 IoT 套件 ESP32 教學 53/55 - 建立 LCD 網絡時鐘 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 54/55 - 透過 Wi-Fi 設定 WS2812 LED 燈條顏色 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 55/55 - 點樣量度 12V、24V 或者 100V 直流電壓 | SunFounder 嘅 ESP32 IoT 學習套件
ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件
喺呢個教學入面,我哋會用SunFounder ESP32微控制器嚟整一個簡單嘅項目,用傾斜開關嚟偵測傾斜。當傾斜開關啟動嘅時候,LED會熄滅,而當佢企直嘅時候,LED就會着。呢個項目唔單止係認識傾斜感應器嘅好入門,仲係各種機械人應用嘅基礎。想睇詳細嘅視覺指南,記得睇上面連結嘅影片(影片00:00位置)。
傾斜開關
硬件解說
呢個項目用到嘅主要零件包括ESP32微控制器、一個傾斜開關同一個LED。ESP32係一個功能強大嘅微控制器,內置Wi-Fi同藍牙,好適合物聯網應用。傾斜開關係一個簡單嘅裝置,入面有個金屬波仔喺一個罐入面。當傾斜嘅時候,波仔會移動並切斷電路,等我哋可以偵測到傾斜狀態。LED會根據開關嘅狀態嚟視覺上顯示傾斜情況。除咗呢啲零件之外,我哋仲會用電阻嚟做限流同下拉用途。連接LED嘅220歐姆電阻確保LED安全運作,唔會攞太多電流。10k歐姆電阻就做傾斜開關嘅下拉電阻,確保當開關冇啟動嘅時候,輸入引腳讀到一個已知狀態。
數據手冊詳情
製造商
SunFounder
零件編號
ESP32
邏輯/IO電壓
3.3 V
供電電壓
5 V
輸出電流(每通道)
12 mA
峰值電流(每通道)
40 mA
PWM頻率指引
1 kHz
輸入邏輯閾值
0.8 V(低),2.0 V(高)
電壓降 / RDS(on) / 飽和
0.2 V
熱限制
85 °C
封裝
ESP32模組
備註 / 變體
包含Wi-Fi同藍牙功能
確保用啱電阻值,防止整壞LED。
保持接線整齊,避免短路。
用下拉電阻確保傾斜開關讀數穩定。
通電之前測試接線,避免零件損壞。
確認傾斜開關嘅方向,確保功能準確。
接線指示
ESP32-18_tile_wiring
要接線,先處理傾斜開關,佢冇極性,所以可以任意方向連接。將傾斜開關嘅一個引腳連到3.3V供電,另一個引腳連到ESP32嘅引腳14。為咗確保引腳14喺開關冇啟動嘅時候讀到已知狀態,將一個10k歐姆電阻由同一引腳連到地。跟住攞LED插入麵包板,長腳(陽極)連到一個220歐姆電阻。將電阻嘅另一端連到ESP32嘅引腳26。LED嘅短腳(陰極)應該連到地。最後,將ESP32嘅接地引腳連到麵包板嘅接地軌,3.3V引腳連到電源軌。記得檢查所有接線,防止短路或者讀數錯誤。如果你跟住呢啲步驟,你應該有一個功能正常嘅傾斜感應器裝置,準備好寫程式。
程式碼示例同講解
程式碼首先定義傾斜開關同LED嘅引腳號碼。傾斜開關連到引腳14,LED連到引腳26。傾斜開關嘅狀態儲存喺變數tiltState入面。
// 設定引腳號碼
const int tiltPin = 14; // 傾斜開關
const int ledPin = 26; // LED
// 用嚟儲存傾斜狀態嘅變數
int tiltState = 0;
呢段顯示引腳分配同埋追蹤傾斜狀態嘅變數宣告。tiltPin設定為輸入嚟讀取開關狀態。喺setup()函數入面,初始化串行通訊,並為傾斜開關同LED設定引腳模式。咁確保ESP32可以讀取傾斜開關嘅輸入,並相應控制LED。
void setup() {
Serial.begin(115200);
// 初始化傾斜引腳為輸入
pinMode(tiltPin, INPUT);
// 初始化LED引腳為輸出
pinMode(ledPin, OUTPUT);
}
呢個部分好重要,因為佢設定環境,令ESP32可以有效通訊,並根據傾斜開關狀態控制輸出。loop()函數會持續檢查傾斜開關嘅狀態。如果開關企直,LED就會着;如果傾斜,LED就會熄。當前狀態會打印到串行監視器嚟做除錯。
void loop() {
// 讀取傾斜開關嘅狀態
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// 如果開關企直
if (tiltState == HIGH) {
// 着LED
digitalWrite(ledPin, HIGH);
} else {
// 熄LED
digitalWrite(ledPin, LOW);
}
}
呢個循環會持續運行,令到可以實時監測傾斜開關狀態同相應嘅LED控制。輸出可以喺串行監視器度睇到,好容易驗證功能。
示範 / 預期效果 一旦所有接線正確且程式碼已上傳,你應該會見到當傾斜開關垂直時LED會亮起,而傾斜時就會熄滅。呢種傾斜狀態同LED反應之間嘅直接關聯,有效咁展示咗傾斜開關嘅功能。常見嘅錯誤包括要確保接線正確,同埋檢查電阻有冇適當放置以避免短路(影片12:00位置)。
影片時間標記
00:00 開始
1:44 項目介紹
2:49 文件說明
6:43 Arduino接線講解
10:39 Arduino程式碼講解
13:40 喺Arduino IDE度選擇ESP32開發板同COM埠
15:22 項目傾斜示範
圖片
ESP32-18_tile_wiring
tilt_switch
ESP32-18_tile_schematic
代碼
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
語言: C++
檢視程式碼
// Set pin numbers
const int tiltPin = 14; // Tilt Switch
const int ledPin = 26; // LED
// Variable for storing the tilt status
int tiltState = 0;
void setup() {
Serial.begin(115200);
// Initialize the tilt pin as an input
pinMode(tiltPin, INPUT);
// Initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// Read the state of the tilt switch
tiltState = digitalRead(tiltPin);
Serial.println(tiltState);
// If the switch is upright
if (tiltState == HIGH) {
// Turn LED on
digitalWrite(ledPin, HIGH);
} else {
// Turn LED off
digitalWrite(ledPin, LOW);
}
}