ESP32 Web Server and IoT
用 ESP32 WiFi 開發版,透過繼電器 Relay,控制 110 伏特的燈泡。
家用電器 物聯網 IoT
簡介
簡介
本專題用 ESP32 WiFi 開發版及 Arduino IDE 程式,透過繼電器 Relay,控制 110 伏特的燈泡,示範家用電器物聯網 IoT。
本專題用 ESP32 WiFi 開發版及 Arduino IDE 程式,透過繼電器 Relay,控制 110 伏特的燈泡,示範家用電器物聯網 IoT。
這個專題和程式,原始創作,來自: http://randomnerdtutorials.com
這個專題和程式,原始創作,來自: http://randomnerdtutorials.com
繼電器 Relay
繼電器 Relay
工具機及家電廣泛的使用繼電器。機器上的控制面板,是小功率電路,不可以和 110 或 220 伏特的大功率電路連接或接觸。如何用小功率電路板,操控大功率機器?繼電器提供了解決方案。
工具機及家電廣泛的使用繼電器。機器上的控制面板,是小功率電路,不可以和 110 或 220 伏特的大功率電路連接或接觸。如何用小功率電路板,操控大功率機器?繼電器提供了解決方案。
繼電器的操作原理,如下圖:
繼電器的操作原理,如下圖:
當繼電器 Relay 開關 S 關上時,其內部 5 伏特電流導通。電磁鐵激磁,產生磁力,吸引大電路開關從 NC 打至 NO。如此大功率電路導通,燈泡點亮。但如果繼電器開關 S 打開時,繼電器內部沒有電流,電磁鐵無法產生磁力,則大電路開關重新彈回 NC,造成大功率電路斷路,燈泡則不亮。 繼電器用簡單的電磁鐵磁吸原理,就可讓小功率電路控制大功率的機器。
當繼電器 Relay 開關 S 關上時,其內部 5 伏特電流導通。電磁鐵激磁,產生磁力,吸引大電路開關從 NC 打至 NO。如此大功率電路導通,燈泡點亮。但如果繼電器開關 S 打開時,繼電器內部沒有電流,電磁鐵無法產生磁力,則大電路開關重新彈回 NC,造成大功率電路斷路,燈泡則不亮。 繼電器用簡單的電磁鐵磁吸原理,就可讓小功率電路控制大功率的機器。
先來看看專題成果影片:
先來看看專題成果影片:
材料
材料
ESP32S WiFi 開發版
ESP32S WiFi 開發版
2 路 5V 繼電器,本專題使用的繼電器型號為 Tongling JQC-3FF-S-Z
2 路 5V 繼電器,本專題使用的繼電器型號為 Tongling JQC-3FF-S-Z
110 伏特燈泡及燈泡座,家用電源插座,電線
110 伏特燈泡及燈泡座,家用電源插座,電線
接線圖如下:
接線圖如下:
因專題使用 110 伏特電源,接線時請務必小心。專題上傳程式前後,先不要接上 110 伏特電源,待確認繼電器正確運作,才接上 110 伏特燈泡電源。
因專題使用 110 伏特電源,接線時請務必小心。專題上傳程式前後,先不要接上 110 伏特電源,待確認繼電器正確運作,才接上 110 伏特燈泡電源。
上傳程式
上傳程式
步驟二: 上傳下方程式前,點選 工具 > 開發板,確認你的 Arduino 開發板是否正確,序列埠 COM Port是否接上。本專題開發版請選擇 "DOIT ESP32 DEVKIT V1"。
步驟二: 上傳下方程式前,點選 工具 > 開發板,確認你的 Arduino 開發板是否正確,序列埠 COM Port是否接上。本專題開發版請選擇 "DOIT ESP32 DEVKIT V1"。
步驟三: 至程式第 10 及第 11 行,輸入你要 ESP32 連上的 WiFi 網路名稱 SSID 及密碼 password。
步驟三: 至程式第 10 及第 11 行,輸入你要 ESP32 連上的 WiFi 網路名稱 SSID 及密碼 password。
步驟四: 按下 Arduino 上傳程式鈕後,再按住 ESP32 BOOT 鈕。待程式編驛訊息出現 "Connecting..." 後,再鬆開 BOOT 鈕。如此可讓程式順利上傳到 ESP 32。
步驟四: 按下 Arduino 上傳程式鈕後,再按住 ESP32 BOOT 鈕。待程式編驛訊息出現 "Connecting..." 後,再鬆開 BOOT 鈕。如此可讓程式順利上傳到 ESP 32。
步驟五: 待程式成功上傳後,打開 Arduino 序列埠螢幕,調整 baud rate 為 115200。再按一下板子上的 ENABLE 按鈕,應該從序列埠螢幕上看到 ESP32 web server 的 IP address,長的像這樣: 192.168.0.113。
步驟五: 待程式成功上傳後,打開 Arduino 序列埠螢幕,調整 baud rate 為 115200。再按一下板子上的 ENABLE 按鈕,應該從序列埠螢幕上看到 ESP32 web server 的 IP address,長的像這樣: 192.168.0.113。
步驟六: 打開手機、電腦、或 pad 上的瀏覽器,輸入步驟五所看到的 IP address,就會出現控制二個 LED 的網頁。 本專題只用第一個按鈕 GPIO 26。當按鈕按下時,會聽到繼電器 “搭“ 的一聲,表示繼電器從接頭 NC 打至接頭 NO。再按一次按鈕,當接頭彈回 NC 時,也會聽到同樣的聲音。
步驟六: 打開手機、電腦、或 pad 上的瀏覽器,輸入步驟五所看到的 IP address,就會出現控制二個 LED 的網頁。 本專題只用第一個按鈕 GPIO 26。當按鈕按下時,會聽到繼電器 “搭“ 的一聲,表示繼電器從接頭 NC 打至接頭 NO。再按一次按鈕,當接頭彈回 NC 時,也會聽到同樣的聲音。
步驟七:接上 110V 伏特電源,燈泡即可運作。
步驟七:接上 110V 伏特電源,燈泡即可運作。
創客點子
創客點子
- 專題中,繼電器只用了一路,另一路是空著的。試著將另外一路聯接其他的電器、馬達、或喇叭。用網頁上的第二個按鈕 GPIO 27 來控制。
- 目前你所建立的 ESP32 伺服器,是屬於地區性的,範圍大概只是300公尺。如果要在全世界各地,都可透過無線網路,下指令或存取 ESP32 何服器,操控本專題的燈泡,您可試試免費的ngrok。ngrok 的作用,是讓外網連接本機。步驟如下:
a. Arduino 程式中的第10和第11行,輸入您的Wi-Fi SSID 以及密碼 password。程式中的第13行改變 port number 為任何四位數的數字,如 8888。上傳此程式於 ESP32 開發板。
a. Arduino 程式中的第10和第11行,輸入您的Wi-Fi SSID 以及密碼 password。程式中的第13行改變 port number 為任何四位數的數字,如 8888。上傳此程式於 ESP32 開發板。
b. 待程式成功上傳後,打開 Arduino 序列埠螢幕,調整 baud rate 為 115200。再按一下板子上的 ENABLE 按鈕,應該從序列埠螢幕上看到 ESP32 web server 的 IP address,長的像這樣: 192.168.0.113。打開電腦的瀏覽器,鍵入你的 IP address 以及 port number。以我的電腦為例,鍵入 http:// 192.168.0.113:8888
b. 待程式成功上傳後,打開 Arduino 序列埠螢幕,調整 baud rate 為 115200。再按一下板子上的 ENABLE 按鈕,應該從序列埠螢幕上看到 ESP32 web server 的 IP address,長的像這樣: 192.168.0.113。打開電腦的瀏覽器,鍵入你的 IP address 以及 port number。以我的電腦為例,鍵入 http:// 192.168.0.113:8888
d. 選擇你的操作系統 window or Mac OS ,並下載 ngrok 程式。解壓縮並執行你所下載的程式。你會看到一個 window 視窗,在視窗內下指令
d. 選擇你的操作系統 window or Mac OS ,並下載 ngrok 程式。解壓縮並執行你所下載的程式。你會看到一個 window 視窗,在視窗內下指令
ngrok tcp YOUR_ESP_IP_ADDRESS : 8888 - - authtoken YOUR_TUNNEL_AUTHTOKEN
ngrok tcp YOUR_ESP_IP_ADDRESS : 8888 - - authtoken YOUR_TUNNEL_AUTHTOKEN
(指令中,英文大寫的部分,是您自己專屬的 IP Address 以及 Tunnel Authtoken。Port number 如果不是 8888,則改成您自己設定的 port number。
(指令中,英文大寫的部分,是您自己專屬的 IP Address 以及 Tunnel Authtoken。Port number 如果不是 8888,則改成您自己設定的 port number。
打開您電腦的瀏覽器,進入此 URL,大功告成。注意:電腦要保持開啟,ngrok 才能保持運作。
打開您電腦的瀏覽器,進入此 URL,大功告成。注意:電腦要保持開啟,ngrok 才能保持運作。