m13-03 практика 15 мин

Проект 3: датчик по I2C на экран

Третий проект — датчик по I2C и вывод на экран. Это первый проект, который выглядит как устройство.

Что нужно: датчик (BME280 — температура, влажность, давление), экран OLED 128×64 на SSD1306, четыре провода, плата.

Подключение: VCC и GND на питание, SDA и SCL на пины I2C. У ESP32 по умолчанию SDA=21, SCL=22 (у разных плат бывает иначе). Подтяжки 4.7 кОм на обе линии, если их нет на модулях.

Адреса: BME280 — 0x76 или 0x77 (зависит от перемычки), SSD1306 — 0x3C или 0x3D. Первым делом сканер I2C: он покажет, что реально на шине.

Код: две библиотеки (Adafruit BME280 и Adafruit SSD1306), инициализация, чтение, вывод. Примеры есть в библиотеках — начинай с них, потом правь.

Что проверить, если пусто на экране:

  1. Адрес: сканер нашёл устройство?
  2. Питание: 3.3 В на модуле.
  3. Подтяжки: 3.3 В на SDA и SCL в покое.
  4. Земля: общая.
  5. Скорость: попробуй 100 кГц вместо 400.

Дальше: добавить кнопку переключения экранов, лог в Serial, отправку по Wi-Fi.

Время: 40–60 минут. Это проект, после которого становится понятно, как соединяются цифровые модули.

Зачем

Первый «настоящий» проект: датчик, шина, экран — типичная архитектура любительского устройства.

Сделай сейчас

Собери и выведи три величины. Подыши на датчик — влажность и температура должны вырасти.

Проверь себя

Сканер I2C показывает два адреса: 0x3C и 0x76. Что это значит?

На шине два устройства: экран (0x3C) и датчик (0x76). Адреса не конфликтуют, можно работать с обоими на одних линиях.

Пройти тест 5 заданий
0 из 102 · 0%
Источники
  1. SparkFun: I2C
    подключение датчика
  2. Спецификация I²C-bus (NXP UM10204) на i2c-bus.org
    адреса и подтяжки
Сначала прочитать
I2C: две линии и адреса
Компоненты
OLED-дисплей SSD1306
Входит в маршруты
Датчик на экран
Теги
проект i2c датчик