想學 Arduino 電子實作,卻總是卡在「買零件好貴」、「怕買錯規格」或是「接線接得亂七八糟」這些問題上嗎?
今天這篇文章將帶你完全免費、零成本進入 Arduino 的世界!我們不需要購買任何實體硬體,也不用安裝龐大的開發軟體,只要打開瀏覽器,透過強大的線上模擬器 Wokwi,就能在 10 分鐘內打造一個運作完美的「溫濕度監測站」。
在這個專案中,我們將學習如何將 Arduino UNO、DHT22 溫濕度感測器與 LCD 1602 液晶螢幕結合,這是一個非常經典且實用的入門專題。準備好了嗎?我們開始吧!
Table of Contents
Toggle為什麼選擇 Wokwi?
對於初學者來說,Wokwi 是目前最強大的 Arduino 線上模擬器。
免安裝:打開網頁就能寫程式。
免花錢:所有零件(馬達、感測器、螢幕)隨你用。
不怕燒壞:接錯線只會報錯,不會有焦味(笑)。
專案準備:我們需要的「虛擬」材料
進入 Wokwi 首頁 後,選擇 Arduino UNO 開啟一個新專案。接著點擊紫色的 + (Add new part) 按鈕,加入以下元件:
Arduino UNO:我們的大腦。
DHT22:溫濕度感測器(Wokwi 中 DHT22 比 DHT11 更常見且精準,操作方式相同)。
LCD 1602 (I2C):顯示數據用。注意:請搜尋 LCD1602 I2C,選用帶有 I2C 模組的版本,這樣我們只需要接 4 條線,而不是痛苦的 16 條線。
第一步:線路連接 (Wiring)
在 Wokwi 中接線非常直覺,滑鼠點擊接腳即可拉線。為了讓程式順利運作,請依照以下方式連接:
1. 連接 DHT22 感測器
VCC 接 Arduino 5V
GND 接 Arduino GND
SDA (數據腳) 接 Arduino Pin 2
2. 連接 LCD 1602 (I2C 介面)
GND 接 Arduino GND
VCC 接 Arduino 5V
SDA 接 Arduino A4 (或 SDA 腳位)
SCL 接 Arduino A5 (或 SCL 腳位)
💡 小知識: Arduino UNO 的 I2C 通訊專用腳位就是 A4 (SDA) 和 A5 (SCL),接錯了螢幕是不會亮的喔!
第二步:安裝函式庫 (Libraries)
這是實體操作時新手最頭痛的部分,但在 Wokwi 裡超簡單!
請點選程式碼編輯區上方的 “Library Manager” (通常是一個標籤頁或 Library 按鈕),搜尋並加入以下兩個函式庫:
DHT sensor library (by Adafruit)
LiquidCrystal I2C (by Frank de Brabander)
第三步:撰寫程式碼
將以下程式碼複製並貼上到你的 Wokwi 編輯區(sketch.ino):
#include
#include // 引用 LCD I2C 函式庫
#include "DHT.h" // 引用 DHT 函式庫
// 設定 DHT 參數
#define DHTPIN 2 // DHT 資料接腳連到 Arduino Pin 2
#define DHTTYPE DHT22 // 如果你選用 DHT11 請改為 DHT11
// 初始化 DHT
DHT dht(DHTPIN, DHTTYPE);
// 初始化 LCD,設定 I2C 位址為 0x27,螢幕為 16 行 2 列
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// 啟動序列監控視窗 (除錯用)
Serial.begin(9600);
Serial.println("系統啟動中...");
// 啟動 DHT 感測器
dht.begin();
// 啟動 LCD
lcd.init();
lcd.backlight(); // 開啟背光,很重要!
// 顯示開機畫面
lcd.setCursor(0, 0); // 設定游標在第 0 行, 第 0 列
lcd.print("Weather Station");
lcd.setCursor(0, 1);
lcd.print("Starting...");
delay(2000); // 等待 2 秒
lcd.clear(); // 清除螢幕
}
void loop() {
// 讀取溫濕度需要一點時間,這裡設定延遲 2 秒
delay(2000);
// 讀取濕度
float h = dht.readHumidity();
// 讀取溫度 (攝氏)
float t = dht.readTemperature();
// 檢查讀取是否失敗 (例如線沒接好)
if (isnan(h) || isnan(t)) {
Serial.println("無法讀取 DHT 感測器!");
lcd.setCursor(0, 0);
lcd.print("Sensor Error");
return;
}
// 在序列視窗印出數據 (方便電腦端檢查)
Serial.print("濕度: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("溫度: ");
Serial.print(t);
Serial.println(" *C");
// --- 顯示於 LCD ---
// 第一行顯示溫度
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(t);
lcd.print(" C");
// 第二行顯示濕度
lcd.setCursor(0, 1);
lcd.print("Humi: ");
lcd.print(h);
lcd.print(" %");
}
第四步:開始模擬與測試
點擊畫面上的 綠色播放鍵 (Start Simulation)。
你會看到 LCD 螢幕亮起,顯示 “Weather Station”。
兩秒後,螢幕會顯示當前的溫度與濕度。
😲 等等,我要怎麼改變溫度?
這是 Wokwi 最酷的地方!在模擬進行中,請用滑鼠點擊一下畫面上的 DHT22 感測器。
這時會彈出一個小視窗,你可以拖拉上面的滑桿來改變環境溫度與濕度,你會發現 LCD 螢幕上的數值也跟著即時變動了!
結語:你省下了 500 元與 3 小時的除錯時間
恭喜你!你已經成功完成了一個微型氣象站的原型。
透過這個練習,你學會了:
Arduino 的基礎 I2C 接線邏輯。
如何使用 LiquidCrystal_I2C 與 DHT 函式庫。
如何在 LCD 上定位與顯示資訊。
這就是 Wokwi 的魅力,它讓你專注於「邏輯」與「程式」,而不是被接觸不良的電線搞瘋。如果你對這個專案感興趣,下一步可以嘗試買入實體零件,將這個裝置做出來放在你的書桌上喔!
喜歡這篇教學嗎?歡迎在下方留言分享你的 Wokwi 實作成果連結!
**「專案分享連結 (Share Link)」**
如感到有點手癢,也想實作這專案,也可以參考底下這文章,一步一步帶你完成。連結如下:
