weatherstation

Public

@gleb-vlasov

Download board files

Files for version 1. Pick what you came for.

Share weatherstation

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading 3D model… large boards can take a moment.

README

🌐 Language / Язык: 🇬🇧 English • 🇷🇺 Русский


🌦️ ESP32 Weather Station

A compact, WiFi-connected weather station built around the ESP32-WROOM-32.
Custom 2-layer PCB designed from scratch in KiCad.

VLASOV INDUSTRIES


📖 Overview

This is a fully custom weather station PCB designed around the ESP32-WROOM-32. Unlike a typical breadboard prototype, every component here sits on a purpose-built board — from the USB-to-UART bridge to the power regulation, sensor interface, and a modular display connector.

The device measures the local environment with an on-board BME280 sensor (temperature, humidity, and barometric pressure) and, thanks to the ESP32's built-in WiFi, can pull live weather data from the internet and display it on an attached screen. Four navigation buttons let you move through screens and menus directly on the device — no computer required after flashing.

Because the heart of the board is a full ESP32 with WiFi, this is far more than a thermometer. It's an open, programmable platform: you can extend it to show forecasts, multiple cities, air-quality indices, sunrise/sunset times, alerts — essentially anything available from a weather API — and control all of it with the four on-board buttons.


✨ Key Features

  • 📡 WiFi-connected — the ESP32 connects to any 2.4 GHz network, opening the door to live online weather data, forecasts, and remote APIs.
  • 🌡️ On-board BME280 sensor — measures local temperature, humidity, and atmospheric pressure, placed away from heat-generating components for accurate readings.
  • 🖥️ Modular display — a 7-pin SPI header lets you plug in a TFT screen. Swap or upgrade the display without redesigning the board.
  • 🎛️ Four-button control — UP / DOWN / OK / BACK buttons provide full on-device menu navigation. No serial console needed to interact with the device.
  • 🔌 USB-C + auto-flash — a CP2102 USB-to-UART bridge with a transistor-based auto-reset circuit means you can flash firmware over USB-C with a single click — no manual button presses.
  • 🛡️ ESD protection — a USBLC6-2SC6 protects the USB data lines from electrostatic discharge.
  • ⚡ Clean power — an AMS1117-3.3 LDO supplies a stable 3.3 V rail to the ESP32, sensor, and display.
  • 🧩 Infinitely extensible — every free GPIO is available for future modules: extra sensors, LEDs, buzzers, relays, and more.

🔧 How It Works

  1. Power & programming arrive over a single USB-C cable. The 5 V line feeds the AMS1117 regulator (which generates the 3.3 V rail for everything) and the CP2102 bridge.
  2. The CP2102 translates USB into UART so the ESP32 can be flashed. Two transistors driven by the bridge's DTR/RTS lines form an auto-reset circuit, putting the ESP32 into bootloader mode automatically during upload.
  3. The ESP32 runs the firmware. It reads the BME280 over I²C for local conditions and connects over WiFi to fetch online weather data.
  4. Everything is rendered on a TFT display (connected via the SPI header), and the user navigates with the four control buttons.

Assembled Board — Front

Assembled Board — Back

PCB Layout

Schematic


🧠 Hardware Blocks

BlockComponentPurpose
MCUESP32-WROOM-32Main processor with WiFi & Bluetooth
USB-UARTCP2102-GMUSB-to-serial bridge for flashing & debug
Auto-reset2× SS8050 (NPN)Automatic bootloader entry during upload
PowerAMS1117-3.35 V → 3.3 V linear regulator
SensorBME280Temperature, humidity, pressure (I²C)
ESDUSBLC6-2SC6USB data line surge protection
Display7-pin SPI headerModular TFT screen connection
Input4× tactile buttonsOn-device menu navigation
ConnectorUSB-C (USB 2.0)Power + data

📌 GPIO Map

FunctionESP32 PinNotes
UART TXGPIO1To CP2102
UART RXGPIO3From CP2102
I²C SDAGPIO21BME280
I²C SCLGPIO22BME280
Display SCKGPIO18SPI clock (VSPI)
Display MOSIGPIO23SPI data (VSPI)
Display CSGPIO5Chip select
Display DCGPIO16Data/command
Display RSTGPIO4Reset
Button UPGPIO32Internal pull-up
Button DOWNGPIO33Internal pull-up
Button OKGPIO25Internal pull-up
Button BACKGPIO26Internal pull-up

