Главная chevron_right Наши уроки chevron_right Raspberry Pi Pico: Подключаем датчик температуры 18B20

Raspberry Pi Pico: Подключаем датчик температуры 18B20

Подключаем цифровой датчик температуры DS18B20 к Raspberry Pi Pico через протокол OneWire и Trema-модуль Pull Switch UP/DOWN. Читаем показания в MicroPython через Thonny IDE.

Общие сведения

В этом уроке мы рассмотрим работу с цифровым датчиком 18b20. Датчик передаёт данные по протоколу OneWire, те есть по одному проводу. То есть к датчику необходимо подключить питание (VCC, GND) и одну линию данных. Для корректной работы этой линии необходимо "подтянуть" её к положительному напряжению при помощи резистора с сопротивлением от 1 кОм. Для удобства работы и подключения мы воспользуемся Trema-модулем Pull Switch UP/DOWN.

Для этого урока нам понадобится:

Для работы данных примеров в Pi Pico необходимо загрузить прошивку MicroPython и установить Thonny IDE, о том как это сделать можно прочитать в этой статье /page/pi-pico-python-ide

Подключение

Подключим Trema-модуль Pull Switch UP/DOWN согласно таблице

Вывод модуляВывод Pi Pico
Vcc3V3(OUT)
GNDGND
SGP15

Установим переключатель на модуле в положение UP и подключим датчик

Получаем данные от датчика в оболочке

Вводите данные строчки в оболочке, одну за другой:

Импортируем библиотеку вывода

>>> from machine import Pin

Импортируем библиотеку датчика

>>> from ds18x20 import DS18X20

Импортируем библиотеку протокола

>>> from onewire import OneWire

Создаём объект датчика

>>> sensor = DS18X20(OneWire(Pin("GP15")))

Сканируем адреса на шине OneWire

>>> addresses = sensor.scan()

Получаем первый найденный адрес

>>> address = addresses[0]

Читаем температуру с датчика по адресу:

>>> sensor.read_temp(address)

В оболочку будет выведена температура в районе 70-90 градусов

85.0

Это температура в по шкале фаренгейта. Для конвертации температуры можно вызвать функцию convert_temp()

>>> sensor.convert_temp()
>>> sensor.read_temp()

26.5625

>>>

Выводим температуру через интервал

Скрипт периодически выводит показания датчика в оболочку. В данном скрипте используются все те же функции, что и выше.

from machine import Pin
from ds18x20 import DS18X20
from onewire import OneWire
from time import sleep_ms as delay

sensor = DS18X20(OneWire(Pin("GP17")))
sensor.convert_temp()

addresses = sensor.scan()
address = addresses[0]
print(address)
while True:
    tem = sensor.read_temp(address)
    print(tem)
    delay(500)

Комплект для повторения проекта

Что понадобится

Это быстрый ориентир по основным модулям и деталям. Полный список для повторения проекта смотрите в самой статье.

3 позиции
Все уроки