Banna PI OS instaliavimas

Šis kompiuteriukas man į rankas pateko jau senokai. Palyginus su pirma aviete jis turi spartesni procesorių, daugiau RAM atminties ir gigabitinį LAN (tikroji išmatuota sparta 396 Mbits/sec) ir esminis skirtumas, turi SATA jungį.

Tada buvo suinstaliuotas Archlinux (internete rastas disko atvaizdas), bet pastebėjau, kad po sistemos atnaujinimo jis tiesiog nesikraudavo. Į pacman.conf įdėjau, kad ignoruotu kernelio ir systemd paketus. Kažkuriam laikui padėjo, bet po eilinio update ir nesikrovimo kompiuteriukas buvo užmirštas gan ilgam.

Po ilgo laiko vėl googlinant ir ieškant Archlinux’o atvaizdo teko nusivilti, kažko naujo nėra. Kompiuteriukas jau paseno ir nelabai kas jam atnaujina tuos atvaizdus. Pirminis bandymas buvo vadovaujantis https://wiki.archlinux.org/index.php/Banana_Pi pasigaminti atvaizdą pačiam. Bet po keturių (o gal ir daugiau) nesėkmių nuleidau rankas. Sistema nesikrovė.

Tada užkliuvo (http://wiki.banana-pi.org/Banana_Pi_BPI-M1#Ubuntu_Server), kad yra Ubuntu 16.04. Pagalvojau, kad man to pakaks. Siunčiu atvaizdą, rašau į kortelę. Kraunasi. Valio.

O dabar smagiausia dalis. Kaip priversti užmountinti root particiją iš disko prijungto per SATA jungti. Ir ko aš nebandžiau, SD kortelėje redaguoti armbianEnv.txt, fstab, boot.src ir dar bala žino kas. O jis nieko, užsispyręs, mountina antra SD kortelės particiją kaip root nors tu ką.

Ir vis dėlto atsakimą radau. Kaip dariau aš:
Antra SD kortelės particiją (root) nusikopijavau į SATA 2.5″ diską (mano atveju tai senasis mano SSD diskas OCZ AGILITY3).
Po kopijavimo SATA diske, paredaguojam /etc/fstab

/dev/sda1  /               ext4   defaults,noatime  0       1

Prijungiam SATA diską. Įjungiam kompiuteriuką. Prisimountinam pirmą SD kortelės particiją:

mount /dev/mmcblk0p1 /mnt

Redaguojam failą:

vim /mnt/bananapi/bpi-m1/linux/boot.cmd

Ir svarbiausias momentas:

mkimage -C none -A arm -T script -d /mnt/bananapi/bpi-m1/linux/boot.cmd /mnt/bananapi/bpi-m1/linux/boot.scr

Štai jau sistema kraunasi iš SD kortelės ir root particiją naudoja iš disko prijungto per SATA jungtį. Viskas labai puikui, BET pas mane SD kortelė 16GB iš kūrių 8GB užima boot particija ir senoji root. Boot particija tik 256MB. Nesinori dėl tiek naudoti tokios didelės kortelės, tuo labiau, kad ant stalo guli sena 2GB kortelė.

Vėl prasidėjo smagioji užsiėmimo dalis. Kaip iš atvaizdo kuriam yra trys (!) particijos, palikti tik dvi ir jas suklonuoti į SD kortelę. Klonuoti po vieną particija man nepavyko. Pirmoji atvaizdo particija lyg ir tuščia (jos dydis 105MB) bet be jos sistema nesikrauna, panašu, kad ji kažkam naudojama.

Vėl gelbėja google. https://softwarebakery.com/shrinking-images-on-linux. Panaudoju paskutinį aprašyta būdą:

truncate --size=$[(729087+1)*512] 2018-07-26-ubuntu-16.04-server-preview-bpi-m1-m1p-r1-sd-emmc.img

Rezultate gaunu 356MB disko atvaizdą, kuris puikiai klonuojasi į 2GB (mažesnės jau neturiu) kortelę.
Po klonavimo reikėjo persikopijuoti aukščiau generuota bananapi/bpi-m1/linux katalogą, nes šiuo atvėju aš redagavau originalų iš interneto atsiųsta atvaizdą kuris vėl mountino root iš SD antros particijos.

Dabar jau viskas veikia kaip ir turi veikti. Boot particija SD kortelėje, visas root SSD diske.

Mikrotik cAP lite

Pastaruosius, turbūt, šešis metus naudojau Mikrotik RB951G-2HnD. Dar gyvenant bute, neturėjau jokių problemų su wifi signalo stiprumu. Persikrausčius į namą, tolimiausiam kambaryje signalas buvo labai jau silpnas. Nešiojamas kompiuteris signalą dar išlaikydavo, telefonas kartais ir pamesdavo. Problema turbūt tame, kad mikrotikas pastatytas ant komunikacinės spintos, kuri yra ant namo kraštinės sienos. Tolimiausias kambarys yra dukros (dabar jai 3m.) todėl wifi silpnas veikimas nekėlė bėdos.

Pagaliau, po ilgo laiko namuose atsirado dar vienas baldas – spinta. Kurios viduje atsirado dujinis katilas, džiovyklė, drabužinė ir … komunikacinė spinta. Ant spintos durų yra veidrodis. Mano supratimu, veidrodis (veidrodis tai stiklas padengtas plonu aliuminio (?) sluoksniu) tiesiog pradėjo veikti kaip ekranas. Rezultate dukros kambaryje, miegamajam ir darbo kambaryje galimybė naudotis wifi praktiškai dingo.

Įrenginys wifi signalą mato stiprų (atvaizduojamos visos padalos), bet mano supratimu įrenginio (tarkime telefono) signalas nepasiekia pačio Mikrotiko. Su nešiojamu kompiuteriu kažkiek geriau, bet greitis akivaizdžiai krito.

Po šiokių tokių pasiskaitinėjimų/pagooglinimų nusprendžiau nusipirkti Mikrotik cAP lite. Kaip variantai buvo galingesni Mikrotik modeliai arba Ubiquiti, bet iškarto buvau nusprendes, kad noriu “kabinamo” ant lubų, tikrai nenorėjau statyti kažkur ant baldo dėžės su antenom.

Per tris dienas po užsakymo atkeliavo maniškė prekė. Aparatas tikrai mažuliukas. Komplekte Poe maitinimas, du dangteliai.

Traukiam kopėčias ir montuojam 🙂 Sunkiausia dalis buvo per kolidoriaus šviestuvui skirta skylute lubose pratraukti kabelį iki spintos. Naudojau kieta vielą ir daug kantrybės. Po bala žino kelinto bandymo pavyko rasti antra galą. Lengviau buvo keliauti iki namo “geografinio” centro. Tam labai padėjo halogeniniai (dabar jau LED’iniai) šviestuvėliai, kuriuos išėmus buvo galima patogiai prakišti vielą, kurios pagalba paskui buvo traukiamas UTP kabelis.

Nors įrenginys yra gan silpnas, rezultatu esu patenkintas.
Nešiojamas kompiuteris prie senojo wifi:

[  4] local 192.168.0.115 port 52923 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-12.9 sec  1.38 MBytes   894 Kbits/sec

Prisijungus prie naujojo wifi:

[  4] local 192.168.0.115 port 53041 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  32.0 MBytes  26.8 Mbits/sec

PS: nešiojamas kompiuteris yra darbinis, tad su juo didelių failų nesiuntinėju. Namuose naudoju stalinį kompiuterį pajungta gigabitu. Žmona kartais naudoja turima nešiojama kompiuterį interneto puslapiams. Tad esamo 20-60Mb/s (priklausomai nuo vietos) man pakanka per akis.

Reguliuojamas maitinimo šaltinis

Lygiai metų projektas, nes visos detalės gulėjo beveik metus. V/A ekranėlis pirmu siuntimu manęs nepasiekė, pardavėjas gražino pinigus. Po beveik metų, prisiruošiau užsisakyti trūkstama dalį ir pagaliau, atsiradus laikui, viską surinkau.

Specifikacijos:

Reguliuojama įtampa 1.25V – 23.6V
Srovė 0A – (?) dar neišbandžiau, bet pagal kitus konstravusius ir matavusius ties 23.6V turėtu būt 5A

Detalės:

Maitinom blokas – 4A To 6A 24V Stable High Power Switching Power Supply Board AC DC
Įtampos/srovės reguliatorius – Buck Converter Step-down Power Module 7-32V to 0.8-28V 12A 300W
Voltmetras/ampermetras – DC 100 V 10A Voltmeter Ammeter Blue + Red LED
Potenciometrai – rcl.lt
Potenciometrų rankenėlės – 10 Pcs 6mm Shaft Hole Dia Plastic Threaded Knurled Potentiometer Knobs Caps
Gnybtai – Good Quality 4Pcs/Lot Speaker Amplifier Terminal Binding Post Banana Plug Socket Female Connector Electrical Tool
Kabeliukai su krokodilais – High Quality 0.8m Dual Banana plug – alligator clip
Dėžutė – rcl.lt

Visas kitas smulkmenas (laidai, jungtys, termo vamzdeliai) jau turėjau namuose.

Visų pirmą bandžiau kuo patogiau sudėti elementus, kad viskas tvarkingai tilptu. Nors pradžiai pasirodė, kad viskas puikiausiai tilps, bet vietos tikrai nebuvo per daug.

Taigi, žymių tvirtinimo vietas, gręžiu skyles, tvirtinu.

Reiktu atkreipti dėmesį, kad geltoni “varinukai” (kaip kažkada juos vadindavom kompiuterių gamyboj) yra skirtingo diametro, kaip ir varžtukų kepurėlės. Su platesnėm kepurėlėm reguliatoriaus jau prisukti nesigavo.

Toliau nuo įtampos/srovės reguliatoriaus išlituoju mažiukus, mėlynus (pirmuose nuotraukose matosi, kvadratiniai mėlyni su varžtuku paderinimui) potenciometrus ir vietoje jų lituoju “normalaus” dydžio, analogiškus 10kOhm

Matuoju atstumus ir montuoju į korpusą ekranėlį, potenciometrus, kontaktus, lizdą.

Galutinis vaizdas.

Duomenų rašymas į nutolusį influxdb naudojant Redis

Pradinė schema.
Raspberry pi surenka termometrų duomenis ir PHP bei CURL’o pagalba (rašiau čia) keliauja į dvi influxdb bazes. Viena yra lokaliai pačioje avietėje, kita yra nutolusiam VPS serveryje.

Problema pažymėta raudona rodykle. Kartais dingsta namuose interneto ryšys (vis dar 5GHz antena, 100mbs planas, laukiu kada suvirins šviesolaidį). To pasekoje išsiskiria duomenys tarp abiejų influxdb.

Senesnės influxdb versijos turėjo clustering funkcionalumą, bet šitas malonumas dabar mokamas.

Taip pat yra tokie sprendimai kaip influx-relay, bet This retry logic is NOT sufficient for for long periods of downtime as all data is buffered in RAM.

Problemos sprendimo schema:

Duomenys rašomi lygiagrečiai į lokalų influxdb ir redis.

Į redis’ą patogiai rašyti galima su phpredis. Archlinux’e pkgbuild’as yra AUR’e, nutolusiam VPS’e yra Centos 7 tad ten teko susikompiliuoti iš source. Abiem atvejais reikia paredaguoti php.ini ir pridėti extension=redis.so.

Tad palyginimui kodas tarp CURL’inimo į influxdb ir redis:

//Post to influxDB
$ch = curl_init("http://127.0.0.1:8086/write?db=termometrai");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"temperaturos ".$daviklioHWID."=".$tempvalue);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
//Post to redis
date_default_timezone_set("UTC"); 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->rPush('VPS1',"temperaturos ".$daviklioHWID."=".$tempvalue." ".strval(time()));
$redis->close;

Į redis rašau POST duomenis, tam kad kitam gale aklai galėčiau juos vėl pakišti CURL’ui. Vienas skirtumas, kad pridedu šio momento timestamp’ą. Jis reikalingas tam, kad duomenys iš redis’o iki nutolusio serverio, ryšio dingimo metu, gali keliauti ir kelias valandas. Atsiradus ryšiui ir surašius duomenis be timestamp’o į influxdb duomenys sukristu ne su laiku kada jie buvo įrašyti į redis, o su laiku kada buvo įrašyti į influxdb. Tad šiuo atveju duomenis atkeliauja jau atsinešdami ir laiką kada buvo nuskaityti.

Nutolusiam VPS serveryje duomenis iš redis’o skaito PHP skirptas. Redis duomenis skaitau su:

$redis->lPop('VPS1');

Ši funkcija paima vieną įrašą iš nurodytos “eilės” (kuri šiuo atveju yra VPS1) ir iškarto ta įrašą ištrina. Sekančiu kartu paimama kita reikšmė ir pašalinama. Tokiu būdų gaunamas duomenų FIFO.

Rezultate turime labai greitai ir labai mažai resursu naudojančia redis. Avietė pildo duomenis naudodama RPUSH, nutolęs serveris duomenis tuo pačiu metu skaito ir trina su LPOP.

Dingus ryšiui, (nutolęs serveris nemato Rasbery Pi) consumer’is kas 10 sekundžių kartoja prisijungimo procedūrą tol kol prisijungia. Po viena ima visus duomenis tol kol ištuštėja eilė. Kai eilė ištuštėja “užmiega” dešimčiai sekundžių po kurių vėl pasitikrina ar yra duomenų. Jei nėra, toliau “miega” 10 sekundžių, jei yra “sukramto” tai kas yra.

Consumer’io (php skripto) veikimą užtikrina Supervisord. Tai labai nedidelis servisas kuris gali užtikrinti bet kokio skriptuko ar programos nenutrūkstama veikimą. Jei skriptas dėl kažkokios priežasties nulūžtu arba jį tiesiog nu kill’inus, supervisord pasirūpina jo paleidimu.

Rezultatas

Per dvi valandas dirbtinio ryšio nebuvimo, duomenys sukrito per ~15 sekundžių.

Honda Accord atbulinės eigos kamera

Šis aprašymas tinka Honda Accord 7gen gamintam nuo 2006 metų. Nuo 2006 (Facelift) modeliui buvo pakeistas navigacijos (DVD) blokas. Šis atnaujintas blokas jau turi 7 kontaktų jungtį prie kurios ir galima pajungti kamerą.

Visa salono plastikų ardymo eiga kažkiek aprašyta čia

Magnetolos išiminėti nereikia, taip pat ir dangčio virš jos. Tikslas yra išimti DVD įrenginį esantį po navigacijos ekranu.

Prieš montuojant bet kurią kamerą, reikia prisijungti prie DVD/navigacijos įrenginio. Kad tai padaryt patogiai, aš pilnai išsiėmiau visą modulį. Aparato nugaroje yra septinių kontaktų žalia jungtis.

Kontaktai iš kairės:
1 – nejungiam
2 – minusas (kabeliuko iš kameros šarvas)
3 – nenaudojam
4 – nenaudojam
5 – video signalas (vidinė gysla iš kameros)
6 – 7 užtrumpinam

Spėju, kad nenaudojami kontaktai, greičiausiai gali būt garso įvestis.

Aišku tokios jungties aš neturiu, bet turiu iš senų kompiuterio korpusų pasilikęs USB, power, led laidukus kurie labai puikiai tiko šioje vietoje.

Netgi trumpiklis (jumperis) jau buvo padarytas 🙂

Gale prilitavau femail tulpę. Po ranka papuolė pati pigiausia kokia tik turbūt gali būt, gaila kitos ir neturėjau.

Pati kamera atkeliavo iš Aliexpress’o per 5-6 savaites. Kainavo 8.07€

Laidą iš priekio vedžiau keleivio puse. Prasivedė patogiai, nereikėjo atlupti nė vienos plastikinės dalies, kabeliukas plonas, todėl visur palindo be didesnių problemų.

Prieš gręžiojant ir vedant iki pat bagažinės, patikrinau ar tikrai viskas veikia.

Maitinimą pasijungiau nuo atbulinės eigos lemputės. Nelabai norėjau pjauti laido įzoliacijos ar išviso jį karpyti, todėl prie kameros maitinimo laidelio prilitavau storesnius laido galus. Gavosi tokios lyg dvi adatos (nuotraukos nepadariau). Aptraukiau termo izoliacija ir galus sukiškau į lemputės jungtį. Viską sutvirtinau dirželiu. Laikosi tikrai labai stipriai ir įlenda labai standžiai, tad tarnaus manau ilgai. Tikrai labai nenorėjau karpyti originalaus laido.

Toliau matuojam, žymim, gręžiam, tvirtinam.

Kaip viskas sumontuota, statau konteinerius ir testuojam 🙂

Tos linijos ekrane yra piešiamos pačios kameros ir savaime suprantama jos nesisukinėja sukinėjant vairą. Bet šiokios tokios naudos jos vis dėlto turi. Pagal spalva maždaug galima spręsti atstumą. Mintyse jas reiktu suprojektuoti ant kelio ir tolimiausia žalios linijos vieta yra maždaug ~1 metras. Geltonos linijos paskutinė sekcija, kur linija eina kampu, ties ta vieta iki kliuties ~50 cm. Raudonos spalvos kampas, yra maždaug ten kur prasideda kablys.

Beje labai nustebau, kad į vaizdą telpa ir kablys. Kas yra labai geras orientyras.

Dabar galima sustoti ir taip 🙂

Galutinis rezultatas

Honda Accord bluetooth instaliacija

Jau pora mėnesiu vairuoju, pilnas pavadinimas: Honda Accord 2.4L 2006 gen7 Facelift Executive CL9 automatas, juodas sedanas. Esu labai patenkintas šiuo automobiliu. Nuo 2006 metų buvo gaminamas atnaujintas, taip vadinamas, Facelift’intas modelis. Be grotelių, žibintų, navigacijos, sėdynių (keleivio tapo elektra valdoma), veidrodėlių ir t.t. atnaujinimų buvo ir bluetooth įdiegimas. Bėda tame, kad jis skirtas tik kalbėjimui telefonu, o tam aš turiu ir esu labai patenkintas Jabra Cruiser2 (jau nebegaminamas). Bet šiais technologijų ir interneto laikais būtų visai smagu groti muziką tiesiai iš telefono atminties, spotify, youtube ar panašiai, kaip beje galima daryti automobiliuose pagamintuose per pastaruosius, turbūt, penkis metus. USB/SD interfeiso pas Accord’ą taip pat nėra.

Pasigooglinus radau bent keleta “priedelių” kurių pagalba buvo galima prie gamyklinės magnetolos pajungti išorinį šaltinį. Apsistojau ties Yatour. Paieškojęs radau, kad šiuos ir panašius daigtus pardavinėja http://www.audiomedia.lt. Pagalvojau, kad bus ir greičiau ir jei netyčia kas nutiktu su garantija bus paprasčiau, jei pirksiu iš lietuviško puslapio, tuo labiau, kad kaina daugiau mažiau panaši.

Pas mane yra sumontuota Premium Sound System su 6 disku keitikliu ir navigacija. Bet jei neklystu šis mano užsakytas priedelis tinka magnetolai ir su paprasta audio sistema (be navigacijos). Jei kas pirksit pasidomėkit, neesu garantuotas.

Video kurie padėjo salono/panelės ardymo klausimu:
USB Audio car kit install for Android/Iphone – Honda Accord
How to Remove Radio / CD Changer from 2007 Honda Accord for Repair
Honda accord VII navi instalacja zmieniarki yatour
Yatour YT-M06 Honda Accord 04′ PSS + Navi

Įrankiai reikalingi visam darbui:
Lopetėlė (foto žemiau nuotraukose) salono plastmasėm “atkabinti”. Net nepradėkit darbo jei tokios neturit.
Kryžminis atsuktuvas
10mm galvutė. Kilpinis raktas čia netiks, nebus priėjimo

Viską pradedam ardyti nuo apačios, nuo pavarų svirties. Ir einam po vieną detalę į viršų. Pati magnetola (jei su navigacija kaip pas mane) pritvirtinta trim varžtais viršuje, dviem apačioje giliai ir dviem apačioje, priekyje iškarto už vėjelio valdymo mygtukų. Pastarųjų varžtu galvutės žiūri į variklio pusę.

Išimam magnetolą, nugaroje randame baltą jungti (laidas tiks tik į ją), sujungiam visus laidus, įjungiam degimą ir išbandom ar viskas veikia. Surenkam atgal ir nepamirštam visko prisukti!!! Nes vėl lupti tas plastmases bent man tai labai skaudu, o tai daryt teko, nes ne viską prisukau iš pirmo karto 🙂

Atsargiai reikia elgtis su DVD (navigacijos) grotuvu, jo šonuose yra laikikliai su aštrokais kraštais kurie braižo plastiką. Aš truputi pabraižiau ten kur nereikia 🙁

Kad nereiktų jungti degimo norint pastumti svirtį (automato), vienoje nuotraukoje pažymėjau, virš P raidės, kairiau yra kamštukas, kurį išėmus su atsuktuvu, rakteliu nuspaudus ten esančia svirtelę, pavaras galima perjungti ir neįjungus degimo. O kaip visi laidai atjunginėti, tai gal taip ir saugiau.

Taip pat atjungiau gamyklinį Bluetooth modulį, nes jis labai mėgsta sugesti ir to pasekoje labai iškraudinėja akumuliatorių. Jis yra po viršutiniu dangteliu virš magnetolos. Juoda dėžutė su rožiniu lipduku. Nuotraukos žemiau. Taip pat kažkiek matosi ir nuotraukose viršuje.

Migruojam į 1Gbs. Greičio matavimas.

Besibeldžiant 2018 pagalvojau, kad pats laikas namuose 100Mbs tinklą atnaujinti iki 1Gbs tuo labiau, kad mano naudojamas 8 portų switch’iukas (komutatorius) tapo per ankštas.

Pasirinkimą labai apribojo fizinės vietos plotis, tad praktiškai vienintelis variantas atmetus brangų HP buvo ZYXEL GS1100-16 Gigabit-Ethernet-Switch, 16x 10/100/1000 Ports copper kuris iš skytech.lt atkeliavo už 71.99€

Kodėl rinkausi būtent šį modelį:
* Tinkamas fizinis plotis su 16’lika gigabitinių portų
* Rack mount
* Indikaciniai LED yra priekyje t.y. toje pačioje pusėje kaip ir fizinės jungtys
* Maitinimo blokelis įmontuotas korpuse todėl maitinimo laidas jungiamas tiesiai į korpusą
* Nugaroje turi įjungimo/išjungimo mygtuką. Jei kada reiks perkrauti nereikės ištraukinėti maitinimo laido.

Statybos metu statytojai suvedžiojo tikrai ne brangiausia UTP kabelį, kuris, jei gerai pamenu, net neturi ekrano. Kabeliai suvedžioti kartu su maitinimo/apšvietimo kabeliais. UTP panelė C5e kuri taip pat nėra skirta gigabitiniam tinklui. Patch kabeliukai patys papraščiausi, pigesnių turbūt rasti neįmanoma (šitai aš žadu ištaisyti).

Tad pamatuokime tinklo greiti. Matuosime su iperf.

sudo pacman -Sy iperf

Savo staliniam kompiuteryje kurio IP adresas yra 192.168.0.101 paleidžiu servisą:

[dinux@dinux ~]$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Pradedam greitį matuoti nuo lėčiausių klientų. Raspberry pi kurio LAN interfeisas yra pajungtas per USB2 magistralę ir jei šis techninis nesusipratimas nebus sutvarkytas avietė niekad neturės galimybės kominikuoti greičiau (ta pati problema su visų modelių avietėmis).

[dinux@alarmpi ~]$ iperf -c 192.168.0.101
------------------------------------------------------------
Client connecting to 192.168.0.101, TCP port 5001
TCP window size: 43.8 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.151 port 42820 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  60.9 MBytes  51.0 Mbits/sec

Sekantis bandymas su Banana pi. Pastarasis kompiuteriukas jau turi 1Gbs interfeisą. Beje jis turi ir SATA jungtį tad realus duomenų rašymas kopijuojant duomenis jau atsirems į disko galimybes, ne į LAN interfeiso.

[dinux@banana ~]$ iperf -c 192.168.0.101
------------------------------------------------------------
Client connecting to 192.168.0.101, TCP port 5001
TCP window size: 21.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.152 port 44979 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   606 MBytes   508 Mbits/sec

>500Mbs yra daugia nei gana tokiam kompiuteriukui.

Na ir paskutinis bandymas, nešiojamas HP 450 G1 pajungtas per 1Gbs interfeisą:

[daisak@pilkasai ~]$ iperf -c 192.168.0.101
------------------------------------------------------------
Client connecting to 192.168.0.101, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.0.103 port 37578 connected with 192.168.0.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.07 GBytes   915 Mbits/sec

Kaip su aukščiau minėtomis techninėmis sąlygomis, manau >900Mbs yra tikrai geras greitis. Ir klausimas ar su tikrai gerais kabeliais greitis labai priartėtu prie 1000Mbs.

Metrikoms: influxDB + Grafana

Vienintelės mano renkamos metrikos yra temperatūra apie kuria rašiau Protingas namas. 1 Dalis. Temperatūra.. Tiesa nuo tada termometrų padaugėjo ir dabar jų aštuoni. Ir duomenys jau senokai saugomi ne mariadb/mysql, o influxDB. O duomenims peržiūrėti ir analizuoti naudoju Grafana.

Oficealaus influxdb paketo nėra, tad teks susikompiluoti iš AUR:

yaourt -S influxdb

Pirmuosius influxdb žinksnius galima rasti čia. Tikrai nėra nieko sudėtingo.

Mano duomenų bazė vadinasi termometrai, o lentelė temperaturos.

Duomenys atrodo taip (stulpelių yra daugiau, apkirpau, kad tilptu į puslapį):

> select * from temperaturos limit 20 
name: temperaturos
time                28-0000052D4E36 28-0000052DC554 28-0000052DCA4A
----                --------------- --------------- ---------------
1491421622470175617                                 20.6875
1491421622933431847 5.6875
1491421624775957066                 20.1875
1491421683164960608                                 20.6875
1491421683725053335 5.6875
1491421685386914026                 20.1875
1491421743393921182                                 20.6875
1491421743956469988 5.6875
1491421745634864667                 20.1875
1491421802759609752                                 20.6875
1491421803239163911 5.6875
1491421804969827574                 20.1875

Duomenys taip pabire, nes kiekvienas termometras įrašomas atskirai (skiriasi įrašymo laikas). Viso to išvengti galima surinkus visus duomenis ir įrašinėjant viską vienu metu, viena užklausa. Taip užklausa, nes duomenis įrašinėjami kreipiantis tam tikru portu CURL‘u, WGET‘u ar kita programine įranga darant GET užklausą. Galima tiesiog į naršyklės URL’ą suvesti atitinkama adresą.

Aš duomenis rašau su PHP paCURL‘inant URL‘ą. Kodas žemiau:

        //Post to influxDB
        $ch = curl_init("http://localhost:8086/write?db=termometrai");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,"temperaturos ".$daviklioHWID."=".$tempvalue);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_exec($ch);
        curl_close($ch);

daviklioHWID yra termometro DS1820 adresas.
time (laiko) reikšmės paduoti nereikia.

Tame viskas ir paprasta, tiesiog aklai padavinėju termometro adresą ir jo reikšmę. Jei sistemoje atsiranda naujas termometras (naujas adresas) nieko daryt papildomai nereikia, stulpelis influxDB atsiranda automatiškai.

Dabar apie duomenų atvaizdavimą. Duomenis grafiškai atvaizduoti naudoju grafana.

sudo pacman -Sy grafana

Kai pradėjau naudoti Grafana tada dar ji nemokėjo skaityti iš mariadb/mysql. Dabar paskutinėse versijose ji tai gali daryti. Bet influxdb veikia akivaizdžiai greičiau, ypač kai db serveris paleistas ant Raspberry Pi model B.

Pirmą kartą prisijungus prie Grafana reikia prisidėti Data source t.y. duomenų šaltinį. Šiuo atveju tai indluxdb.

Turint duomenų šaltinį galima bandyti susikonfiguruoti Dash board t.y. langas kuriame bus grafikas/grafikai.

Maniškis atrodo taip (paspaudus pasididina):

Vienos metrikos (vienos linijos grafike) užklausa atrodo taip:

Visos keturios užklausos:

Atkreipiam dėmesį į GROUP BY. Grupuoju dėl dviejų priežasčių. Pirmoji, tai kaip minėjau aukščiau, duomenis įrašomi ne tuo pačiu momentu (skiriasi keliomis sekundėmis). Panaudojus grupavimą tiesiog skaičiuojamas, šiuo atveju trijų minučių vidurkis (tam ir naudojamas mean()) nesvarbu kiek matavimu per tas tris minutes buvo padaryta. Taip visi grafikai laiko atžvilgiu tampa lygus.

Antroji priežastis, kad termometrai nėra super tikslūs ir esant tomis pačiomis sąlygomis jie atiduota kažkiek kintamus (po kablelio) duomenis. Tad šiuo atveju grafikas kiek sulyginamas ir panaikinami 0.xxx nuokrypiai.

Protingas namas. 2 Dalis. Apšvietimo valdymas.

Iškarto sakau, nebuvo minties valdyti kambarių apšvietimo, tame prasmės aš nematau. Pažaisčiau pats, parodyčiau draugams tuom viskas ir pasibaigtu.

