樊建強,秦 玉,李凱麗,成慧翔
(晉中信息學院,山西 晉中 030600)
在我國廣大的農村,鐵鍬、鋤頭、鏟子等便攜式工具是農民經常會使用到的農具,但他們又會時常面對將農具落在田間地頭,由于莊稼較高等環境因素又不容易找到的苦惱。隨著智能手機和無線通信技術的發展與普及,基于這種實際情況為實現便民的目的,特設計了一種快速的尋物防丟失系統,以解決農具丟失的問題。
本文設計了一款基于WiFi的農具防丟失系統,該系統通過手機的一鍵操作對綁定農具上的單片機進行通信使其發光發聲,實現快速定位農具的位置。
在鋤頭、鐵鍬等常用農具上裝有一個可發光、發聲的模塊并通過無線網用手機app 向其發送啟動命令,綁定在農具上的單片機接收到命令后,將會控制蜂鳴器發聲、LED 模塊發光。當找到農具后按一下重啟按鈕即可關閉聲音,并為下一次尋物做準備。本系統主要包括3部分:單片機控制模塊、WiFi技術、安卓開發平臺。
系統總體原理見圖1。

圖1 系統原理Fig.1 The system principle
基于WiFi的農具防丟失系統總體電路圖見圖2。

圖2 總體電路圖Fig.2 The overall circuit diagram
本設計采用的是ESP8266WiFi 模塊與單片機進行連接,ESP8266 內部具有高度集成,包括天線開關,電源轉換器,它能夠從外接閃存中快速啟動,內部具有高速緩沖裝置有利于提高系統性能并降低內存,因此僅需要極少的外部電路。
將51 單 片 機 的30 引 腳31 接ESP8266 模 塊 外 部 的TX 和RX 就可以單片機和WiFi 模塊可以進行串口通信,但是在下載程序時必須拔下30與31引腳的接線否則會下載失敗。
由于只能使用3.3 V 電壓進行驅動,WiFi 模塊在外部還必須接有一個穩壓裝置,在轉換的部分曾考慮過使用穩壓二極管進行變壓,但是由于穩壓二極管在低電流的情況下很難保持穩定,電壓從USB 輸入的5 V 電壓只能穩定在4.6 V 已經遠遠超出WiFi模塊的電壓承受范圍,長時間的承受高于自身規定電壓將會造成不可逆的損壞。
面對這種情況可以采用三端穩壓器或者3.3 V 紐扣電池,本設計采用三端穩壓器,又稱ASM117三端穩壓器是集成芯片,內部有放大、補償、反饋等環節,穩壓性能優秀,在低電流的情況下也優于穩壓二極管,將三端穩壓器變壓后的3.3 V處連接到ESP8266 模塊上即可完成3.3 V 供電保證其不被擊穿。
蜂鳴器是一種可以發聲模塊,但它只能發出幾種單調的聲音,是一種窄頻率發聲器件,只給高電平或者低電平是不能夠發聲的,需給出交替的高低電平產生方波信號輸入諧振裝置轉換為聲音信號輸出,讓其振蕩片一張一合,將蜂鳴器接入51單片機P1.0口或者P3.6口單片機向其輸入延時1 s的高低電平程序,就可以發出聲音。
采用NPN 型三極管進行兩級放大將控制端接入單片機P1.0,當單片機發出電流脈沖就會給第一個三極管的基極一個很小的脈沖電流信號這時就會使集電極電流和發射極電流產生很大的電流輸出,接著發射極帶著更大的電流信號給入下一個三極管的基極這時就會產生一個比之前還要大的電流信號從第二個三極管的集電極和發射極輸出,這時將兩個三極管的集電極連接至蜂鳴器電流信號接收端,蜂鳴器發出更高分貝的聲音。
使用AT89C51 芯片作為控制蜂鳴器與LED 燈的主要控制方式,將ESP8266WiFi 模塊與單片機進行通信通信成功后ESP8266,模塊會建立AP模式的WiFi網絡,Android手機連接AP 網絡連接后通過網絡調試助手對單片機進行發送指令,控制51 單片機傳遞高頻電用來控制LED 燈發光與蜂鳴器發聲,工作流程圖,見圖3。

圖3 系統總體流程圖Fig.3 The overall system flow chart
這時使用PC 端串更改波特率,因為WiFi 芯片的波特率有內部設置,然后點擊發送即可并勾選發送新行即可兩者調成一致如圖4串口助手所示。

