[Arduino線上教程] 第九篇: 感測器

更新於 發佈於 閱讀時間約 6 分鐘

前導

好,從這一單元開始,我想換另一個軟體進行電路模擬,此軟體叫做wokwi

並且,我們要嘗試使用另一種開發版 ESP32 進行小專案開發。

ESP32簡單介紹

ESP32 是一款由中國樂鑫科技開發的低功耗、高性價比的 Wi-Fi 和藍牙雙模系統級芯片(SoC),廣泛應用於物聯網(IoT)設備中。

操作步驟

首先,進入wokwi點擊 ESP32,在Docs中找到**wokwi-dht22 Reference**,往下滑後點擊DHT22 on the ESP32

raw-image

你會看到裡面有已經接好的電路、打好的程式碼,所以我現在要逐行和你講解程式碼。

接線圖如下:

raw-image

程式碼如下:

/**
ESP32 + DHT22 Example for Wokwi

https://wokwi.com/arduino/projects/322410731508073042
*/

#include "DHTesp.h"

const int DHT_PIN = 15;

DHTesp dhtSensor;

void setup() {
Serial.begin(115200);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}

void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
delay(2000); // Wait for a new reading from the sensor (DHT22 has ~0.5Hz sample rate)
}

程式碼說明如下:

  • 引入與初始化:
    使用 DHTesp dhtSensor; 建立一個感測器物件,並在 setup() 中用 dhtSensor.setup(DHT_PIN, DHTesp::DHT22); 初始化它,指定連接腳位與感測器型號。
  • 數據讀取:
    在 loop() 中,每 2 秒調用 getTempAndHumidity() 方法來獲取最新的溫度和濕度數據,然後將數據格式化後輸出到序列監視器。
  • 以下是詳細註解的程式碼。
#include "DHTesp.h"  
// 引入 DHTesp 函式庫,用來讀取 DHT11、DHT22 等數位溫濕度感測器的數據。

const int DHT_PIN = 15;
// 定義 DHT 感測器連接到 ESP32 的哪一個腳位,這裡設定為 GPIO15。

DHTesp dhtSensor;
// 建立一個 DHTesp 物件,命名為 dhtSensor。

void setup() {
Serial.begin(115200);
// 初始化串列阜,設置鮑率為 115200,ESP32 常用此鮑率來獲得快速的數據傳輸

dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// 初始化 dhtSensor 物件,
// 指定連接腳位為 DHT_PIN (GPIO15) 與感測器型號為 DHT22。
// DHTesp::DHT22 是 DHTesp 庫中的常數,用來告訴庫這是 DHT22 感測器,
// 庫會根據這個型號來解析來自感測器的數據格式。
}

void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
// 呼叫 dhtSensor 物件的 getTempAndHumidity() 方法,
// 該方法會從 DHT22 感測器讀取最新的溫度和濕度數據,
// 並將結果以 TempAndHumidity 結構傳回,
// 結構中包含兩個成員:temperature 與 humidity。

Serial.println("Temp: " + String(data.temperature, 2) + "°C");
// 將讀取到的溫度數據輸出到串列阜。
// String(data.temperature, 2) 將浮點數 data.temperature 轉換成字串,
// 並保留小數點後 2 位。
// 最後再加上 "°C" 表示單位攝氏度。

Serial.println("Humidity: " + String(data.humidity, 1) + "%");
// 將讀取到的相對濕度數據輸出到序列監視器。
// String(data.humidity, 1) 將浮點數 data.humidity 轉換成字串,
// 並保留 1 位小數,最後加上 "%" 表示百分比。

Serial.println("---");
// 輸出一行分隔線,方便在監視器上區分每次讀取的數據。

delay(2000);
// 延時 2000 毫秒 (2 秒)。
}

好,本單元只是教你如何使用 ESP32 讀取 DHT22 感測器,很多專題製作中都會使用到ESP32,所以接下來的 OLED 和 聲音控制 都會繼續使用。


