V loňském roce jsem při surfování po internetu narazil na jeden zajímavý projekt pana Stefana Fringse "AVR Webserver I/O Modul". Tento projekt řeší ovládání vstupních a výstupní portů AVR procesoru pomocí telnet příkazů. Jelikož se velice blížil mým představám, stal se základem pro EthernetCommandBox (EthCoBox).
Základní vlastnosti:
- výstupy 8x relé NO kontakt 250 VAC / 10 A
- paměť FRAM pro uložení stavu výstupů i při výpadku napájení
- 4x vstupy 0-10 V
- napájení 12 V
- HW příprava pro RS485
- HW příprava pro Dallas 1-wire
- SW příprava pro SMTP server (zasílání e-mailů)
- volné zdrojové kódy pod GPL licencí
Hardwarová část
Mým cílem bylo vytvořit zařízení, které bude přes prohlížeč ovládat různá zařízení (topení, sauna, bazén, osvětlení, aj.). Možnost ovládání přes prohlížeč navíc umožňuje ovládat výstupy nejen z PC ale i z telefonu nebo tabletu. Pro jednoduché začlenění do elektroinstalace jsem celé zařízení zabudoval do krabičky (6modul) určené pro montáž na DIN lištu.
Jelikož jsem se při kompilaci blížil hranici kapacity paměti procesoru Atmega644, rozhodl jsem se použít procesor s větší kapacitou ATmega1284. Jako Ethernet kontrolér je použit CP2200 (Silicon labs). Výhodou tohoto kontroléru je velice jednoduchá HW i SW implementace. Napájecí část generuje napětí 5 V a 3,3 V. Jako driver RS485 je osazen obvod 75176. Pro uchování stavu posledních výstupů při výpadku napájení byla použita pamět FRAM FM24C04.
Softwarová část
Původní zdrojové kódy jsem lehce upravil a doplnil o interaktivní webové rozhraní. Všechny původní telnet příkazy zůstaly zachovány a byly doplněny o nové. Zdrojové kódy jsou velice pěkně okomentované a přehledné. Lze je použít pro různé typy AVR procesorů (viz seznam telnet příkazů níže).
Kompilace
Zdrojové kódy jsou ve formátu AVR-GCC. Výhodou je, že veškerý software pro programování a kompilaci je zdarma. Je také možné kompilovat jak pod Linuxem tak pod Windows. Pro Linux budete potřebovat avr-gcc, avr-libc, gnu make, avrdude and perl. Pro Windows WinAVR, Strawberry Perl nebo Active Perl.
Dále popíšu postup pro Windows:
- stáhnout a nainstalovat WinAVR (http://winavr.sourceforge.net )
- stáhnout a nainstalovat Strawberry Perl (http://strawberryperl.com/ )
- stáhnout a nainstalovat AvrDude
- stáhnout a rozbalit zdrojové kódy
- editovat soubor Makefile, přízpůsobit parametr AVRDUDE_HW (Vašemu programovacímu hardware)
Programování
Vaše návrhy nepatří do šuplíku!
Zajímavá konstrukce nebo jen neobvyklé řešení? Podělte se o své zkušenosti s ostatními! Nechte se inspirovat a pište na redakce@hw.cz .
- „make clean“ vyčistí předchozí komiplace
- „make fuses“ naprogramuje fuse procesoru - nezapomeňte (stačí udělat pouze jednou)
- „make program“ zkompiluje a hned poté naprogramuje procesor
Návod k obsluze hotového zařízení
Předpokladem je správné nastavení IP parametrů (viz. též dokument první spuštění níže):
- připojte EthCoBox nekříženým kabelem do Vaší počítačové sítě
- připojte napájení
- ve Vašem www prohlížeči zadejte IP adresu zařízení
- výstupní relé můžete ovládat na úvodní stránce zařízení
- stav vstupů můžete sledovat na stránce inputs
- zařízení můžete ovládat i příkazy telnetu
- stav výstupů je zapamatován i při výpadku napájení, po zapnutí je obnoven do stavu před přerušením napájení
- zařízení je možno chránit před neoprávněným přístupem pomocí hesla, viz. konfigurační strana (config.shtml)
- prosím důkladně zvažte, co budete tímto zařízením ovládat, včetně všech důsledků, které mohou nastat chybnou obsluhou, případně poruchou zařízení; já i ostatní autoři nemůžeme nést za tyto chyby a jejich následky zodpovědnost
- dále si dejte pozor na neoprávněný přístup: WWW rozhraní je sice možné chránit heslem, ale jedná se pouze o jednoduchou ochranu s nízkou úrovní zabezpečení
Možnosti rozšíření aneb co dále
- Na plošném spoji je osazen obvod 75176, umožňující komunikaci po lince RS485. Původní idea byla udělat vzdálený modul pro 8 výstupních relé po lince RS485
- Zprovoznit sběrnici „1-Wire“, kterou jsem původně zamýšlel pro připojení teplotních čidel DS18B20
- Udělat aplikaci pro Android, iPhone která by přes telnet příkazy ovládala EthCoBox, v současné době to lze přes webový prohlížeč, ale přímo ušitá aplikace by byla lepší
- Udělat plošný spoj umístěný v horní části krabičky na kterém budou osazené LED pro zobrazení stavu výstupních relé
- Zprovoznit SMTP zasílání zpráv
Pro zájemce o konstrukci nabízím v e-shopu některé hůře sehnatelné součástky, např. TG41-2006N (Ethernet trafo s převodním poměrem 1:2.5). Rovněž si zde můžete zakoupit již osazený, naprogramovaný a odzkoušený EthCoBox.
Ke stažení
- firmware18-02-2012.zip
- ethcobox_-_schema_a3.pdf
- cp2200.pdf
- atmega1284.pdf
- TG41-2006N.pdf
- první spuštění.pdf
- seznam telnet příkazů.pdf
Poděkování
Za inspiraci pro tento projekt děkuji následujícím stránkám a osobám:
Stefan Frings
- Toto je hlavní inspirace pro můj projekt. Použil jsem jeho zdrojové kódy šířené pod licencí GPL. V projektu se zabývá možností ovládat vstupní a výstupní periferie procesorů Atmel AVR přes Ethernet. Jeho software je určený pro moduly prodávané na http://www.chip45.com. Já jsem zdrojové kódy upravil a rozšířil o interaktivní webové rozhraní. Pozor, můj hardware má jiné zapojení než moduly chip45.de, nelze bez uprav zaměňovat hardware a software, i když úpravy jsou pouze v konfiguraci portů.
The Contiki OS
- Contiki je open source operační systém pro internet v elektronických zařízeních – běží na síťových embedded sytémech a sítích bezdrátových senzorů. Contiki byl použit v mnoha projektech, jako například síť požárních čidel v silničních tunelech, zabezpečovací sytémy, monitorování divoké zvěře a v monitorovacích sítích. OS je určen pro mikrokontroléry s malým množstvím paměti: typická konfigurace Contiki je 2 kB RAM a 40 kB ROM.
Peter Fleury
- Základní asemblerové rutiny pro komunikaci s I2C, založené na AtmelApplication Note AVR300 s opravou a přizpůsobením GNU assembleru AVR-GCC. Opraveno nesprávné zpoždění nalezené v AVR300.
Odkazy
Autor konstrukce, text a fotografie: Lubomír Berky, www.din-box.cz, berky@din-box.cz
Komentáře
Cena
Dobry den, zarizeni vypada moc pekne, muzu se zeptat na celkovou cenu soucastek a pripadne desky, pokud jste si ji nechal delat?
Dekuju moc
Celková cena součástek
Dobrý den,
cena součástek je cca 1200,- i s DPH a se započítaným poštovným od prodejců. Plošný spoj cca 220,- plus příprava výroby, záleží u koho objednáte.
malo
moc pekne, ale malo..
idealne 16xvstup, 16xvystup + 1-wire sbernice pro teplotni cidla
s tim se uz pak daji delat zajimave veci (automatizace vytapeni atd..)
Všechno chybí
Dobrý den,
dneska jsem nalezl tuto zajímavou konstrukci, ale bohužel všechny podklady jsou mrtvné. Schema, odkazy,........ Proto bych se chtěl zeptat, jestli není nějaká možnost znovuobnovení. Děkuji
S pozdravem
Jirka