圖4 串口助手Fig.4 The serial port assistant
這時WiFi 芯片從內部會反饋未知的3 段數據,同時更改了之前芯片的內部數據。
配置好了ESP8266 后就可以更改模塊信息了。首先,需要設置ESP8266模塊的AP 模式下的WiFi用來保證在與單片機通訊后可以建立AP 網絡,在串口助手中輸入以下指令設置如下:
AT+CWMODE=2 這段指令是令WiFi 芯片建立無線網絡,當然也要建立通信通道,這時使用這段指令AT+CWSAP="","",第一個逗號前是給這個網絡定義昵稱,第二個逗號是給這個網絡上鎖。在配置完成以上指令后使用AT+RST指令重啟芯片,前面的兩條命令會固定存儲在芯片內保存,重啟完成后配置AT+CIPMUX=1可以讓多個無線接入端連接。如果不開啟這個就會導致無法連接,這些都設置好以后輸入AT+CIPSERVER=1,9090 設置固定9090 為通信號也稱端口號以便在網絡調試助手中使用,不過在每次重啟后都需要配置通信號指令和多連接指令。
這時就可以和手機進行連接,說明ESP8266 模塊的AP模式啟動成功,但由于還沒有單片機進行配置所以不會控制LED燈與蜂鳴器。
單片機如果無外接晶振芯片時其內部的通訊頻率為9600,因為本次測試系統使用開發板制作的單片機模塊所以最高就是9600 了,若想通訊就在之前PC 端時更改WiFi 芯片的頻率即可完成通信,在串口助手中輸入AT+UART=9600,8,1,0,0 就完成了頻率的更改,按一下USB 上的按鈕就完成了數據的存儲并拔下接線于單片機,單片機傳輸一段之前的通信號與鎖號,使用傳輸的通信號與鎖子號就可以與手機連接時候使用。
在與單片機連接時也要重新初始化ESP模塊,AP模式開啟使用一段連接的函數并包含多連接和通信號的兩條指令,然后再使用延時函數給WiFi 芯片大概需要1 s 反饋時間,當看到WiFi芯片重啟并閃爍紅燈說明已經完成了51 單片機與ESP8266的連接初始化,完成了通信設置。
在單片機中寫入一個中斷其操作過程的虛擬按鈕指令,這個就是通過手機端對WiFi 芯片傳輸數據。單片機會對開發板上的其他硬件進行控制,使用一段中斷函數,來進行數據的接收。如果輸入0 時單片機會在中斷函數中做出響應,同時輸入1時,也會有對應的響應,只需要輸入一個數字或者字母讓燈與蜂鳴器同時發光、發聲,直到找到了農具按下開發板上的按鈕關閉即可。如果再次使用時只需要再按一次這個按鈕即可重新啟動所有模塊的功能,他們的響應只需要手機端的發送信號。
將設計好的程序寫入并燒錄進單片機,應該先將ESP8266 模塊的TX 和RX 端口拔下,防止在給51 單片機燒錄程序時失敗,復位單片機,與Android手機進行連接。
Android 系統相對于其他手機操作系統平臺具有較強的編譯性,使用從手機應用商店下載的網絡調試助手,操作流程如下:
首先,打開手機WiFi 網絡設置連接在之前設置好的ESP8266 模塊建立的AP 網絡,輸入之前設定的密碼0123456789;其次,點開網絡調試助手app,點擊tcp server 配置端口服務,在之前的ESP8266 模塊中設置的端口為8080,點擊tcp client 增加連接輸入手機的IP 網絡地址192.168.41,把之前的端口號也同樣輸入8080,這樣手機就連接到了WiFi模塊發射出來的AP無線網絡。如圖5網絡調試所示,接下來在網絡調試助手界面的對話框內發送1 即可讓LED 燈點亮和蜂鳴器發聲。

圖5 網絡調試Fig.5 The network debugging
本設計以單片機模塊為核心,配以ESP8266WiFi 模塊,LED 燈模塊,蜂鳴器模塊,以及其他外設控制電路,設計了這款尋物系統。于此同時,應用了當今使用頻率中高,可開發性能極高的Android 系統設計開發了手機客戶端的一鍵操作方式,為使用提供了便捷性。