nem terveztem, hogy ezt most összefoglalom, de talán
jobb is így. kezdjük az elején, a széppel. ha saját magad
tervezte-kivitelezte megújuló energiás rendszert álmodsz meg,
mindenképpen szükség lesz benne valamilyen logikára, ami vezérli azt.
vezérlés pedig csak bemenõ információ alapján lehetséges, ami
elektromos rendszernél a volt és amper, melegítési rendszernél pedig a
hõmérséklet és adott esetben az áramló víz mennyisége.
bár szokásom a nem létezõ eszközöket elõnyben részesíteni (többféle
értelemben is), mégsem lehet mindent bimetál termosztátokkal meg
szelepekkel elintézni. így vagy úgy de szükséges egy rendszer, ami a
lakásban bárhol képes mérni a hõmérsékletet, illetve legalább az áram
fõ elosztója közelében számos feszültséget és áramerõsséget. persze nem
csak a mérés a nagy ügy, hanem a mért értékek eljuttatása egy azt
értelmezni tudó, és végül reléket vagy szelepeket kapcsolgató géphez.
ha az ember felcsapja az internetet, a különbözõ gépészeti áruházakban
kilóra mérik az erre alkalmas célrendszereket, csak épp aranyáron,
jelentõs fogyasztással és mindenféle megkötéssel.
hogy kicsit domborítsam már elõre az én megközelítésem, jelenleg
féltucat, de további legalább 1 tucat hõmérõ, valamint legalább két
fesz, és két árammérõ lesz táplálva egy usb portról. pontosabban egy 2m
usb kábelen lógó passzív 4-port hubról lógó további 5m usb vezeték
utáni 70-90m vezetékrõl. igaz, hogy ebben az információk tárolása és
relék nincsenek benne, de a relé elvileg szintén ráköthetõ a buszra, a
manapság elterjedt usb-s routerekre meg telepíthetõ a loggolást végzõ
csomag. aki nagyon akar akár memóriát is rakhat a vezetékre. az 1-wire
eszközök elterjedt, kompakt formája az ibutton nevű fémdoboz, amiben
lehet termochron vagy akármi.
a buszrendszer neve 1-wire, ami kezdjük ott, hogy hatalmas átverés.
merthogy még a leglámább hõmérõszenzorhoz is két ér megy. sokat nem
okoskodnék róla, én innen
kezdtem az ismerkedést. mivel nem szeretném hosszú lére ereszteni és a
célok remélhetõleg világosak, leírom a jelenlegi megoldást.
usb
master (azért nem kicióccó, mert ez ipari gumizott kivitel, elvileg
sok hibajavítással.)
a hõmérõket (ekkorka
kis vackok) a fentebb linkelt útmutató alapján lehet összekötni, ahogy
írva van ezekhez elegendõ két ér. óva intenék azonban attól, hogy
valaki ne készítsen be egy lehetõleg testesebb (szvsz 0,5-1mm2)
harmadik eret. késõbb lesznek még eszközeink.
a leírástól eltérõen nem digitemp lesz, mert az owfs fényévekkel jobb.
gyorsan összetesszük ubuntu 10.04 alatt (bár lehet, hogy valamiért
frisebb kellett végül):
apt-get install owfs
nano /etc/owfs.conf
ide lehet aliasokat képezni (majd késõbb látni fogjuk minden hõmérõ meg
egyéb 1w eszköz egyedi rendszámát):
10.1E39AB010800 =
00_panel
10.415EAB010800 =
00_padlas
10.543AAB010800 =
00_fogyasztas
10.B950AB010800 =
00_szonda
10.FE4AAB010800 =
00_szoba
20.088108000000 =
00_volt
a "fogyasztas" ne zavarjon senkit, ahogy az elsõ két számból
(eszközosztály) is látszik az egy hõmérõ. ez a hõmérõ viszont egy ideig
rá volt szorítva egy olvadóbiztosítékra, amivel így egész tűrhetõen
lehetett legalább áramot (a tobbé-kevésbé állandó dc 12v-on ez
~fogyasztás) mérni. ezen a grafikonon
elég jól látszik. a felsõ, fekete buckás vonal nem óriáskígyó több
elnyelt elefánttal, hanem a biztosíték hõmérséklete a
lámpafelkapcsolás, videózás ésatöbbi fogyasztás függvényében. persze
lesz rendes fogyasztásmérés is, de a híd messze.
térjünk vissza a jelenbe, van egy usb-s kütyünk, és egy szétbarmolt
kínai aluméneum cat5 kábelen egy bekötött hõmérõnk. owfs telepítve,
ubuntun udev-ben esetleg az adott eszköz a júzernek engedélyezve, és
mehet a buli:
/usr/bin/owfs -a
/etc/owfs.conf -d /dev/ttyUSB0 /mnt/1wire
nem fogok szájbarágni, könytárakat meg /dev/ azonosítókat mindenki
kaparja össze. ha ezzel megvagyunk, akkor
lapa@inox:~$ ls -al
/mnt/sensor
total 4
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 .
drwxr-xr-x 4 root
root 4096 2012-11-19 11:24 ..
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 10.1E39AB010800
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 10.415EAB010800
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 10.543AAB010800
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 10.B950AB010800
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 10.FE4AAB010800
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 alarm
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 bus.0
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 settings
drwxrwxrwx 1 root
root 8 2013-02-16 18:31 simultaneous
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 statistics
drwxr-xr-x 1 root
root 32 2013-02-16 18:30 structure
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 system
drwxr-xr-x 1 root
root 8 2013-02-16 18:30 uncached
lapa@inox:~$
ó, milyen szép. az one wire file system csinált egy fájlrencört. ide
nagyjából 10 mp-ként (vagy 'uncached'-et használva asszem
lekérdezésenként) megérkeznek az adatok:
lapa@inox:~$ cat
/mnt/sensor/10.1E39AB010800/temperature
-0.125
lapa@inox:~$
szóval majd ha fagy. remélem ez nem a benti hõfok. nem érdemes
gyakrabban kérdezõsködni, mert idõbe telik, mire az összes hõmérõ
visszaküldi az adatot. hozzáteszem ha nekem most be lennének állítva az
aliasok, akkor itt már beszélõ nevek lennének. a hõmérõk amúgy 0.16
celsius pontosságúak, ez bõven elegendõ. lehet owfs-sel mindenféle
vicces dolgot csinálni, például adatbázist meg webklikkolóst. mivel én
túl egyszerű ember vagyok, nekem ilyet ne akarjon az owfs. ehelyett én
beleírom egy ram fájlba az értékeket, aztán hdd-kímélés gyanánt fél
óránként kiírom lemezre.
hogy ez a vérkezdõ hozzáállás még bizarabb legyen, nem daemonként fut
az adatgyűjtés, hanem tray ikonba lemenõs-autorunos rettenetként.
működik, és van jobb dolgom is, mint ezt csiszolgatni. szóval ubuntuban
startup applicationban:
alltray
"gnome-terminal -e /home/lapa/.desktop/sensor"
a sensor nevű fájl pedig:
#!/bin/bash
trap bashtrap INT
bashtrap()
{
cat /tmp/sensor
>> /media/valami/sensor
rm /tmp/sensor
fusermount -u
/mnt/sensor
exit 0
}
/opt/owfs/bin/owfs
--link=/dev/ttyUSB0 -u /mnt/sensor/
while [ 1 -eq 1 ]
do
trap bashtrap
INT
touch
/tmp/sensor
most=`date +%s`
lejar=`date
--date='3580 second' +%s`
while [ $most
-le $lejar ]
do
trap bashtrap
INT
most=`date +%s`
miko=`date
+"%Y.%m.%d %H:%M:%S"`
mit=`cat
/mnt/sensor/10.*/temperature`
echo $miko$mit
>> /tmp/sensor
sleep 15
done
cat /tmp/sensor
>> /media/valami/sensor
rm /tmp/sensor
done
ezt végülis Jester01 és bambano lelkes shelltopik-jedik
írták. mivel nekem a tmp ramdrive, ide írogat egy fájlba, aztán ami
ebben van, azt félóránként vagy bármilyen leálláskor hozzáfűzi a
korábbi, lemezen lévõ fájhoz. nagyjából így néz ki a belseje:
lapa@inox:~$ tail
/tmp/sensor
2013.02.16 18:54:18
-0.5625 14.625 20.9375 8.3125 20
2013.02.16 18:54:39
-0.5625 14.625 20.9375 8.3125 20
2013.02.16 18:55:01
-0.5625 14.625 20.9375 8.3125 20
2013.02.16 18:55:22
-0.625 14.625 20.9375 8.3125 20.0625
2013.02.16 18:55:43
-0.625 14.625 20.9375 8.3125 20
lapa@inox:~$
oké, de jó lenne az adatokat valahogy megjeleníteni. itt persze vannak
mindenféle csillivilli-prifiprofi grafikálóappok, én maradtam egyelõre
a faék gnuplotnál. mondjuk az utolsó pár nap megnézése:
#!/usr/bin/gnuplot
set xlabel "time"
#set key below left
set key default
set xdata time
set line style 1 lt 1
lw 1
set line style 2 lt 2
lw 1
set line style 3 lt 3
lw 1
set line style 4 lt 4
lw 1
set line style 5 lt 5
lw 1
set line style 6 lt 6
lw 2
set line style 7 lt 7
lw 2
set line style 8 lt 8
lw 2
set line style 9 lt 9
lw 2
set line style 10 lt
10 lw 2
set timefmt "%Y.%m.%d
%H:%M:%S"
set format x
"%Y.%m.%d %H:%M"
set yrange [-20:70]
set ytics 0,10,100
set ylabel "temp"
set tics rotate by 90
set grid
set output
"/tmp/x.png"
set autoscale
plot "< tail
-60000 /media/valami/sensor" using 1:3 title "panel" with line ls 1,
"< tail -60000
/media/valami/sensor" using 1:4 title "talajbe" with line ls 2,
"< tail -60000
/media/valami/sensor" using 1:5 title "fogy" with line ls 3,
"< tail -60000
/media/valami/sensor" using 1:6 title "padlas" with line ls 4,
"< tail -60000
/media/valami/sensor" using 1:7 title "nappali" with line ls 5
pause -1 "Nyomj
entert!"
ennek eredményeként kapunk egy ilyet:
ahol a csíkok úgy keletkeztek, hogy kicsinylapa vs usb hub 1:0. csak
széthúzta, mert kábelbuzi a csöppem. kitõl örökölhette vajon. itt még
el lehet csámcsogni az adatokon, hogy iccakka még a legeslegnagyobb
hidegben (a tavalyi -16.8 fokban) sem hűl le annyira a lakás, hogy a
fűtés bekapcsoljon (világoskék). meghogy a földbe leásott rendkívül
bonyolult műanyagcsövön sose jön be mínuszos levegõ (zöld). a letörések
itt azt jelzik mikor indítottam be a szellõzést. természetesen nyáron
is sokat jelent az állandó 7 fok 2 méter mélyben, nem izzad az ember
annyira, mint mikor ki kell ásni a csõnek a gödröt. a 'panel' (piros) a
napelem hátuljára ragasztott szonda, itt az odakinti napsütötte fekete
felület értékei olvashatók, amibõl korábban elnagyolt termelési
adatokat integráltam. persze ahhoz van offline sdkártyára mentegetõs megoldás
a töltésvezérlõn, de nem az igazi úgy, meg fogyasztást nem is logol,
csak termelést.
de majd most, mert ma - ha a jövõ nem is kezdõdött el - a múlt elmúlt.
a múlt nagyon-nagyon sötét és vérzivatarokkal tarkított volt. mert
hiába van relatíve egyszerű váltóáramú árammérõ, 20-30 amper környékére
alkalmas 12v dc árammérõ az sehol. aztán kiderült, hogy nem vagyunk hall-hatatlanok.
hogy ez a hall ez most valami vagy megy valahová, azt nem tudom.
mindenesetre kiderült, hogy ez mérhetõ és elérhetõ
közelségben van, de mégsem olyan közel, hogy galvanikusan
összedörgölõzzenek a nagyárammal.
brilliáns, mondhatnánk. minimálfogyasztás, minimálméret, csak rá kell
húzni a vezetékre, és egyszerű feszültségváltozást kapunk az átfolyó
áram függvényében. ráadásul oda-vissza polaritáshelyesen, amivel így
akksi töltés-kisütés kombóját is tudja mérni. hol a csavar? a csavar
ott van, hogy a rézvezetékek nagyon hatékonyak, a hall-szenzor alig
csinál némi feszkót. ezek a 80 amperesek például 23mv / ampert
(pontosan offszetet, a nyugalmi feszültséghez képest). ehhez túrtam a
neten egy voltmérõ chipet, név szerint a ds2438-at.
bár ennek a felbontása nagyjából 1 amperenként (azaz 12v révén
12w-onként) tudná kezelni a hall kimenetét, ezt a kütyüt nekem sose
sikerült életre keltenem. próbáltam így, próbáltam úgy, összevissza és
másképp, elektronikához nem értõként esélytelen voltam. kértem
segítséget több helyrõl, hónapokon keresztül újra meg újra nekiálltam
és törtem lábat, kötöttem vezetéket, mértem multiméterrel, semmi.
valami elektronyos kütyüre lett volna igénye, de nem sikerült
kideríteni mire. pedig tényleg harcoltam vele, csak fegyverem volt
kevés.
aztán feladtam, és vettem egy ilyet.
azaz
csak majdnem, mert vagy én nyomtam rosszat lányos zavaromban, vagy
pedig õk küldtek valami nem jót. ezzel megint ment a harc, kezdõdõen a
vezetékek színeinek visszafejtésével, a betápon át a megfelelõ
tesztkészülékig (ez a jansjö lámpesz akar lenni).
nagy küzdelmek árán ezt sikerült bebikázni, de mindig hülyeséget
mutatott. a névleges 2,5v nyugalmi fesz helyett ez 1,8v-ot mutogatott
folyton. no ezzel is legóztam egy darabig, aztán pár nap alatt végül
rájöttem, hogy ez nem feszmérõ, hanem árammérõ kütyü. oké, itt már
fapofával rendeltem meg a jó szenzort, ami - bár pár ellenállás híján
ugyanúgy néz ki kívül-belül - azért a három fülhallgató-vezeték színe
feszt totál más. ezt is szétszed, összeszínkódol, összerak. végül ma
este hagytam az ikeás lámpeszt is, és elõkaptam a kabala kult legotrafót meg a
klasszik 4,5v fekete mocit. az talán
azért érdekes, mert mostanra elbizonytalanodtam, hogy a lámpesz dc-e.
de szerintem az, csak még mindig nem elég áram folyt át rajta, hogy
értékelhetõ eredményt adjon.
és lõn eljövé az igazság. bár a kép katasztrofális, nagyítva látható,
ahogy a gnuplot grafikonja végre felkúszik, mikor elindítom a kis
drágát. gyorsan hozzáteszem, a törés amiatt van benne, hogy elengedtem
a kereket és nem volt terhelés. a grafikon amúgy nem real-time, csak a
látvány kedvéért hagytam tovább pörögni a mocit. itt tartok most,
megírtam mert gyõztem. a beszerelés után lesz valami update-poszt,
hiszen itt még reléket kéne kapcsolni a feszültségtõl függõen. addig is
ne feledjétek, hogy a 12v-nak elégnek kell lennie.
|