Метеостанция
Метеостанция

Всем привет! Меня зовут Георгий, я начинающий ардуинщик, и это история создания моей первой метеостанции, это мой самый первый проект, который позволил взглянуть на мир роботехники и других электронных устройств. С этим проектом я выступал в конкурсе РЦ Вега и мог бы занять первое место, если бы сами места не раскупили. Расскажу, как прошел путь от идеи до готового устройства, с какими проблемами столкнулся и почему самодельная станция может быть лучше магазинной.

Зачем мне это?

Многие хотят иметь дома прибор, который показывает температуру, влажность и давление. Можно просто купить готовую станцию в магазине, но цены на нормальные модели кусаются, а дешевые питаются от батареек, которые вечно садятся в самый неподходящий.

Я поставил цель: сделать устройство, которое:

  • работает от сети;

  • выводит данные на олед дисплей;

  • измеряет температуру, влажность и давление в комнате и на улице;

  • можно положить на рабочий стол;

Выбираем компоненты

Макетка
Макетка

За основу взял Arduino Nano — недорогая, компактная много информации в интернете о ней. Дальше я начал пробовать и экспериментировать, постепенно добавляя компоненты:

Компонент

Модель

Назначение

Микроконтроллер

Arduino Nano

Мозги

Датчик влажности и температуры

DHT 11

Для комнаты

Датчик температуры и давления

BME280

Для комнаты

Дисплей

OLED 128x64 0.96

Показывает значения

Датчик темп. и влажн.(уличный)

DHT 21

Для улицы

Часы реального времени

DS1302

Время

Схема подключения

Схема
Схема
  • DHT 11 > D6;

  • DHT 21 > D8;

  • BME280 > по I2C(A4, A5);

  • OLED дисплей > по I2C(A4, A5);

  • часы DS1302 > D2, D3, D4;

  • кнопка > D7;

Проектируем корпус в FreeCAD и печатаем

3д модель корпуса и крышки
3д модель корпуса и крышки

Когда «начинка» заработала, встал вопрос: куда это все положить? Можно было купить готовый корпус, но интереснее сделать свой. Тем более у меня есть доступ к 3D-принтеру.

После моделирования экспортировал в STL и подготовил к печати в UltiMaker Cura. Настройки: PLA, слой 0.2 мм, заполнение 20%.

Первую версию пришлось выкинуть — пластик дал усадку, и компоненты не влезли. Откорректировал модели и напечатал заново. Это нормальный процесс, без такого никуда.

Программирование

Писал в Arduino IDE. Использовал библиотеки:

  • stDHT.h — для датчиков влажности;

  • GyverButton.h — для кнопок;

  • iarduino_RTC.h — для часов;

  • iarduino_OLED_txt.h — для олед экрана;

  • Adafruit_BMP280.h — датчик давления и температуры;

Фрагмент кода:

Проблемы, с которыми столкнулся:

  • конфликты библиотек – искал совместимые версии;

  • I2С – адреса оказались нестандартными;

  • данные с DHT11 иногда вылетали — добавил проверку на ошибки;

Итоги

Что получилось:

  • питание от сети;

  • почти точные измерения;

  • маленький корпус;

  • 6 режимов отображения;

Что можно добавить:

  • WiFi и подключение через;

  • дополнительные датчики;

Другие интернет ресурсы

3д модели и код можно найти в моём телеграм канале: