Skip to the content
PCBKitNew board
2 layers31.2 × 59.4 mmFan, the printed circuit board in 3D

bash # Клонировать репозиторий git clone https://github.com/circool/IOTDevice.git cd IOTDevice

Size
31.2 × 59.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
12
Nets
27
Pads
53
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 6 (file 20211014)
Created
23 Jan 2024
Updated
23 Aug 2026

Overview

Fan is an open-source printed circuit board by circool, from the circool/IOT_Device repository on GitHub, published under the MIT licence. It is a 2-layer board of 31.2 × 59.4 mm with 12 parts on 27 nets.

It is built around the ESP-12F. Its parts include 4 resistors, 2 ICs, 2 connectors, 2 switches and 1 capacitor. It belongs with the ESP8266 boards of this library.

Main components

1

README

README.md

Universal Smart Home Device

Platform Framework Version License MQTT

Универсальное устройство для умного дома с поддержкой датчиков температуры/влажности, ШИМ-управления вентилятором, MQTT и веб-интерфейсом. Идеально подходит для автоматизации вытяжной вентиляции в ванной и туалете.

Особенности

  • Три типа устройств в одной прошивке:

    • Вентилятор с датчиками (автоматическое управление)
    • Автономный датчик температуры/влажности
    • Управляемый выключатель
  • Smart-управление:

    • Автоматическое включение по температуре/влажности
    • Ручное управление через MQTT и Web
    • Таймер отложенного включения
    • Аварийное отключение по таймеру
  • Тихий режим (ШИМ):

    • Регулировка скорости 0-100%
    • Адаптивный режим — автоматическая подстройка мощности
    • Стартовый импульс для надёжного запуска
  • Поддержка платформ:

    • ESP8266 (NodeMCU, ESP-12F)
    • ESP32 (любые версии)
  • Датчики:

    • AHT10 (I2C)
    • DHT11/DHT22 (1-Wire)
  • Связь и управление:

    • MQTT с LWT и autodiscovery-ready топиками
    • Веб-интерфейс для настройки
    • OTA обновления прошивки
    • Точка доступа (AP) для первоначальной настройки
    • Сброс настроек кнопкой / MQTT / Web
  • Надёжность:

    • Хранение настроек в EEPROM с CRC16
    • Watchdog Timer (WDT)
    • Автоматическое восстановление после потери связи

Содержание

Поддерживаемые устройства

ТипDEVICE_TYPEКомпонентыПрименение
Вентилятор1Датчик + ШИМ + релеВытяжка в ванной/туалете
Датчик2Только датчикМониторинг микроклимата
Выключатель3Реле (без датчика)Управление освещением/нагрузкой

Аппаратные требования

Компоненты (максимальная конфигурация)

КомпонентМодельПримечание
МикроконтроллерESP8266 (NodeMCU) или ESP32Любая плата с WiFi
Датчик (опционально)AHT10 или DHT11/DHT22I2C или 1-Wire
Исполнительное релеТвердотельное реле G3MB-202PДля реализации ШИМ
ПитаниеAC-DC 220V → 3.3VПодключается параллельно освещению
Кнопка сбросаТактовая на замыканиеGPIO0 → GND
Светодиод индикацииЛюбойС резистором 220-470 Ом (GPIO2* → GND, инверсия)

Назначение пинов

ФункцияESP8266ESP32
Управление (PWM)GPIO14GPIO4
AHT10 SDAGPIO4GPIO21
AHT10 SCLGPIO5GPIO22
DHT11/22GPIO4*GPIO16*
Кнопка сбросаGPIO0GPIO0
Светодиод индикации связиGPIO2**GPIO2**

Важно: Для работы ШИМ-регулировки обязательно используйте твердотельное реле (SSR), а не механическое!

* DHT11/22 можно подключать к любым свободным пинам, кроме GPIO0, GPIO2, GPIO15 (ESP8266) из-за особого поведения при загрузке. Рекомендуемые пины: GPIO4, GPIO5, GPIO16 (ESP8266) или GPIO16, GPIO17, GPIO18 (ESP32).

** На многих модулях NodeMCU и ESP32-devkit на GPIO2 уже установлен встроенный синий светодиод. При использовании DHT на GPIO2 возникнет конфликт — выберите другой пин для датчика или отключите LED.

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

text
220V AC →→→ AC-DC 3.3V →→→ ESP
           ↓
         Свет
           
