• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь DHT22 float_0.9.6-dev_20150704

brutevinch

New member
Не могу найти рабочий пример либы для DHT22 под билд nodemcu_float_0.9.6-dev_20150704.bin
Ткните носом пожалуйста. Все варианты либо не работают либо выдают неадекват типа:
Humidity: -0.1.9%
Temperature: -3276.7.2.9999999999272 deg C
Temperature: -5866.06.9.3999999998705 deg F

Буду очень спасибо всем кто поможет.
 

smartynov

New member
Не могу найти рабочий пример либы для DHT22 под билд nodemcu_float_0.9.6-dev_20150704.bin
Ткните носом пожалуйста. Все варианты либо не работают либо выдают неадекват типа:
Humidity: -0.1.9%
Temperature: -3276.7.2.9999999999272 deg C
Temperature: -5866.06.9.3999999998705 deg F

Буду очень спасибо всем кто поможет.
Если еще актуально – я работаю с DHT22 с либой dht, встроенной в прошивку NodeMCU. Все нормально считывает. Вот пример кода из документации:

Код:
pin = 5
status,temp,humi = dht.readxx(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 Time out." );
end
Если у Вас не работает, проверьте подключение и проверьте, соответствует ли либа датчику – у DHT11 и DHT22 разные протоколы взаимодействия.
 

Nurmukhamed

New member
Добрый день.

у меня есть esp-12e, припаял ее на адаптер, все gpio посадил через резистор 10к на 3.3в
подключил по схеме dht22, посадил ее на gpio5/pin1.

использовал скрипт

Код:
PIN = 1 --  data pin, GPIO2

dht22 = require("dht22")
dht22.read(PIN)
t = dht22.getTemperature()
h = dht22.getHumidity()

if h == nil then
  print("Error reading from DHT22")
else
  -- temperature in degrees Celsius  and Farenheit
  -- floating point and integer version:
  print("Temperature: "..((t-(t % 10)) / 10).."."..(t % 10).." deg C")
  -- only float point version:
  print("Temperature: "..(9 * t / 50 + 32).." deg F")

  -- humidity
  -- floating point and integer version
  print("Humidity: "..((h - (h % 10)) / 10).."."..(h % 10).."%")
end

-- release module
dht22 = nil
package.loaded["dht22"]=nil
получаю следующие данные.

Код:
> dofile("monDHT22.lua");
Temperature: 384.9.0000000000032 deg C
Temperature: 724.82 deg F
Humidity: -1.9%
> dofile("monDHT22.lua");
Temperature: 429.8.0000000000036 deg C
Temperature: 805.64 deg F
Humidity: -1.9%
> dofile("monDHT22.lua");
Temperature: 463.5.0000000000036 deg C
Temperature: 866.3 deg F
Humidity: -1.9%
>
 

smartynov

New member
у меня есть esp-12e, припаял ее на адаптер, все gpio посадил через резистор 10к на 3.3в
подключил по схеме dht22, посадил ее на gpio5/pin1.
Код:
dht22 = require("dht22")
Что именно Вы подключаете как require("dht22") – что это за либа, откуда Вы ее взяли? Думаю, что проблема в ней.

Как я писал, в последних прошивках NodeMCU встроенная поддержка протокола датчиков DHT – не надо ничего require(), просто сразу dht.readxx(pin).

Документация вот: https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en#dht-module-1
 
Сверху Снизу