ESP8266是一款很是廉價的WIFI串口解決方案模塊,以目前的超低價格受到各方關注,本強最近也在給它開發arduino庫,來方便你們使用,不過捏,咱們也須要了解下他的AT指令的操做方法。php
首先,ocrobot的ESP8266使用的指令集手冊在這裏:
http://www.ocrobot.com/doku.php?id=zh:ocrobot:modules:seed:at
你們能夠參考,打印或者怎麼地。反正到時候常常會用到
AT指令是串口通信中經常使用的一種操做指令。你們應該都很熟悉,GPS、短信貓等硬件也都是這種方式來控制的。
咱們今天簡單講解下如何讓模塊登錄網絡,創建鏈接,而且發送數據。讓咱們能簡單的驅動起來,用起來
模塊購買鏈接:
http://item.taobao.com/item.htm? ... &id=40901823151
歡迎你們支持
首先,我估計你們都沒有USB TO TTL 硬件,也不是全部的壇友都有mangoII,因此我今天就寫個特別的arduino程序,讓arduino變成一個串口轉發器。
原理很簡單。。從串口芯片到單片機和這個口是個並聯關係。。而後usb 到這個IO口有1k電阻,我就啓用了單片機的內上拉稍微平衡下阻抗,,就把arduino板子做爲usb to ttl工具了。。嘿嘿
(本設置在mangoII板硬件環境下測試經過,不肯定其餘硬件是否可使用,請自行嘗試)
代碼以下:
git
ARDUINO 代碼複製打印github
void setup() { pinMode(0,INPUT_PULLUP); pinMode(1,INPUT_PULLUP); } void loop() { // put your main code here, to run repeatedly: }
由於程序很簡單,我又偷懶就沒寫註釋了。主要內容就是建立一個軟串口,軟串口接模塊 ,而後讓軟串口的回顯數據轉發到硬件串口,硬件串口的輸入數據轉發到軟串口。
下面來介紹下接線
3V3 ------------ VCC
ARDUINO GND ------------ GND esp8266
IO1 ------------ TX
IO0 ------------ RX
注意,TX 是直接對應板子上的TX RX 對應RX。,。緣由本身思考下。
很是簡單的接線,就是把咱們的WIFI模塊接到arduino的軟串口上,須要注意的是,wifi模塊是3.3V供電。
好了。已經所有準備好了。咱們要正式開始了。首先咱們打開串口監視器,而後從新插拔一下模塊的VCC接線(讓模塊重啓,顯示其啓動信息),你應該能看到以下圖所示的啓動信息,說明已經沒有任何問題了。
前面的亂碼是由於模塊啓動信息的波特率與後面啓動後不一致形成的,無論就好了
重點來了看窗口的右下角「沒有結束符」
這個要選擇成「回車」以下圖
咱們輸入下面這個指令 web
AT+Reset服務器
複製代碼網絡
點擊發送後,模塊會重啓
顯示以下
AT+Reset
done
返回字符是done 爲啥d沒了呢,其實是有的。多是軟串口的bug,這個咱們不研究了。。反正能用知道就好了,不影響使用。
好上面的重啓命令咱們等會會常常用到
下面,咱們要查詢一下模塊的工做模式,模塊一共有三種工做模式1.Station 2.AP 3.Station+AP 第一種是客戶端模式,第二種是接入點模式,第三種是兩種模式共存。既然咱們是登錄路由器而後往指定網絡傳數據,因此咱們選第一種模式。。
設置以前先查詢 tcp
AT+MODE?函數
複製代碼工具
返回內容:
AT+MODE?
+MODE:0
done
這個0就是沒配置的意思。。咱們配置成1便可
用這個命令來設置 oop
AT+MODE=1
複製代碼
這樣就設置成模式1了。具體的詳細指令請參閱上面的指令手冊以及本身多嘗試
返回以下:
AT+MODE=1
one
坑爹的d又丟了,無論~~~這個時候,關鍵的時刻來了,這時候雖然設置了。但尚未生效,須要重啓模塊。還記得我以前說的指令麼?我就不重複寫了。。反正這時候要重啓(拔電源插頭也是能夠的)
而後咱們來查詢下
AT+MODE?
複製代碼
返回以下:
AT+MODE?
+MODE:1
done
大概就是這樣就設置好模式了。
咱們後面就暫時不介紹回顯內容了,很簡單
而後就是查詢一下附近能搜索到的wifi網絡信號
AT+ShowAP
複製代碼
回顯內容就是周圍wifi信號
看到本身的wifi就能夠加入網絡了
AT+JoinAP="SSID","PASSWD"
複製代碼
很簡單的命令對吧,前面寫SSID號,後面寫密碼。回車發送命令就能夠加入網絡了。記得加完網絡重啓下模塊
好了,這樣模塊就連上路由器了
下面就須要有個小工具,在本身計算機(局域網內)上創建一個TCP端口的監聽,來模擬服務器
小工具鏈接
我計算機IP是192.168.1.101 我打算監聽8089端口,以下圖配置,監聽(固然你也能夠監聽你須要的任何端口)
(說明:任何網絡服務器均可以當作是工做在指定端口,負責解析指定協議的端口監聽器)
設置模塊到單連接模式(只能使用一個鏈接的模式,這種比較方便簡單,多連接模式咱們之後再講)
AT+MUX=0
複製代碼
而後重啓模塊(拔電或者用reset指令均可以)
好了。以上的設置模塊設置一次後,斷電後仍是會有記憶的。。也就是說只須要配置一次。。下面開始創建TCP鏈接啥的。斷電不會重連了。。
下面咱們在模塊上創建一個TCP的鏈接
使用指令
AT+NewSTA=「TCP」,「192.168.1.101」,8089
複製代碼
很簡單的指令,首先說明鏈接類型,目標ip地址,端口號。。這樣就創建好了。。
而後咱們就能發送數據了
指令
AT+UpDate=11
複製代碼
而後串口會返回一個>號,咱們繼續輸入hello world發送
這樣就會從TCP監聽的一端看到數據了。很簡單吧
指令後面的11的意思就是你要發送的字符的長度。系統是靠字符長度判斷一句話是否能夠發送,因此咱們的數據長度要和下面要發送的字符串的長度等長才行。。
簡單的教程目前就到這裏了,有助於你們理解AT指令的使用。
另外咱們還有一個arduino的庫,雖然目前開發的不太徹底,基本函數都開發完了,例程還沒寫好,bug可能還有很多,也都在調試中,有興趣的能夠去看看
https://github.com/534659123/OCO ... 266-arduino-library