OLED-display i hallen

I detta forum hör diskussioner gällande teknik i största allmänhet och hemautomation i synnerhet hemma.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
finkman
Wannabe
Inlägg: 22
Blev medlem: 02 nov 2006, 01:45
Ort: Linköping

OLED-display i hallen

Inlägg av finkman »

Har tröttnat för länge sen på att surfa temperatur.nu i mobiltelefonen varje morgon innan jag går ut. Hittade en schysst HD44780 OLED-display på ebay! Perfekt att sätta upp i hallen. Kanon tillsammans med entråds-displaykontrollern! Borrade ett extra hål i displaykontrollern och använde tre kartnålar för att sätta upp den på väggen, med en pappskiva bakom så inte komponentbenen ska skada tapeten.

16x2 tecken är ju lite snålt, men det räcker till innetemp, utetemp, tid och dörren-är-låst-eller-inte-symbolen längst ner till höger. Smidigt att kunna se på avstånd om dörren är låst. Hela displayen funkar skitbra som riktmärke vid nattliga toalettbesök också! Till vänster om det gröna bara så är allt OK! :D Smidigt att kunna se tiden också nattetid.

Om någon är sugen på perlkoden så säg till! Inte helt finkodat, men det funkar.

Har inte sett så många andra displayprojekt i forumet? Ingen annan som grejjar med sånt? Pic/Url!? :)
Bilagor
Hall-entråds-oled med värmekontrollpanelen under (jepp, värmeprylens tid går alltid fel!)
Hall-entråds-oled med värmekontrollpanelen under (jepp, värmeprylens tid går alltid fel!)
larky
Moderator
Inlägg: 1166
Blev medlem: 01 feb 2008, 12:21
Ort: Skellefteå
Kontakt:

Re: OLED-display i hallen

Inlägg av larky »

Jo, vi är nog några som har LCD i hallen, här är mitt bidrag;
http://www.karlander.net/temperatur/utrustning.html
Hoffan
Hemautomation - det är mer än en hobby
Inlägg: 352
Blev medlem: 13 maj 2007, 22:46
Ort: Mölndal

Re: OLED-display i hallen

Inlägg av Hoffan »

Kodförslag e ju aldrig fel

Så visa gärna din.. Ger ju om inte annat ideer för fler här ju :)
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: OLED-display i hallen

Inlägg av Niklas »

Snyggt.

Min sitter i köket och så här ser det ut:


Jag har dock bytt nu så att den informationen som visas på den mindre man ser i filmen visas på en LCD modell BIG som finns i shoppen. Den mindre visar nu elförbrukning.

Kalendern som visas är synkad med google calendar som i sin tur är synkad med min och frugans kalender i Thunderbird. :)
kazaam
Wannabe
Inlägg: 4
Blev medlem: 12 maj 2009, 17:04
Ort: Tomteboda

Re: OLED-display i hallen

Inlägg av kazaam »

coolt!

Får man fråga hur det hela går till, vilken uppsättning av något (allt?)/pseudokod/etc, om man skulle vilja göra en egen LCD med visning av synkad kalender, etc? Synkning av kalendrar, antar att den är oxo perl/php/bash-baserad??
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: OLED-display i hallen

Inlägg av Niklas »

kazaam skrev:coolt!

Får man fråga hur det hela går till, vilken uppsättning av något (allt?)/pseudokod/etc, om man skulle vilja göra en egen LCD med visning av synkad kalender, etc? Synkning av kalendrar, antar att den är oxo perl/php/bash-baserad??
Jag sköter allt med PHP. Det är det jag kan så det känns smidigt.
Google har ju bra API och det finns mycket exempelkod där ute.
Loopen ordnar jag med ett script som loopar i oändlighet.

Jag har ett script per ... funktion? Ett script kollar antal mail, ett kollar temp och ett kollar kalendern.
Så har jag gjort så att jag kan köra scripten vid olika tillfällen. Mailen kollas tex var 10e minut och uppdateringen från kalendern gör jag varje kvart.

Allt sparas det i databasen och loopscriptet loopar fram en i taget från dbn.
finkman
Wannabe
Inlägg: 22
Blev medlem: 02 nov 2006, 01:45
Ort: Linköping

Re: OLED-display i hallen

Inlägg av finkman »

Larky: Snyggt! Displayramen gjord i en cnc-fräs/liknande?

Som syns nedan så är inte koden helt klar än, fick slut på tid. Lite funktioner som inte används, lite bortkommenterat och ändrat här och varstans. Koden som uppdaterar displayen:

Kod: Markera allt

#!/usr/bin/perl
use IO::Handle;
use LWP::Simple;
use strict;

my $line1 = '/mnt/owfs/FF.8A0400000300/line16.0';
my $line2 = '/mnt/owfs/FF.8A0400000300/line16.1';
my $lcdon = '/mnt/owfs/FF.8A0400000300/LCDon';

#på dessa signaler, kör funktionerna:
$SIG{INT} = "closeandexit";
$SIG{USR1} = "updatelines";
$|=1;

resetdisplay();
my $time = time();
while(1){
        updatelines();
        sleep(60);
}

sub updatelines {
        if(time()-$time > 1800){
                resetdisplay();
                $time = time();
        }

        my $line1_fh = openline($line1);
        my $line2_fh = openline($line2);

        my $out_temp = get("http://www.temperatur.nu/termo/jagarvallen/temp.txt");
        chomp($out_temp);
        my $in_temp = `cat /mnt/owfs/uncached/10.1B5350020800/temperature | tr -d ' '`;
        $in_temp =~ s/(..\..).*/$1/;

        my $line1 = "Ute:$out_tempß";
        my $line1 = $line1 . '                ';
        $line1 = substr($line1,0,11);

        my @timearr = localtime(time());
        $line1 = $line1 . $timearr[2] . ':' . $timearr[1];

        my $line2 = "Inne: $in_tempß";
        my $doorlock = `cat /mnt/owfs/12.776B45000000/sensed.A`;
        if ($doorlock == 0){
                $line2 = $line2 . '                ';
                $line2 = substr($line2,0,15);
                $line2 = $line2 . 'ô';
        }
        printaline($line1_fh, $line1);
        printaline($line2_fh, $line2);

        close($line1_fh);
        close($line2_fh);
}

sub resetdisplay {
        system("echo '0' > $lcdon; sleep 2; echo '1' > $lcdon");
        sleep(10);
}
sub openline {
        open(my $fh, '>', $_[0]) or die $!;
        autoflush $fh,1;
        return $fh;
}
sub printaline {
        my $padding = '                ';
        my $fh = $_[0];
        my $string = substr($_[1],0,16);
        print $fh $string;
}
sub clearscreen {
        #printaline($line1_fh, '                ');
        #printaline($line2_fh, '                ');
}
sub closeandexit {
        #print 'closing filehandles' . "\n";
        #close($line1_fh);
        #close($line2_fh);
        exit(0);
}
Kod nedanför kollar dörren och skickar USR1-signal till koden ovan. Hade hoppats på att inotify eller något skulle kunna skicka signalen istället, så man slipper polla filen så ofta som jag gör nedan.. Men inotify verkar inte kunna känna av uppdateringar i owfs, och då jag inte ville lägga mer tid så fick det bli nedan ful-lösning. Poängen är iallafall att dörren-är-låst-visningen i högra hörnet av displayen ska uppdateras så fort en förändring sker, istället för att vänta de 60s som är displayens normala uppdateringsintervall.

Kod: Markera allt

#!/usr/bin/perl
use strict;

my $prev_door = `cat /mnt/owfs/uncached/12.776B45000000/sensed.A`;
while(1){
        my $door = `cat /mnt/owfs/uncached/12.776B45000000/sensed.A`;
        if ( $prev_door != $door ){
                my $pid = `ps -ef | grep display.pl | grep -v grep`;
                #system('kill -s SIGUSR1 `ps -ef | grep display.pl | grep -v grep | awk "{print $2}"`');
                my @split_array=split(/\s+/, $pid);
                #print "sending USR1 to $split_array[1]\n";
                kill('USR1', $split_array[1]);
        }
        $prev_door = $door;
        sleep(1);
}
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: OLED-display i hallen

Inlägg av CirruZZ »

finkman skrev:...
Hade hoppats på att inotify eller något skulle kunna skicka signalen istället, så man slipper polla filen så ofta som jag gör nedan.. Men inotify verkar inte kunna känna av uppdateringar i owfs, och då jag inte ville lägga mer tid så fick det bli nedan ful-lösning.
...
Problemet är att saker ute på nätet inte själv kan uppdatera OWFS, med andra ord, "något" måste läsa av OWFS för att det skall uppdateras. Jag har själva försökt samma sak som du men det slutar med att man får ha ett script som med jämna mellanrum läser av OWFS för att kolla om en förändring har skett.
finkman
Wannabe
Inlägg: 22
Blev medlem: 02 nov 2006, 01:45
Ort: Linköping

Re: OLED-display i hallen

Inlägg av finkman »

Ah, det är ju förståss väldigt sant. :/ OWFS lär ju inte själv spamma onewirenätet med förfrågningar mot alla anslutna enheter, utan väntar förståss på att man läser från nätet.. Dööh, som man brukar säga, den insikten hade kunnat spara mig lite slit förra helgen :)
rune
Tar hemautomation på allvar
Inlägg: 92
Blev medlem: 16 jun 2009, 22:30
Ort: Værløse, DK

Re: OLED-display i hallen

Inlägg av rune »

Snyggt! Hur kollar du om dören är låst?
finkman
Wannabe
Inlägg: 22
Blev medlem: 02 nov 2006, 01:45
Ort: Linköping

Re: OLED-display i hallen

Inlägg av finkman »

Dörrgrejen finns beskrivet en bit ner i min tokgamla tråd "Linux wap och tellstick", http://www.temperatur.nu/forum/hemautom ... -t254.html . Där finns kretsschema, ett par foton och grejor.

Chippet jag använder, ds2406, har nog utgått vid dethär laget, men mot det absoluta slutet av den tråden nämner jag några andra möjligheter, bland annat att köpa ett färdigt io-kort som blir i princip lika billigt och förmodligen lite enklare och bättre :)

Koden räcker med det som står ovanför här! Tror det finns php-kod till en wapsida i den andra tråden också.
Skriv svar