220V AC →→→ SSR (реле) →→→ Вентилятор
           ↑
        GPIO (PWM)
           
ESP →→→ I2C →→→ AHT10 (SDA/SCL)

Принцип работы:

  1. Свет включён → устройство получает питание
  2. Устройство решает: включать вентилятор или нет (по датчикам)
  3. Если нужно — подаёт ШИМ-сигнал на реле
  4. Свет выключен → устройство обесточено → вентилятор выключен

Установка прошивки

Способ 1: PlatformIO (рекомендуется)

bash
# Клонировать репозиторий
git clone https://github.com/circool/IOT_Device.git
cd IOT_Device

# Собрать для ESP8266
pio run -e esp8266 -t upload

# Или для ESP32
pio run -e esp32 -t upload

Способ 2: Arduino IDE

  1. Установите поддержку ESP8266/ESP32 через Boards Manager
  2. Установите библиотеки:
    • PubSubClient by Nick O'Leary
    • Adafruit AHTX0
    • DHT sensor library
    • ElegantOTA
  3. Откройте main.cpp, выберите плату и загрузите

Первоначальная настройка

  1. Первый запуск — устройство создаст точку доступа Fan_XXXX (или Sensor_XXXX/Switch_XXXX)
  2. Подключитесь к этой WiFi сети (пароль отсутствует)
  3. Откройте браузер по адресу http://192.168.4.1
  4. Заполните настройки:
    • WiFi SSID и пароль
    • MQTT брокер (адрес и порт)
    • Параметры управления (при необходимости)
  5. Сохраните — устройство перезагрузится и подключится к вашей сети

Конфигурация

Настройки в коде (config.h)

cpp
// Тип устройства
#define DEVICE_TYPE 1  // 1=Fan, 2=Sensor, 3=Switch

// Датчик (для TYPE 1,2)
#define SENSOR_TYPE 1  // 1=AHT10, 2=DHT

// Аппаратные пины
#define SWITCH_PIN 4     // Пин управления (ESP32)
#define STATUS_LED_PIN 2 // LED индикации (0 = отключён)
#define RESET_PIN 0      // Кнопка сброса

// Функционал
#define WIFI_ENABLED 1
#define MQTT_ENABLED 1
#define WEB_ENABLED 1
#define OTA_ENABLED 1
#define WDT_ENABLED 1

// Тайминги
#define WDT_TIMER_MS 5000           // Watchdog таймер
#define AP_FALLBACK_TIMEOUT_MS 12000 // Таймаут до перехода в AP

// ШИМ параметры (для TYPE 1)
#define PWM_FREQUENCY 5      // Частота ШИМ (Гц)

Настройки в среде (platformio.ini)

Файл platformio.ini содержит все параметры сборки для разных платформ. Раздел разделён на общие настройки ([common]) и специфичные для каждой платформы ([env:esp32], [env:esp8266]).

Структура файла
ini
[common]                           # Общие настройки для всех платформ
framework = arduino                # Фреймворк
monitor_speed = 115200             # Скорость Serial порта
upload_speed = 460800              # Скорость загрузки прошивки
build_flags =                      # Флаги компиляции (общие)
    -DMAGIC_VALUE=0x5A6B          # Магическое число для EEPROM
    -DDEVICE_TYPE=1               # Тип устройства (1=Fan, 2=Sensor, 3=Switch)
    -DVERSION=\"1.4\"             # Версия прошивки
    -DSTATUS_LED_PIN=2            # Пин статусного LED (0=отключён)

[env:esp32]                        # Сборка для ESP32
platform = espressif32             # Платформа
board = esp32dev                   # Тип платы
extends = common                   # Наследование общих настроек
lib_deps = ...                     # Зависимости (библиотеки)
build_flags =                      # Специфичные флаги для ESP32
    ${common.build_flags}         # Включить общие флаги
    -DSWITCH_PIN=4                # Пин управления для ESP32
    -DLED_INVERTED=0              # Инверсия LED (0=нормальная логика)

[env:esp8266]                      # Сборка для ESP8266
platform = espressif8266           # Платформа
board = nodemcu                    # Тип платы
extends = common                   # Наследование общих настроек
Основные параметры сборки
ПараметрЗначениеОписание
-DMAGIC_VALUE0x5A6BИдентификатор корректной конфигурации в EEPROM
-DDEVICE_TYPE1, 2, 3Тип устройства (см. таблицу ниже)
-DVERSION"1.4"Версия прошивки (отображается в веб-интерфейсе)
-DSTATUS_LED_PIN2Пин для LED индикации (0 = отключить)
-DSWITCH_PIN4 (ESP32) / 14 (ESP8266)Пин управления реле/вентилятором
-DLED_INVERTED0 или 1Инверсия логики LED (1 = HIGH выключает)
Типы устройств (DEVICE_TYPE)
ini
# Вентилятор с датчиками (полная функциональность)
-DDEVICE_TYPE=1

# Только датчик (без управления нагрузкой)
-DDEVICE_TYPE=2

# Управляемый выключатель (без датчика)
-DDEVICE_TYPE=3
Включение/отключение функционала
ini
# Основные модули (по умолчанию ВСЕ включены)
-DWIFI_ENABLED=1          # WiFi поддержка
-DMQTT_ENABLED=1          # MQTT клиент
-DWEB_ENABLED=1           # Веб-сервер
-DOTA_ENABLED=1           # OTA обновления
-DWDT_ENABLED=1           # Watchdog Timer

# Отключение ненужного функционала (экономия памяти)
; -DMQTT_ENABLED=0        # Пример отключения MQTT
; -DWIFI_ENABLED=0        # Полностью отключить WiFi
; -DWDT_ENABLED=0         # Отключить Watchdog (только для отладки)
Настройка отладки (логирование)
ini
# Глобальное включение отладки
-DDEBUG_ENABLED=1

# Детальное логирование компонентов (работает только при DEBUG_ENABLED=1)
-DLOG_SENSOR=1            # Логи датчика
-DLOG_CONFIG=1            # Логи конфигурации
-DLOG_FAN=1               # Логи вентилятора
-DLOG_MQTT=1              # Логи MQTT
-DLOG_WIFI=1              # Логи WiFi
-DLOG_WEB=1               # Логи веб-сервера
-DLOG_AP=1                # Логи режима точки доступа
-DLOG_OTA=1               # Логи OTA обновлений
-DLOG_LED=1               # Логи LED индикации

Пример включения полной отладки:

ini
build_flags =
    ${common.build_flags}
    -DDEBUG_ENABLED=1
    -DLOG_SENSOR=1
    -DLOG_MQTT=1
    -DLOG_WIFI=1
Настройка MQTT функционала
ini
# MQTT возможности (требуют MQTT_ENABLED=1)
-DMQTT_RESET_ENABLED=1            # Разрешить сброс через MQTT
-DMQTT_PUBLISH_RSSI=1             # Публиковать RSSI WiFi
-DMQTT_PUBLISH_RESET_REASON=1     # Публиковать причину перезагрузки
-DMQTT_IGNORE_PUBLISH_NORMAL_RESET_REASONS=1  # Не публиковать штатные перезагрузки

# Настройки MQTT соединения
-DMQTT_RECONNECT_DELAY_MS=5000    # Задержка переподключения (мс)
-DMQTT_KEEPALIVE_SEC=3            # Keepalive интервал (сек)
Настройка веб-интерфейса
ini
# WEB возможности (требуют WEB_ENABLED=1)
-DWEB_STATUS_ENABLED=1            # Страница статуса
-DWEB_SHOW_RSSI=1                 # Отображать RSSI на странице
-DWEB_RESET_ENABLED=1             # Кнопка сброса в веб-интерфейсе

# Настройки точки доступа (AP)
-DAP_ENABLED=1                    # Включить режим AP
-DAP_FALLBACK_TIMEOUT_MS=12000    # Таймаут до перехода в AP (мс)
-DAP_IP_ADDRESS="192.168.4.1"     # IP адрес в режиме AP
Настройки Watchdog (WDT)
ini
# Параметры Watchdog (требуют WDT_ENABLED=1)
-DWDT_TIMER_MS=5000               # Таймаут WDT (мс)
-DLOOP_WATCHDOG_MULTIPLIER=3      # Множитель для основного цикла
Настройки датчиков
ini
# Тип датчика (для DEVICE_TYPE=1 или 2)
-DSENSOR_TYPE=1                   # 1 = AHT10 (I2C), 2 = DHT11/22 (GPIO)

# Параметры для DHT (если SENSOR_TYPE=2)
-DSENSOR_PIN=2                    # GPIO пин для DHT
-DDHT_TYPE=DHT11                  # Тип DHT (DHT11, DHT22, DHT21)

# Интервал опроса датчика (сек)
-DSENSOR_DURATION=10
Настройки ШИМ (для вентилятора)
ini
# ШИМ параметры (для DEVICE_TYPE=1)
-DPWM_ENABLED=1                   # Включить ШИМ
-DPWM_FREQUENCY=5                 # Частота ШИМ (Гц) — 5 Гц оптимально для SSR
-DPWM_RESOLUTION=8                # Разрешение ШИМ (бит) — 8 бит = 0-255
-DPWM_STARTING=200                # Длительность стартового импульса (мс)

# Адаптивный режим (требует PWM_ENABLED=1)
-DAPAPTIVE_ENABLED=1              # Включить адаптивный режим
-DDEFAULT_SPEED_PERCENT=50        # Скорость по умолчанию (%)
-DMIN_SPEED_PERCENT=10            # Минимальная скорость при адаптации
-DADAPTIVE_EPSILON_TEMP=0.5       # Чувствительность температуры (°C)
-DADAPTIVE_EPSILON_HUM=2.0        # Чувствительность влажности (%)
-DADAPTIVE_STEP_SIZE=10           # Шаг изменения скорости (%)
-DADAPTIVE_SPEED_SENSITIVITY=0.7  # Чувствительность к скорости изменения
Настройки аварийной защиты
ini
# Таймеры безопасности (для DEVICE_TYPE=1 или 3)
-DEMERGENCY_ENABLED=1             # Включить аварийное отключение
-DMAX_ON_TIME_SEC=3600            # Максимальное время работы (сек) — 1 час

# Таймер отложенного включения
-DDEFAULT_DELAY_SECONDS=60        # Задержка по умолчанию (сек)
-DBOOT_SWITCH_STATE=0             # Состояние при старте (0=выкл, 1=вкл)
Настройки WiFi
ini
# Параметры WiFi (требуют WIFI_ENABLED=1)
-DWIFI_CONNECT_TIMEOUT_MS=30000   # Таймаут подключения (мс)
-DWIFI_OUTPUT_POWER=15.0          # Мощность передатчика (0-20.5 dBm)

# Включить сканирование сетей при старте (только для отладки)
; -DSCANING_WIFI_ENABLED=1
Примеры готовых конфигураций

1. Минимальная конфигурация (только датчик, без WiFi):

ini
[env:esp32]
build_flags =
    -DDEVICE_TYPE=2
    -DWIFI_ENABLED=0
    -DMQTT_ENABLED=0
    -DWEB_ENABLED=0
    -DSENSOR_TYPE=1
    -DSTATUS_LED_PIN=0

2. Полная конфигурация с отладкой:

ini
[env:esp32]
build_flags =
    ${common.build_flags}
    -DDEBUG_ENABLED=1
    -DLOG_SENSOR=1
    -DLOG_MQTT=1
    -DLOG_WIFI=1
    -DMQTT_PUBLISH_RSSI=1
    -DWEB_SHOW_RSSI=1

3. Выключатель с таймером (без датчика):

ini
[env:esp8266]
build_flags =
    ${common.build_flags}
    -DDEVICE_TYPE=3
    -DSWITCH_PIN=14
    -DDEFAULT_DELAY_SECONDS=30
    -DMAX_ON_TIME_SEC=1800
    -DBOOT_SWITCH_STATE=0

4. Тихий режим с адаптацией:

ini
[env:esp32]
build_flags =
    ${common.build_flags}
    -DDEVICE_TYPE=1
    -DPWM_ENABLED=1
    -DAPAPTIVE_ENABLED=1
    -DPWM_FREQUENCY=5
    -DDEFAULT_SPEED_PERCENT=70
    -DMIN_SPEED_PERCENT=20
    -DADAPTIVE_STEP_SIZE=5
Важные замечания
  1. Приоритет флагов: Специфичные для платформы флаги переопределяют общие
  2. Экономия памяти: Отключайте ненужный функционал (MQTT_ENABLED=0, WEB_ENABLED=0) для ESP8266 (особенно важно при ограниченной flash)
  3. Частота ШИМ: Для твердотельных реле оптимальна 5-10 Гц. Более высокая частота может вызвать перегрев реле
  4. ESP8266 нюансы:
    • Требуется -Wno-sign-compare и -Wno-uninitialized для подавления предупреждений
    • Режим flash dout обязателен для некоторых плат
    • LED часто инвертирован (LED_INVERTED=1)
Изменение параметров без перекомпиляции

Некоторые параметры можно изменить через веб-интерфейс или MQTT без перепрошивки:

  • Пороги температуры/влажности
  • Скорость вентилятора
  • Таймеры (задержка, аварийное отключение)
  • Режимы работы (ручной/автоматический)

Параметры, требующие перекомпиляции:

  • Тип устройства (DEVICE_TYPE)
  • Назначение пинов (SWITCH_PIN, STATUS_LED_PIN)
  • Частота ШИМ (PWM_FREQUENCY)
  • Включение/отключение модулей (MQTT_ENABLED, WEB_ENABLED)
text
### Файл credentials.h (опционально)

Создайте этот файл для заводских настроек:

```cpp
// credentials.h
#define SSID_NAME "MyWiFi"
#define WIFI_PASSWORD "MyPassword"
#define MQTT_ADDRESS "192.168.1.100"
#define MQTT_PORT 1883
#define MQTT_USER "user"
#define MQTT_PASSWORD "pass"

MQTT топики

Устройство использует префикс вида {Type}_{ID} (например Fan_D84C).

Общие топики

ТопикНаправлениеФорматОписание
{prefix}/statusDev → BrokerOnline/OfflineСтатус (LWT)
{prefix}/versionDev → Broker1.4Версия прошивки
{prefix}/c/system/resetBroker → Dev1Сброс настроек

Для вентилятора (TYPE 1)

ТопикНаправлениеОписание
{prefix}/fan/stateDev → BrokerON/OFF
{prefix}/c/fan/stateBroker → DevУправление
{prefix}/fan/speedDev → BrokerСкорость (0-100%)
{prefix}/c/fan/speedBroker → DevУстановка скорости
{prefix}/fan/adaptiveModeDev → BrokerАдаптивный режим
{prefix}/fan/delaySecDev → BrokerЗадержка включения
{prefix}/fan/maxOnTimeDev → BrokerАварийное отключение
{prefix}/fan/sensorControlModeDev → BrokerРежим датчика
{prefix}/sensor/temperatureDev → BrokerТемпература
{prefix}/sensor/humidityDev → BrokerВлажность
{prefix}/sensor/lowTempDev → BrokerНижний порог T
{prefix}/c/sensor/highTempBroker → DevВерхний порог T

Для датчика (TYPE 2)

ТопикНаправлениеОписание
{prefix}/sensor/temperatureDev → BrokerТемпература
{prefix}/sensor/humidityDev → BrokerВлажность

Для выключателя (TYPE 3)

ТопикНаправлениеОписание
{prefix}/switch/stateDev → BrokerСостояние
{prefix}/c/switch/stateBroker → DevУправление
{prefix}/switch/delaySecDev → BrokerЗадержка включения
{prefix}/switch/maxOnTimeDev → BrokerАварийное отключение

Логика работы

Режимы работы

  1. Режим датчика (sensorControlMode = 1):

    • Включение: температура ≥ highTemp ИЛИ влажность ≥ highHum
    • Выключение: температура ≤ lowTemp И влажность ≤ lowHum
  2. Ручной режим (sensorControlMode = 0):

    • Игнорирует датчик
    • Управление только через MQTT/Web
  3. Адаптивный режим (при speedPercent < 100):

    • Автоматически повышает/понижает скорость
    • Старается удержать температуру/влажность на уровне момента включения

Таймеры

  • Отложенное включение (delaySeconds):

    • Запускается при выключении вентилятора
    • По истечении — принудительное включение
  • Аварийное отключение (maxOnTime):

    • Защита от перегрева
    • По истечении — выключение + переход в ручной режим

Приоритеты команд

  1. Ручное управление (MQTT/Web) — наивысший приоритет
  2. Таймер отложенного включения
  3. Режим управления датчиком

Компиляция из исходников

Структура проекта

text
├── main.cpp           # Основной цикл
├── config.h/cpp       # Настройки и EEPROM
├── mqtt.h/cpp         # MQTT клиент
├── web.h/cpp          # Веб-сервер
├── sensor.h/cpp       # Датчики
├── fan.h/cpp          # Управление вентилятором
├── switch.h/cpp       # Управление выключателем
├── led.h/cpp          # LED индикация
├── ansi.h             # Цветной вывод в Serial
├── web_strings.h      # HTML строки
└── platformio.ini     # Конфигурация сборки

PlatformIO конфигурация

ini
[env:esp32]
platform = espressif32
board = esp32dev
build_flags = 
    -DDEVICE_TYPE=1
    -DMQTT_ENABLED=1
    -DWEB_ENABLED=1
lib_deps = 
    knolleary/PubSubClient @ ^2.8
    adafruit/Adafruit AHTX0 @ ^2.0.5
    ayushsharma82/ElegantOTA @ ^2.2.8
    adafruit/DHT sensor library@^1.4.6

Предупреждение относительно OTA

ESP8266 с 1MB flash (ESP-01, ESP-07) не поддерживают OTA! Несмотря на то, что веб-интерфейс ElegantOTA показывает успешную загрузку, после перезагрузки устройство останется на старой прошивке. Для OTA требуется минимум 2MB flash. Используйте модули с 4MB (NodeMCU, Wemos D1 mini, ESP-12F) или установите константу/флаг OTA_ENABLED=0 / -DOTA_ENABLED=0 для исключения OTA.

Отладка

cpp
// В platformio.ini
build_flags = 
    -DDEBUG_ENABLED=1           // Включить отладку
    -DLOG_SENSOR=1              // Логи датчика
    -DLOG_MQTT=1                // Логи MQTT
    -DLOG_WIFI=1                // Логи WiFi
    -DLOG_WEB=1                 // Логи Web

TODO

  • Реализовать MQTT Discovery для Home Assistant
  • Добавить поддержку ESP32-C6 (ZigBee/Matter)

Parts

12
QtyValueFootprintReferences
410KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR2, R3, R4, R5
14FIonistor:C_Radial_D20.4mm_H7.0mm_P6.8mmC2
1AC 220TerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalSW1
1ACDC_220_3.3V_700mAConverter_ACDC:Converter_ADCD_ChinaM1
1ESP-12FRF_Module:ESP-12EU2
1FANTerminalBlock_RND:TerminalBlock_RND_205-00001_1x02_P5.00mm_HorizontalSW2
1G5MB-202PRelay_THT:Relay_SPDT_Omron-G3MBU1
1PROGConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_HorizontalJ1
1SENSORConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2

Questions

How big is the Fan PCB?

It measures 31.2 × 59.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Fan use?

12 parts, built around the ESP-12F. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Fan KiCad files?

From the circool/IOT_Device repository on GitHub, at the commit this page was made from: the board is Fan/Fan.kicad_pcb and its schematic Fan/Fan.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Fan design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers51.4 × 61 mmWifi gb cart, the printed circuit board in 3D

    Wifi gb cart

    Staacks/wifi-game-boy-cartridge

    A WiFi cartridge for the original Game Boy.

    38 parts242
  • 2 layers50 × 38 mmPcb smd, the printed circuit board in 3D

    Pcb smd

    tenderlove/esp8266aq

    ESP8266 and Plantower AQ sensor

    24 parts220
  • 2 layers33.7 × 66 mmSmartbell, the printed circuit board in 3D

    Smartbell

    Staacks/there.oughta.be

    Projects featured on my blog at https://there.oughta.be

    27 parts108GPL-3.0
  • 2 layers49.4 × 35.8 mmWS2812Controller, the printed circuit board in 3D

    WS2812Controller

    klein0r/pcb-ws2812-wifi-controller

    WiFi Controller for WS2812 LED Stripes

    22 parts82MIT
  • 4 layers20 × 48.5 mmMidea WiFi Dongle, the printed circuit board in 3D

    Midea WiFi Dongle

    reneklootwijk/mideahvac-dongle

    This repository contains the hardware design of a WiFi dongle for Midea-like airconditioners and humidifiers. Midea provides a WiFi dongle (SK102/SK103), either as optional feature or built-in, to control the appliances…

    21 parts75
  • 2 layers31.4 × 20.6 mmWindow sensor V5, the printed circuit board in 3D

    Window sensor V5

    gadjet/Window-Door-sensor-Version-5

    Version 5 of the Window/Door sensor project this time with ultra low current consumption

    32 parts70GPL-2.0
  • 2 layers70 × 36 mmAir Purifier Uppatvind, the printed circuit board in 3D

    Air Purifier Uppatvind

    horvathgergo/esp8266-for-uppatvind

    Smart controller for IKEA Uppåtvind Air Purifiers

    27 parts60GPL-3.0