1. Простая метеостанция на STM32F103

  2. STM32F103

    BMP280

    HTU21D

    SSD1306

    DS18B20

Чтоб длительные новогодние выходные не прошли совсем уж бесцельно, решил чем-нибудь себя занять. Приближающиеся лютые морозы + давно лежащие в столе ( купленные когда-то на Али) различные метеодатчики и прикольный OLED экранчик натолкнули на мысль сделать наконец метеостанцию. Все делают, и я должен сделать (очередную).

Итак, в наличии было:

  • плата с микроконтроллером STM32F103
  • OLED-дисплей 128X64 0,96 дюйма SSD1306
  • модуль с датчиком температуры и влажности HTU21D
  • модуль барометрического давления и температуры воздуха BMP280
  • датчик температуры DS18B20 TO-92

Соответственно, станция меряет температуру за окном, температуру в комнате, относительную влажность в комнате и давление. Температуру в комнате меряет встроенным в датчик влажности термометром.

На плате установлен фоторезистор для определения уровня освещенности. OLED-дисплей светит довольно ярко и в темноте дисплей переключается в режим пониженной яркости. Кроме этого светлый фон меняется на тёмный. Это немного щадит дисплей, чтоб не выгорал. Говорят, что срок службы у них не очень большой, поэтому может есть смысл брать сразу парочку с расчетом года на три.

Текущие цены на компоненты примерно такие:

Компонент Цена
STM32F103 плата с микроконтроллером (например популярная Blue pill) до 100 рублей
SSD1306 OLED-дисплей 128X6 0,96 дюйма до 150 рублей
HTU21D датчик температуры и влажности до 100 рублей
BMP280 датчик давления до 100 рублей
DS18B20 датчик температуры до 100 рублей за 5 штук

Принципиальная схема

Принципиальная схема  метеостанции

Принципиальная схема метеостанции в формате Splan7: (доступно зарегистрированным пользователям)

Датчики давления, влажности и дисплей имеют интерфейс i2c. Это позволяет посадить их всех на одну шину, что уменьшает количество проводов.

Датчик температуры DS18B20 выносной, для измерения температуры за окном. Он подключается отдельно по схеме с активным питанием.

У меня из-за неудачной компоновки встроенный датчик температуры оказался довольно близко к греющемуся трансформатору. Поэтому он постоянно врёт в плюс на пару градусов, не помог даже жестяной экран. Он греется вместе с трансформатором :) Не повторяйте мою ошибку

Золотистый блок на плате - это датчик CO2. Он пока не подключен. Экранчик слишком маленький, чтоб туда выводить еще и показания CO2, поэтому я пока не решил, как поступить. Возможно, добавлю второй экранчик 128x32, чтоб рисовать график содержания углекислого газа.

Прошивка

Версия 1.0.0 от 08.01.2023: (доступно зарегистрированным пользователям)

Пока всё. Отвечу на вопросы в комментариях. Исходники не рассылаю.

ОБСУЖДЕНИЯ

Аватар пользователя Oldradar

Спасибо дружище! Залил прошивку, подключил дисплей и фоторезистор.Всё работает!!! Остальные датчики жду из Китая. Скоро приедут. С уважением. Владивосток.