Měření teploty, verze 2 


Minulý rok jsem tu psal o poměrně svérázném využití VESA DDC rozhraní jako I2C sběrnice pro přímé připojení teplotního čidla DS1631. Rok se s rokem sešel a želva u nás opět zimuje. Oproti minulému roku letos nemáme elektroměr zaseklý na nízkém tarifu*, takže přidání dalšího trvale běžícího PC jen kvůli měření teploty jsem bral jako krajní řešení.

Nakonec se ukázalo, že ke sklepu vede jeden UTP kabel, sice využívaný pro IP telefon, ale jak známo, ve (Fast) Ethernetu jsou 4 dráty navíc. Stačilo trochu naprosto neprofesionálního krimpování jakýchsi Y-kabelů a už byla ve sklepě natažena sériová linka RS-232. I když je to celkem nějakých 35 metrů, při rychlosti 9600 Bd to spolehlivě funguje.

Zbývalo vyřešit, jak převést sběrnici I2C na RS232. Nakonec jsem to vyřešil mikrokontrolérem DS89C450, kam jsem za pár hodin v Céčku vyrobil (a pomocí SDCC přeložil) program, který místo pouze hloupého převodu protokolů také realizuje vlastní odečet teploty. S výhodou jsem využil I2C podprogramy, co jsem napsal ve škole v rámci předmětu Praktika z mikroprocesorové techniky, takže největší prací bylo nastudovat, jak v tomto typu procesoru pracují vestavěné periferie.

No a nakonec bylo potřeba vyřešit, kterak obsloužit sériový kanál na straně PC a ukládat načtená data do MySQL databáze. Shellový skriptík jsem pro sériovou komunikaci zavrhl. Místo toho jsem udělal program v C, který je více méně neprůstřelný - vyprazdňuje buffery, má timeout na čtení dat, takže nezůstane viset, atd. Protože jsem ale líný studovat, jak se v Cčku připojuje k MySQL, vyřešil jsem to tak, že prográmek generuje textový dotaz, který se rourou předá do řádkového klienta mysql. :)

Nad databází je pak jednoduchý PHP frontend, který pomocí knihovny jpgraph generuje moc pěkné** grafy. Tato knihovna je taky jediná, kterou jsem našel, co dokáže korektně vykreslit X-Y graf, kde osu X tvoří datum a čas.

Jsem sám zvědav, co vymyslím napřesrok. Možná by to chtělo aspoň stávající zapojení předělat z nepájivého pole na desku tištěných spojů :)

Zdrojové kódy všech uvedených komponent neuvádím, protože nejsou dostatečně zobecnitelné a nemyslím si, že by je někdo užil. Pokud by snad přeci jen měl někdo zájem, nechť se ozve.

*) Ono se nakonec ukázalo, že to až tak výhodně není - po zjištění poruchy provedla distribuční společnost v souladu §16 vyhlášky 51/2006Sb. energetického regulačního úřadu přepočet na spotřebu obdobnou v předchozím období.

**) Odborníci jistě prominou použití fontu Comic Sans :)
[ zobrazit záznam ] ( 685 zobrazení ) trvalý odkaz související odkaz ( 3 / 17564 )
Gentoo: Jak správně odmaskovávat 

Ačkoli je distribuce Gentoo zaměřena na aktuální verze softwaru, přesto se může stát, že verze programu, kterou poptáváme, není dosud označená jako stabilní. V takovém případě existuje mnoho postupů, jak balík odmaskovat, ale téměř všechny jsou špatné :) Pokusím se je přehledně sepsat:
  1. Instalace s ACCEPT_KEYWORDS:

    # ACCEPT_KEYWORDS=~x86 emerge -atv program
    Toto je jednoduchá cesta, ale
    • znemožňuje updaty (emerge world provede downgrade)
    • Spolu s balíkem odmaskovává i jeho závislosti

  2. Přidání názvu balíku do /etc/portage/package.keywords:

    # echo grp-category/programname >> /etc/portage/package.keywords
    Problémy jsou však možná ještě horší:
    • Závislosti nejsou odmaskovány, takže na tom obvykle skončí výpočet stromu závislostí. Odmaskování závislostí je vcelku pracné.
    • Nezřízené updatování systému nejnovějšími verzemi, které jednak vyžaduje odmaskování závislostí, a také často zbytečně rozbíjí systém. Obvykle totiž nemáme zájem automaticky updatovat na nejnovější nestabilní verze.

  3. Přidání názvu atomu do /etc/portage/package.keywords:

    # echo =grp-category/programname-1.2.3 >> /etc/portage/package.keywords
    Na tento postup jsem přišel teprve nedávno. Oproti předchozím nejsme vystaveni automatickým updatům na vyšší verze, ani automatickým downgradům (pokud daná verze nezmizí z portage). Problém se závislostmi však stále trvá.

