В этом посте я хочу поделиться опытом сборки компактной, но полнофункциональной метеостанции на основе микроконтроллера ESP32. Устройство отображает температуру, атмосферное давление и высоту над уровнем моря на ярком TFT-экране 1.44 дюйма. Возможность точной калибровки датчика, через монитор порта, для получения правильных данных.
Что нам понадобится?
- Микроконтроллер: ESP32 DEVKIT V1 (30 pin)
- Дисплей: TFT 1.44" с разрешением 128x128 пикселей (на чипе ST7735)
- Датчик: BMP180 (давление и температура)
- Провода для соединения
- Среда разработки: Arduino IDE
Схема подключения
Собрать устройство очень просто — нужно соединить компоненты согласно следующим таблицам.
Подключение дисплея TFT 1,44
Дисплей = ESP32
VVC = 3.3V
GND = GND
CS = GPIO5
RESET= GPIO4
AD (DC) = GPIO2
SDA = GPIO23
SCL (SCK) = GPIO18
LED = 3.3V
Подключение датчика BMP180
BMP180= ESP32
VIN = 3.3V
GND = GND
SCL = GPIO22
SDA = GPIO21
Важно: Датчик BMP180 использует шину I2C, поэтому SDA и SCL подключаются к соответствующим пинам ESP32. Дисплей работает по SPI, и его пины подключаются к любым цифровым GPIO, которые мы укажем в коде.
Программная часть
За основу взят код, который не только считывает данные, но и позволяет их калибровать.
Не забудьте подключить библиотеки;
Adafruit_GFX
Adafruit_ST7735
Adafruit_BMP085
Ссылку на папку с кодом можно найти в конце статьи.
Самая важная часть: калибровка
Показания атмосферного давления с датчика BMP180 могут немного "плавать". Чтобы получить точные данные, особенно для расчета высоты, необходима калибровка. В этом проекте она выполняется через монитор порта.
1. Калибровка давления:
- Узнайте точное атмосферное давление в вашей местности (например, из приложения погоды).
- В Serial-мониторе введите команду: CAL 750.0 (где 750.0 — ваше значение).
- Датчик запомнит поправку (offset).
2. Калибровка высоты:
- Введите команду: ALT 120.0 (где 120.0 — ваша реальная высота над уровнем моря в метрах).
- Прошивка рассчитает точное давление на уровне моря, что критически важно для корректного расчета высоты.
После калибровки данные на дисплее становятся максимально точными.
Как это работает в реальности
На дисплее выводится четыре строки:
- Temp: Температура в °C.
- Press: Атмосферное давление в гектопаскалях (hPa) с учетом калибровки.
- Alt: Высота над уровнем моря в метрах.
- Time: Время работы устройства в секундах.
В левом верхнем углу мигает индикатор, показывающий, что система работает.
Итог
В результате мы получили автономную метеостанцию, которая:
- Отображает актуальные данные о температуре, давлении и высоте.
- Имеет простую и надежную схему подключения.
- Позволяет провести точную калибровку для профессионального использования.
- Основана на популярных и недорогих компонентах.
Ссылка на папку с кодом.
Этот проект — отлично подойдёт новичку, для изучения программирования и сборки устройств на основе Ардуино, esp 32 и других отладочных плат.

EmoticonEmoticon