DIY: Wi-Fi teploměr a vlhkoměr do bytu (WeMos D1 mini + SHT30 shield) s webem a OTA

V tomhle návodu postavíme jednoduchý Wi-Fi snímač teploty a vlhkosti, který běží na WeMos D1 mini (ESP8266) a senzoru SHT30. Celé to zvládne i úplný začátečník: hardware je „nasadím a jedu“ (shield), napájení z USB 5 V a software připravíme buď v ESPHome (bez nutnosti psát kód), nebo v Arduino IDE. Projekt umí: vlastní webovou stránku se stavem, OTA aktualizace, a volitelně integraci do Home Assistant.

Co budete potřebovat

Jak to celé funguje

SHT30 je přesný digitální senzor s rozhraním I2C. Shield se nasadí přímo na WeMos D1 mini, takže odpadá kabeláž. WeMos se připojí k vaší Wi-Fi, pravidelně měří teplotu/vlhkost a data zpřístupní přes webovou stránku a/nebo API do Home Assistantu. Aktualizace firmwaru se provádí pohodlně OTA (bez kabelu).

Montáž (hardware)

  1. Nasazení shieldu: Zasuňte SHT30 shield na piny WeMos D1 mini (sedí přesně na sebe). Dbejte na správnou orientaci pinů.
  2. Napájení: Připojte micro USB kabel do D1 mini a druhý konec do USB nabíječky (5 V). Nezapínejte zatím do zásuvky.
  3. Umístění senzoru: Pro měření v místnosti dejte modul mimo přímé slunce/topná tělesa a v rozumné výšce (~1,2–1,5 m).

Varianta A: ESPHome (bez programování)

1) Příprava ESPHome

  • Nainstalujte ESPHome (ideálně jako addon v Home Assistantu nebo na PC).
  • Připojte D1 mini USB kabelem k počítači (jen pro první flash).

2) Konfigurace YAML pro SHT30 na D1 mini

Vytvořte nový projekt (např. byt-teplomer) a vložte tento obsah:

esphome:
  name: byt-teplomer
  friendly_name: Byt Teploměr

esp8266:
  board: d1_mini

# Nastavení Wi-Fi
wifi:
  ssid: "NAZEV_WIFI"
  password: "TAJNE_HESLO"

# Web server s jednoduchou stránkou
web_server:
  port: 80

# OTA aktualizace
ota:

# Logování do konzole
logger:

# I2C sběrnice - D1 mini má default D2 (SDA) a D1 (SCL)
i2c:
  sda: D2
  scl: D1
  scan: true

# SHT3x (SHT30) senzor
sensor:
  - platform: sht3xd
    temperature:
      name: "Byt Teplota"
      id: t_env
      accuracy_decimals: 1
    humidity:
      name: "Byt Vlhkost"
      id: h_env
      accuracy_decimals: 1
    address: 0x44
    update_interval: 15s

# Volitelně jednoduchý intervalový report do logu
interval:
  - interval: 60s
    then:
      - logger.log:
          format: "Aktuálně: %.1f °C / %.1f %%RH"
          args: [ 'id(t_env).state', 'id(h_env).state' ]

3) Flash prvního firmwaru

  1. V ESPHome klikněte na Install → vyberte port (D1 mini) → počkejte na nahrání.
  2. Po úspěchu odpojte USB a přepojte napájení na běžnou USB nabíječku.
  3. WeMos se připojí na Wi-Fi a snímač bude dostupný na adrese http://byt-teplomer.local (případně IP z DHCP).

4) Integrace do Home Assistant

  • Home Assistant → NastaveníZařízení & službyPřidat integraci → zvolte ESPHome.
  • Zadejte název hosta (mDNS) nebo IP. Senzory se načtou automaticky.

Varianta B: Arduino IDE (jednoduchý web + JSON)

Pokud chceš psát kód a mít vlastní webovou stránku (např. s JSON API), tady je minimalistický příklad. V Arduino IDE přidej podporu ESP8266, knihovny ESP8266WiFi, ESP8266WebServer a Adafruit SHT31 (funguje se SHT30).

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Wire.h>
#include "Adafruit_SHT31.h"

const char* ssid = "NAZEV_WIFI";
const char* pass = "TAJNE_HESLO";

ESP8266WebServer server(80);
Adafruit_SHT31 sht = Adafruit_SHT31();

void setup() {
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED) delay(250);

  Wire.begin(D2, D1);    // SDA = D2, SCL = D1
  sht.begin(0x44);       // adresa SHT30 shieldu

  server.on("/", [](){
    float t = sht.readTemperature();
    float h = sht.readHumidity();
    String html = "<h1>Byt Teplomer</h1><p>Teplota: " + String(t,1) + " °C</p><p>Vlhkost: " + String(h,1) + " %RH</p>";
    server.send(200, "text/html", html);
  });

  server.on("/json", [](){
    float t = sht.readTemperature();
    float h = sht.readHumidity();
    String json = "{\"temperature\":" + String(t,1) + ",\"humidity\":" + String(h,1) + "}";
    server.send(200, "application/json", json);
  });

  server.begin();
}

void loop() {
  server.handleClient();
}

Volitelná rozšíření

  • LED 8×8 ikony: Přidej LED 8×8 shield a v ESPHome/Arduino zobraz smajlíky (🙂/😐/😮) podle vlhkosti v místnosti.
  • Relé shield: Zapni ventilátor nebo odvlhčovač, když vlhkost přesáhne práh (např. 65 %).
  • Více místností: Vytvoř další uzly „kuchyně“, „ložnice“… a sleduj mikroklima bytu.

Kalibrace a tipy k přesnosti

  • Ustálení: Nechte senzor po zapnutí běžet 10–15 min pro stabilní hodnoty.
  • Umístění: Vyhněte se přímému slunci, průvanu a topení; měřte v „dýchací zóně“.
  • Interval měření: 10–30 s je obvykle akorát – méně šumu, méně rušení Wi-Fi.

Odstraňování potíží

  • Nepřipojí se k Wi-Fi: Zkontrolujte SSID/heslo, vzdálenost k routeru, případně použijte D1 mini Pro s externí anténou.
  • Na webu se nezobrazují hodnoty: Ověřte I2C adresu (0x44), správné piny (D2/D1), případně restartujte napájení.
  • Hodnoty „skáčou“: Zvětšete interval měření, vyrovnejte teplotu okolí (bez průvanu), případně zprůměrujte 3–5 posledních hodnot.

Bezpečnost

Projekt je slaboproudý (5 V) a vhodný pro začátečníky. Nepřipojujte D1 mini k 230 V. Pokud později přidáte relé pro spínání síťového napětí, elektrickou část musí zapojit kvalifikovaný elektrikář.

Rychlé odkazy na použité díly


Hotovo! Máte přesný a levný snímač klimatu do bytu, který lze rozšířit o zobrazování, automatizace a řízení dalších zařízení.

Související produkty

Tento web slouží k prezentaci a propagaci produktů našich partnerů a nelze zde objednávat.
Kliknutím na vybrat velikost přejdete do e-shopu prodejce, kde si můžete výrobky objednat. - Podmínky užití webu

REKLAMA

Pneuservis a opravy pneu Praha Nehvizdy