Источники питания Keen Side
РадиоЛоцман - Все об электронике

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Мастер Кит DHT11

В этом материале мы рассмотрим, как подключить к Raspberry Pi 3 широко распространенные датчик влажности и темперHатуры DT11 и LCD-дисплей размерности 1602 (шестнадцать символов в строке, две строки) на базе контроллера HD44780. Большинство выпускаемых различными производителями дисплеев не имеют поддержки кириллицы, но для отображения значений температуры и влажности такой недостаток не имеет принципиального значения.

Вебинар «Как выбрать идеальный силовой модуль: решения SUNCO для силовой электроники» (03.12.2024)

Мы будем использовать дисплей с очень удобным переходником на микросхеме PCF8574T, который позволяет управлять дисплеем по протоколу I2C всего по двум проводам, не считая питания +5 В и земли. При обычных способах подключения дисплея к микроконтроллеру требуется 8 или 12 линий. Подключение по I2C существенно экономит вводы-выводы общего назначения (GPIO) Raspberry, которые могут понадобиться для подключения других устройств, и никак не мешает наблюдать относительно медленно меняющиеся параметры.

Датчик DHT11 требует для подключения всего один провод линии данных, также не считая питания и земли. Его следует питать напряжением +3.3 В. DHT11 имеет собственный протокол обмена данными 1-Wire.

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Разберем пошагово установку программного обеспечения и подключение внешних устройств. Мы использовали операционную систему Raspbian Jessie With Pixel, скачанную с сайта raspberrypi.org и плату Raspberry Pi 3 Model B.

Шаг первый.

Подготовим Raspberry к установке необходимого программного обеспечения. Если у вас свежая версия Raspbian, то, скорее всего, необходимые модули уже установлены. Но, на всякий случай, лучше застраховаться.

Откройте терминал и наберите следующие команды:

sudo apt-get update

sudo apt-get upgrade

Первая команда синхронизирует и обновит индексные файлы установленных в системе пакетов, вторая – обновит все установленное на данный момент программное обеспечение. Это занимает некоторое время.

Шаг второй.

Разрешим, если это еще не сделано, использование в системе протоколов I2C и 1-Wire. Для этого введем команду

sudo raspi-config

в открывшемся меню с помощью стрелок вверх/вниз и клавиши Enter зайдем в Interfacing Options, последовательно откроем соответствующие пункты меня и разрешим (выбрав “Y” при запросе) использование I2C и 1-Wire. Клавишей Tab установим маркер на , нажатием на Enter выйдем в меню верхнего уровня, выберем , нажмем Enter. Для выхода на предыдущий уровень меню также можно использовать клавишу . После выхода в терминал необходимо перезагрузить систему. Это можно сделать, введя команду

sudo reboot

После перезагрузки необходимо изменить файл конфигурации модулей так, чтобы необходимые модули попали в автозагрузку. Для этого необходимо открыть в редакторе nano файл modules:

sudo nano /etc/modules

Добавьте в открывшийся для редактирования файл к имеющимся строкам еще две строки:

i2c-dev

i2c-bcm2708

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Если какая-либо из этих строк уже имеется в файле, ее добавлять не надо.

Выйдем из редактора, нажав и ответив “Y” на вопрос о сохранении файла.

Шаг третий.

Теперь необходимо установить библиотеки smbus и I2C для Python. Для этого последовательно введите в терминале команды:

sudo apt-get update (еще раз обновим индексные файлы)

sudo apt-get install –y python-smbus i2c-tools (собственно установка библиотеки)

sudo reboot (перезагрузка)

Проверим, установилась ли библиотека? Наберем в терминале

lsmod | grep i2c

Если в появившемся отклике системы есть строка i2c_bcm2708, то это значит, что библиотека установлена успешно.

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Шаг четвертый.

Настало время подключить датчики к выводам GPIO Raspberry. Повторим схему разъема GPIO для наглядности. Перед подключением внешних устройств обязательно отключите Raspberry от питания!

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Подключим LCD-экран и датчик DHT11 в соответствии со следующей таблицей:

Контакты I2C LCD Контакты GPIO Raspberry Описание
GND 6 Земля
VCC 2 +5 В
SDA 3 GPIO 2 (I2C1_SDA)
SCL 5 GPIO 3 (I2C1_SCL)
 
