Avietė 3: valdymo skydelis

Posted: 2016-03-22 in Darbeliai
Žymos:, , ,

Raspberry Pi 3, PiUi piktograma/ikona/icon | Darau, blėKad jau „RS Components“ atstovų dėka turiu naują Avietę, tai nusprendžiau ja deramai pasirūpinti. Reklaminiais tikslais primenu, kad „RS Components“ parduoda trečias Avietes internetu.

Sakykim, iki šiol aš savo Avietes valdydavau prisijungęs per SSH ir pasižiūrinėdamas, kas ten jose vyksta. Na, su pirmąja Aviete buvau ir orų stotelę šiokią tokią pasikūręs su Flask. Ir vis pagalvodavau, kad gerai gi būtų galimybė kokias nors tarnybas perkrauti ar jų būsenas pažiūrėti pernelyg giliai nelendant, šiaip užmesti akį, kaip sekasi. Įsivaizduodavau, kad norėčiau kažko tokio su lengva Web sąsaja, kad kliento pusėje (pvz. telefone) nereikėtų atskiros programulkės.

Su naująja Aviete ir pora kitų „projektų“ galvoje supratau, kad be kažkokios tokios valdymo priemonės nebeapsieisiu ir reikia baigti maivytis ir to darbo imtis. Apžvelgęs keliolika alternatyvų (įskaitant ir „pasirašyti nuo nulio“) nusprendžiau imtis PiUi tinkinimo saviems poreikiams.

Pradėsiu nuo „Hello, World“.

PiUi yra sukurtas su tokia mintimi, kad Avietėje užkuriama WiFi prieiga (hotspot) ir per ją pasiekiamas PiUi. Na, pavyzdžiui, kaip kokia GoPro kamera su WiFi prieiga. Nešiojamiems projektams tai tikrai patogu, tačiau mano Avietė visada kabo ant laido ir man ją norisi pasiekti per tą patį naminį tinklą. Todėl WiFi prieigos užkūrimą aš praleisiu ir pabandysiu PiUi pasileisti tiesiog taip, paprastai.

Dar pridursiu, kad „PiUi“ yra senas projektas ir trejus metus jo GitHube niekas nebevyksta. Tai iš vienos pusės galbūt reikėtų kažko naujesnio pasiieškot, iš kitos — daiktas paprastas ir veikiantis.

Pirmas punktas, diegiam nginx, tokį nediduką, bet ganėtinai pasiutusį serveriuką:

sudo apt-get install nginx

Paskui reikia nusigriebti PiUi ir kur nors pasidėti (kad ir „naminiame“ kataloge):

git clone https://github.com/dps/piui.git

Užeinam į „piui“ katalogą. Paskui pasiimam nginx_conf/nginx.conf failiuką ir jį padedam į /etc/nginx/nginx.conf. Tiesa, prieš tai tą failiuką verta pasiredaguoti. Sakykim, mano Avietės vardas yra „uoga3“ ir per tokį URL ją norėsiu pasiekti. Todėl nginx.conf faile visus „piui“ pakeičiau į „uoga3“.

Po failo nukopijavimo perstartuojam nginx:

sudo systemctl restart nginx.service

Jei vis dar nenaudojate systemd, perstartavimo komanda bus tokia:

sudo /etc/init.d/nginx restart

Jei norėsite išbandyti Android programulkę, tai reikia bandyti paleisti PiUi supervizorių. Pradžiai galima jį tiesiog paleisti taip:

python3 supervisor/piui-supervisor.py

Pabrėžiu: python3

Aišku, greičiausiai jis neveiks, nes truks cherrypy. Tad tai reikia įsidiegti:

sudo apt-get install python3-cherrypy3

Va dabar jau pasileido:

pi@uoga3:~/piui $ python3 supervisor/piui-supervisor.py 
[10/Mar/2016:15:16:56] ENGINE Listening for SIGTERM.
[10/Mar/2016:15:16:56] ENGINE Listening for SIGHUP.
[10/Mar/2016:15:16:56] ENGINE Listening for SIGUSR1.
[10/Mar/2016:15:16:56] ENGINE Bus STARTING
CherryPy Checker:
The Application mounted at '' has an empty config.

[10/Mar/2016:15:16:56] ENGINE Started monitor thread '_TimeoutMonitor'.
[10/Mar/2016:15:16:56] ENGINE Started monitor thread 'Autoreloader'.
[10/Mar/2016:15:16:57] ENGINE Serving on http://0.0.0.0:9000
[10/Mar/2016:15:16:57] ENGINE Bus STARTED

Aš supervizoriaus nenaudosiu, tai iš karto imuosi piui_demo.py. O tas nepasileidžia su python3. Kode reikia kelis print “ kazkas “ pakeisti į print(“ kazkas “). Pakeičiau, pasileido. Jungiuosi per http://uoga3, rodo standartinį nginx puslapį… na, realiai to nginx labai nereikia, galima prie PiUi demo prisijungti ir tiesiogiai, per 9999 prievadą. Bet paskui tiesiog pataisiau dar vieną eilutę nginx.conf faile:

        server {
                listen       80;
                server_name  uoga3;

                location /sup {
                  proxy_pass http://sup;
                }

                location / {
                  proxy_pass http://uoga3;
                }
        }

Ten, kur „server_name“, buvo tik pabraukimas _. Tai kažkaip ir nesuveikė. O dabar veikia puikiai.

Ką gi, dabar reikia pasityrinėti demuškę ir pasidaryti ką nors naudingo. Pradžiai tai paprastučius dalykus, kaip atminties būsena, procesoriaus apkrovimas, laisva vieta diske ir pan. O ką nors smarkiai įdomesnio reikės kitukart.

Šiek tiek prisėdęs ir pasikrapštęs po demuškę susirankiojau paprastutį skriptuką, kuris parodo va tokį puslapėlį:

Raspberry Pi 3 valdymo skydelis | Darau, blė

Būklė — keletas Linux parametrų ir Avietės procesoriaus temperatūra:

Raspberry Pi 3 valdymo skydelis | Darau, blė

Ir pora knopkių, kad patogu tvarkyt būtų:

Raspberry Pi 3 valdymo skydelis | Darau, blė

Dizainas minimalistinis ir gerai pritaikytas telefonų ekranams.

Kodo čia jumi nepeistinsiu, bet galit visą parsisiųst (su pilnu ir biškį pataisytu PiUi, nuoroda pabaigoj) ir paleist pipanel.py failą. Tenais yra ir pipanel.service failiukas, kurį galima pakišti systemd, kad paleistų šitą reikalą Avietei užsikuriant. Tai yra eilinis systemd Unit failas. Jis įgalinamas taip:

  • Nukopijuoti į /lib/systemd/system/
  • Pachmodinti į 644
  • Perkrauti systemdsudo systemctl daemon-reload
  • Įjungti naują tarnybą: sudo systemctl enable pipanel.service
  • Pabandyti perkrauti Avietę ir pažiūrėt, ar veikia, patikrinti būseną su sudo systemctl status pipanel.service

Jei viskas gerai, tai paskutinė komanda parodys kažką tokio:

● pipanel.service - PiPanel Service
   Loaded: loaded (/lib/systemd/system/pipanel.service; enabled)
   Active: active (running) since Mon 2016-03-21 17:09:08 EET; 15s ago
 Main PID: 622 (python3)
   CGroup: /system.slice/pipanel.service
           └─622 /usr/bin/python3 /home/pi/piui/pipanel.py > /dev/null 2>&1

Mar 21 17:09:08 uoga3 systemd[1]: Started PiPanel Service.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Listening for SIGHUP.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Listening for SIGUSR1.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Listening for SIGTERM.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Bus STARTING
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Started monitor thread 'Autoreloader'.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Started monitor thread '_TimeoutMonitor'.
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Serving on http://0.0.0.0:9999
Mar 21 17:09:10 uoga3 python3[622]: [21/Mar/2016:17:09:10] ENGINE Bus STARTED

Lyg ir tiek. PiPanelės kodą galite parsitįsti iš čia.

Reklama
Komentarai
  1. lmn parašė:

    nekrauni žaislų į Github’ą?

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s