проблема с датчиком dht11
-
подключаю датчик по инструкции: https://github.com/adafruit/Adafruit_Python_DHT, создаю програмный файл dht_simpletest.py со страницы: https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/python-setup#. Сразу после перезагрузки raspberry все работает, выдает корректные данные, после остановки и повторного запуска программа выдает ошибку "Unable to set line 27 to input". В чем может быть проблема?
-
В любой программе, работающей с GPIO, должны быть два шага:
- Захват пина GPIO в начале работы
- Освобождение пина в конце работы программы.
У Вас я вижу захват пина:
# Initial the dht device, with data pin connected to: dhtDevice = adafruit_dht.DHT22(board.D18)
Но не вижу освобождения пина при выходе из программы. Поэтому, я предполагаю, что после завершения работы пргораммы пин не освобождается и, при повторном запуске, ОС не даёт его захватить повторно.
-
@sv-lary#6633ок, а как тогда прописать освобождение этого пина?
-
Вы используете библиотеку:
import adafruit_dht
Которую я не знаю. Посмотрите доку на неё. Там должно быть сказано.Если использовать обычную библиотеку Rpi.GPIO, то скелет любой программы должен выглядеть так:
import RPi.GPIO as GPIO # your init code try: # Здесь код, который и выполняет основную работу except KeyboardInterrupt: # Код, обрабатывающий ctrl-c except: # Код для всех других прерываний finally: # Обязательно!!! Освобождаем все PIN GPIO.cleanup()
-
@sv-lary#6635 Спасибо, буду пробовать.