通过软串口实现Co2传感器被动问询返回浓度数据
2022-02-062.1万
AI 快速预览详细
本文介绍了如何通过软串口实现CO2传感器的被动问询并返回浓度数据。首先定义了问询帧字符串和软串口,然后定义了问询帧发送函数和返回帧输出函数。最后通过循环执行问询和读取输出,实现了稳定的CO2浓度数据读取。提供了详细的代码和步骤,适用于Arduino平台,使用SoftwareSerial库。
![]() 如上图,官方描述说,软串口输出数据与读取数据同时使用,可能导致数据异常,我在读取co2传感器项目中测试一下这个问题,好像没遇到? 测试项目如下: 1、主程序相关定义 首先定义一个问询帧字符串,正常情况下使用unsigned char mind_s_co2ask[9] = {0xFF, 0x01, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0xF9};这样定义就行,可是mind+中只有列表可以用,只能用笨办法制造一个; 然后定义软串口,初始化软串口和物理串口; ![]() 2、定义问询帧发送函数 定义一个向软串口发送问询帧函数,共9位,需要进行类型转换,原始输出成HEX格式; ![]() 3、定义返回帧输出函数 如上图,定义向物理串口输出返回帧函数,连续读取12位返回帧数据,需要转换成ascii码字符串并进行合并; ![]() 4、循环执行问询和读取输出 循环执行问询帧发送,软串口返回帧数据读取以及物理串口输出返回帧数据即可; ![]() 5、完成效果 串口输出数据前面红色部分是HEX格式的问询帧数据,后面部分是传感器返回的CO2浓度数据 ![]() ps:其实如果用手动编程方式,几行代码就搞定了; mind+这种积木编程模式非常好,就是变量类型和函数太少了,而且使用方式也不一样,对于初学者来说,容易引起困惑,希望在后续升级中越来越完善。 |










默认的变量类型为了初学者(没有任何编程基础的小白)使用方便只保留了数字和字符串两种类型,数组这种可以尝试使用开放用户库来自定义一个高级库满足各种高级玩法。