Skip to content
  • Категории
  • Главная
  • Документация
  • Последние
  • Пользователи
Collapse
  1. Главная
  2. Аппаратные модули
  3. Датчики, GPIO модули, HAT
  4. проблема с датчиком dht11

проблема с датчиком dht11

Запланировано Прикреплена Закрыта Перенесена Датчики, GPIO модули, HAT
5 Сообщения 1 Posters 88 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • piP Не в сети
    piP Не в сети
    pi
    написал в отредактировано
    #1

    подключаю датчик по инструкции: 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". В чем может быть проблема?

    1 ответ Последний ответ
    0
    • piP Не в сети
      piP Не в сети
      pi
      написал в отредактировано
      #2

      В любой программе, работающей с GPIO, должны быть два шага:

      1. Захват пина GPIO в начале работы
      2. Освобождение пина в конце работы программы.

      У Вас я вижу захват пина:

       # Initial the dht device, with data pin connected to:
      dhtDevice = adafruit_dht.DHT22(board.D18)
      
      

      Но не вижу освобождения пина при выходе из программы. Поэтому, я предполагаю, что после завершения работы пргораммы пин не освобождается и, при повторном запуске, ОС не даёт его захватить повторно.

      1 ответ Последний ответ
      0
      • piP Не в сети
        piP Не в сети
        pi
        написал в отредактировано
        #3

        @sv-lary#6633ок, а как тогда прописать освобождение этого пина?

        1 ответ Последний ответ
        0
        • piP Не в сети
          piP Не в сети
          pi
          написал в отредактировано pi
          #4

          Вы используете библиотеку:

          import adafruit_dht
          

          Которую я не знаю. Посмотрите доку на неё. Там должно быть сказано.

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

          import RPi.GPIO as GPIO  
          
          # your init code 
          try:  
              # Здесь код, который и выполняет основную работу
          
          except KeyboardInterrupt:  
              #  Код, обрабатывающий ctrl-c
          
          except:  
              #  Код для всех других прерываний
          
          finally:
              # Обязательно!!! Освобождаем все PIN  
              GPIO.cleanup()
          
          1 ответ Последний ответ
          0
          • piP Не в сети
            piP Не в сети
            pi
            написал в отредактировано
            #5

            @sv-lary#6635 Спасибо, буду пробовать.

            1 ответ Последний ответ
            0

            • Войти

            • Нет учётной записи? Зарегистрироваться

            • Login or register to search.
            • Первое сообщение
              Последнее сообщение
            0
            • Категории
            • Главная
            • Документация
            • Последние
            • Пользователи