Оглавление:

Raspberry Pi / DHT11 - Измерение влажности и температуры: 4 шага
Raspberry Pi / DHT11 - Измерение влажности и температуры: 4 шага

Видео: Raspberry Pi / DHT11 - Измерение влажности и температуры: 4 шага

Видео: Raspberry Pi / DHT11 - Измерение влажности и температуры: 4 шага
Видео: Raspberry Pi и погода в доме. Датчик температуры и влажности DHT11 2024, Июль
Anonim
Raspberry Pi / DHT11 - Измерение влажности и температуры
Raspberry Pi / DHT11 - Измерение влажности и температуры

Я хотел измерить температуру и влажность с помощью своего Raspberry Pi. Я выбрал датчик DHT11, потому что он надежный и дешевый. Его настройка также хорошо документирована, но на этом пути есть ряд подводных камней, на которых я хотел бы сосредоточиться.

DHT11 имеет 4 контакта. Самый левый - для Vcc или положительного (+) вывода, который подключен к выводу Raspberry Pi 3.3V. Следующий контакт - это контакт данных, который должен быть подключен к контакту GPIO на Raspberry Pi. Эти два контакта должны быть подключены с помощью резистора 4,7 кОм.

3-й пин слева не используется. Крайний правый и четвертый контакты - это заземляющий или отрицательный контакт, который должен быть подключен к одному из заземляющих контактов на Raspberry Pi.

Шаг 1. Необходимые компоненты

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

1. Raspberry Pi

2. DHT11

3. Резистор 4,7 кОм

4. Различные макетные провода.

5. Макетная плата

Шаг 2: соединяем вещи

Соединяя вещи
Соединяя вещи
Соединяя вещи
Соединяя вещи

Подключите Raspberry Pi и DHT11 следующим образом:

DHT11 (+ контакт) RaspberryPi (контакт 3.3V)

DHT11 (вывод данных) RaspberryPi (вывод GPIO - я использовал GPIO22)

DHT11 (3-й контакт) Нет связи

DHT11 (- контакт) ------ Raspberry Pi (контакт заземления)

Шаг 3: Установка программного обеспечения

В командной строке RaspberryPi сделайте следующее: (ПРИМЕЧАНИЕ, не пропускайте SUDO)

sudo git clone

Вы должны увидеть - Клонирование в 'Adafruit_Python_DHT'… удаленное: Подсчет объектов: 249, готово. удаленный: Всего 249 (дельта 0), повторно используется 0 (дельта 0), повторно используется пакет 249 Получение объектов: 100% (249/249), 77,01 КБ, выполнено. Разрешение дельт: 100% (142/142), готово.

cd Adafruit_Python_DHT /

sudo apt-get update sudo apt-get install build-essential python-dev python-openssl

ls

Вы должны увидеть - Примеры Adafruit_DHT ez_setup.py LICENSE README.md setup.py source

cd Adafruit_DHT /

Вы должны увидеть -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py установить

(Обратите внимание: если вы пропустите этот шаг, вы можете увидеть ошибку обнаружения - Traceback (последний вызов последним):

Файл "./AdafruitDHT.py", строка 24, при импорте Adafruit_DHT ImportError: нет модуля с именем Adafruit_DHT)

CD примеры

sudo./AdafruitDHT.py 11 22 (11 = DHT11 и 22 = GPIO22, который вы выбрали ранее)

Вы должны увидеть Temp = 18.0 * Humidity = 46.0% (т.е. температура и влажность для вашей среды).

Шаг 4: что делать с выводом

Итак, как мы видели, вывод будет «Температура = 18,0 * Влажность = 46,0%».

Есть несколько способов использовать этот outpu, например, используя этот тестовый файл php, файл test_dht11.php

Во-первых, я переместил скрипт AdafruitDHT.py в / var / www /.

Чтобы протестировать и запустить php-скрипт, перейдите в / var / www, затем sudo php test_dht11.php

Вывод показывает два числа, представляющих температуру и влажность. Эти числа можно записать в базу данных или сравнить с пределами предупреждений и отправить предупреждение и т. Д

// <? php // раскомментируйте строку выше - инструкциям не нравится команда запуска php //test_dht11.php

// запускает файл Python для чтения датчика температуры DHT11

// и извлекаем значения температуры и влажности $ temperature = 0; $ влажность = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ test = shell_exec ($ exec_msg); // извлекает температуру $ my_pos = strpos ($ test, "Temp =", 0); $ temperature = substr ($ test, $ my_pos + 5, 4); эхо "\ n". $ temperature; // извлекает влажность $ my_pos = strpos ($ test, "Humidity =", $ my_pos); $ влажность = substr ($ test, $ my_pos + 9, 4); эхо "\ n". $ влажность; ?>

Рекомендуемые: