對於許多領域,如人難以到達的偏遠環境、高腐蝕和對現場無法可循的有線連線環境,選擇有線資料採集傳輸系統顯然已無法滿足資料採集和傳輸的需要。
這種無線資料採集方式已成為一種有效的替代方法,它作為現代資料監測控制的基礎技術,已被越來越多地應用於物聯網、工業控制、環境監測等領域。
ESP32是樂鑫繼ESP8266之後推出的一款藍芽系統級晶片,它結合了Wifi功能,以ESP32強大的處理能力、低功耗和高速穩定的Wifi通訊等為特徵。
採用ESP32主控晶片構成的無線資料採集系統,採用ESP32連線晶片進行資料採集,並用無線Wifi模組連線指定網路,利用Socket介面與上位機通訊,將採集到的資料傳送到上位計算機系統。
透過SPI介面連線ESP32模組作為SPISlave(被動式SPI裝置),與資料來源模組相連,SPIActivity(SPIActivity);ESP32透過AP(無線接入點);建立一個乙太網絡與主機連線。
在系統執行過程中,資料來源模組定期向ESP32模組傳送資料,ESP32系統則在其中快取資料;資料採集透過WiFi網路,在與主機連線時,仍能與主機保持連線。由上位機實現資料的儲存和實時顯示。
當ESP32用於SPISlave時,SPIMaster只能等待SPIMaster啟動通訊連線,並基於主機提供的時鐘訊號接收資料。ESP32主程式設計主要包括兩個模組:Wifi網路配置模組和執行緒與佇列模組。
而Wifi網路配置模組負責網路的配置,執行緒和佇列模組負責實現無線資料採集系統的主要功能:SPI資料採集和網路資料傳送。
WEB伺服器執行緒模組為主機提供資訊查詢功能,使得主機能夠在ESP32系統中透過瀏覽器獲得執行資訊。
ESP32晶片支援高速、穩定的WIFI通訊,支援三種模式:"AP"、"STA"、"AP+STA"。為了確保ESP32系統能及時、有效地接收和傳送資料,需要透過佇列來保持SPI資料採集執行緒與資料傳送執行緒之間的資料同步。
ESP32透過SPI協議傳輸資料,考慮到ESP32有限的記憶體和SPI驅動機制,實現了SPI資料採集和兩個執行緒之間的資料傳遞。
由於採用了DMA機制,建立的環狀緩衝區需將DMA存取的儲存器空間申請給系統,個別儲存器大小的選擇應根據每個儲存器傳送的資料的長度來選擇。
在ESP32連線上WIFI並獲得了AP所分配的IP之後,就可以透過Socket介面與上位機進行通訊,傳送所獲資料。Socket是ESP32與主機之間進行通訊的介面。
ESP32主動向上位機發出連線請求,上位機在接通之前開啟監聽器的Socket介面,實時監視客戶的請求,一旦連線建立,ESP32與上位機就可以進行通訊。
在ESP32無線網路配置中,對資料收發程式進行了詳細的設計和說明,同時設計了ESP32系統的WEB服務程式,為上位機提供了便利。
以ESP32為核心的無線資料採集與傳輸系統程式設計合理,使用方便,提高了抗干擾能力和資料傳輸效率。