ESP32 PM2.5测试

在STM32上测了,但是发现 ESP32和STM32的串口用法稍有区别,特此记录一下


ESP32串口用法(UART)

基础用法

# 导入模块
from machine import UART
#构建UART对象
uart = UART(2, baudrate=9600,rx=22,tx=23,timeout=10)
#UART(id, baudrate, bits, parity, rx, tx, stop, timeout)
id : 串口编号:ESP32的UART资源只有两个, id有效取值范围为1,2

bandrate: 波特率(时钟频率):常用波特率为:9600(默认),115200,信息接受双方的波特率必须一致,否则会乱码。

bits:单个字节的位数(比特数)8 (默认)79

parity: 校验方式:None 不进行校验(默认),0 偶校验,1 奇校验

rx:接收口的GPIO编号

tx:发送口的GPIO编号

stop: 停止位个数:1 (默认),2

timeout: 超时时间:取值范围: 0 < timeout ≤ 2147483647

检测数据

uart.any() # 检测是否有数据

# if uart.any():
#	uart.read()  # 有数据就读取。

读写

uart.read(10)            # 读入10个字符, 返回一个比特对象
uart.read()              # 读取所有的有效字符
uart.readline()          # 读入一行
uart.readinto(buf)       # 读入并且保存在缓存中
uart.write('xianyu')     # 向串口写入6个字符xianyu
uart.readchar()          # 读入一个字符
uart.writechar(42)       # 写入ASCALL码为42的字符
uart.writechar(ord('*')) # 等同于uart.writechar(42)

PM2.5测试

所选设备

ESP32在这里插入图片描述
PM2.5模块
5003 G5
在这里插入图片描述
模块原理
在这里插入图片描述
有效值
在这里插入图片描述

接线说明

8根线,我们只用3根(VCC GND和TXD)。通电就传数据,我们只要接数据,提取就行。
在这里插入图片描述

开发板PM2.5
22TX
5vVCC
GNDGND
from machine import UART
#ESP32可以映射引脚,初始化的时候设置就行,串口号一般设置成2(0和1尽量别用。)
import timeuart= UART(2, baudrate=9600, bits=8, parity=None, rx=22, stop=1, timeout=100) 

while True:    
	time.sleep(1)  
	if uart.any():        
		u1=uart.read()   
		#print(u1)     
		PM2_5= u1[6]*256+u1[7]          # 6,7位PM2.5
		PM10 = u1[8]*256+u1[9]          # 8.9位PM10
		print("PM2.5为:",PM2_5,"um")        
		print("PM10为:",PM10,"um")

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸鱼桨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值