許杰文,郭羽翔,朱克備
(1.三明市氣象局,三明 365000;2.清流縣氣象局,清流 365300)
PAMS-I型便攜自動氣象站應用現代氣象傳感器技術、數據采集器技術、微機與通信技術,實時對監測地區的大氣溫度、濕度、壓力、風向和風速等氣象要素進行全自動觀測,通過筆記本電腦顯示實時氣象信息。雖然PAMS-I支持使用RS-232有線傳輸和SIM卡無線傳輸,但是廠家提供的無線接收軟件為中心站服務軟件,需要自建接收服務器系統并向寬帶運營商申請公共網絡IP,才能使用無線接收方式。使用無線接收數據方法復雜且成本高,使用RS-232有線傳輸雖然可以本地直接接收數據,但是需要用1根數據線連接到采集器,當遇到災害性天氣時,應急保障人員需要到現場采集數據,為了接收數據,人員必須在便攜自動氣象站旁,人身安全存在隱患。
將PAMS-I型便攜自動氣象站的近端傳輸方式基于ESP8266芯片改造成無線傳輸方式,使近端有效傳輸距離延長到10 m以上,并且不用受串口線的束縛,可在有效范圍內隨意移動和擺放接收用的筆記本電腦,極大地方便了便攜自動氣象站的使用,保障了惡劣天氣下現場應急維護人員的人身安全。
此次改造采用軟、硬件聯合開發的技術路線,利用ESP8266WiFi芯片將RS-232串口接收到的數據轉換成無線WiFi信號發射出去,筆記本電腦連接到ESP8266芯片生成的WiFi熱點,利用虛擬串口軟件模擬出1個串口,利用該虛擬串口模擬有線連接的方式采集便攜自動氣象站的數據。
1)對PAMS-I型便攜自動氣象站的數據發送端進行改造,加裝串口信號轉換模塊和ESP8266無線芯片以及電源轉換模塊,將數據發送方式修改為無線發送;
2)在ESP8266無線芯片中寫入設備信息修改的網頁,通過該網頁導入要修改的WiFi設置項目來修改WiFi信號傳輸;
3)在筆記本電腦端安裝虛擬串口軟件,模擬有線傳輸。
在國內外,WiFi芯片的生產商和種類很多,性能各異,但都能實現物聯網的功能。其中,ESP8266是一款性價比高的低功耗無線芯片[1]。ESP8266內置32位CPU,能夠獨立運行,廣泛應用于智能家居、工業無線控制和無線傳感器等領域[2],集成了標準數字外設接口、天線開關、射頻 balun、功率放大器、低噪放大器、過濾器和電源管理模塊等,僅需很少的外圍電路,可將所占 PCB空間降低;ESP8266共有17個GPIO管腳,通過配置適當的寄存器可以給GPIO管腳分配不同的功能。
ESP8266支持3種模式,分別是soft AP模式、station模式和softAP+station模式[3]。
station模式:ESP8266模塊通過路由器連接互聯網,利用手機或電腦通過互聯網實現對設備的遠程控制。
soft AP模式:ESP8266模塊作為熱點,手機或電腦直接與模塊通信,實現局域網無線控制。
文章采用softAP模式,即把ESP8266當作一個WiFi 熱點[4]。
ESP8266模塊的底層固件是可定制的,可以在NodeMCU網站上定制ESP8266模塊固件,給模塊添加adc、sjson、http等功能。
串口是連接ESP8266芯片與PAMS-I便攜自動氣象站的指令交互橋梁,PAMS-I便攜自動氣象站的串口型號為DB9,文章也采用DB9串口。由于ESP8266芯片的串行數據輸出為TTL電平,而不是標準的RS-232電平,同時ESP8266芯片的供電電壓為 3.3 V,因此文章采用MAXIM公司的MAX3232電平轉換芯片將TTL電平與RS-232電平進行轉換。MAX3232是一種能夠實現 RS-232 與 TTL 兩種邏輯電平相互轉化的專用芯片,芯片內部包含二路接收器和二路驅動器以及1個電源電壓變換器,且只需3.3 V電源供電。MAX3232芯片的硬件接口十分簡單,單片機的串行接收端RXD和串行發送端TXD可直接連接到 MAX3232 的相應端口上[5]。
將串口轉換模塊連接在PAMS-I上,ESP8266芯片上的21、22號管腳連接到串口TTL上的TXD和RXD接口,ESP8266芯片上的8、15號管腳并聯到ESP8266的VCC和GND引腳并連接到LM2596S DC-DC直流可調降壓電源模塊,電源模塊負責將PAMS-I的12 V電壓轉換成3.3 V電壓供電。
1)登錄NodeMCU網站,網址為https://nodemcu-build.com/,登錄網頁后在“Your email”下的編輯框輸入自己的郵箱地址用于接收定制好的固件;
2)在“Select modules to include”選框內勾選ADC、HTTP和SJSON 3個功能(如圖1,其余7個基礎選項是默認選好的不需要去改變,共有10個功能);

