Otevře se na nové kartě

Jak doma nebo v kanceláři jednoduše měřit teplotu. Přesný online teploměr s appkou, upozorněním a historií měření.

Graf online měření teploty a vlhkosti z teploměru s ESP32 a SHT40

Jak doma měřit teplotu. Asi častá otázka lidí v České republice. V tomto velmi detailním návodu vám vysvětlím, z čeho takový teploměr složit, co je potřeba a zveřejním zde i kód, který potřebujete. Výsledkem bude bateriově napájený teploměr a vlhkoměr s přenosem dat na web. Aktuální teplotu můžete mít v aplikaci v telefonu, možnost upozornění a dlouhodobá historie měření. Data se přenáší přes Wi-Fi.

Tento článek je určen úplným začátečníkům. Krok za krokem, jak jednoduše měřit teplotu (a taky vlhkost) v bytě, kanceláři nebo garáži.

OBSAH

Co potřebuju koupit
Jaký program potřebuju do počítače
Složení teploměru ze zakoupených komponent
Data na web, aplikace do telefonu
Programování
Výsledek
Zabezpečení dat
Problémy
Umístění
Kód pro řídící desku
Extra TIP

Co potřebuju koupit

Řídící deska – https://www.laskakit.cz/laskakit-meteo-mini/?variantId=10473

Programátor – https://www.laskakit.cz/laskakit-ch9102-programmer-usb-c–microusb–uart/

Čidlo teploty a vlhkosti – https://www.laskakit.cz/laskakit-sht40-senzor-teploty-a-vlhkosti-vzduchu/

Propojovací kabel (5cm) – https://www.laskakit.cz/–sup–stemma-qt–qwiic-jst-sh-4-pin-kabel-5cm/

Akumulátor (1500mAh) – https://www.laskakit.cz/baterie-li-po-3-7v-1500mah-lipo/

Jaký program potřebuju do počítače

Stáhněte si prosím tento program https://www.arduino.cc/en/software. Pokud máte windows, zvolte variantu Arduino IDE 2.0.0; Windows Win 10 and newer, 64 bits (nebo novější).

Stránka Arduino Software zobrazuje stažení Arduino IDE 2.0 pro Windows

Webová stránka Arduino IDE s nabídkou stažení programu Arduino IDE

Po instalaci Arduino IDE je potřeba nainstalovat knihovny pro řídící desku.

Arduino IDE 2.0 s otevřeným menu File a zvýrazněnou položkou Preferences

Nastavení Arduino IDE s polem pro URL správce dalších desek

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Teď upravíme nastavení.

Arduino IDE s otevřeným výběrem desky ESP32-C3 Dev Module

Poté ještě nainstalujeme potřebné knihovny. To jsou knihovny, díky kterým dokážeme jednodušeji pracovat např. s čidly..

Nabídka Sketch v Arduino IDE 2.0 se seznamem knihoven a volbou Include Library

Arduino IDE s nainstalovanou knihovnou Adafruit SHT4x a jejím importem v kódu

Arduino IDE s vyhledáním knihovny ESP32AnalogRead a otevřeným kódem teploměru

Složení teploměru ze zakoupených komponent

Komponenty teploměru: deska Meteo Mini, programátor, senzor SHT40 a baterie
Řídící deska – https://www.laskakit.cz/laskakit-meteo-mini/?variantId=10473

Programátor – https://www.laskakit.cz/laskakit-ch9102-programmer-usb-c–microusb–uart/

Čidlo teploty a vlhkosti – https://www.laskakit.cz/laskakit-sht40-senzor-teploty-a-vlhkosti-vzduchu/

Propojovací kabel (5cm) – https://www.laskakit.cz/–sup–stemma-qt–qwiic-jst-sh-4-pin-kabel-5cm/

Akumulátor (1500mAh) – https://www.laskakit.cz/baterie-li-po-3-7v-1500mah-lipo/

Stavba vlastního teploměru je díky stavebnicovému systému velmi jednoduchá. Čidlo teploty a vlhkosti se připojí přes kabel k řídící desce – MeteoMini.

