使用 Arduino UNO R4 WiFi 遠端控制 LED 燈開關

一、Aruino UNO R4 WiFi 的 WiFi 功能簡介

Aruino UNO R4 WiFi(以下簡稱為 UNO R4 WiFi)在此次更新了 WiFi 功能, 透過 ESP32-S3 這個 WiFi 模組來做功能升級,那是由 Espressif Systems 推出的一款WiFi和藍牙模組,使得此次 UNO R4 WiFi 的更新可以遠程控制和監控設備,並與其他設備進行數據交換。

先前筆者也為大家整理了 UNO R4 WiFi 的特點以及基礎介紹了!有興趣瞭解的話可以點擊連結延伸閱讀。關於更新另一要點的 LED 矩陣,這邊也有一篇文章介紹如何使用 UNO R4 WiFi 來製作矩陣動畫,其內容也有提到如何安裝所需的程式以及套件,若是沒有使用過 Arduino 的夥伴們不妨先到上一篇文章看看喔!

接下來就來實作看看此次更新的 WiFi 功能吧!

二、透過建立 AP 遠端控制 UNO R4 WiFi LED 開關

  • 選擇Board開發板
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關
  • 選擇對應之COM接口
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關
  • 點選範例程式
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

透過檔案選取範例,再從 WiFiS3 分類中點選 AP_SimpleWebSever。 隨後會跳出另外一個視窗顯示這個範例程式檔案, 會看到程式如下:

注意這邊需要將此段程式碼「等號」後面的文字改成您要建立的網路名稱以及密碼,若是含有特殊字元如:!、@、#、$、%、^、&、*、……等,加上”雙引號”或是’單引號’就可以正常運行了!

char ssid[] = SECRET_SSID;        // your network SSID (name)
char pass[] = SECRET_PASS;        // your network password (use for WPA, or use as key for WEP)

  • 點選箭頭燒入 upload
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關
  • 成果驗收!

燒錄完成時會出現像這樣子的提示訊息。

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

接著點擊 Serial Monitor 會看見輸出的訊息

Device disconnected from AP

  • 這表示你的裝置(Arduino Uno R4 WiFi)已經從接入點(Access Point, AP)斷開連接。這可能是由於連接中斷、連接品質差、或者裝置自行斷開,可以按下arduino上的reset按鈕嘗試重連。

Access Point Web Server

  • 表示 Arduino Uno R4 WiFi 正在以 Access Point(AP)的模式運行,並且它是一個 Web 伺服器,可以通過網頁進行互動。

Please upgrade the firmware

  • 用來檢查 WiFi 模組的韌體版本。如果韌體版本較舊,就會提示你升級韌體。但是對於 Arduino Uno R4 WiFi,通常不需要手動升級韌體,因為出廠時已經預先燒錄了正確且可運行的版本了。

Creating access point named: ” “

  • 表示 Arduino Uno R4 WiFi 創建了一個名為 ” ” 的 Access Point。

SSID: #####

  • 顯示了你的 WiFi 網路的 SSID(Service Set Identifier,WiFi 名稱)。

IP Address: 192.48.56.2

  • 這是 Access Point 的 IP 地址。在程式中設定,Access Point 的 IP 地址是 192.48.56.2。

To see this page in action, open a browser to <http://192.48.56.2> 這是一個提示,告訴你可以打開網頁瀏覽器,輸入 http://192.48.56.2 來使用 Arduino Uno R4 WiFi 提供的網頁頁面。

💡 注意 UNO R4 WiFi 是以 Access Point(AP)模式運行。 在這種模式下,UNO R4 WiFi 會建立一個自己的 WiFi 網路, 需進行通信的裝置需要連接到同一個 WiFi 才能與 Arduino 進行通信

所以接下來就將電腦連接上剛才 UNO R4 WiFi 所建立的網路吧!若是成功連接上網頁,會出現這樣的頁面

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

接下來就可以動手透過遠端通信的電腦操作Arduino的內建LED燈了!

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

三、透過建立 WebServer 遠端控制 UNO R4 WiFi LED 開關

在實際操作之前要先帶讀者們瞭解 Access Point 和 Web Server ,在上一個範例中我們可以得知 Access Point 可以建立一個存取點供使用者連線讀取,而 Web Server 則是一種提供網頁內容的軟體或硬體裝置。

💡 Access Point 和 Web Server

在某些情況下,這兩者可能會結合在一起,例如當使用者透過 Wi-Fi 連接到一個無線路由器(同時具有AP功能)時,該路由器的內部可能運行一個 Web Server,使用戶能夠通過網頁設置路由器的配置。

所以兩者在 Wi-Fi 技術下是不一樣的概念,它們在無線網絡中扮演不同的角色。

在接下來的實作中就是要藉由外部的 Wi-Fi 網路分享器做為 Web Server,將 UNO R4 WiFi 和電腦都連到該網路進行溝通,同樣的去控制 LED 的開關。

  • 打開範例程式
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

一樣透過檔案範例,找到WiFiS3分類中的 WiFiWebServer。

  • 打開後會顯示一個新的範例程式檔案
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關
  • 改寫程式碼

可以對照上面透過 AP 方式控制 LED 開關的程式內容,我們需要增加以下內容:

LED變數宣告

int led = LED_BUILTIN;
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

setup() 函式中的 LED 初始化:

pinMode(led, OUTPUT);      // set the LED pin mode
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

設定變數 currentLine

String currentLine = "";

HTML按鈕的生成:

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關
client.print("<form action='/H' method='get'><input type='submit' value='Turn On'></form>");
client.print("<form action='/L' method='get'><input type='submit' value='Turn Off'></form>");
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

loop() 函式中的 LED 控制:

if (currentLine.endsWith("GET /H")) {
  digitalWrite(led, HIGH);  // GET /H turns the LED on
}
if (currentLine.endsWith("GET /L")) {
  digitalWrite(led, LOW);  // GET /L turns the LED off
}
使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

修改完成後點擊上傳按鈕將程式碼燒錄到 Arduino UNO R4 WiFi 中,完成後可以點擊 SerialPort 查看輸出訊息:

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

複製該 IP 之後啟動瀏覽器,複製貼上該 IP 於網頁搜尋欄,進入該網頁。可以看見網站會輸出一些接角的類比訊號,也有兩個按鈕能夠點擊控制LED的開關。讀者可以嘗試看看是否能夠控制 UNO R4 WiFi 上面的 LED 燈囉!

使用Arduino UNO R4 WiFi 遠端控制 LED 燈開關

四、結論

在這篇文章中我們使用了兩種 Wi-Fi 常見的技術,Access Point 以及 Web Server 來實際體驗 UNO R4 WiFi 所帶來的全新體驗,筆者在測試時發現雖然連接網路很迅速,但似乎沒有像使用 ESP32 開發板的 Wi-Fi 功能來的穩定,需要隨時去檢測是否有斷開連結的發生,但除此之外此次 UNO R4 WiFi 做的大更新 WiFiS3 套件真的為許多 Arduino 開發愛用者開啟了更多創意的新大門!

這一次也簡單的介紹了 Access Point 以及 Web Server 兩個之間的不同供讀者知悉,綜合上述的實作,搭配不同的感測器也可以為您的創意增添新樂趣!像是以物聯網概念做資訊管理統整,亦或是遠端操控設備、監控攝影機也都是很此次 UNO R4 WiFi 更新的創作發想方向,趕緊動手試試看吧!