ESP32, IOT物聯網

【ESP32教學】第三篇:開始使用Arduino IDE編寫程式與序列埠通信

一、 實驗說明:讓電腦與 ESP32 進行第一步對話!

在這一篇教學中,我們將練習一個不需要任何其他複雜感測器或輔助元件,只需要一塊 ESP32 和一條 USB 線就能完成的簡單實驗!

 

二、 實驗材料準備清單

  • 本篇實驗所需的材料非常簡單,主要包含以下硬體:
  • [ESP32 開發板] × 1 片

  • [Micro USB ] × 1 條(注意:需具備資料傳輸功能,若僅能充電將無法上傳程式與傳輸資料

 

🛒  還沒有材料嗎? 歡迎直接購買米羅為您搭配好的 ESP32 物聯網應用學習套件,新手零基礎也能輕鬆上手!

 

三、 核心知識:什麼是序列埠通訊(Serial Communication)?

在開始寫程式之前,我們必須先認識序列埠通信的基本工作原理:

序列埠通信一般是指通用異步接收器/發送器(UART),常用於電子電路通信中。 它有兩條通信線,一條負責發送數據(TX 線),另一條負責接收數據(RX 線)。 兩台設備的序列埠通訊連接如下:

TWO Device TX RX UART connect

1. 鮑率(Baud Rate)是什麼?

序列埠通信在開始之前,雙方的「鮑率(Baud Rate)」必須設定完全相同,雙方的設備才能順利進行資料解讀。常用的鮑率為 9600115200。如果鮑率不符,電腦接收到的資料就會變成一堆看不懂的亂碼。

2. ESP32 與電腦如何連接?

ESP32 的主板上集成了 USB 轉串口(USB to TTL)晶片,因此它能直接透過 USB 傳輸線與電腦的 USB 連接埠進行連線通訊。當你將板子接入電腦時,作業系統會將其識別為一個虛擬的 COM 連接埠(例如:COM3COM5),這也就是我們上傳程式碼與接收資料的通道。

USB COMPORT Hardward

 

四、 實作實驗:讓 ESP32 說出 “Hello World!”

請依序按照以下步驟,在 Arduino IDE 中編寫並執行你的第一個序列埠通訊程式:

1. 輸入實驗範例程式碼

請在 Arduino IDE 編輯器中輸入(或貼上)以下程式碼:

 

程式:

int val;
int ledpin=2;  //GPIO2
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
}
void loop()
{
val=Serial.read();
if(val=='R')
{
digitalWrite(ledpin,HIGH);
delay(500);
digitalWrite(ledpin,LOW);
delay(500);
Serial.println("Hello World!");
}
}

 

程式說明:

第 1 列定義變量val 。

第 2 列定義數位接口GPIO2Pin 。

第 5 列設置鮑率為9600,這裡要跟軟體設置相一致。當接入特定設備(如:藍牙)時,我們也要跟其他設備的鮑率達到一致。

第 6 列設置GPIO2Pin 為輸出接口,ESP32上我們用到的I/O 接口都要進行類似這樣的定義。

第 10 列讀取PC 發送給ESP32的指令或字符,並將該指令或字符賦給val。

第 11 列判斷接收到的指令或字符是否是“R”。

第 13 列點亮GPIO2Pin LED。

第 15 列熄滅GPIO2Pin LED。

第 17 列顯示“Hello World!”字符串。

 

2. 燒錄程式與序列埠監控操作步驟

  1. 點擊 Arduino IDE 的 [上傳 (Upload)] 按鈕(向右的箭頭),將程式燒錄進 ESP32 開發板中。
  2. 開啟 Arduino IDE 右上角的 [序列埠監視器 (Serial Monitor)](放大鏡圖示)。
  3. 您的電腦將連接到它的序列埠設備識別為COMx。 我們可以使用 Arduino 軟體的 Serial Monitor序列埠監控視窗與ESP32通信,通過USB線將ESP32連接到電腦,選擇正確的設備,然後單擊Serial Monitor序列埠監控視窗圖標打開 Serial Monitor窗口。

 

 3. ⚠️ 超重要避坑點(新手必看): 請確認序列埠監視器視窗右下角(或設定選單)的鮑率,手動切換為 9600 baud

           (必須與程式中 Serial.begin(9600); 設定的一致,否則畫面上會出現看不懂的亂碼)!

              序列埠監控視窗界面如下。 如果打不開,請確保ESP32已經連接到電腦,在菜單欄“工具”中選擇正確的序列埠。


     4. 在輸入欄中輸入一個大寫字母 R 並發送,你將會看到:

  • ESP32 板子上的藍色 LED 燈被點亮。

  • 序列埠監視器的螢幕上順利印出 “Hello World!” 訊息!

 

ESP32 IO2 LED schematic

Arduino ide serial contact

 

五、 結語與下一篇教學

恭喜你!不僅掌握了如何在 Arduino IDE 進行序列埠通信,也成功開啟了電腦與 ESP32 之間互動的大門!這在未來的 IoT 實作、接收 WiFi 訊號、或是讀取各類感測器數值時,都是極為重要的基礎技能。

👉 上一篇回顧【ESP32教學】第二篇:Arduino IDE環境建置與首個LED閃爍實作教學

👉 下一篇預告【ESP32教學】第四篇:GPIO數位輸出與LED燈程式控制實作

 

 

相關文章