U připojení čidel se nelze splést. Kabel obsahuje konektor, který má zámek. Díky tomu si nezničíte ani desku, ani čidlo.

Tu pak připojíte na zakoupenou baterku. Baterku připojíte ke konektoru s názvem „Battery“. Konektor má opět zámek, takže jej nemůžete otočit.

Deska MeteoMini propojená kabelem s teplotním čidlem a baterií

Na desce budete muset udělat dvě jednoduché úpravy a to zapájení dvou mostů – dvou plošek na desce.

První povoluje měření napětí akumulátoru (ADC, tato propojka je na zadní straně desky), druhý pak připojí odpory na komunikační sběrnici (název I2C_PULL-UP na horní straně desky, viz obrázek níže) – těm se říká pull-up rezistory a jsou nutné pro správnou funkci celého zařízení.

Červená deska teploměru s označeným místem pro propojení I2C pull-up rezistorů

Deska se nabíjí přes USB-C konektor z klasického USB-C adaptéru (například z telefonu).

Data na web, aplikace do telefonu

K ukládání teploty a vlhkosti z našeho jednoduchého online teploměru použijeme službu tmep.cz. To je služba, která se stará u ukládání, interpretaci a vizualizaci vašich dat. Navíc kromě hezkého zobrazení grafů umí dlouhodobé zobrazní statistik, upozornění od ČHMÚ, porovnání teplot z předchozího dne aj.

Můžete si nainstalovat i aplikaci do telefonu a nastavit widget. Aktuální teplotu a vlhkost tak budete mít na hlavní straně vašeho menu v telefonu.

Registrace

Webová stránka TMEP s přihlašovacím formulářem a zvýrazněnou registrací účtu

Moje menu, tady přidáme nové čidlo

Webová aplikace TMEP zobrazuje přehled připojených čidel a naměřené hodnoty

Vyplníme formulář

Konfigurační webová stránka teploměru s nastavením domény, měřených veličin a přístupu

Formulář nastavení Wi-Fi teploměru s limity teploty, vlhkosti a času

Nastavení korekce hodnot teploty, vlhkosti a tlaku v aplikaci teploměru

Nastavení webového teploměru Meteo ESP32-C3 se SHT40, jednotek, grafu a baterie

Nastavení webového rozhraní pro výstrahy ČHMÚ a grafy počasí v Praze

Editor záložky „O čidle“ s prázdným textovým polem a možností nahrát obrázek

Webové nastavení teploměru s názvy a jednotkami teploty a vlhkosti a polohou čidla

Tím bychom měli nastavené čidlo pro tento jednoduchý Wi-Fi teploměr.

Programování

Červená řídicí deska Meteo Mini a USB programátor zapojený v desce

Programátor připojte k desce, jak je zobrazeno na obrázku výše. Přepínač na programátoru musí být přepnutý do pozice 3V3.

K programování potřebujete řídící desku Meteo Mini a programátor. A také počítač s nainstalovaným programem Arduino IDE.

Otevřete Arduino IDE a vložte tento kód.
Kód pro tento jednoduchý teploměr je ke stažení ZDE.

Aktualizovaná verze FW pro ESP32 knihovnu v3 (neobsahuje ESP32AnalogRead knihovnu. Díky dwbmb)

Vyhledejte tuto část a vyplňte: Název vaší Wi-Fi sítě, heslo a doménu, kterou jste si vytvořili na webu tmep.cz

Ukázka kódu v Arduino IDE pro nastavení Wi-Fi a domény teploměru

Vyberte správný port, ke kterému je programátor připojen. Pokud vidíte více portů a nevíte, který je ten správný odpojte USB kabel z programátoru a podívejte se, které porty tam zůstaly. Po opětovném zapojení programátoru zjistíte, který port je nově v seznamu.

Arduino IDE zobrazuje nabídku Tools pro výběr portu desky ESP32-C3

Ve zbylé části kódu se pak provádí inicializace desky a čidel, měření, a odeslání dat. Do této části, pokud nechcete experimentovat, nesmíte zasahovat.

