本文主要是介绍micropython中使用jw01二氧化碳传感器获取数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近要自制一个检测二氧化碳浓度的小工具,在网上买了jw01二氧化碳传感器,但CSDN上很多都是别的传感器的示例,还有C语言的示例。所以就写一个在树莓派pico上用UART获取二氧化碳传感器的这个示例。
所用的硬件为树莓派pico、jw01二氧化碳传感器、ssd130612864液晶显示器,原理是传感器通过串口将数据发送给pico,pico进行数据处理之后,在显示器上打出数据。
连线图如下图。
代码如下:
import time
from machine import I2C, Pin, UART
from ssd1306 import SSD1306_I2Ci2cShow = I2C(0, scl=Pin(21), sda=Pin(20), freq=400000) # SCL接21号口,SDA接20号
oled = SSD1306_I2C(128, 64, i2cShow)# 初始化UART
uartCO2 = UART(1, baudrate=9600, tx=Pin(8), rx=Pin(9))#注意传感器的TX要接树莓派的GP9(RX)# 读取二氧化碳浓度数据的函数
def read_co2_concentration():# 读取数据data = uartCO2.read()#print(data[0])#print(data[1])#print(data[2])#print(data[3])#print(data[4])# 计算浓度数值CO2 = data[1]*256 + data[2]return CO2while True: #主程序oled.fill(0) # 清空屏幕oled.text('CO2', 40, 10)oled.text('ppm', 85, 30)time.sleep_ms(1000)if uartCO2.any() > 0: #如果有数据print('有数据')# 从传感器读取二氧化碳浓度数据并打印co2_concentration = read_co2_concentration()co2_concentration = str(co2_concentration)#print(co2_concentration, "PPM")oled.text(co2_concentration, 30, 30)# 等待一段时间后再次读取time.sleep(3)oled.show() #oled屏幕显示
最终的效果如图:
这款二氧化碳传感器的型号是jw01-CO2-v2.2。I2C的资料确实没有找到,但UART方式就可以了,也非常简洁。
参考文章:
1329504532JW01-CO2-V2.2数字信号空气质量模块规格书 .pdf-原创力文档
https://pico.org.cn
https://blog.csdn.net/weixin_51684355/article/details/127033267
这篇关于micropython中使用jw01二氧化碳传感器获取数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!