Контакты DHT11 Контакты GPIO Raspberry Описание
GND 9 Земля
DATA 8 GPIO 14
VCC 1 +3.3 В

Шаг пятый.

Включим питание Raspberry и проверим, обнаруживает ли операционная система устройство, подключенное по шине I2С? Введем в терминале команду (она входит в установленную на третьем шаге утилиту i2c-tools):

sudo i2cdetect 1

В ответ система выдаст такую информацию:

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

На пересечении строки, помеченной цифрой 20, и столбца 7 мы видим адрес единственного подключенного устройства – 27 (в системе счисления по основанию 16). Теоретически, адрес может быть и другим. Запомним его, он нам понадобится в дальнейшем. Если на одного адреса не отображается, это означает, что либо устройство не подключено, либо оно подключено неверно, либо необходимое программное обеспечение не установлено.

Шаг шестой.

Все предварительные действия закончены. На этом шаге мы настроим и запустим программу на языке Python, которая отобразит температуру и влажность, полученные с датчика DHT11 на дисплее. Загрузим файлы из файлового хранилища: dht11.py и raspi-dht11-i2clcd.py. Первый из них является драйвером датчика DHT11. Он используется в основной программе, которая находится во втором файле.

Введем в терминале

sudo wget https://masterkit.ru/zip/dht11.py ,

затем

sudo wget https://masterkit.ru/zip/raspi-dht11-i2clcd.py

Команды можно объединить в одну (имена файлов указываются через пробел):

sudo wget https://masterkit.ru/zip/dht11.py https://masterkit.ru/zip/raspi-dht11-i2clcd.py

Файлы будут загружены в рабочий каталог /home/pi.

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

После загрузки необходимо отредактировать адрес LCD-дисплея на шине I2C, который мы наши пятом шаге, в нашем случае он равен 27. Занесем его в основной файл программы. Откроем файл raspi-dht11-i2clcd.py на редактирование в редакторе nano:

sudo nano /home/pi/ raspi-dht11-i2clcd.py

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

По умолчанию адрес 27 задан в переменной I2C_ADDR = 0x27. Если адрес на пятом шаге не равен 27, следует подставить его значение.

Сохраняем изменения Ctrl-O, закрываем редактор Ctrl-X.

Изменить файл можно и более привычным (для пользователей Windows) способом в редакторе среды программирования Python двойным кликом на файле основной программы:

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Редактируем и сохраняем файл.

Запустить программу можно из терминала, из среды программирования, а также автозагрузкой при включении питания. Последний способ нужен, если мы планируем использовать Raspberry автономно: без подключения мыши, клавиатуры или удаленного управления.

Запуск из терминала:

sudo python raspi-dht11-i2clcd.py

Запуск из редактора среды программирования Python (см. рисунок внизу):

Run->Run Module или F5.

Автозапуск:

Введите в терминале команду, открывающую на редактирование новый файл dht11-lcd.desktop:

sudo nano /etc/xdg/autostart/dht11-lcd.desktop

В открывшемся окне редактора nano введите 8 строк:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=dht11-lcd
Comment=
Exec=sudo python /home/pi/raspi-dht11-i2clcd.py
Terminal=false
Type=Application

и сохраните.

Теперь при включении питания будет автоматически запускаться интерпретатор Python с файлом raspi-dht11-i2clcd.py, что приведет к исполнению нашей программы.

Raspberry Pi 3 - подключаем датчик DHT11 и LCD-дисплей

Мастер Кит

38 предложений от 18 поставщиков
Датчик позволяет измерять влажность и температуру.Питание 3,5 - 5,5VDHT11 — это цифровой датчик влажности и температуры, состоящий из термистора и емкостного...
Датчик температуры и влажности DHT-11 TZT95 ₽
Akcel
Весь мир
DHT11от 100 ₽
T-electron
Россия и страны СНГ
DHT11 Digital Temperature and Humidity Sensor187 ₽
Augswan
Весь мир
DHT11по запросу
Электронные компоненты. Скидки, кэшбэк и бесплатная доставка от ТМ Электроникс
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя