0,00 €

V košarici ni izdelkov.

0,00 €

V košarici ni izdelkov.

More
    DomovRevijaProgramiranjeRaspberry Pi 5, e-ključavnica in Wi-Fi vklop/izklop

    Raspberry Pi 5, e-ključavnica in Wi-Fi vklop/izklop

    Avtor: dr. Simon Vavpotič
    E-pošta:simon.vavpotic@gmail.com
    Raspberry Pi 5 je odličen računalnik, a kaj ko lahko vsak šari po njem po mili volji pa tudi ugašanje mu ne gre najbolje, saj 3,3-voltno napajanje pogosto ostane vklopljeno. Sam pa se vklopi, če zmanjka elektrike tudi, če smo ga prej izklopili s tipko. Za resno uporabo zato brez dodatnega modula ne gre!
    Raspberry Pi 5 je prvi model tega priljubljenega računalnika, ki omogoča mehki vklop in izklop s tipko. Nič več puljenja kablov ali ugašanja z mehanskimi stikali! Vse to omogoča novi Dialog DA9091 krmilnik napajanja.
    Vseeno odločitve podjetja Raspberry Pi nemalokrat presenetijo. Pri klasičnem PC lahko v BIOS nastavitvah izberemo, kako naj se ta obnaša, če zmanjka električnega toka, oziroma določimo, ali naj se samodejno ponovno zažene, vzpostavi enako stanje kot pred izklopom, ali ostane ugasnjen. Osnovne nastavitve Raspberry Pi 5 so zapisane kar v zagonskem pogonu podatkovnega nosilca, na katerem je nameščen operacijski sistem in ne v kakšnem baterijsko podprtem pomnilniku.

    Raspberry Pi 5 sicer ima možnost baterijskega napajanja, a le za uro realnega časa, ki je tako ni potrebno vsakokrat, ko računalnik ponovno zaženemo, ponastaviti iz interneta. Čeprav je nalaganje začetne vrednosti ure realnega časa iz internetnega strežnika navadno še kar hitro, kljub temu lahko vmes že posnamemo kako datoteko z napačnima uro in datumom, saj Raspberry Pi brez ponastavitve začne šteti od datuma in ure, ko smo ga ugasnili…
    Vedno se ponovno zažene!
    Kakorkoli, Raspberry Pi 5 se po prekinitvi napajanja samodejno vselej ponovno zažene. Domnevam, da so se njegovi snovalci za tako rešitev odločili namerno, saj so želeli uporabnikom omogočiti čim bolj podobne funkcionalnosti, kot jih imajo njegovi predhodniki. Če Raspberry Pi 5 ugašamo z mehanskim stikalom, je tako vse v najlepšem redu.
    Ko so novembra začeli prihajati prvi Raspberry Piji v naše domove, sem od enega od novopečenih uporabnikov dobil vprašanje, ali Raspberry Pi 5 lahko vklopi tako, da enostavno priklopi napajalni kabel. ”Seveda!”, sem mu odgovoril. Skratka, bojazen, da bi se ta ne vklopil, če smo ga prej mehko uganili s tipko, je povsem odveč. Bolj nerodno pa je, če si tega želimo.
    Med testiranjem DA9091 sem odkril še eno pomanjkljivost – ugašanje napajalnih 3,3-voltnih priključkov med mehko zaustavitvijo. Če računalnik ugasnemo iz ukazne konzole z enim od ukazov shutdown ali poweroff ali iz menija Start, se ta na videz povsem izklopi, a v resnici 3,3-voltno napajanje ostane vklopljeno, kar je nerodno, če uporabljamo klobuke z znatno porabo električne energije. Obenem DA9091 ostane brez ventilatorskega hlajenja, a to ni problematično, saj se BCM2712 sistem v enem čipu izklopi. Zanimivo pa je, da se 3,3-voltno napajanje izklopi, če računalnik mehko uganemo s tipko.
    Če hočemo Raspberry Pi 5 uporabljati kot sodoben namizni računalnik, nam tako ne preostane drugega, kot da dodamo modul za upravljanje napajanja, ki ni odvisen od programske opreme v njem.
    Zakaj ESP32-CAM modul?
    Za osnovo sem uporabil kar dobro znani ESP32-CAM modul, ki ga lahko obenem uporabimo tudi za spremljanje žive slike prek Wi-Fi. Prikladen je tudi zato, ker ima že vgrajen 3,3-voltni regulator in ga lahko napajamo s 5 V, kar iz Raspberry Pija. To je hkrati tudi edina možnost, če hočemo da je napajanje ves čas na voljo, ne glede na stanje Raspberry Pija. Zakaj je to pomembno? Modul za ugašanje in prižiganje Raspberry Pi na daljavo mora delovati ves čas, tudi takrat, ko je Raspberry Pi 5 ugasnjen s tipko in je 3,3-voltno napajanje izklopljeno. Tu druge možnosti kot 5-voltno napajanje ni.
    Prednost ESP32-CAM modula je tudi majhnost. Čeprav ima sorazmerno malo priključkov, uporabnih v uporabniških aplikacijah, razen tistih na konektorju za digitalno kamero, jih je za marsikateri projekt povsem dovolj. Majhnost modula omogoča njegovo vgradnjo tudi v nekoliko večja ohišja, v katerih je prostor za dodatni klobuk.
    Hkrati ESP32-CAM modul lahko deluje kot Wi-Fi dostopna točka in spletni strežnik in tako omogoča bistveno upravljanje na daljavo že pred Wi-Fi naprav s spletnim brskalnikom. Vgrajen ima tudi priključek za priklop zunanje antene, ki znatno podaljša njegov domet. Poleg tega, lahko vanj še vedno vgradimo Omni Visionovo digitalno kamero in z njo spremljamo dogajanje v prostoru na daljavo kadar se nam to zahoče.
    Dodaten razlog, zakaj je ESP32-CAM modul tako priročen, je tudi vanj vgrajena močnostna svetleča dioda, ki je sicer namenjena za osvetljevanje predmetov, odlično pa se obnese tudi kot indikator izvajanja operacij modula za upravljanje vklopa in izklopa.
    Napetostne indikacije za vklop in izklop
    Zanesljivo prižiganje in ugašanje Raspberry Pi 5 na daljavo ni tako enostavno, kot se zdi. Ko ga ročno prižigamo in ugašamo z vgrajeno tipko, navadno hkrati opazujemo signalno LED, ki med delovanjem sveti zeleno, med izklopom pa rdeče. Tako vemo, ali smo jo držali dovolj dolgo. Na daljavo te indikacije nimamo, vemo le približni čas zakasnitve, po katerem DA9091 odreagira na našo zahtevo.
    Odziv pri vklopu računalnika s tipko je zelo hiter, okoli 100 ms, če pa računalnik ugašamo, moramo tipko pritisniti dvakrat in jo drugem pritisku tiščati nekaj sekund. Zakaj? Če pravilno nastavimo operacijski sistem, bi se moralo po prvem pritisku pojaviti odjavno okno, kar je podobno kot v Microsoftovih Windows, če pa pritisnemo tipko še enkrat in jo tiščimo približno nekaj sekund, se računalnik ugasne ne glede na odzivnost operacijskega sistema.
    Namesto indikacije LED je za detekcijo trenutnega stanja Rapsberry Pi 5 mogoče uporabiti tudi napajalno napetost 3,3 V na 40-polne razširitvenem priključku in napetost enega od priključkov USB 2.0. Če hočemo priključek hkrati uporabljati še za priklop kake druge naprave, moramo izdelati preprost žični vmesnik, ki je obenem merilna sonda. Moški in ženski konektor povežemo s kratkim 4-žilnim kablom (ne daljšim od 5 cm), obenem pa iz moškega konektorja potegnemo še napajalno napetost Vusb. Vusb nato prek uporovnega delilnika v razmerju 2 proti 3, ki ga lahko izdelamo iz treh 4,7k uporov dobimo signalno vhodno napetost med 0 V (v nizkem stanju) in 3,3 V (v visokem stanju), ki jo vežemo na vhod ESP32-CAM modula.
    Raspberry Pi 5 Vusb ugasne vsakokrat, ko gre BCM2712 v stanje zaustavitve, zato je to dobra indikacija, da je BCM2712 v stanju zaustavitve, ne glede na to, ali ga zaustavimo z ukazom, prek menija ali z dvakratnim klikom in tiščanjem tipke za vklop/izklop. Po drugi strani je 3,3 V dobra indikacija, da računalnik še ni popolnoma ugasnjen, oziroma da se je zagnal, če je bil prej popolnoma ugasnjen.
    Tretji vhod v ESP32-CAM modul potrebujemo za zunanjo tipko, ki sedaj ni več neposredno vezana na Raspberry Pi 5, ampak ESP32-CAM modulu zgolj posreduje zahtevo za vklop ali izklop. Podobno, kot pri DA9091 čipu, moramo tudi pri zaznavanju pritiska na tipko izločiti hitre večkratne nihaje napetosti, kar pa je v Arduino C++ programski kodi sorazmerno enostavno realizirati. Vgrajeno programsko opremo najdete na spletni strani pcusbprojects.com.
    Programiranje zanesljivega vklopa/izklopa Raspberry Pi 5
    Zdaj se lahko lotimo še krmilnega signala, s katerim ESP32-CAM modul posreduje zahtevo za vklop ali izklop Raspberry Pi 5. Pri tem uporabljamo priključek za zunanjo tipko za vklop/izklop Raspberry Pi 5. Priporočam, da na tiskanino prispajakate stebrička (angl. 2-pin header), na katera nato prek ustrezne vtičnice pripeljete edini krmilni signal iz ESP32-CAM modula.
    Programiranje vklopa/izklopa Raspberry Pi 5 je sorazmerno enostavno. Če je vrednost Vusb na logični 1, potem je računalnik že zagnan, zato ni potrebno storiti ničesar. V nasprotnem vhodni signal za zunanjo tipko Raspberry Pi 5 kratko sklenemo (logični nivo 0) in čakamo, da se pojavi napetost Vusb. Ko se ta pojavi dovolimo, da gre krmilni signal za tipko nazaj na logično vrednost 1.
    Ugašanje računalnika je nekoliko bolj komplicirano. Signal za zunanjo tipko Raspberry Pi 5 kratko sklenemo in čakamo, dokler napajalna napetost 3,3 V ne preide v 0 V. Ob omenjenem je potrebna še kontrola prehoda Vusb iz 5 V v 0 V, pri čemer napajalna napetost 3,3 V ostane. V tem primeru ponovno kratko sklenemo signal za zunanji tipko za vklop/izklop Raspberry Pi 5, dokler napajalna napetost 3,3 V ne izgine.
    Upravljanje vklopa in izklopa s tipko in prek Wi-Fi
    Na poseben vhod ESP32-CAM modula je vezana tudi zunanja tipka za vklop/izklop. Ta deluje tako, da ESP32 samo sporoči našo zahtevo, ta pa se nato odloči, ali bo računalnik zagnal ali ne. Pri normalnem delovanju enkraten pritisk na tipko sproži zagon, pri čemer se kot indikacij prižge močnostna LED, ki za kratek čas posveti skozi ohišje modula. Kadar je vklop Raspberry Pi 5 zaklenjen, močnostna LED takoj ugasne, ko spustimo tipko. Za ugašanje računalnika s tipko moramo le to pridržati okoli 3 sekunde, nakar posveti močnostna LED, ki sveti tako dolgo, dokler se računalnik ne zaustavi.
    Za ugašanje in prižiganje na daljavo ESP32-CAM vzpostavi dostopno točko, prek katere sprejema telnet ukaze ‘-’, ‘+’ in ‘?’. Za posredovanje ukazov mora imeti Wi-Fi naprava nameščeno telnet odjemalsko aplikacijo. Z ‘-’ Raspberry Pi 5 ne le zaustavimo, ampak tudi zaklenemo njegovo prižiganje prek tipke, medtem ko ga s ‘+’ vselej zaženemo. Ukaz ‘?’ izpiše trenutno stanje računalnika in njegovih napajalnih napetosti.
    ESP32-CAM modul v svojem trajnem pomnilniku hrani tudi stanje vklopa/izklopa Raspberry Pi 5. Zato obenem prepreči, da bi se ta po izpadu električnega napajanja ponovno vselej zagnal. Če je bil računalnik pred prekinitvijo napajanja ugasnjen s tipko, ga ESP32-CAM modul po ponovnem priklopu napajanja samodejno ponovno zaustavi s tipko, še preden se zažene operacijski sistem. Če pa je bil vklopljen, dovoli, da se ponovno zažene. Večina tako delovanje pričakuje tudi od klasičnega PC.
    Celoten projekt, vključno z Arduino izvorno kodo, najdete na spletni strani PCUSBProjects.com. Sestavljanje projekta si lahko ogledate tudi na youtube kanalu PCUSBProjects.
    Deluje tudi v Raspberry Pi 2, 3 in 4!
    Pretekle različice od Raspberry Pi 2B do Raspberry Pi 4B so imele vgrajen tripolni priključek s tremi signali: GLOBAL ENABLE (vklop/izklop), GND (masa), RUN (delni izklop). Namesto priključka za tipko lahko uporabimo GLOBAL ENABLE, vendar ta deluje nekoliko drugače. Napetost je 5 V, zaradi česar potrebujemo dodaten tranzistor, denimo BC109C, s katerim signal s 3,3-voltno logiko iz visokega logičnega nivoja spravimo na nizek logični nivo in s tem zaustavimo računalnik. Odlično deluje! Pri tem je programska opreme za vklop in izklop Raspberry Pi na daljavo veliko enostavnejša, saj ji ni potrebno preverjati njegovega stanja.
    Projekt za starejše modele Raspberry Pi najdete na spletni strani PCUSBProjects.com
    https://svet-el.si