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

Решено HTU21D - модуль влажности и температуры

ivy

New member
HTU21D не хочет работать с LUA по спецификации. Пробовал:
- Обе прошивки NodeMCU: целочисленную и с плавающей запятой.
- i2c сканер выдает разные адреса после каждой перезагрузки.
- Шину пуллапил и отпускал - без разницы.
- Пробовал модули этот и этот - без разницы. В каждом модуле были свои баги. Пофиксил, но безрезультатно.
- Пробовал общаться с сенсором через разные адреса - не отвечает ни на какие.
- Пробовал опрашивать с локом и без лока шины (E3, E5 -> F3, F5).
- Поменял сам сенсор (чтоб исключить проблему железа).
- Пробовал поменять клок и дата местами - а вдруг? Не прокатило.
- На англоязычном форуме ничего полезного не нашел.

Кто-нибудь подружился с HTU21D? Что я упускаю? Помогите, пожалуйста.
С другими типами i2c сенсоров общаюсь без проблем по спецификации.
 
Последнее редактирование:

ivy

New member
Разобрался. Оказывается, когда SDA и SCL назначены на GPIO 0 и 2 соответственно, HTU21D работает с NodeMCU.
Хотя под Arduino IDЕ он работает с любыми пинами.
Еще одна рабочая пара: SDA, SCL = 14, 12.

Если даже просто поменять пины местами физически и в программе, то не работает. Т.е. 0 и 2 работает, 2 и 0 не работает. Может поможет кому-нибудь.
 

sweeper

New member
Разобрался. Оказывается, когда SDA и SCL назначены на GPIO 0 и 2 соответственно, HTU21D работает с NodeMCU.
Хотя под Arduino IDЕ он работает с любыми пинами.
Еще одна рабочая пара: SDA, SCL = 14, 12.

Если даже просто поменять пины местами физически и в программе, то не работает. Т.е. 0 и 2 работает, 2 и 0 не работает. Может поможет кому-нибудь.
Спасибо, помогло, тоже долго голову морочил этот htu хотя bmp работал без проблем в любом сочетании на этих же gpio
 

Anatoliy_chel

New member
Имею похожую проблему. Использую скетч от библиотеки SparkFunHTU21D. Подключаю HTU21D к Arduino Uno - работает. Тот же скетч к NodeMCU LUA v3 на D1 и D2 не видит датчик (выдает 998). Вешаю на эти же контакты T6703 - работает. Пробовал другую библиотеку - аналогично не видит. Пробовал указывать разные gpio - никакого эффекта. Именно HTU21D не хочет работать ни на каких. В чем может быть дело?
#include <Wire.h>
#include "SparkFunHTU21D.h"


//Create an instance of the object
HTU21D myHumidity;

void setup()
{
Serial.begin(9600);
Serial.println("HTU21D Example!");

myHumidity.begin();
}

void loop()
{
float humd = myHumidity.readHumidity();
float temp = myHumidity.readTemperature();

Serial.print("Time:");
Serial.print(millis());
Serial.print(" Temperature:");
Serial.print(temp, 1);
Serial.print("C");
Serial.print(" Humidity:");
Serial.print(humd, 1);
Serial.print("%");

Serial.println();
delay(1000);
}

При этом рабочие примеры из интернета обычно сделаны на V2. Неужели именно в V3 что то изменилось?
 

p.p.g

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

Что то у меня так и не получилось
Подключил вот по такойсхеме https://kit.alexgyver.ru/tutorials/htu21d/ показывает 999 температуру и 999 влажность вне зависимости ни от чего, попробовал этот же датчик на ардуино нано всё работает как часы. Где @ivy что меняли?
 
Сверху Снизу