Jiný způsob napájení Raspberry v automobilu
Napájení Rpi v automobilu
Problém s napájením Raspberry je ten, že jej nelze jednoduše vypnout, přerušit napájení. Tedy ono to jde, jednou, dvakrát..vystavujeme se ale riziku, že se poškodí souborový systém na SD kartě. Raspberry zkrátka potřebuje před vypnutím zavést klasický shutdown a to trvá někdy až 30 sekund. Následující zapojení jsem "zkompiloval" z několika různých zdrojů na netu.
Předpokladem fungování tohoto zapojení je, že máme k dispozici trvalé napájení, které se nepřerušuje vypnutím zapalování. Spotřeba celého zapojení je v režimu "sleep" pouhých 15 mA.
Hardware:
Digitální relé - Programovatelný časový spínač s relé 12V - Modul
DC/DC měnič 12/5V 2A/3A s chadičem
Raspberry
Napájecí napětí 12 V
Software
Raspberry OS bullseye 32bit
Node-red + smart-nodes (doinstalace v Node-red)
Node-red + smart-nodes (doinstalace v Node-red)
Blokové schéma
Funkce
Zpožďovací relé je trvale napájeno ze záložní baterie (nebo autobaterie). Jakmile se na jeho IN vstupu objeví napájecí napětí (zapalování ON), sepne kontakty a přivede napájecí napětí 12V na DC/DC měnič 12V/5V . Pomocí měniče se napájí Raspberry a to začne startovat. Digitální relé pracuje v módu P-4 a zpoždění je nastaveno na 45 sec. To znamená, že i když vypneme zapalování a z jeho vstupu IN zmizí napětí, relé čeká 45 sekund, než vypne napájení DC/DC měniče. Což je dost času na regulérní shutdown Raspberry. Navíc je tak ošetřen případ nechtěného vypnutí zapalování.
Napětí ze zapalování je zároveň přes dělič napětí vedeno na GPIO 16. který je pomocí toku v Node-red monitorován. Pokud při běhu Raspberry z tohoto pinu zmizí napětí (zapalování OFF), zavede se příkaz HALT, což trvá cca 30 sekund a po dalších 15 sekundách se celé Raspběrry i s měničem 12/5V odpojí od napájení. Spotřeba klesne na 15 mA.
INPUT GPIO 16
Sem je přes dělič přivedeno napájecí napětí ze zapalování.
GPIO nesmí být vystaveno vyššímu napětí jak asi 3V.
Dělič lze zakoupit anebo vyrobit ze dvou rezistorů.
GPIO nesmí být vystaveno vyššímu napětí jak asi 3V.
Dělič lze zakoupit anebo vyrobit ze dvou rezistorů.
Delay
Tento uzel má dvě nastavení: Switch-on delay a Switch-off- delay.
Switch-on delay jsem nastavil na 1 sekundu, Switch-off delay na 30 sekund. Pokud se tedy objeví na GPIO16 kladné napětí, po jedné sekundě se na jeho výstupu objeví "1". Což mne nezajímá a proto ji v dalším uzlu eleminuji. Pokud napětí zmizí, uzel Delay čeká 30 sekund a pak se na jeho výstupu objeví "0".
Tento uzel je klíčový, protože má tu vlastnost, že v případě, že se po vypnutí zapalování (napěti na GPIO16 zmizí) během 30 sekund na vstupu znovu opět objeví "1" z GPIO16, odpočet vypnutí se zruší a uzel "Delay" se vrátí se do výchozího stavu. Což je dobrá ochrana proti nechtěnému vypnutí zapalování. Tu samou funkci má i digitální relé. V nastavení "Delay" je ještě nutné zrušit funkci "System start/Save state".
Switch
Tento modul slouží k rozdělení zprávy z uzlu Delay. Uzel Switch má dva výstupy. Na horní vedu zprávy o zapnutí (tedy "1"), na dolní výstup zprávy o vypnutí (tedy "0"). Zpráva o zapnutí mne nezajímá (to obsluhuje digitální relé).
Change node
slouží k přeměně zprávy "0" na zprávu "1", protože následující uzel "funkce" očekává právě zprávu "1".
Uzel funkce (sudo halt) je právě ten, který zavádí do systému Raspberry příkaz "sudo halt". Jemu jsem ještě předřadil uzel "triger", který z přicházející zprávy z uzlu "Change node" vyrábí impuls o délce 250 ms (něco jako kliknutí myší na vypni).