Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Я хотел измерить температуру и влажность с помощью своего 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". $ влажность; ?>