Tikslas buvo kiemo apšvietimo valdymas. Namo perimetre yra 10W “senukiniai” LED žibintai, parkavimosi vieta apšviesta 20W LED žibintu. Ir statybininkai visiems nameliams sustatė ~50cm aukščio žibintus su 5W LED lemputėmis. Taip pat statytojas pasirūpino, kad 5W žibintas automatiškai užsidegtu nusileidus saulei (ant stogo yra šviesos imtuvas). Visi kiti šviestuvai jau mano paties montuoti.

Visų žibintų maitinimas paimtas nuo minėto šviesos daviklio, o tai reiškia, kad ir labai norit, šviesiu paros metu žibintai nedega.

Viskas pajungta nuo Raspberry gpio pin’ų (jungčių). Naudotas rėlių blokas iš Kinijos. Buvo minčių bloką lituotis pačiam, bet perkant detales pvz Lemonoj, vien jos kainuoja daugiau nei gatavas produktas.

Programinė įranga ir kaip viską valdau. GPIO išvadus labai paprasta valdyti su WiringPi. Aš naudoju Archlinux, tad šį paketą instaliuoju:

sudo pacman -Sy wiringpi

Pasinaudodami gpio komanda pasižiūrime ką turime išvaduose:

[dinux@alarmpi ~]$ gpio readall
 +-----+-----+---------+------+---+-Model B1-+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   0 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   1 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |  OUT | 0 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 1 | IN   | GPIO. 1 | 1   | 18  |
 |  21 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | OUT  | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI |  OUT | 1 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO |  OUT | 1 | 21 || 22 | 0 | OUT  | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK |  OUT | 0 | 23 || 24 | 1 | IN   | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | IN   | CE1     | 11  | 7   |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+-Model B1-+---+------+---------+-----+-----+

Rėlių valdymui panaudojau pin’us pagal BCM 10, 9, 11, pagal wPi 12, 13, 14
Pagal nutylėjimą šie pin’ai (jei neklystu) buvo IN todėl jų rėžimą keičiu

gpio mode 12 out
gpio mode 13 out
gpio mode 14 out

Po šių komandų mano minėti pin’ai jau dirba kaip išėjimas (taip kaip parodyta aukščiau esančioje lentelėje)

Norint įjungti/išjungti rėlę pajungta prie wPi 12 kontakto, naudojame:

gpio write 12 1
# arba
gpio write 12 0

Jungimo schema taip pat labai paprasta. +5V ir GND paimiau nuo laisvų GPIO išvadu, valdymo signalas jau ankščiau minėti pin’ai. Įtampai ir signalams perduoti naudojau UTP kabelį (atstumas ~1 metras) prie jo galų litavau Dupont cable jumeper

Vis dėlto, vienoje vietoje buvau strigęs. Atrodo viskas sujungta gerai, signalas ateina (indikacinis LED užsidega), bet rėlė nesuveikia. Pasirodo problema buvo vienas blogas kabeliukas ir būtent GND. Pakeitus jį jau netik indikacinis LED užsižiebdavo, bet ir rėlė suveikdavo.

imgp3647-pef_6cbkryimgp3649-pef_r1lbryimgp3655-pef_8q5dryimgp3656-pef_gjnoryimgp3658-pef_3587qyimgp3659-pef_2g3qry

Na ir žemiau video. Tiesa prastokos kokybės, bet esmė yra parodoma.

Youtube grojimas užrakinus telefoną (android)

REDAGUOTA: jau neveikia

Ir ne tik užrakinus, bet ir suminimaizinus programą.

Android’e, youtube programėlė video/audio groja tik tol kol ji yra aktyvi ir matosi ekrane, todėl negalima naršyti internete ar kažką krapštyti telefone grojant muzikai, nes tik programa dingsta nuo ekrano, dingsta ir garsas.

Šiai “bėdai” spręsti, visai netyčia atradau sprendimą — Firefox naršyklė.
Sprendimas labai paprastas, susidiegiam Firefox, atsidarom youtube puslapį (prisijungiam jei aktualu), pasirenkame video, grojame. Dabar galima telefoną užrakinti ir garsas nedingsta. Man tai aktualu, kai namuose yra mažametė, kuriai viską reikia patikrinti ir paragauti. Telefono atrakinti ji negali (Sony Xperia X su pirštų antspaudų skaitytuvu) ir muzikėlės išjungti.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close