Ameba Arduino: [RTL8195] 使用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其实都做的很好,不加电阻也不会烧坏,但保险起见还是加上电阻。
 
然后打开Simple Web Server WiFi的范例, “File” -> “Examples” -> “AmebaWiFi” -> “SimpleWebServerWiFi”

 

将WiFi连线的相关讯息,如下图中黄色标注的地方进行对应的修改。

上传程式码之后,按下Ameba的Reset按钮, 在WiFi连线成功后,会提示”To see this page in action, open a browser to http://xxx.xxx.xxx.xxx”。如下图黄色标注:

 

在连接在同一WiFi环境下的电脑或手机上,打开浏览器,输入提示的地址

  

点击网页中的“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