HTTP - 設置伺服器以控制 LED

材料準備

  • AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1

  • 麵包板 x 1

  • LED燈泡 x 1

  • 1KΩ電阻 x 1

範例説明

這個範例裡,我們使用Ameba連上WiFi,作為服務器端,用戶可通過網頁來控制LED的開關。
首先將Ameba與LED進行連線
LED燈泡的接線裡,LED比較長的腳為正極,比較短的腳為負極,所以我們要將短腳接到GND的地方(電壓為0),並將長腳接到D13的地方。為了避免LED因為電流太大而燒壞,通常會在正極的前面加上電阻。現在很多LED其實都做的很好,不加電阻也不會燒壞,但保險起見還是加上電阻。

AMB21 / AMB22 接线图:

  1

AMB23 接线图:

1-1

BW16 接线图:

1-2

Note:
對於 RTL8720DN(BW16) ,您可以考慮將“LED_PIN”重新定義為。10 用於內置綠色 LED,或 11 用於藍色內置 LED,或 12 用於紅色內置 LED,以避免使用額外的組件
然後打開Simple Web Server WiFi的範例, “File” -> “Examples” -> “AmebaWiFi” -> “SimpleWebServerWiFi”

2

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

3

上傳程式碼之後,按下Ameba的Reset按鈕, 在WiFi連線成功后,會提示.

“To see this page in action, open a browser to http://xxx.xxx.xxx.xxx”

如下圖黃色標註:

  4

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

  5

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

程式碼説明

在連線WiFi時會使用到 WiFi.begin();
連線成功後會讀取WiFi的信息:
顯示WiFi的名稱 WiFi.SSID()
顯示WiFi的訊號強度 WiFi.RSSI()
顯示Ameba的IP信息 WiFi.localIP()
設定服務器的端口號 WiFiServer server()
開始服務器的監聽 server.begin()
判斷是否有客戶端連線 server.available()
判斷客戶端是否處於連線狀態 client.connected
向服務器發送數據并開啟新的一行 client.println()
向服務器發送數據 client.print()
判斷是否有數據從服務器端發送過來 client.available()
客戶端讀取數據 client.read()
客戶端斷開與服務器的連線 client.stop();