对于许多领域,如人难以到达的偏远环境、高腐蚀和对现场无法可循的有线连接环境,选择有线数据采集传输系统显然已无法满足数据采集和传输的需要。
这种无线数据采集方式已成为一种有效的替代方法,它作为现代数据监测控制的基础技术,已被越来越多地应用于物联网、工业控制、环境监测等领域。
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为核心的无线数据采集与传输系统程序设计合理,使用方便,提高了抗干扰能力和数据传输效率。