Подключение датчиков к Raspberry Pi 3 на конкретном примере

Одна из ключевых возможностей Raspberry Pi любой версии – это способность взаимодействовать с различными датчиками. Это обусловлено тем, что у данного одноплатника имеется собственный GPIO.

Подключение датчиков к Raspberry Pi 3 на конкретном примере 7907
Тэги

Одна из ключевых возможностей Raspberry Pi любой версии – это способность взаимодействовать с различными датчиками. Это обусловлено тем, что у данного одноплатника имеется собственный GPIO (хотя при желании можно подключить и дополнительный).

Рассматривать подключение датчиков к Raspberry Pi 3 довольно тяжело, так как соответствующих модулей существуют десятки. Также для взаимодействия с ними требуется код. Найти его, в свою очередь, можно на GitHub, GitLab и в прочих хранилищах. А при желании его можно написать самостоятельно, изучив официальную документацию и располагая базовыми знаниями Python.

Ниже будет рассмотрен процесс подключения датчика на конкретном примере. Наиболее часто из Raspberry Pi 3 делают метеостанции. Поэтому для рассмотрения можно взять датчик ds18b20, который фиксирует температуру.

Подключение датчика ds18b20 к RPi3

Сразу следует отметить, что ds18b20 подключается к Raspberry Pi 3 точно так же, как и к другим моделям "Малины". Поэтому ниженаписанное можно использовать в том числе для настройки датчика и на других версиях платформы.

Первое, что потребуется – это присоединить датчик температуры к GPIO Raspberry Pi 3. Его нужно установить так:

  • напряжение – 3,3 Вольта;
  • заземление;
  • порт GPIO4.

Подключение датчиков на Raspberry Pi 3

После того, как физическое подключение датчика температуры к Raspberry Pi 3 было выполнено, можно поставить необходимые модули ядра. Их всего 2. Из-под sudo (для этого можно указать в консоли команду sudo -i и ввести пароль) требуется выполнить пару команд: modprobe w1-grio и modprobe w1-therm.

Первый модуль нужен, чтобы на порту GPIO4 активировался протокол 1-wire. Второй же необходим, чтобы система могла непосредственно считывать температурные показатели с соответствующей шины.

Здесь есть очень важный момент. После перезагрузки модули снова будут неактивны, поэтому их придется опять загружать. Но исправить это очень легко. Нужно всего лишь вписать их названия в файл /etc/modules. Для этого из-под sudo следует набрать команду nano /etc/modules и добавить в конец файла w1-gpio и w1-therm (каждый с новой строки), а затем сохранить изменения.

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

Как проверить работоспособность датчика ds18b20 на RPi3?

На Raspberry Pi 3 датчики пишут данные в файлы. Конкретно ds18b20 записывает их каталог со своим серийным номером, который, в свою очередь, располагается в директории /sys/bus/w1/devices. Он появляется после подключения, но может не сразу, а спустя несколько секунд.

проверка датчика температуры на Raspberry Pi 3

Название соответствующего каталога примерно такое: 00-000000000a0b. Поэтому после подключения зайдите и проверьте, есть ли там что-то похожее. Следует отметить, что если подключены несколько датчиков, то придется узнавать серийный номер каждого из них опытным путем. Это возможно сделать, например, прогревом и снятием показателей или поочередным подключением.

Но предположим, что датчик всего 1. Чтобы проверить его работоспособность нужно в консоли вписать следующую команду: cat СЕРИЙНЫЙ_НОМЕР/w1_slave. После нажатия на Enter выведется сообщение.

В первой строке будет присутствовать контрольная сумма в шестнадцатеричной системе счисления и CRC. Если значение crc равно последнему числу, то выводится YES, а если нет – NO. В первом случае датчик сообщает, что он правильно определил температуру, а во втором – нет.

Вторая строка – это как раз данные температуры. То, что указывается в шестнадцатеричной системе полностью соответствует значению выше. То, что левее – это его перевод в десятичную форму. Интересно то, что значение t (температура) указывается в 1000 раз больше, чем есть на самом деле. Поэтому если после знака "=" указывается, например, 26398, это означает 26,3 градуса Цельсия. Данный факт следует учитывать при написании кода.

Как возможно убедиться, заставить работать датчик температуры на RPi3 очень просто. Примерно так же выполняется подключение к Raspberry Pi 3 и dht11, dht22, ds3231 и многих прочих.



Оставить комментарий

Обучение разработке Raspberri Pi
Хочешь научиться делать крутые штуки с RaspberryPi? Оставь заявку и мы отправим тебе информацию о наших курсах.
Каталог курсов

Автор курса Сергей Кузнецов, специалист по Raspberri Pi