使用Arduino UART-WiFi模塊作web服務器

1、硬件準備
          1.選擇硬件,主要有2種:
  • 一種是官方推薦的Arduino WiFi Shield(比較貴,大概要300~400塊 淘寶網 ;可是資料齊全);
  • 一種是UART-WiFi模塊,不只支持Arduino,並且支持全部串口的單片機均可以和其模塊通訊(大概100塊左右,淘寶網,資料較少)。
  最後選擇了UART-WIFI模塊,也走了條坎坷的路,也許到了很多東東。
     
2.   UART-WIFI模塊介紹
  • 圖片
   
  • 接口
       雙排(2 x 4)插針式接口
       支持波特率範圍:1200~115200bps
       支持硬件 RTS/CTS  流控
       單 3.3V  供電 、300mA
  • 無線
       支持 IEEE802.11b/g  無線標準
       支持頻率範圍:2.412~2.484 GHz  
       支持兩種無線網絡類型:
       基礎網(Infra )和自組網(Adhoc)
       支持多種安全認證機制:
       WEP64/WEP128/ TKIP/CCMP(AES)
       WEP/WPA-PSK/WPA2-PSK
       支持快速聯網
       支持無線漫遊
  • 其它
       支持多種網絡協議:
       TCP/UDP/ICMP/DHCP/DNS/HTTP 
       支持自動和命令兩種工做模式
       支持串口透明傳輸模式
       支持 AT+控制指令集
       支持多種參數配置方式:
       串口/WEB  服務器/ 無線鏈接
3.   UART-WIFI模塊配置
      因爲   UART-WIFI模塊須要3.3V和300mA的輸入,而Arduino只能提供3.3V和50 mA,直接鏈接到Arduino,會致使arduino的3.3v輸出,實際測量只有2.3V左右,不能正常使用   UART-WIFI模塊。


  • 3種配置
    • 配置一:外接電源
                      
    • 配置二:可使用兼容官方Arduino的升級版開發板(Freaduino).Freaduino使用1117-3.3輸出3.3V供電,最大電流800mA。Arduino只提供500mA的5V供電,而Freaduino更改原有LDO設計爲DCDC,最多能夠提供2A的5V供電。


                    

    • 配置三:轉接板(沒找到合適的轉接板,未驗證,不過原理應該是同樣的,提升電流 )
                   

2、測試UART-WiFi模塊
  • 方法一:使用UART-WIFI配置管理程序進行管理
    • 將 UART-WIFI 模塊和串口鏈接板鏈接好,鏈接好串口線後打開電源
      • 小技巧:1.能夠把Arduino的reset和gnd鏈接,做爲串口轉接板使用;2.Arduino做爲串口轉接板使用時,必須RX鏈接UART-WIFI 模塊RX;TX鏈接UART-WIFI 模塊TX。
    • 啓動 UART-WIFI配置管理程序,從端口列表中選擇模塊的鏈接端口號,若是不肯定能夠選擇自動(頻率設置爲9600)
                      
    • 點擊「退出透傳模式」
    • 點擊「搜索模塊」,若是鏈接端口選擇「自動」且計算機有多個串口時,可能會花費較長的搜索時間,完成後以下圖所示:
  •      
    • 修改該模塊相應的配置
  • 方法二:經過內置WEB服務器,使用IE瀏覽器經過網頁進行參數配置功能
    • 使用pc,搜索並鏈接到該模塊的ap。必須保證模塊已經成功鏈接到網絡;
    • WEB服務器默認端口號爲 80,所以在瀏覽器的地址欄僅輸入地址便可。好比:192.168.1.100
    • 輸入WEB服務器的帳號密碼(默認帳號:admin 默認密碼:000000)
       
    • 網頁的配置頁面以下圖所示,若是要修改無線模塊的配置參數,只需在修改完成後點擊相應的「 save」按鈕便可提交修改
                        
   
3、實現wifi webserver
  • 第一步:配置參數(使用管理程序和web後臺都可)
    • 無線參數
      • sta模式
      • SSID名稱
      •  加密模式
      • 無線路由器密碼
    • 自動工做模式
      • 協議類型:TCP
      • C/S模式:server
      • TCP過時時間:2s
      • 端口號:8080
  • 第二步:編寫arduino並上傳代碼到板子上
 
void setup()  
{  
Serial.begin(9600);  
}  
void loop()  
{  
boolean currentLineIsBlank = true;  
while(1){   
if (Serial.available()) {  
char c = Serial.read();  
// if you've gotten to the end of the line (received a newline  
// character) and the line is blank, the http request has ended,  
// so you can send a reply  
if (c == '\n' && currentLineIsBlank) {  
// send the webpage  
Serial.println("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<html><body><center><h1>Hello World!! I am WiFi WebServer</h1></center></body></html>");  
break;  

}  
if (c == '\n') {  
// you're starting a new line  
currentLineIsBlank = true;  
 
else if (c != '\r') {  
// you've gotten a character on the current line  
currentLineIsBlank = false;  
}  
}  
}  
}

注意:不要連續輸入三個「!」,這會致使上傳到mega2560失敗。

示意圖:  
  • 第三步:打開瀏覽器,訪問板子的ip地址, 驗證結果。以192.168.103:8080 爲例
         
相關文章
相關標籤/搜索