吴静霞 承浩 吴秦宇
(沙洲职业工学院,江苏 张家港 215600)
热电偶是工业上使用的一种简单可靠的温度传感器,LoRa技术是LPWAN((Low Power Wide Area Network)低功耗广域网通信技术中一种可以实现超远距离无线传输、低功耗、大容量的无线传输技术。目前多路热电偶数据采集一般为单机系统,无线数据传输大多采用蓝牙技术,传输距离有限。本文从硬件架构设计以及核心模块介绍入手,阐述实现32路K型热电偶温度测量、温度通道切换、串口屏库函数显示等功能的方法,用LoRa技术实现组建无线传感网,实现超远距离传输温度信号。
系统硬件总体组成架构框图如图1所示。采用多主机与多从机结构,主机用定时轮询方法采集温度值并通过LoRa发送,从机通过LoRa接收并处理温度数据。主机与从机核心MCU均采用STM32系统,以及人机交互键盘、LED、DWIN迪文串口彩屏等。主机通过通道切换电路轮询采集32路或以上K型热电偶温度。LoRa无线模块实现温度数据打包远距离传输。从机不仅可以作为显示终端,而且能够实现温度报警或提醒。从机可以同时置放在多处地方,均能够实时同步监测温度数据。
图1 系统硬件总体组成架构
MCU采用电子产品设计与制作核心芯片STM32F103ZET6。该MCU使用32位ARM Cortex-M3内核,LQFP144封装,72MHz工作频率,拥有512k Flash、11个定时器、3个12bitADC、USB、CAN、UART等。对于目前系统该MCU的资源显得冗余,实际项目中可以使用STM32F103RCT6等M0内核且管脚较少的MCU,也可以用MSP430,PIC、HolTek、STC等公司的单片机替代。
最小系统使用8MHz晶振与32.768KHz的RTC晶振、复位电路、BOOT启动电路、JTAG下载接口、键盘与LED、电源转换电路等。[1]
K型热电偶是由2种金属材料镍铬与镍硅以及延长补偿导线构成的测温传感器装置[2],结构简单,具有稳定性和重复性好、抗氧化性能强、价格便宜等优点。
本系统K型热电偶温度测量采用MAXIM公司设计的、带有冷端温度补偿的K型热电偶转换芯片MAX6675,其测温范围为0-1024℃,精度0.25℃,12bit分辨率,SPI接口,内置冷端温度补偿与校正电路,可以有效消弱热电偶导线引入的噪声,内置ADC把热电偶的电动势模拟信号转换为温度数字信号,通过SPI总线与MCU通信,读出温度值。
图2为其中一路热电偶测量采集电路。MAX6675的通信控制线有3根,分别为SO信号线、SCK时钟线、CS片选线。MCU通过控制CS片选线电平来轮询读取32路或以上热电偶信号。
图2 MAX6675测量电路
系统中使用2片74HC154译码器,芯片在PIN18与PIN19门控管脚低电平时有效,PIN20-PIN23为4路输出选择控制引脚,分别连接ABCD 4路信号,电路图如图3所示。
图3 MAX6675片选信号选择电路
电路中把2个门控管脚连接在一起实现“线与”,只要一个控制信号即可控制这2个管脚。MCU使用6个GPIO口分别连接到G0/G1/A/B/C/D信号端,以控制2片74HC154译码器32路信号的输出,达到控制32路热电偶测量芯片的CS管脚电平。逻辑真值表如表1所示。
表1 通道选择控制逻辑真值表
当G0与G1都为高电平时,32路热电偶通道均未选中;当G0=0,G1=1时,CS16-CS31未选中,CS0-CS15通过ABCD信号选择控制信号任意时刻选中其中一路热电偶通道,如ABCD=0111时,选中CS7通道,其他通道类似;当G0=1,G1=0时,CS0-CS15未选中,CS16-CS31通过ABCD信号选择控制信号任意时刻选中其中一路热电偶通道,如ABCD=0111时,选中CS23通道,其他通道类似。系统如果需要扩展通道数,可以继续增加74HC154芯片,每增加一片芯片,可以增加16路通道。
传感网中通信技术有Zigbee、Bluetooth、Wi-Fi等,低功耗广域网(LPWAN)有3G、4G、NB-IOT、LoRa等。由于LoRa技术具有免通信费、长距离、低功耗等特点,在局域组网与数据传输中得到广泛应用。LoRa技术是美国Semtech公司提供的一种基于扩频技术的超远距离无线传输方案。[3]这种方案解决了传统无线技术中传输距离远与功耗低之间的矛盾,为用户提供了一种既能实现远距离,又可以实现长电池寿命与大容量的系统的无线传感网络系统。目前LoRa主要运行在包括433、868、915MHz等ISM免费频段上。
本系统无线传输选用正点原子公司的ATK-LORA-01模块。该模块采用SX1278扩频芯片,工作频率为410MHz-441MHz,以1MHz频率为步进间隔分为32个信道,双512环形FIFO,最大发射功率20dBm(约100mW),通信距离达3km,组网最多可配置65536个地址,支持广播和定向传输,使用UART串口与MCU通信,支持从1200-115200共8种波特率。选用模块除电源管脚与串口管脚外,还有2个管脚分别为MDO与AUX,用于配置与指示,如表2所示。
表2 LoRa模块引脚功能
模块共有4种通信模式:模式0为一般模式,即无线透传模式,接收方必须是模式0或1;模式1为唤醒模式,与模式0唯一的区别是数据包发射前,自动增加唤醒码,这样才能唤醒工作在模式2的接收方;模式2为省电模式,串口接收关闭,无线处于空中唤醒模式,收到无线数据后才能打开串口发出数据,发射方必须是模式1,该模式下串口接收关闭,不能无线发射;模式3为信号强度模式,该模式下可以查看通讯双方的信号强度,接收方必须是模式0或1。
MCU或串口工具软件可通过AT指令修改或查询串口波特率、发射功率、空中速率、工作模式等各种参数。如“AT+MODEL”是查询设备型号,“AT+RESET”使得复位模块,“AT+TPOWER=3”设置模块发射功率为3档(20dBm),“AT+ADDR=12,AB”把模块地址设置为0X12AB,“AT+CWMODE=1”配置模块工作模式为模式1,“AT+WLRATE=24,2”配置通信信号为24以及无线速率为2档2.4kbps。
工控串口屏目前广泛应用于工业自动化、智能家电等,MCU或串口助手只需要通过串口便可以轻松实现所需要的人机显示界面。本项目使用湖南迪文公司的串口屏DMT48270C043_04WN。该屏为4.3寸65K色TFT显示,分辨率为480×270像素,384Kbytes字库空间,512Kbytes图片与图标存储空间,支持SD卡载入图片与图标库,支持显示二维码。
通信串口数据帧由帧头、指令、数据、帧结束符4部分组成,帧头固定为0XAA,帧结束符固定为0XCC33C33C。不同的功能有不同的指令码,如字符串文本显示指令为0X11,数据格式为(Mode,Color,Bcolor,(x,y),Strings);变量文本显示的数据格式为(Mode,Color,Bcolor,Num_I,Num_F,(x,y),Datas);二维码指令为0X21,JPEG图片指令为0X22,图标库指令为0X23。所使用的主要库函数如图4所示。
图4 迪文串口屏库函数
程序设计的主机部分程序如图5所示,主要任务是初始化硬件,包括时钟、RTC、2个串口、定时器、SPI、按键与LED等的初始化,然后根据按键扫描切换页面与设定值,系统实时显示时钟,定时采集并显示32路热电偶温度,通过LoRa发送该地址主机测量的温度数据。温度采集采用多次采集滤波处理的方法来减小误差。从机打开串口中断接收,收到数据后在屏幕中显示,或做其他报警处理。LoRa模块测试时配置为透明传输,实际组网时配置为模式2之省电模式。
图5 主机程序流程图
由于实验室条件所限,高温测量使用带PID控制的温控焊台配合Bakon191测温台,常温采用常规水银温度计。受限于测量环境条件,测量数据存在一定误差与跳变,如表3所示。但是理论上MAX6675精度足够,选用来源可靠的热电偶,加上合适的算法,可以保证测量的准确性。
表3 对比测试数据
编程时注意串口屏显示函数尽量不要在主程序与定时器里嵌套使用,否则可能会产生乱码。在连续发送显示时加延时间隔,可提高接收处理可靠性。
LoRa与NB-IOT均属于低功耗广域网。由于发射功率与型号不同,部分LoRa模块在空旷条件下有效传输距离可达到15km。LoRa虽然与NB-IOT在硬件上有所区别,但均属于窄带通信,而且工作在免费频段。
由于温度测试条件有限,本项目目前只是依赖于处理芯片公布的参数,在精度上可能存在一定的不确定性,但是可以为企业多路温度测量的远距离传输提供一种新的方法与思路。