Záznamík sepnutí kontaktů
NEVEŘEJNÉ
Zařízení pro zaznamenávání času sepnutí dvou kontaktů doplněné o možnost zaznamenání teploty v okamžiku sepnutí. Tento záznamník je napájený z baterií a proto jsem se snažil co nejvíce snížit odběr proudu. Základem je mikrokontroler ATtiny85, který přes I2C komunikuje s externí EEPROM pamětí a RTC časovým obvodem. Postupem času jsem k tomu přidal ještě teploměr, který také komunikuje s ATtiny85 přes I2C. Hardwérově je zařízení rozložené na 3 desky: - Hlavní záznamník s ATtiny85, EEPROM a RTC. - Čtečka (Arduino NANO jako převodník z I2C na USB). - Teplotní čidlo se svorkovnicí pro připojení kontaktu (je to jen trochu upravený plošňák ze čtečky). Software se skládá ze tří samostatných částí. První část se nachází v čipu ATtiny85. Hlavní část funguje tak, že při stisku tlačítka probudí obvod z režimu spánku, přečte si aktuální čas z RTC modulu, teplotu a uloží to společně s informací o stisknutém tlačítku do přídavné EEPROM. Pak zas přejde do SLEEP režimu s minimální spotřebou (pod 1uA), ve kterém čeká na další stisk tlačítka. Součástí je speciální "Servisní režim", který odpojí sběrnici I2C od ATtiny a umožní tak komunikaci EEPROM a RTC s čtečkou. Druhá část programu je ve čtečce (Arduino NANO). Arduino NANO slouží jako interfejs mezi počítačem (USB sériovým portem) a záznamníkem. Čtečka dokáže uvést záznamník do servisního režimu. Pak pomocí jednoduchých příkazů, které jsou odesílány po sériové lince (USB) z PC do Arduina, dokáže komunikovat s EEPROM a RTC. V případě čtení dat jsou pak získané informace odesílány zpátky do PC. Třetí část kódu je v podstatě grafické uživatelské rozhraní. Využil jsem k tomu MS Excel a jeho programovací jazyk VBA. Byl s tím trochu problém, protože různé verze Excelu měly různá omezení přístupu k sériové lince. Nakonec jsem použil komponentu pro ovládání sériové komunikace (NetCommOCX), která funguje na všech verzích Excelu i Windows, které potřebuji. Nejsem si ale jistý, že bude fungovat úplně na všech verzích. Pomocí grafických tlačítek v Excelu je pak možné stahovat zaznamenané údaje přímo do tabulky, kde se s nimi dá už normálně pracovat. Dalšími funkcemi, které jsou dostupné z Excelu, je například nastavování času v RTC, nebo mazání EEPROM. Vzhledem k tomu, že komunikace se čtečkou probíhá po obyčejném sériovém portu, je možné použít k získávání dat i obyčejný sériový terminál - třeba ve smartphonu. Některé detaily o elektronice: Kvůli snaze o minimální odběr proudu z baterie se EEPROM, RTC a teplotní čidlo napájí až v okamžiku, kdy dojde k probuzení ATtiny. O napájení těchto součástek se stará pin PB1 na ATtiny95. RTC obvod má navíc ještě vlastní záložní knoflíkovou baterii. Když je tedy odpojené napájení, údaj o čase se neztratí. Protože ATtiny85 má jen málo dostupných I/O pinů, použil jsem pin, na který připojen kontakt, i pro LED signalizaci. Plošný spoj a schéma (Eagle): konlog.zip Programy: Hlavní program pro záznamník do procesoru ATtiny85: tiny85.ino Program pro Arduino NANO, které slouží jako čtečka uložených dat v EEPROM a stará se jejich přeposílání na sériový port: ctecka.ino Grafické rozhraní pro MS-Excel (obsahuje makra): excel-konlog.xls Princip činnosti záznamníku Fotky Záznamník s připojenou čtečkou Záznamník s připojeným teploměrem a svorkami pro kontakty Výstup do běžného sériového terminálu Výstup do Excelu
|