圖1 選擇需要定制的功能
3)勾選完成后,點擊網頁左下方的“Start your build”按鈕,5 min后,生成的固件程序下載地址就會發送到預留的郵箱里,只需從下載地址下載固件程序即可;
4)將ES8266的15、18號管腳進行短接,使芯片進入燒寫模式,打開燒寫工具“ESP8266Flasher-x86-v0.9.2.4.exe”,在“配置”選項卡里只勾選“INTERNAL://FLASH”選項,其他選項均不勾選,然后選擇下載好的固件程序,在“操作”選項卡里點擊“一鍵燒寫”按鈕,待進度條結束,若左下角出現綠色的“完成”字樣則表示固件燒寫成功。
1)運行“LuaLoader.exe”程序導入配置好的應用程序,在命令欄的“setting”選項中打開串口,命令輸出框會彈出ESP8266芯片中的固件信息,可以看到之前定制的固件信息。若未彈出信息,則需更改右上角的波特率,找到正確的波特率即可正常連接。然后點擊“Upload File…”,選擇要導入的應用程序。
2)導入應用程序后,點擊右下角的“file.list”查看已經導入的程序文件列表,目前該改造項目導入的文件有5個:“init.lua”、“httpServer.lua”、“index.html”、“udp.lua”和“index1.html”。導入完成后檢查文件是否齊全,確認需要導入的文件均導入成功后,點擊“Restart”開始運行程序。
3)應用程序列表
init.lua:芯片里的IP信息和端口設置、連接設備的IP地址和端口信息、ESP8266生成的無線WiFi信號的名稱和密碼都寫在該文件中。
httpServer.lua:http基礎服務的應用程序,該程序為網頁程序的基底,寫入該程序后html的網頁程序才能生效。
udp.lua:UDP服務程序,文件包括了串口設置和UDP服務器參數設置[6,7]。
index.html:主頁面程序,輸入IP地址可查看ESP8266芯片的IP地址和連接設備的IP地址。
index1.html:配置應用程序導入頁面,可導入init.lua和udp.lua文件,如果修改過這兩個文件,可以通過該網頁導入。
1)安裝虛擬串口程序USR-VCOM并生成虛擬串口(圖2),其中目標端口和本地端口在寫入ESP8266的應用程序里的“init.lua”文件中。

圖2 用USR-VCOM設置虛擬串口
2)用筆記本電腦的無線網卡連接ESP8266發射出來的無線信號,設置信息都寫在了“init.lua”文件中,將筆記本電腦的無線網卡設置為自動獲取IP地址。
3)啟動便攜自動氣象站的接收端軟件,然后點擊命令欄的“系統參數設置”,在串口“通訊傳輸”框內選擇要使用的COM端口號。
4)選好接收軟件的串口后,查看USR-VCOM里的虛擬串口是否變為“開啟”,若變為“開啟”則表示接收軟件已經成功連接虛擬串口,然后查看“網絡接收”和“串口接收”兩處是否有數字增加,若有數字增加則表示已經開始正常收發數據,此時等待接收端軟件接收便攜自動氣象站的數據即可。
基于物聯網無線傳輸芯片ESP8266改造的無線傳輸系統電路簡單可靠、經濟實用,通過該系統能夠解除PAMS-I型便攜自動氣象站近端傳輸時的有線束縛,使傳輸更便捷,提升了便攜自動氣象站的使用安全性。目前該設備已應用于三明市氣象裝備網絡和裝備保障中心便攜站的應急響應和防恐演練,將來會逐步推廣到其他縣、市的便攜自動氣象站中。