MicroPython ESP32 读取DS18B20温度数据

MicroPython ESP32 读取DS18B20温度数据


在这里插入图片描述

  • DS18B20
    在这里插入图片描述

  • 接线图
    在这里插入图片描述

  • 本示例基于Thonny平台开发

引入的模块

from ds18x20 import DS18X20
import time, onewire 
from machine import Pin

示例代码

DS18B20接在ESP32 的22号引脚上

from ds18x20 import DS18X20
import time, onewire 
from machine import Pin
OneWirePin = 22
def readDS18x20(): 
    # the device is on GPIO22
    dat = Pin(OneWirePin)
    # create the onewire object
    ds = DS18X20(onewire.OneWire(dat))
    # scan for devices on the bus
    roms = ds.scan()# 扫描挂载在单总线上的ds18B20设备
    ds.convert_temp() # 数据转换
    time.sleep_ms(750)
    values = []   

    for rom in roms:
        values.append(ds.read_temp(rom))
        
    # values.append(u"℃")
    print(values,r"℃")
    return values
while True:
    readDS18x20()
    time.sleep(5)

示例二

from ds18x20 import DS18X20
import machine,onewire,time

def read_temp():
    # the device is on GPIO22
    dat = machine.Pin(22)
    # create the onewire object
    ds = DS18X20(onewire.OneWire(dat))
    # scan for devices on the bus
    roms = ds.scan()
    # print('found devices:', roms)
    print('temperature:', end=' ')
    ds.convert_temp()
    time.sleep_ms(750)
    temp = ds.read_temp(roms[0])
    print(temp,end='℃\n ')
    return temp
while True:
    read_temp()
    time.sleep(3)



  • Shell调试窗口输出
    在这里插入图片描述

示例三

读取单总线上的温度传感器10次温度数据,取平均值。注意这里的10次温度数据并不一定指来自一个温度传感器的数据,可能是挂载在单总线上多个温度传感器的数据。

from ds18x20 import DS18X20
from onewire import OneWire
from machine import Pin
import time

def status():
        dat = OneWire(Pin(22))
        ds = DS18X20(dat)
        roms = ds.scan()

        if not len(roms):
            print("Nao encontrei um dispositivo onewire.")
            return None

        ds.convert_temp()
        time.sleep_ms(750)

        temp = 0
        for i in range(10):
            for rom in roms:
                temp += ds.read_temp(rom)       
        return temp / 10
    
while True:
    print(status(),end='℃\n ')
    time.sleep(3)



  • Shell调试窗口输出
    在这里插入图片描述
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值