2254|5

1667

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

兆易RISC-V内核的GD32VF103串口读取PM2.5传感器 [复制链接]

  本帖最后由 火辣西米秀 于 2021-8-6 07:16 编辑

传感器: 攀藤PMS5003;
硬件连接:
VCC  -- 5V
GND -- GND
TX  -- PB11(RX2)
RX -- PB10(TX2)
基本流程
1. 串口2连接传感器。查阅手册得知,该传感器为5V供电(根据手册,风机为5V供电),串口为3.3V电平,可以直接使用GD32VF103的任何一个串口进行通讯。为了保险起见,此处选择USART2,使用PB10、PB11,这两个IO是5V容忍的。串口速率 9600 8 N 1
2. 串口获取32字节数据,存入buffer中
3.根据手册计算checksum,若传输正常,则计算PM2.5浓度。以CF=1 PM2.5浓度为例,根据手册,第8号字节为数据高8位,第9号字节为数据低8位,故计算结果为(buffer[8] << 8) + buffer[9]

其他说明:
1. 早期传感器RX口没有任何作用,近期的传感器RX口可以接收一些指令,如进行主被动传输控制等,如不需要可以不连接。DEMO程序中并未实现相关控制逻辑。
2. 传感器包括两个控制引脚,SET用于使传感器进入低功耗模式,RESET用于模块复位,均为低电平有效。本实验并未使用这两个控制引脚,如需要减少电力消耗,延长传感器寿命,可以定期使传感器进入休眠状态。具体使用参考传感器手册。
3. 以上代码适用于型号包括但不仅限于G1(PMS1003),G3(PMS3003),G5(PMS5003),数据定义与下图中数据定义相同的型号可以使用。

硬件连接图:

 
程序清单(部分):

void init_USART2(); // 参考上一篇 【分享】 GD32VF103串口收发实验(中断方式) ,将其中的中断处理部分去除int plantower(){  uint8_t buffer[32];  // 初始化接收缓存  int buffer_offset = 0;  while(1){ // 循环读取串口数据    if(usart_flag_get(USART2,USART_FLAG_RBNE)==SET){ // 根据文档定义,取得以0x42,0x4d开头的32字节数据      uint8_t serial_recv = usart_data_receive(USART2);      if(buffer_offset == 1 && serial_recv != 0x4d){        buffer_offset = 0;      }    if(buffer_offset==0 && serial_recv != 0x42) {      continue;    }else{      buffer[buffer_offset] = serial_recv;      ++buffer_offset;    }  }    if(buffer_offset > 31) {break;}}// 计算checksum并与checksum字段比较,确保传输无误  int checksum = 0;  for(int i=0;i<30;++i){    checksum += (int)buffer;  }  if (checksum != (buffer[30] << 8) + buffer[31]){    return 0;  }// 计算PM2.5 和 PM10(未使用)  int pm2_5 = (buffer[8] << 8) + buffer[9];  int pm10 = (buffer[10] << 8) + buffer[11];  return pm2_5;}int main(void) {  init_USART2(); // 初始化串口  int pm2_5 = plantower(); // 获取传感器数据  printf("pm2_5=%drn",pm2_5);  return 0;}

据格式:

   

最新回复

攀藤这个模块有点小贵。不过也算PM2.5模块里面比较便宜的了   详情 回复 发表于 2021-8-6 15:37
点赞 关注
 
 

回复
举报

9161

帖子

6

TA的资源

管理员

沙发
 

感谢分享

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

1412

帖子

3

TA的资源

版主

板凳
 

感谢分享,PM2.5模块还是很简单的。

点评

是这样的  详情 回复 发表于 2021-8-8 21:07
个人签名

没有什么不可以,我就是我,不一样的烟火! 

 
 
 

回复

7452

帖子

18

TA的资源

五彩晶圆(高级)

4
 

攀藤这个模块有点小贵。不过也算PM2.5模块里面比较便宜的了

点评

是的,整体不算太贵  详情 回复 发表于 2021-8-8 21:08
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

1667

帖子

0

TA的资源

五彩晶圆(初级)

5
 
annysky2012 发表于 2021-8-6 13:31 感谢分享,PM2.5模块还是很简单的。

是这样的

 
 
 

回复

1667

帖子

0

TA的资源

五彩晶圆(初级)

6
 
freebsder 发表于 2021-8-6 15:37 攀藤这个模块有点小贵。不过也算PM2.5模块里面比较便宜的了

是的,整体不算太贵

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表