Částečné vysvětlení kódu je na konci článku.

Kód pak jednoduše nahrajete pomocí jednoho tlačítka v Arduino IDE.

Arduino IDE s kódem online teploměru pro desku ESP32-C3 a zvýrazněným tlačítkem nahrání
Pozor, přeložení kódu a nahrávání může trvat i několik minut.

Výsledek

Pokud se vše podařilo, na své doméně tmep.cz uvidíte vaše odeslaná data.

Webová stránka tmep.cz zobrazuje aktuální teplotu, vlhkost a historii měření

Denní statistiky
Webová stránka tmep.cz zobrazuje graf teploty a vlhkosti za posledních 24 hodin

Porovnání s předchozím dnem
Graf teploty porovnává průběh včerejšího a dnešního dne

nebo například denní, měsíční či roční statistiky.

A ještě napětí na baterii
Graf denního průběhu teploty a napětí baterie v online teploměru tmep.cz

Aplikaci na telefon nainstalujete z https://play.google.com/store/apps/details?id=cz.tmep nebo https://apps.apple.com/cz/app/tmep/id1609846309?l=cs#?platform=iphone

Po otevření aplikace stačí naskenovat QR kód.

Webové rozhraní TMEP zobrazuje teplotu, vlhkost, napětí baterie a nabídku čidla

Webová stránka tmep.cz s QR kódem a parametry pro přidání teploměru do mobilní aplikace

Celý koncept tohoto jednoduchého online tepoměru je velmi úsporný a na zmíněný akumulátor 1500 mAh vám poběží celé týdny. V případě nižšího napětí akumulátoru budete ale díky tmep.cz včas informováni e-mailem.

Zabezpečení dat – proti zápisu i čtení

Samozřejmostí musí být i ochrana dat – jak před zápisem, tak i čtením. Samozřejmě, někdo, kdo má venkovní čidlo asi nemusí nutně zaheslovat stránku před čtením – naopak je dobré, když jej sdílí třeba do TMEP mapy.

Naopak byste měli chránit data z vnitřních prostor. Proč? Viz má přednáška z LinuxDays.

A jak je to u TMEP?

Začneme ochranou proti přístupu dat. Statistiky mohou být zobrazeny pouze přihlášenému vlastníkovi.

Nastavení webového rozhraní TMEP včetně volby soukromých statistik dostupných po přihlášení

A ochrana proti zápisu?

Tady máme řekněme 3 úrovně.

První úrovní je unikátní GUID, které uživatel nastaví svému čidlu. Pokud se GUID neshoduje, hodnota se zahodí.

Nastavení čidla TMEP s poli GUID pro teplotu, vlhkost a tlak či CO₂

Další je filtrování příchozích dat na základě IP adresy

Nastavení teplotního čidla TMEP s filtrováním příchozích dat podle IP adresy

A poslední je ochrana unikátní doménou. Pokud někdo zná vaši doménu, GUID, bude mít stejnou IP adresu (sdílenou) může teoreticky zapsat falešná data. I na tohle TMEP myslí a přidal tuto funkci.

Nastavení čidla v TMEP s doménou pro statistiky a odesílání hodnot

V nastavení čidla je vygenerována i unikátní doména. Pokud na tuto doménu pošlete svá data (stejné GUID), pak tato náhodou doména slouží pouze pro zápis dat. Pro čtení a vizualizaci se pak používá DOMENA.tmep.cz

Problémy

A když se objeví nějaký problém?

1) zapomněli jste nahrát knihovny pro řídící desku (projděte znovu návod)

2) zapomněli jste nahrát knihovny pro čidla a měření napětí (projděte znovu návod)

3) vypínač na řídící desce. Ten musí být v poloze ON. Pak jsou řídící deska i čidla napájena z připojené baterie.

4) baterie je vybitá. Připojte USB-C nabíječku do desky.

5) špatně vyplněný formulář na tmep.cz (např. guid čidel)

K odhalení chyby může pomoci:
– Výstup ze Serial Monitoru