V tuto chvíli používám poslední zmiňovaný postup. Má to svou logiku - po nestabilní verzi programu sahám pouze v případě, že stará verze nenabízí funkcionalitu, kterou potřebuji. Odmaskovaná verze už mi funguje a nepožaduji tedy, aby mi program byl automaticky updatován. Tím se vyhnu problému se zavlékáním nových a nových nestabilních verzí do systému.
[ zobrazit záznam ] ( 573 zobrazení ) trvalý odkaz ( 3 / 14193 )
HAL versus Keytouch versus ovládání audia 

Tak, upgrade jsem úspěšně překonal. Dokonce celkem hladce proběhl přechod na Xserver s podporou HALu. Až do teď jsem HALu úspěšně odolával, bohužel, teď se ukázalo, že HAL je nutnou podmínkou ke konfiguraci vstupních zařízení X serveru za letu. A to je funkcionalita, kterou jako majitel Bluetooth myši ocením, neboť doteď jsem byl pro využití všech funkcí myši nucen tuto zapnout před startem X serveru a nevypínat, dokud X server běží, což nebylo příjemné.

Nakonec všechno funguje jak má, až na:
  • funkci Zap (Ctrl+Alt+BackSpace)": Je to nepříjemné, ale nevím jak to spravit, tak se s tím smiřuju :)
  • Keytouch: Z nějakého důvodu není schopen detekovat klávesové události. To je mnohem vážnější problém.
Číst dále...
[ zobrazit záznam ] ( 2693 zobrazení ) trvalý odkaz související odkaz ( 3 / 14613 )
Trable s Poplíky 

Titulek článku i obrázek jsem si dovolil vypůjčit ze seriálu Futurama, článek však bude o Gentoo.

Dnes jsem zažil to, čemu se říká dependency hell. Experimentováním s vícevláknovým mplayerem, který by na mém 1.6 GHz CoreDuo mohl dokázat přehrávat FullHD rozlišení jsem si rozbil H.264 kodek ve VLC. Když jsem to chtěl spravit, zjistil jsem, že už jsem opravdu hodně dlouho neupdatoval, a že by se s tím mělo něco dělat. emerge -atvu world vrátilo nepříjemných 318 updatů. Pustil jsem to a odešel pryč, protože sedět před zapnutým fénem (na který se počítač při kompilaci promění) není nic příjemného. Průběžně jsem se vracel a sluchem pozoroval, zda se stále kompiluje. Až to přišlo. Jakýsi balík ALSA kvůli nějaké malichernosti kompilaci zastavil. Když jsem to opravil a spustil emerge --resume, odmítlo to pokračovat z důvodu konfliktu verzí, který tam předtím nebyl. Trvalo mi celkem dlouho, než jsem přišel na to, že za všechno může jakási PDF renderovací knihovna poppler, která dříve patřila do kategorie app-text a teď patří do dev-lib, takže při updatu jde o dva různé nezávislé balíky které jsou však vzájemně výlučné. Aby to nebylo tak jednoduché, tak starý app-text/poppler se do systému stále cpal přes virtuální balík virtual/poppler, který v nizší verzi závisí na tom app-text, zatímco ve vyšší na dev-libs verzi. Teprve poté, co jsem všechny popplíky odebral, začalo to zase normálně fungovat.

Stále mám Gentoo nejradši ze všech distribucí, co jsem zkusil. Ale ty upgrady, to je vždycky tragédie :-)
[ zobrazit záznam ] ( 17519 zobrazení ) trvalý odkaz ( 3 / 13417 )
VPS-PDC rekordér pro DVBgrab 

S digitalizací TV vysílání v mé domácnosti jsem se donutil i doma nainstalovat soukromý DVBgrab.

Musel jsem ho upravit pro používání HTTP streamingu (protože v domácnosti, kde je méně potencionálních diváků, než televizních kanálů, se multicastové vysílání nevyplácí). A zapojil jsem taky svůj VPS rekordér, který jsem k tomu účelu doplnil o omezení maximální doby čekání na pořad (pro případ, že daný pořad vůbec nevysílají.)

Bohužel musím konstatovat, že stále nové dva veřejnoprávní kanály ČT 24 a ČT 4 nenabízejí žádnou formu VPS/PDC, takže ty je třeba stále nahrávat pouze podle času.
EDIT: Na programech ČT24 a ČT4 funguje již od 1.3.2007 přenos PDC dat v rámci teletextu (nikoli na 16. řádku). V tuto chvíli (únor 2010) navíc jsou u těchto programů vyplňovány i položky Running_status v EIT tabulkách.

Číst dále...
[ zobrazit záznam ] ( 5367 zobrazení ) trvalý odkaz související odkaz ( 3 / 17747 )

<<První <Zpět | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Další> Poslední>>