用来测量北方供暖管道/锅炉等的温度,实时发送给云服务器,当检测到异常时,通过电话报警通知用户,从而实现远程监控。
我们现在的产品是用于养殖场的环境监测,
温湿度检测模块用的是盛世瑞恩生产的温湿度传感器SHT30。
其通过IIC总线与主芯片通信,按我的理解,测量管道/锅炉的温度需要把探头贴合在其表面。
而SHT30用于检测环境温/湿度,不能贴在物体上面。不能满足用户的需求。
PT100更适合于这种使用场景。
因此,需要为客户再定制一款采用PT100的测温模块。
PT100
模块的设计要求
供电:5V
通信:485通信/IIC通信
测温范围:-40℃~+125℃
精度:+/-1℃
设计考虑
1)单片机选择STM32F030x4,资源如下
Cortex®-M0 CPU, frequency up to 48 MHz
One 12-bit, 1.0 μs ADC (up to 16 channels)
Internal 8 MHz RC with x6 PLL option
Digital & I/Os supply: VDD = 2.4 V to 3.6 V
Analog supply: VDDA = VDD to 3.6 V
选择TSSOP20封装,单价大概3元左右(最近芯片价格疯涨,目前可能需要近10元)。2) IIC还是RS485通信
从主控提供IIC以及RS485两种不同的通信方式给外接模块,其中RS485支持Modbus协议。
但是考虑到该测温模块的体积、成本等因素,
如果采用RS485通信,其内部8MHz RC晶振器的精度无法满足要求,
根据计算,在全温度范围内,时钟精度超过2%,将会导致误码。
而从STM32F030x4的规格书中可知,其内部8MHz RC振荡器的精度在25℃是为+/-1%,不能满足要求,需要外加高精度的晶振,这无疑增加了成本和占用的面积。
因此,应该选择IIC作为通信接口。
3) 怎么最大程序提高测试的精度
为简化设计和节省成本同时保证精度,选择OPA333用于信号处理,
其具有极低输入失调电压、轨对轨输出、单电源1.8V-5.5V供电等特点。
采用三线制的PT100,通过电桥,以及差分放大消除连线电阻,干扰信号的影响。
采用LDO AMS1117-3.3V将5V电压降压到3.3V给单片机供电;
电桥的供电、以及运放OPA333的供电采用3.3V的电源;
由于电桥没有采用精密稳压电源供电,PT100输出的电压值精度受3.3V电源的影响。
而LDO的输出电压只能达到1%左右的精度。
为了降低这一影响,我利用了MCU内部电压为1.23V精密参考电压,对A/D转换结果,通过数学公式进行校正。
电路原理图
完整电路原理图
来源:物联网全栈开发