
Поставил четыре датчика влажности на одну шину I2C — и они разошлись на 10%
ZiyaraGo 24 минуты назад Поставил четыре датчика влажности на одну шину I2C — и они разошлись на 10% Простой 5 мин 1.1K Arduino * DIY или Сделай сам Программирование микроконтроллеров * Электроника для начинающих...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: ZiyaraGo 24 минуты назад Поставил четыре датчика влажности на одну шину I2C — и они разошлись на 10% Простой 5 мин 1. 1K Arduino * DIY или Сделай сам Программирование микроконтроллеров * Электроника для начинающих Туториал У каждого датчика температуры и влажности в даташите написана своя погрешность. Но честная проверка -не читать даташит, а положить несколько штук в один и тот же воздух и снять показания в один и тот же момент.
Я взял четыре популярных копеечных модуля с AliExpress - BME280, BMP280, AHT20 и HDC1080 - посадил их на одну шину I2C к одной ESP-шке и вывел всё на одну веб-страницу: у каждого датчика живое значение и график тренда, рядом. Температуры совпали в пределах полуградуса. А вот с влажностью получилось интересно: один датчик показал на почти 10 процентных пунктов больше соседнего, который лежал в пяти миллиметрах от него.
Технические детали
Ниже - как это выглядело, почему так вышло и на чём собран сам дашборд (спойлер: это несколько строк C++, без единой строчки фронтенда). Зачем вообще сравнивать датчикиЕсли вы логируете теплицу, серверную, террариум или просто следите за микроклиматом в комнате, сдвиг влажности в 10% - это разница между «норма» и «тревога». Проблема в том, что по одному голому модулю вы никогда не узнаете, врёт он или нет: цифра выглядит правдоподобно, график ровный, всё «работает».
Расхождение вылезает только когда рядом стоит второй датчик и показывает другое. Так что цель была простая: поставить четыре разных чипа бок о бок и посмотреть, кто с кем согласен. ЖелезоВсё подключение - это буквально четыре провода.
В этом и весь смысл I2C: все датчики делят одни и те же SDA, SCL, 3V3 и GND, а различаются только адресом на шине. - ESP8266 (Wemos D1 mini) или ESP32 - 200–400 ₽- BME280 (0x76) - температура + влажность + давление- BMP280 (0x77) - давление + температура, влажности нет- AHT20 (0x38) - температура + влажность- HDC1080 (0x40) - температура + влажностьНа ESP8266 шина - это SDA = D2 (GPIO4), SCL = D1 (GPIO5); на ESP32 - GPIO21 / GPIO22. Адреса у всех четырёх разные, так что конфликта нет.
Отраслевые последствия
Отдельная история - вот эта фиолетовая плата:Классическая ловушка AliExpress: на шелкографии написано сразу пять названий - SI7021 / HTU21D / SHT21 / SHT20 / HDC1080. Это одна и та же печатная плата, на которую распаивают любой из пяти разных чипов, и у них разные драйверы. Если не знаете, что вам приехало, - сканер I2C покажет адрес, а по адресу уже можно опознать чип.
У меня на 0x40 сидел HDC1080 (библиотека ClosedCube HDC1080). РезультатыВсе четыре вышли на связь одновременно. Вот что показал живой дашборд:| Датчик | Адрес | Температура | Влажность | Давление --------------|---------|----------------|-------------|-------------- BME280 | 0x76 | 28.
3 % | 967 hPa BMP280 | 0x77 | 29. 0 °C | — | 968 hPa AHT20 | 0x38 | 28.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





