Ameba Arduino: [RTL8195] [RTL8710] 使用 Ameba作為網絡服務器控制LED

材料準備

  • Ameba x 1
  • 麵包板 x 1
  • LED燈泡 x 1
  • 1KΩ電阻 x 1


範例說明


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