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





úvodní strana webu AstroMiK.org poslední úprava stránky xx.xx.xxxx