Sériový monitor Arduino IDE vypisuje údaje ESP32-C3, teplotu, vlhkost a stav připojení

– Debugovací výstup u TMEP.cz

Webová stránka TMEP zobrazuje naměřenou teplotu a vlhkost s otevřenou nabídkou ladění

Formát přijatých dat.

Ladicí výpis TMEP.cz s požadavky obsahujícími naměřenou teplotu a vlhkost

Umístění

Poslední kapitolou je umístění samotného čidla.
Prakticky, aby měřený údaj o teplotě a vlhkosti, byl co nejpřesnější, je nutné dodržet několik základních a všeobecných pravidel.

Čidlo byste neměli umístit do průvahu, k blízkosti topných těles (topení i těch skrytých jako komín) a vyhnout byste se měli také umístění v místnosti, kam přímo dopadá sluníčko. Neumisťujte čidlo přímo na zeď – ta bývá obvykle chladnější než vzduch v místnosti, stačí pár centimetrů od ní.
Esteticky, aby čidlo nerušilo estetický vzhled místnosti, je možné čidlo umístit například do krabičky – 3D tištěnné nebo koupené. Pokud ale nechcete nic kupovat, můžete čidlo a řídící desku s baterií umístit za obraz (se širším rámem) nebo například do týdenního samostatně stojícího kalendáře.

Čidlo s deskou tak neuvidíte, ale budete měřit, přesně. 🙂

Jako například zde, kde jsem umístil svůj monitor vzduchu
Otevřený rám obrazu odhaluje desku ESP32, čidlo a baterii ukryté za monitorem vzduchu

Kód pro tento jednoduchý teploměr je ke stažení ZDE.

Aktualizovaná verze FW pro ESP32 knihovnu v3 (neobsahuje ESP32AnalogRead knihovnu. Díky dwbmb)

Vysvětlení kódu

Akumulátor připojený k pinu GPIO0, dělící poměr děliče z akumulátoru, inicializace čidla teploty a vlhkosti SHT40
ESP32AnalogRead adcB;

#define ADCBpin 0

#define bDeviderRatio 1.82274 //1.7693877551 // Delic napeti z akumulatoru 1MOhm + 1.3MOhm

Adafruit_SHT4x sht4 = Adafruit_SHT4x();

Vyplníte název vaší Wi-Fi sítě a vyplněnou doménu pro TMEP.cz
/*———————————-*/

/* VYPLNTE NAZEV WIFI SITE A HESLO */

const char* ssid = „SSID“;

const char* password = „PASSWORD“;

/* VASE DOMENA CIDLA NA TMEP.CZ */

String serverName = „http://DOMENA.tmep.cz/index.php?“; // misto Domena vlozte vasi domenu cidla

/*———————————-*/

/* NASTAVENI MERENI NAPETI AKUMULATORU */

adcB.attach(ADCBpin);

/*————————————–*/

/* NASTAVENI CIDLA TEPLOTY A VLHKOSTI */

sht4.begin(); // inicializace

sht4.setPrecision(SHT4X_HIGH_PRECISION); // vysoka presnost mreni

sht4.setHeater(SHT4X_NO_HEATER); // bez interniho ohrivace

/*————————————–*/

/* PRIPOJENI K WIFI SITI */

WiFi.begin(ssid, password);

Serial.println(„Pripojovani“);

while(WiFi.status() != WL_CONNECTED)

{

delay(500);

Serial.print(„.“);

if(pokus > 20) // Pokud se behem 10s nepripoji, uspi se na 300s = 5min

{

esp_sleep_enable_timer_wakeup(300 * 1000000);

esp_deep_sleep_start();

}

pokus++;

}

/* MERENI NAPETI AKUMULATORU */

float bat_voltage = adcB.readVoltage() * bDeviderRatio;

Serial.print(„Napeti akumulatoru = “ );

Serial.print(bat_voltage);

Serial.println(“ V“);

/*————————–*/

/* CIDLO TEPLOTY A VLHKOSTI */

sensors_event_t humidity, temp;

sht4.getEvent(&humidity, &temp); // cekani na aktualni data