🚀 Getting Started

Flashing

  1. Connect the board via USB-C.
  2. Open the Arduino IDE or PlatformIO and select an ESP32 Dev Module board profile.
  3. Hit Upload — the auto-reset circuit handles bootloader entry automatically. (If needed, hold BOOT and tap EN to enter bootloader manually.)

Required Libraries (example)

  • `Adafruit BME280` + `Adafruit Unified Sensor` — for the on-board sensor
  • A TFT driver matching your display controller (e.g. `TFT_eSPI` / `Adafruit GFX`)
  • `WiFi` (built into the ESP32 core) — for online weather data

💡 The firmware is up to you. The hardware gives you a full WiFi-enabled ESP32 with a sensor, a screen, and four buttons — what it displays and how it behaves is entirely programmable.


📂 Repository Structure

``` WeatherStation/ ├── WeatherStation.kicad_pro # KiCad project ├── WeatherStation.kicad_sch # Schematic ├── WeatherStation.kicad_pcb # PCB layout ├── WeatherStation.csv # Bill of Materials ├── libs/ # Local symbols & footprints │ ├── symbols/ │ └── footprints/ ├── Gerber/ # Manufacturing files └── docs/ └── images/ # Renders & screenshots ```


🏭 Manufacturing

  • Layers: 2
  • Thickness: 1.6 mm
  • Copper: 1 oz (35 µm)
  • Min track / clearance: 0.25 mm / 0.2 mm
  • Designed to be produced by any standard fab (e.g. JLCPCB) from the included Gerber files.

📜 License

This project is released under the MIT License — free to use, study, modify, and distribute. See the LICENSE file for the full text.

⬆️ Back to top



🌦️ Метеостанция на ESP32

Компактная метеостанция с WiFi на базе ESP32-WROOM-32.
Собственная двухслойная плата, спроектированная с нуля в KiCad.

VLASOV INDUSTRIES


📖 О проекте

Это полностью самостоятельная плата метеостанции на базе ESP32-WROOM-32. В отличие от обычного прототипа на макетке, здесь каждый компонент расположен на специально спроектированной плате — от моста USB-UART до стабилизации питания, интерфейса датчика и модульного разъёма для дисплея.

Устройство измеряет локальную обстановку встроенным датчиком BME280 (температура, влажность и атмосферное давление), а благодаря встроенному WiFi в ESP32 может получать актуальные данные о погоде из интернета и выводить их на подключённый экран. Четыре кнопки навигации позволяют переключать экраны и перемещаться по меню прямо на устройстве — компьютер после прошивки не нужен.

Поскольку в основе платы лежит полноценный ESP32 с WiFi, это намного больше чем просто термометр. Это открытая программируемая платформа: её можно расширить для показа прогнозов, нескольких городов, индексов качества воздуха, времени восхода и заката, оповещений — по сути всего что доступно из любого погодного API, и управлять всем этим четырьмя встроенными кнопками.


✨ Ключевые возможности

  • 📡 Подключение по WiFi — ESP32 соединяется с любой сетью 2.4 ГГц, открывая доступ к актуальным онлайн-данным о погоде, прогнозам и удалённым API.
  • 🌡️ Встроенный датчик BME280 — измеряет локальную температуру, влажность и атмосферное давление, размещён вдали от греющихся компонентов для точности показаний.
  • 🖥️ Модульный дисплей — 7-пиновый SPI-разъём позволяет подключить TFT-экран. Можно менять или обновлять дисплей без переделки платы.
  • 🎛️ Управление четырьмя кнопками — кнопки ВВЕРХ / ВНИЗ / OK / НАЗАД обеспечивают полную навигацию по меню прямо на устройстве. Для взаимодействия не нужна консоль.
  • 🔌 USB-C + автопрошивка — мост USB-UART CP2102 с транзисторной схемой автосброса позволяет прошивать устройство по USB-C одним нажатием — без ручного зажима кнопок.
  • 🛡️ Защита от ESD — микросхема USBLC6-2SC6 защищает линии данных USB от электростатических разрядов.
  • ⚡ Чистое питание — LDO-стабилизатор AMS1117-3.3 выдаёт стабильные 3.3 В для ESP32, датчика и дисплея.
  • 🧩 Безграничная расширяемость — все свободные GPIO доступны для будущих модулей: дополнительных датчиков, светодиодов, зуммеров, реле и не только.

