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");
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