USB Web teploměr
Úvod
Teploměr byl navržen pro vzdálenou kontrolu teploty v rozsahu -30°C až 70°C (nebylo možné prakticky změřit, věřím datasheetu). Aby bylo možné teplotu kontrolovat téměř odkudkoliv, byla obslužná aplikace vybavena jednoduchým webovým serverem, který generuje HTML kód s informací o teplotě. Ten je možné číst samostatně, nebo jej jednoduše vložit, např. pomocí PHP funkce include nebo HTML funkce iframes, do libovolné HTML stránky. Zařízení Vás tak může kdekoliv informovat, jaká je teplota ve Vašem domě a podobně.
Technické řešení
Zařízení je realizováno na dvou deskách plošného spoje. První deska je převodník sběrnice USB na RS232. Vzhledem k nedostatku času a snaze snížit náklady byl použit převodník firmy PK design. Jeho srdcem je integrovaný obvod FT232BM, který je zapojen podle katalogového listu výrobce, jímž je firma FTDI chip. Druhá deska je domácí výroby a nachází se na ní čidlo teploty DS1626, mikroprocesor Attiny2313, oscilátor a ISP konektor. Desky jsou vzájemně propojeny čtyřmi vodiči, Vcc, Gnd, RxD a TxD. Mechanické spojení je tvořeno trojicí kovových, distančních sloupku. Ty zároveň slouží k upevnění celého zařízení do krabičky. Celé zařízení je napájeno přímo z USB portu PC. Pro připojení tedy stačí jediný kabel.
Popis zapojení
Deska pro měření teploty se skládá z teplotního čidla DS1626, které je přímo připojeno k mikroprocesoru Attiny2313 (ve schématu je uveden AT90S2313, který je pinově kompatibilní), jehož činnost je popsána níže. Dále se na desce nachází oscilátor tvořený kondenzátory C1 a C2 a krystalem X1 , obvod reset tvořený kondenzátorem C3 a rezistorem R1 a konektory SV1 a SV2 určené pro komunikaci a programování mikroprocesoru. Dioda D1 byla použita pouze pro ladění, kdy bylo paralelně ke kondenzátoru připojeno resetovací tlačítko.
Desku převodníku RS232-USB zde popisovat nebudu, protože je popsána na stránkách výrobce.
Popis obslužné aplikace pro PC
Obslužná aplikace je napsána v objektovém jazyce Delphi 7. Aplikace využívá VCP (virtual com port) ovladač, který z připojeného USB modulu vytvoří velmi rychlý sériový port. Tento VCP je pro zprovoznění teploměru nutné nainstalovat. Podrobný návod k instalaci je na stránkách firmy FTDI.

Okno aplikace se skládá ze sekce "Nastavení", ve které lze nastavit číslo sériového portu, číslo portu webového serveru a interval, ve kterém je přijímána teplota a ze sekce "Stav" ve které je zobrazena poslední známá teplota a informace o aktivitě celého zařízení.
Ovládání aplikace je velmi přehledné a intuitivní, proto nemá smysl jej dále popisovat.
Pro obsluhu sériového portu je použit open source kód Synaser, který je velmi jednoduchý a přehledný.
Po spuštění aplikace nastaví výchozí hodnoty všech proměnných, nastaví vlastnosti Enable a Visible u prvků, kde je to vyžadováno a detekuje dostupné sériové porty. Poté aplikace čeká na případnou změnu přednastavených hodnot a stisk tlačítka "Start", které spustí webserver, měření teploty a opět změní vlastnosti Enable a Visible tak, aby nebylo během měření možné měnit např. port webserveru, což by mohlo způsobit nestandardní situaci. Během měření je v sekci "Stav" zobrazen nápis "aktivní" a pod ním naměřená teplota. Pokud je potřeba měření ukončit, je připraveno tlačítko "Stop", které vrátí program do stavu, v jakém se nacházel před stiskem tlačítka "Start".
Popis vestavěného webového serveru
Pro realizaci webového serveru byla použita komponenta IdHTTPServer, která je přímo obsažena v některých verzích Delphi a lze s ní vytvořit plnohodnotný webový server. Zde bylo využito pouze několika málo vlastností, a tak vznikl server, který při dotazu na adresu …/teplota.html vrací HTML kód ve tvaru <h1 id="teplota">xx</h1>, kde xx je naměřená teplota. Identifikátoru "teplota" lze výhodně použít například při vkládání tohoto kódu do stránky pomocí PHP., kde můžeme jednoznačně nadefinovat CSS styl.
Pokud bude zadána jiná adresa, než .../teplota.html, tak server vrátí oznámení o chybě 404.
Popis programu pro ATtiny2313
Program pro MCU je napsán v asembleru a jeho velikost po přeložení je 200B, což je asi 9.3% celkové paměti FLASH. Zbývá tedy dostatek místa i I/O pinů pro připojení dalších čidel.
Program začíná inicializací zásobníku a sériového portu. Po jejím provedení odešle do teplotního čidla konfigurační byte. Poté vstoupí do smyčky, kde kontroluje data z PC a kontroluje, zda nepřišel požadavek na čtení teploty. Pokud program zaregistruje tento požadavek, odešle čidlu příkaz pro konverzi teploty. V nastaveném rozlišení 9 bitů trvá konverze asi 100ms, tuto dobu MCU počká a po jejím uplynutí odešle čidlu příkaz pro čtení teploty. Tu přečte a výsledek uloží do dvojice registrů, ze kterých jí odešle do PC.
Závěr
Součástky lze objednat u GME. Teplotní čidlo u nás prodává HT Eurep a USB modul lze objednat u výrobce.
Komerční použití konstrukce, zdrojového kódu či obslužné aplikace je bez písemného souhlasu autora zakázáno