物联网开发笔记(38)- 使用Micropython开发ESP32开发板之控制温度传感器(DS18B20)

一、目的

        这一节我们学习如何使用我们的ESP32开发板来控制温度传感器(DS18B20)实时检测当前环境的温度。

二、环境

        ESP32 + 温度传感器 + Thonny IDE + 几根杜邦线

接线示意图:

+ 号连接开发板VIN,-号连接开发板的GND,out连接开发板的D13

 三、代码

MicroPython有现成的API:Quick reference for the ESP32 — MicroPython latest documentation

 注意:一条线上可以接多个温度传感器设备,所以用到了scan来读取连接的设备列表。

from machine import Pin
import onewire, ds18x20
import time


ds_sensor = ds18x20.DS18X20(onewire.OneWire(Pin(13)))


def read_ds_sensor():  # 创建一个读取温度的函数
    roms = ds_sensor.scan()  # 扫描总线上的设备
    print('扫描发现的设备: ', roms)
    ds_sensor.convert_temp()  # 温度转换
    for rom in roms:  # 循环打印出设备列表
        temp = ds_sensor.read_temp(rom)  # 读出该设备的温度
        if isinstance(temp, float):  # 以小数点后2位输出,例如23.35
            temp = round(temp, 2)
            return temp
    return 0


while True:
    if(read_ds_sensor() < 25):
        print("温度低了,请开启加热器!")
    if(read_ds_sensor() > 30):
        print("温度高了,请开启制冷器!")    
    time.sleep(1)

 

四、演示效果

五、温度传感器购买

        同样我们淘宝上收到一家,推荐给大家,大家也可以货比三家:

        DS18B20是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化,低功耗,高性能,抗干扰能力强,易配微处理器等优点,可直接将温度转化成数字信号处理器处理。

测量的温度范围是-55~125℃,测温误差0.5℃。可编程分辨率9~12位,对应的可分辨温度分别为0.5℃0.25℃0.125℃0.0625℃


https://item.taobao.com/item.htm?spm=a230r.1.14.60.4b004883c18wl8&id=611368710720&ns=1&abbucket=8#detail

 

产品特点:

一、长尺寸:28mm X宽12mm X高10mm
二、主要芯片:18B20温度传感器
三、工作电压:直流5V

四、特点:

1、分辨率调整范围:9-12位

2、带安装孔方便安装,孔径:2.5

3、温度测量范围:-55~+125℃

4、温度测量精度:0.5℃

5、工作电压:DC5V

6、数字信号输出

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔都飘雪

您的1毛奖励是我创作的源源动力

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

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

打赏作者

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

抵扣说明:

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

余额充值