Serial.print(„Teplota: „); Serial.print(temp.temperature); Serial.println(“ stC“);

Serial.print(„Vlhkost: „); Serial.print(humidity.relative_humidity); Serial.println(„% rH“);

/*————————–*/

//GUID pro teplotu „teplota“, pro vlhkost „vlhkost“, pro napeti v akumulatoru „napeti“(graf), pro vypocet % kapacity akumulatoru „v“ (prepocet na %)

String serverPath = serverName + „teplota=“ + temp.temperature + „&vlhkost=“ + humidity.relative_humidity + „&v=“ + bat_voltage;

Extra TIP

Z vnitřního teploměru uděláte venkovní velmi jednoduše.

Potřebujete k tomu kryt – říká se mu radiační štít např. https://www.meteoshop.cz/produkt/tfa-98-1114-02-radiacni-stit-pasivni-maly.

Do něj můžete vložit jak desku, tak i akumulátor a i samotné čidlo.

Pozor byste si měli dát opět na umístění. Radiační štít by měl být ve stínu, aby nebyl ovlivňován sluncem.

Neměl by být ani umístěn nad asfaltem, lepší je trávník. Doporučená vzdálenost je 2m.

Umístění ovlivňuje přesnost měření, ale to neznamená, že to nemůžete dát třeba na fasádu. Pokud čidlo dáte do dostatečné vzdálenosti od fasády, může stále měřit velmi přesně.

Pokud by měl být tento teploměr zcela energeticky nezávislý (tedy bez nutnosti nabíjení z USB-C nabíječky), dokoupit můžete solární panel.

Doporučené parametry panelu jsou:

Jmenovité napětí 6V

Maximální napětí v nezatíženém stavu 8V

Zkratový proud vyšší než 400mA.

Články které jsem už napsal a mohly by se hodit:

Jak jsem si postavil neviditelný monitor vzduchu se 6 paramtery (téměř) ze šuplíkových zásob a jak bych to udělal lépe a hezčí. https://chiptron.cz/articles.php?article_id=314

Radiační štít – co to je, k čemu slouží, jak ho vytisknout nebo vyrobit https://chiptron.cz/news.php?readmore=1006

Venkovní meteostanice s čidlem a solárním panelem za pár stovek https://chiptron.cz/articles.php?article_id=291

Meteostanice s ESP8266, solárním panelem a připojením několika I2C čidel https://chiptron.cz/articles.php?article_id=303

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Ilustrace několika elektronických čidel a senzorů, včetně sondy s kovovým hrotem

Tenhle článek vznikl jako přehled čidel, která se na chiptron.cz objevují nejčastěji – v návodech, meteostanicích, projektech kvality vzduchu i DIY bastlení. Pro každé čidlo najdete klíčové parametry, knihovny pro Arduino / ESP32, případně odkaz na ESPHome nebo Home Assistant integraci, tipy,…

Meteostanice na LaskaKit ESPink-4.26, která nepotřebuje internet ani cloud. Sama rozpozná připojená čidla, kreslí grafy na e-paper a nastavíte ji přes USB nebo WiFi z telefonu. Nově i víc veličin v jednom grafu a kalibrace CO2, která čeká na ustálení…

Bílý radiační štít pro domácí meteostanici, zavěšený u okna

Jak vybrat domácí meteostanici v roce 2026. Porovnání tří cest: hotová stanice, hotová s možností napojení na Home Assistant a vlastní DIY na ESP32 s čidly SHT40 a BME280. Poradím, jak vybrat radiační štít (koupený i 3D tištěný) a kam…

Venkovní meteostanice se solárním panelem a odkrytou elektronickou deskou v krytu

Čím dál častěji se mě ptáte, jak si postavit vlastní meteostanici, která by měřila (nejčasteji) teplotu a vlhkost přímo na vámi vybraném místě.

Modrá deska meteostanice MeteoV2 s modulem ESP12E a konektory

Hledání vhodného projektu, který by pomohl při vysvětlování základních pojmů a principů nemusí být jednoduché.

Trendy