本頻道持續更新中(內容涵蓋前端程式設計入門、大學必備程式設計入門、電子系專業課程入門、數學微積分題解)如果身旁有相關科系的學生,不妨推薦一下喔~

相信這裡會是家教或線上課程之外,高中、大學生系統性綜合學習的好選擇。

最後感謝您的觀看!

留言
avatar-img
留言分享你的想法!
avatar-img
電資鼠 - 您的學習好夥伴
9會員
215內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 C/C++、Python、數位邏輯、電路學與嵌入式開發等大學電資領域的課程,正是進入這個高薪、高需求產業的關鍵!
2025/04/01
本篇將帶你學會如何使用 ESP32 控制 OLED 顯示器,顯示不只是文字,還能呈現圖像、圖示、數據曲線,甚至製作簡易動畫。OLED 是現代微控制器專案中常見的高解析低功耗顯示元件,適合用於物聯網設備、穿戴裝置、感測儀錶板等應用。 透過本篇,你將能夠掌握 OLED 顯示技術的使用方法。
Thumbnail
2025/04/01
本篇將帶你學會如何使用 ESP32 控制 OLED 顯示器,顯示不只是文字,還能呈現圖像、圖示、數據曲線,甚至製作簡易動畫。OLED 是現代微控制器專案中常見的高解析低功耗顯示元件,適合用於物聯網設備、穿戴裝置、感測儀錶板等應用。 透過本篇,你將能夠掌握 OLED 顯示技術的使用方法。
Thumbnail
2025/04/01
透過本篇,你將能實作簡單的聲音控制應用。 本篇將教你如何實作 「鋼琴聲音」,進行簡單的 聲音與控制互動。
Thumbnail
2025/04/01
透過本篇,你將能實作簡單的聲音控制應用。 本篇將教你如何實作 「鋼琴聲音」,進行簡單的 聲音與控制互動。
Thumbnail
2025/04/01
本篇將帶你學會如何使用 Arduino 控制 液晶顯示器(LCD),實現文字、數字、符號等資料的顯示。 透過本篇學習,你將具備 資訊輸出介面設計的能力,能讓你的 Arduino 裝置「說話」、「解釋資料」,更適合真實應用與展示。打造真正具有視覺互動力的智慧專案,就從這裡開始!
Thumbnail
2025/04/01
本篇將帶你學會如何使用 Arduino 控制 液晶顯示器(LCD),實現文字、數字、符號等資料的顯示。 透過本篇學習,你將具備 資訊輸出介面設計的能力,能讓你的 Arduino 裝置「說話」、「解釋資料」,更適合真實應用與展示。打造真正具有視覺互動力的智慧專案,就從這裡開始!
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
這篇內容,將會講解什麼是「switch」,以及與「switch」相關的知識。包括switch的簡介、switch、break。
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
你好,在下最近在學習開發web,學了html css js,也得出一些心得,由於網路上已有許多教學,所以我會著重在如何開發出to do List,以及解釋我寫的程式碼。相關的教學我會直接貼網址。如果我有什麼地方出錯,或者是可以寫得更好,歡迎在下方留言,討論。 首先先介紹我的開發環境: 我用了vs
Thumbnail
本文是參考 https://github.com/Tinyu-Zhao/TinyGPSPlus-ESP32 官方資料庫範例
Thumbnail
本文是參考 https://github.com/Tinyu-Zhao/TinyGPSPlus-ESP32 官方資料庫範例
Thumbnail
ESP32 連接 GPS模組 讀取gps 模組資料
Thumbnail
ESP32 連接 GPS模組 讀取gps 模組資料
Thumbnail
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
Thumbnail
最近有專案需求要在 Web 上進行一個掃描條碼辨識的動作,做了一些功課,有 Open Source 方案跟商業解決方案,整理起來分享給大家。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News