КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

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




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

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

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

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

Подключение

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

Вывод модуля Вывод Pi Pico
Vcc 3V3(OUT)
GND GND
S GP15

Установим переключатель на модуле в положение 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)



Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями