[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
電資鼠 - 您的學習好夥伴
13會員
223內容數
在當今數位時代,電資領域人才需求爆發式成長,不論是前端網頁設計、嵌入式開發、人工智慧、物聯網還是軟硬體整合,這些技術都在改變世界。而掌握 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
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
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