Чтение датчика DHT22 с помощью NodeMCU

Я пытаюсь прочитать данные о температуре с DHT22 с помощью NodeMCU. Это мой сценарий:

function GetSensorData()
    print( "Trying to get temperature..." )
    pin = 4
    status, temp, humi, temp_dec, humi_dec = dht.read(pin)
    if status == dht.OK then
        print("DHT Temperature:"..temp..";".."Humidity:"..humi)
    elseif status == dht.ERROR_CHECKSUM then
        print( "DHT Checksum error." )
    elseif status == dht.ERROR_TIMEOUT then
        print( "DHT timed out." )
    end
end

-- MAIN
tmr.alarm(1, 1000, 1, function() GetSensorData() end)

Это дает мне следующий результат (снова и снова):

Пытаюсь измерить температуру ... Истекло время ожидания DHT. ....

Я перепробовал все возможные значения для «pin» и подключил вывод данных DHT22 ко всем GPIO моего NodeMCU.

Контакты соединяются так:

  • DHT22-VCC -> NodeMCU-3.3V
  • DHT22-GND -> NodeMCU-GND
  • DHT22-DATA -> NodeMCU-D0, D1, D2, D3, D4 (пробовал все)

У меня кончились идеи. В чем может быть проблема?


person Boris    schedule 13.02.2016    source источник
comment
Может быть, вы не храните nodemcu.readthedocs.org/en/ dev / en / modules / gpio в виду? С pin = 4 вам придется использовать GPIO2 на модуле.   -  person Marcel Stör    schedule 14.02.2016
comment
Да, булавки перепутал. Это решило это!   -  person Boris    schedule 14.02.2016
comment
Вы хотите, чтобы я отправил это в качестве ответа, чтобы вы могли закрыть вопрос?   -  person Marcel Stör    schedule 15.02.2016
comment
Конечно. В противном случае я мог бы сам добавить ответ.   -  person Boris    schedule 15.02.2016


Ответы (1)


Хорошо, поехали ...

Номера контактов должны быть сопоставлены с тем, что написано в модуле, с индексом, который вы используете в коде Lua. См. https://nodemcu.readthedocs.org/en/dev/en/modules/gpio. Например, с pin = 4 вам придется использовать GPIO2 в модуле.

person Marcel Stör    schedule 15.02.2016
comment
Я не понимаю, почему GPIO всегда выходит из строя с реальными номерами контактов. Почему бы им просто не спроектировать плату с соответствующими контактами и номерами GPIO? - person mfnalex; 25.07.2017