HTTP - 設置伺服器以控制 LED

材料準備

範例說明

介紹

這個範例裡,我們使用Ameba連上WiFi,作為服務器端,用戶可通過網頁來控制LED的開關。

流程

首先將Ameba與LED進行連線

LED燈泡的接線裡,LED比較長的腳為正極,比較短的腳為負極,所以我們要將短腳接到GND的地方(電壓為0),並將長腳接到D13的地方。為了避免LED因為電流太大而燒壞,通常會在正極的前面加上電阻。現在很多LED其實都做的很好,不加電阻也不會燒壞,但保險起見還是加上電阻。

Note:
對於 RTL8720DN(BW16) ,您可以考慮將“LED_PIN”重新定義為 10 用於內置綠色 LED,或 11 用於藍色內置 LED,或 12 用於紅色內置 LED,以避免使用額外的組件。

然後打開Simple Web Server WiFi的範例, “File” -> “Examples” -> “WiFi” -> “SimpleWebServerWiFi”

5-2

將WiFi連線的相關訊息,如下圖中黃色標註的地方進行對應的修改。

5-3

上傳程式碼之後,按下Ameba的Reset按鈕, 在WiFi連線成功后,會提示”To see this page in action, open a browser to http://xxx.xxx.xxx.xxx”。如下圖黃色標註:

5-4

在連接在同一WiFi環境下的電腦或手機上,打開瀏覽器,輸入提示的地址

5-5

點擊網頁中的“here”即可完成LED燈泡的點亮與關閉操作。在連線以及點擊時,Ameba會有相關的信息顯示。

程式碼說明
在連線WiFi時會使用到WiFi.begin();
https://www.arduino.cc/en/Reference/WiFiBegin
連線成功後會讀取WiFi的信息:
顯示WiFi的名稱WiFi.SSID()
https://www.arduino.cc/en/Reference/WiFiSSID
顯示WiFi的訊號強度WiFi.RSSI()
https://www.arduino.cc/en/Reference/WiFiRSSI
顯示Ameba的IP信息WiFi.localIP()
https://www.arduino.cc/en/Reference/WiFiLocalIP
設定服務器的端口號WiFiServer server()
https://www.arduino.cc/en/Reference/WiFiServer
開始服務器的監聽server.begin()
https://www.arduino.cc/en/Reference/WiFiServerBegin
判斷是否有客戶端連線server.available()
https://www.arduino.cc/en/Reference/WiFiServerAvailable
判斷客戶端是否處於連線狀態client.connected
https://www.arduino.cc/en/Reference/WiFiClientConnected
向服務器發送數據并開啟新的一行client.println()
https://www.arduino.cc/en/Reference/WiFiClientPrintln
向服務器發送數據client.print()
https://www.arduino.cc/en/Reference/WiFiClientPrint
判斷是否有數據從服務器端發送過來client.available()
https://www.arduino.cc/en/Reference/WiFiClientAvailable
客戶端讀取數據client.read()
https://www.arduino.cc/en/Reference/WiFiClientRead
客戶端斷開與服務器的連線client.stop();
https://www.arduino.cc/en/Reference/WiFIClientStop

請先確認已安裝QQ通訊軟體