Рубрики
Проекты на Raspberry Pi

Подключение датчика температуры DS18B20 к Raspberry Pi Pico

В этой статье мы рассмотрим подключение датчика температуры DS18B20 к плате Raspberry Pi Pico с помощью MicroPython. Ранее мы считывали данные встроенного температурного датчика с Raspberry Pi Pico. Но в этом случае мы подключим к плате внешний датчик температуры, такой как DS18B20.

DS18B20 — это 1-проводной программируемый датчик температуры от компании Maxim Integrated, которому требуется только одна линия данных для связи с центральным микропроцессором. Поскольку протокол связи цифровой, вы можете использовать любой цифровой контакт микроконтроллера RP2040.

Код micropython требует несколько библиотек DS18B20, таких как onewire и ds18x20. В первом примере мы просто прочитаем значение температуры с DS18B20 и Raspberry Pi Pico в оболочке Thonny IDE. Во втором примере мы будем использовать 0,96″ I2C OLED-дисплей для отображения показаний температуры.

Также ранее на нашем сайте мы рассматривали подключение датчика температуры DS18B20 к другим микроконтроллерам и платам:

Необходимые компоненты

  1. Плата Raspberry Pi Pico (купить на AliExpress).
  2. Maxim Integrated DS18B20 Programmable Resolution (цифровой датчик температуры DS18B20) (купить на AliExpress).
  3. Модуль OLED дисплея SSD1306 128×64 с диагональю 0.96 дюйма и интерфейсом I2C (купить на AliExpress).
  4. Резистор 4,7 кОм (купить на AliExpress).
  5. Макетная плата.
  6. Соединительные провода.

Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158

Водонепроницаемый цифровой датчик температуры DS18B20

Это предварительно подключенная и водонепроницаемая версия датчика DS18B20. Удобно, когда вам нужно измерить что-то на большом расстоянии или во влажных условиях. Датчик может измерять температуру в диапазоне от -55 до 125 °C (от -67 °F до +257 °F). Кабель покрыт оболочкой из ПВХ.

Поскольку он цифровой, нет ухудшения сигнала даже на больших расстояниях. Эти 1-проводные цифровые датчики температуры довольно точны, т. е. обеспечивают точность измерения температуры ±0,5°C в большей части диапазона. Он может выдавать до 12 бит точности от встроенного цифро-аналогового преобразователя. Они отлично работают с любым микроконтроллером, использующим один цифровой вывод.

Единственный их недостаток в том, что они используют протокол Dallas 1-Wire, который довольно сложен и требует кучу кода для разбора коммуникации. Мы добавляем резистор 4,7 кОм, который требуется в качестве подтягивающего от линии DATA к линии VCC при использовании датчика.

Дополнительную информацию об этом датчике можно найти в техническом описании датчика DS18B20.

Схема подключения

Схема подключения датчика температуры DS18B20 к плате Raspberry Pi Pico представлена на следующем рисунке.

Датчик питается от контакта 3,3 В Raspberry Pi Pico, а GND датчика подключен к GND платы. Аналогично цифровой контакт датчика подключен к GPIO22 Raspberry Pi Pico. Цифровой контакт подключен через резистор 4,7 кОм.

Исходный код программы

Я использовал thonny IDE, которая поддерживает Micropython на Raspberry Pi Pico. Вам нужно импортировать библиотеки для работы с датчиком DS18B20. Для этого требуются библиотеки OneWire и DS18X20. Загрузите библиотеки по следующим ссылкам.
Библиотека DS18B20 MicroPython
Библиотека OneWire MicroPython

Щелкните по файлу, находящемуся внутри загруженной папки, а затем скопируйте содержимое всего файла.

Нажмите кнопку New («Новый») в Thonny IDE, чтобы открыть пустой скрипт, и вставьте следующий код.

Мы использовали контакт GP22 платы Raspberry Pi Pico для подключения цифрового контакта датчика DS18B20. Сохраните указанный выше файл с расширением .py. Затем вы можете запустить код. После этого вы должны увидеть вывод в Thonny Shell.

Вы должны выполнить функцию convert_temp(), чтобы инициировать считывание температуры, затем подождать не менее 750 мс перед считыванием значения. Вы используете функцию read_temp, чтобы вернуть значение, а затем мы делаем паузу на 5 секунд и запускаем это снова.

Отображение температуры на OLED дисплее

Теперь давайте напишем дополнительный код для отображения считанного значения температуры на OLED-экране. Схема подключения для этого варианта представлена ниже. Подключите выводы SDA и SCL OLED-дисплея к выводам PICO GP8 и GP9 соответственно. Подключите выводы VCC и GND OLED-дисплея к выводам 3,3 В и GND Pico. Вы можете использовать макетную плату для сборки всей схемы.

Для этого нам нужно сначала написать код драйвера для OLED дисплея, так как драйвер SSD1306 недоступен. Весь код разделен на 2 части:
1. ssd1306.py
2. Main.py

ssd1306.py

Откройте новую вкладку и скопируйте следующий код. Сохраните файл под именем SSD1306.py .

main.py

После загрузки SSD1306.py снова создайте новую вкладку и скопируйте следующий код. Сохраните этот код под именем main.py.

После запуска кода на OLED-дисплее начнет отображаться значение температуры.

Вот таким вот образом можно считывать данные о температуре с датчика температуры DS18B20 для платы Raspberry Pi Pico с помощью кода на MicroPython.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *