esp8266(3) Arduino通過ESP8266連接和獲取網站源代碼


http://www.plclive.com/a/tongxinjiekou/2016/0422/374.html

 

在上一篇8266的基礎上,這一篇做個具體的連接網站的例子,供大家參考。上一篇基礎篇請看:[2016.04.21]ESP8266 wifi模塊在Arduino上的應用

我們通過發送一個GET請求,得到網頁的源代碼。
 
 
1. 連接到一個wifi AP,不用說了,AT+CWMODE=1或者3設置為station模式或者兼容,這樣才能連wifi。

          Serial1.print("AT+CWMODE=3\r\n");
             Serial1.print("AT+CWJAP=\"ssid\",\"password\"\r\n");   
 
2. 設置為透傳模式,命令AT+CIPMODE=1。(什么是透傳模式:建立了TCP連接就需要傳輸數據了。這個設置和wifi連接信息一樣,也是會存在Flash區域。所謂透傳就是8266不會管你數據包是什么內容, 收到直接轉發,不會拆包。)

         Serial1.print("AT+CIPMODE=1\r\n");
 
3. 建立一個TCP連接

         Serial1.print("AT+CIPSTART=\"TCP\",\"www.plclive.com\",80\r\n");  //內容較多,可以設置為www.baidu.com

    看到了吧?這里的TCP和網址必須要加雙引號,只要在前面加個 \ 即可。

4. 注意了,多數人卡在了這一步。

         Serial1.print("GET / HTTP/1.1\n");
         Serial1.print("Host:www.plclive.com.com\n");  //內容較多,可以設置為www.baidu.com
         Serial1.print("User-Agent: abc\n");
         Serial1.print("Connection: close\n");
         Serial1.print("\n");                         //這里必須額外再發送一個空行,服務器端才會返回數據。



 
 

5. 現在一直在准備發送數據,我們發什么命令都沒反應,我曾經一直用8266斷電解決。太LOW了,那么應該怎么退出呢?發送“+++”,然后發送一個空行,就可以退出了。

          Serial1.print("+++");
          delay(200);   //這個延時很有必要
          Serial1.print("\n");  //空行
          發送完之后,出現ERROR,就表示退出來了,之后就可以正常進行AT的其他操作了。

最后記得吧TCP連接斷開,把wifi連接斷開就ok了。

          Serial1.print("AT+CIPMODE=0\r\n");
          delay(200); 
          Serial1.print("AT+CIPCLOSE\r\n"); 

          斷開服務器

          Serial1.print("AT+CWQAP\r\n");

          斷開wifi


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM