這兩天,我們的專案卡在了無線模組的使用上,今天總算是有了眉目。我就大致總結一下esp8266的用法。
首先,先說明這個wifi模組的用途,這樣我們學起來就有了方向。我們的應用是圍繞著將資料從電腦傳到wifi模組,最後傳到微控制器來進行的。那麼現在問題來了,電腦需要做什麼,wifi模組需要做什麼,微控制器又怎麼和wifi模組進行資料交換呢?
一步步來分析。先從整體來看,我們通過什麼手段來達成wifi模組和電腦的通訊?用術語來說,用的是網路的連線手段,協議是tcp/ip。那通俗點怎麼說呢?就是通訊的兩端,用ip位址和埠作為目的地,空氣是道路,只要傳送資訊的兩方知道目的地在**,就能夠進行資料傳輸。這個就是乙個通訊的規則,機器已經約定好的通訊手段,所以管他叫協議,全稱就是tcp/ip協議。
好,懂得了這個以後,對我們程式設計解決實際問題其實毫無幫助啊,畢竟落不到實際應用上。那實現這個協議的**的一系列演算法叫什麼呢?我們管他叫socket程式設計。socket程式設計乍一看名字覺得好難,其實很簡單,首先我們要知道,它是基於tcp/ip這個理論來寫的**。專門用於網路程式設計。
這時我們先跳出socket這個坑,知道這麼個東西,具體怎麼用程式語言後面再說。我們目前對於兩個端進行通訊已經有了眉目了,我先假設乙個端叫服務端,乙個端叫客戶端。他們之間通訊的協議是tcp/ip協議,而運用tcp/ip理論寫出的用於通訊的**叫做socket程式設計。
那現在具體到實際編寫**了,服務端的socket編寫,需要的步驟是:
1.先建立socket,這是為了讓伺服器知道要進行網路通訊了,之後這個socket就作為乙個工具(專業術語叫套接字)去執行網路通訊的一系列步驟。剛剛說了,tcp/ip是用ip位址和埠號作為目的地的,那服務端自然要將自己的網路服務的ip位址和埠號定下來,所以要繫結位址和埠號,用bind()函式,具體引數自己查。繫結以後,就開始監聽埠,要是有人來敲門了,申請要通訊了,自己如果想理會,那就accept(),接受以後,別人說的話是什麼,自己需要接收,用recv()。如果要傳送資料,就send()。如果網路通訊關閉,直接socket.close()就好。以上的函式是大致的,具體的語言可能呼叫方式不一樣。至於客戶端,為了使用網路程式設計,同樣要建立socket,但是,它不是伺服器,不需要把自己的埠和ip位址繫結,知道自己要把資料給誰就好了,所以只需要知道服務端的目的地,即ip位址和埠號,接下來函式啥的都差不多。
2.說來簡單,但是對於wifi模組來說,它的**寫在**呢?我們之前就是卡在這一步,但是經過乙個同學的幫助,我知道了對於它進行程式設計,要用eclipse開啟它整合的sdk環境,然後在裡面的user.c檔案進行程式設計即可,這裡程式設計的**就是我說的socket**,當然,得根據自己的應用來寫。至於電腦端,就方便多了,搭個伺服器,用什麼語言都ok,但是注意字元格式的轉換問題就好。
3.微控制器和wifi模組的通訊,他們之間的通道不再是wifi了,而是利用微控制器的串列埠部分進行通訊。但是有需要注意的一點,wifi模組得到的資料存在**?微控制器要去wifi的哪個地方取出資料?經過同學的點撥,我終於知道了,wifi模組儲存的地方叫做flash。微控制器要到這個地方找資料。那它的位址怎麼知道呢?在eclipse把我們修改過的**生成新的bin檔案以後,它會在底下告訴我們,flash的位址,到時候在微控制器程式設計的時候,從裡面取就好了。
4.電源供電問題。硬體終歸不是軟體,還得考慮它的供電和一些管腳的引數,一不小心就可能燒了。微控制器供電是5v,而wifi模組是3.3v,如果為了偷懶,自然可以找兩個電源單獨供電,但是如果想節省成本,就得想辦法利用好現有資源了,這個到時候還得再計算,不過同學說得注意,燒寫**的時候需要嚴格控制電源,燒寫好以後才能折騰電源。
這就是wifi模組的一點小總結,有些地方可能說得不對,還得在實踐中摸索。
ESP8266 WIFI模組測試
1.直接上模組電路板圖 注意 本系統是 3.3v 請勿接 5v 2.接線除錯 usb 轉 tll 模組,將 utxd,gnd,vcc,urxd 連上 usb ttl 兩者的 txd 和 rxd 交叉接 ch pd 接 3.3 v,即可進行測試。3.模組上電,開啟串列埠除錯工具,選擇相對應串列埠,波特...
指南者開發板 esp8266 WIFI模組使用測試
背景 想買乙個wifi模組,發現秉火指南者開發板上已經存在,於是開始研究。2 按照一般教程接線,注意vcc為3v,utx接usb轉ttl串列埠的rxd引腳,pb8連線1k歐電阻到esp8266 的chip en腳 板子上已經有 當pb8接3.3v時,晶元正常工作。晶元的gpio0為工作模式選擇引腳,...
零知開源分享 ESP8266wifi模組的使用
1 說明 mcu 零知開源開發板 標準板 wifi模組 esp 12f 開發工具 零知開源開發工具 功能 通過串列埠連線零知標準板與esp 12f wifi模組,實現聯網。本示例使用ap指令開發方式,開啟乙個熱點並設定為tcp伺服器模式,程式執行後就可以被其他wifi功能的終端連線上進行網路通訊。2...