🔧 Как это работает

  1. Питание и прошивка поступают по единственному кабелю USB-C. Линия 5 В питает стабилизатор AMS1117 (который формирует шину 3.3 В для всего остального) и мост CP2102.
  2. CP2102 переводит USB в UART, чтобы ESP32 можно было прошить. Два транзистора, управляемые линиями DTR/RTS моста, образуют схему автосброса — она автоматически переводит ESP32 в режим загрузчика во время прошивки.
  3. ESP32 выполняет прошивку. Он считывает BME280 по I²C для локальных показаний и подключается по WiFi для получения онлайн-данных о погоде.
  4. Всё отображается на TFT-дисплее (подключённом через SPI-разъём), а пользователь перемещается по меню четырьмя кнопками управления.

🖼️ Галерея

Собранная плата — лицевая сторона

Собранная плата — обратная сторона

Разводка платы

Схема


🧠 Функциональные блоки

БлокКомпонентНазначение
МикроконтроллерESP32-WROOM-32Основной процессор с WiFi и Bluetooth
USB-UARTCP2102-GMМост USB-в-serial для прошивки и отладки
Автосброс2× SS8050 (NPN)Автоматический вход в загрузчик при прошивке
ПитаниеAMS1117-3.3Линейный стабилизатор 5 В → 3.3 В
ДатчикBME280Температура, влажность, давление (I²C)
Защита ESDUSBLC6-2SC6Защита линий данных USB от разрядов
Дисплей7-пиновый SPI-разъёмПодключение модульного TFT-экрана
Ввод4× тактовые кнопкиНавигация по меню на устройстве
РазъёмUSB-C (USB 2.0)Питание + данные

📌 Карта выводов (GPIO)

ФункцияВывод ESP32Примечание
UART TXGPIO1К CP2102
UART RXGPIO3От CP2102
I²C SDAGPIO21BME280
I²C SCLGPIO22BME280
Дисплей SCKGPIO18Тактирование SPI (VSPI)
Дисплей MOSIGPIO23Данные SPI (VSPI)
Дисплей CSGPIO5Выбор чипа
Дисплей DCGPIO16Данные/команда
Дисплей RSTGPIO4Сброс
Кнопка ВВЕРХGPIO32Внутренняя подтяжка
Кнопка ВНИЗGPIO33Внутренняя подтяжка
Кнопка OKGPIO25Внутренняя подтяжка
Кнопка НАЗАДGPIO26Внутренняя подтяжка

🚀 Начало работы

Прошивка

  1. Подключи плату по USB-C.
  2. Открой Arduino IDE или PlatformIO и выбери профиль платы ESP32 Dev Module.
  3. Нажми Upload — схема автосброса сама переведёт чип в режим загрузчика. (При необходимости зажми BOOT и кратко нажми EN, чтобы войти в загрузчик вручную.)

Необходимые библиотеки (пример)

  • `Adafruit BME280` + `Adafruit Unified Sensor` — для встроенного датчика
  • Драйвер TFT под контроллер твоего дисплея (например `TFT_eSPI` / `Adafruit GFX`)
  • `WiFi` (встроена в ядро ESP32) — для онлайн-данных о погоде

💡 Прошивка — за тобой. Железо даёт полноценный ESP32 с WiFi, датчиком, экраном и четырьмя кнопками. Что именно оно показывает и как себя ведёт — полностью программируется.


📂 Структура репозитория

``` WeatherStation/ ├── WeatherStation.kicad_pro # Проект KiCad ├── WeatherStation.kicad_sch # Схема ├── WeatherStation.kicad_pcb # Разводка платы ├── WeatherStation.csv # Перечень компонентов (BOM) ├── libs/ # Локальные символы и посадочные места │ ├── symbols/ │ └── footprints/ ├── Gerber/ # Производственные файлы └── docs/ └── images/ # Рендеры и скриншоты ```


🏭 Производство

  • Слоёв: 2
  • Толщина: 1.6 мм
  • Медь: 1 oz (35 мкм)
  • Мин. дорожка / зазор: 0.25 мм / 0.2 мм
  • Плата рассчитана на изготовление любым стандартным заводом (например JLCPCB) из приложенных Gerber-файлов.

📜 Лицензия

Проект распространяется под лицензией MIT — можно свободно использовать, изучать, изменять и распространять. Полный текст — в файле LICENSE.

⬆️ Наверх


Made with ⚡ by VLASOV INDUSTRIES

Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.