Raspberry pi ja 1-wire

noble

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

apophis sanoi:
Perl skripti graafin piirtoon

Tarvitaan muutama kirjasto ja gnuplot

$ sudo apt-get install libcgi-pm-perl
$ sudo apt-get install libdbi-perl
$ sudo apt-get install gnuplot

Ja itse skripti tehdään /usr/lib/cgi-bin hakemistoon

sudo pico /usr/lib/cgi-bin/img.pl

#!/usr/bin/perl -w

use strict;
use CGI;
use DBI;
use POSIX;
use Time::Local;
use Time::piece;
use Time::Seconds;

# Common constants for plots
my $tic_day = " %H";

my $plot_temps = 'using 1:3 title "Huone" with lines';

my $res_file = "/dev/shm/res" . floor(rand(1000)) . ".txt";
my $sql_res = "";

sub mysql_get_select($);
sub mysql_select($$);
sub render_temps_day($);

my $cgi = new CGI;
my $cgi_date = $cgi->param('date') || `date +%Y-%m-%d|tr -d "\n"`;

my $img_w = $cgi->param('width') || "640";
my $img_h = $cgi->param('height') || "480";

print "Content-type: image/png\n\n";

my $select = mysql_get_select($cgi_date);
mysql_select($select, $res_file);
render_temps_day($cgi_date);

unlink ($res_file);
exit;

#

sub mysql_get_select($)
{
my $cgi_date = $_[0];

my $select = "SELECT * FROM ";

$select .= "lampotilat ";
$select .= "WHERE DATE(aika)=DATE(\"$cgi_date\") ";
$select .= "ORDER BY aika ASC";

return $select
}

sub mysql_select($$)
{
my $select = $_[0];
my $file = $_[1];
my $res = -1;

eval {
my $dbh = DBI->connect ("dbi:mysql:dbname=talo", "root", "root", { RaiseError => 1 },);
my $sth = $dbh->prepare ($select);
$sth->execute();

open (FILE, ">$file");

my @row;
while (@row = $sth->fetchrow_array ())
{
print FILE "$row[0] $row[1]\n";
}

close (FILE);

$sth->finish ();
$dbh->disconnect ();

$res = 0;
};

return $res;
}

sub render_temps_day($) {
my $cgi_date = $_[0];
open(G, "|gnuplot") or die "gnuplot failed";
print G <<EOF1;
set autoscale
set xtics 3600
set ytics auto
set title "L\344mp\366tilamittaukset $cgi_date"
set xlabel "Aika"
set ylabel "L\344mp\366tila (C)"
set terminal png medium size $img_w,$img_h
set output
set key left top
set grid
set timefmt "%Y-%m-%d %H:%M:%S"
set xdata time
set format x "$tic_day"
set xrange ["$cgi_date 00:00":"$cgi_date 24:00"]
set yrange [0:30]
plot "$res_file" $plot_temps
EOF1

close (G);
}

$ sudo chmod a+x /usr/lib/cgi-bin/img.pl

Syntaksin voi tarkistaa

$ perl -wc /usr/lib/cgi-bin/img.pl

Ja kun skripti on valmis, niin koko systeemi pitäisi olla testattavissa. Eli mene osoitteeseen http://koneen_ip/cgi-bin/img.pl ja selaimeen pitäisi ilmestyä kuvaaja! Onnittelut, jos pääsit tähän asti :cool:
Kuinka tämän saisi lukemaan talologgerin sqlite-tietokantaa? Tietokannan nimi SQLITEDB:NAME = /home/talo/data/talo.db
 

apophis

Aktiivinen jäsen
Vs: Raspberry pi ja 1-wire

En tunne talologgerin kannan sisältöä... Nimimerkki olammi varmaan osaisi vastata paremmin?

Periaatteessa siinä kohtaa missä skriptissä luetaan kannasta pitäisi tehdä muutokset. Oma kantani on käytännössä ilman rakennetta, kun yhtä loggausta kohden taulussa on vain päiväys ja spacella erotellut lämpötilat kaikista antureista.

Nyttemmin olen tehnyt loggereita lähinnä rrd : llä, koska siihen löytyy myös graafien tekoon komento. Ei tarvitse tuon gnuplotin kanssa taistella...
 

VesA

Moderaattori
Ylläpidon jäsen
Vs: Raspberry pi ja 1-wire

apophis sanoi:
En tunne talologgerin kannan sisältöä... Nimimerkki olammi varmaan osaisi vastata paremmin?

Periaatteessa siinä kohtaa missä skriptissä luetaan kannasta pitäisi tehdä muutokset. Oma kantani on käytännössä ilman rakennetta, kun yhtä loggausta kohden taulussa on vain päiväys ja spacella erotellut lämpötilat kaikista antureista.

Nyttemmin olen tehnyt loggereita lähinnä rrd : llä, koska siihen löytyy myös graafien tekoon komento. Ei tarvitse tuon gnuplotin kanssa taistella...
Jos pärjäät rrd:n kanssa törmäät myös sen keljuihin puoliin heti kun dataa alkaa olla enemän, se vaatii ympärilleen lopulta aikamoisen määrän erilaista skriptintynkää tai muuta softaa jotta kaikki pelaa kauniisti, ja kehäpuskureiden korjaaminen ei ole kivaa.. jouduin siihenkin tekemään aikoinaan puoliautomaatin.. kahden vuoden puskuria ei halua vaan aloittaa alusta nollasta.

Kunhan himmelin saa pystyyn

https://en.wikipedia.org/wiki/Graphite_%28software%29

on rrd-kokemusten pohjalta tehty paljon joustavampi kehäpuskurisofta samaan tarkoitukseen..
 

VesA

Moderaattori
Ylläpidon jäsen
Vs: Raspberry pi ja 1-wire

Laitoinpa Raspin ja owfs:n taakse 50 DS18S20 anturia jotka Kiinasta tilasin. Anturit on tökitty koekytkentälevyyn 4:n sarjoihin, väylä ja virta i2c -adapterista.

Tässä kuva joka on tehty seuraavasti.

- anturipaketti on laitettu pakastimeen / jääkaappiin / kuistille ja mahdollisuuksien mukaan ympäröity jollain massiivisella jota läheltä löytyy.
- owfs:n noncached-lukemia on hakattu tiedostoon pitkän aikaa niin lujaa kuin systeemi pystyy
- tämä filu on ajettu perl-skriptin läpi. Se laskee keskiarvon kaikista lukemista ja vertaa sitä kunkin anturin keskiarvoon. 85:t ja tyhjät jätetään laskematta jne

Kolme tämmöistä sarjaa ( jossa siis on poikkeamat kaikkien antureiden keskiarvosta kyseisessä paikassa ) on piirretty excelillä niin että data on sortattu +4 lämpötilan mukaan.
 

Liitteet

J

jolla

Vieras
Vs: Raspberry pi ja 1-wire

huvikseni, kun vettä sataa eikä ulkoilu kiinnosta ja raspi2 katselee silmiin tuossa pöydällä ja ennekuin sen joku ostaa pois ajattelin kokeilla kuinka workkii usb kiintolevyltä kun nuo muistikortit ainakin kirjoitusten mukaan ovat hieman ongelmallisia
ajoin kortilta toimivan wheezy/taloLogger 320GB WD 2,5" levylle, SSD kortiksi riittää vaikka vanha 1GB hidas kortti

voi jestas tätä nopeutta eikä takkuile vaikka siellä hämmentää isoa tietokantaakin
suosittelen
 

VesA

Moderaattori
Ylläpidon jäsen
Vs: Raspberry pi ja 1-wire

jolla sanoi:
huvikseni, kun vettä sataa eikä ulkoilu kiinnosta ja raspi2 katselee silmiin tuossa pöydällä ja ennekuin sen joku ostaa pois ajattelin kokeilla kuinka workkii usb kiintolevyltä kun nuo muistikortit ainakin kirjoitusten mukaan ovat hieman ongelmallisia
ajoin kortilta toimivan wheezy/taloLogger 320GB WD 2,5" levylle, SSD kortiksi riittää vaikka vanha 1GB hidas kortti

voi jestas tätä nopeutta eikä takkuile vaikka siellä hämmentää isoa tietokantaakin
suosittelen
Tuohon toki riittää vähän vanhempikin levy ja raspi siihen kannelle vaikka jesarilla, mutta Raspin kokoluokkaan sopisi nätimmin joku msata/M2-ssd usb-kotelossaan.. siitä saisi jo vähävirtaisen serverin joka ei todennäköisesti ihan heti hajoa tai kaadu.
 
J

jolla

Vieras
Vs: Raspberry pi ja 1-wire

VesA sanoi:
Tuohon toki riittää vähän vanhempikin levy ja raspi siihen kannelle vaikka jesarilla, mutta Raspin kokoluokkaan sopisi nätimmin joku msata/M2-ssd usb-kotelossaan.. siitä saisi jo vähävirtaisen serverin joka ei todennäköisesti ihan heti hajoa tai kaadu.
juurikin näin, minulla meni 2008-2013 aikana 2 pyörivää levyä acaer one miniläpässä kun oli mittauskoneena, sen jälkeen ei ole pyöriviä levyjä ollut missään käytössä
tarkoitus on tässä illan kuluessa jollei mielenkiintoisempaa tekemistä ole, laittaa tuohon RR' ään 240GB hyperx, siinä ilmeisesti jää nand käyttämättä mutta ei se ole kun 8GB. ei siinä kyllä NAND ongelmiakaan ole ollut mutta olisi serverille käyttöä
 
J

jolla

Vieras
Vs: Raspberry pi ja 1-wire

alfred_j_kwak sanoi:
Boottaako vielä kortilta?
Olisiko linkki hyviin/toimiviin ohjeisiin miten toiminta siirretään muistikortilta ulkoiselle?
jos raspia tarkoitat, täällä yhdet hyvät ohjeet, nää kun voi tehdä monella eri tavalla
http://micu.mbnet.fi/raspberrytut25.htm
 

VesA

Moderaattori
Ylläpidon jäsen
Vs: Raspberry pi ja 1-wire

jolla sanoi:
jos raspia tarkoitat, täällä yhdet hyvät ohjeet, nää kun voi tehdä monella eri tavalla
http://micu.mbnet.fi/raspberrytut25.htm
Vähän on nuo ohjeet monipolviset, juu, mutta enpäs jeesustele enempää kun ei ole lyhyempiä osoittaa.
 
J

jolla

Vieras
Vs: Raspberry pi ja 1-wire

VesA sanoi:
Vähän on nuo ohjeet monipolviset, juu, mutta enpäs jeesustele enempää kun ei ole lyhyempiä osoittaa.
jäi tuolla RR' llä ihmetyttämään, kun en näistä mitään ymmärrä, että mitä tuo

Koodi:
.....mtdparts=rk29xxnand:0x00008000@0x00002000(boot),-@0x0000A000(linuxroot)
viimeinen '-@0x0000A000(linuxroot)' tarkoittaa? onko se pääkäyttäjän osio vai osio lainkaan, mille se on varattu kun root on kiintolevyllä
 

Larmatin

Tulokas
Vs: Raspberry pi ja 1-wire

Moi.
Tarttis tehdä kanssa mun koti 1-wire verkolle joka nyt on tietokoneeni perässä usb adapterilla Rasperry Pi lauta.

nyt joudun pitää kotikonetta kokoajan päällä ja haluisin sen homman tosiaan ulkoistaa Rasperrylle.

Eli kysyn vinkkiä
-mikä versio rasperrystä?
-Mikä käyttis sinne?

Vaatimuksia:
-sen pitäisi saada yhteys verkkoon piuhalla tai wifillä.
-siinä pitäis saada toimimaan log temp ohjelma joka päivittää käppyröitä verkkoonhttps://www.mrsoft.fi/ohj01ver.htm
-usb portti pitäis olla tolle 1-wire adapterille
- ja en haluais joutua hirveesti jotain koodia ruveta vääntää.

Kaikki apu tarpeen, kiitti
 

korsteeni

Jäsen
Pitihän se kokeilla kun luvataan pc lle raspin ominaisuudet.
Raspberry Pi Desktop (for PC and Mac)

Asensin acer one miniläppäriin ja toimii paremmin kuin mikään aiempi linux, kaikki löytyy ja toimii.
Asennus on hidas, mutta vastapainoksi jopa laitteen sisäinen 3G toimii.

Kokeilen vielä esihistorialliseen Fujitsu Siemensiin.

Siihen menee taloLoggerPi heittämällä joten noista vanhoista saa hyvän logituskoneen.
 

korsteeni

Jäsen
ATP Velocity SSD, tämä on AO751, 11,6" näytöllä.
Ne ensimmäiset AOA 110 oli varutettu 8 GB IDE P-SSD korteilla, niihinkin sai sata liittimen tinaamalla.

Meni muuten tuohon Fujitsu Siemen Amiloonkin, mikä on pyörivällä IDE levyllä varustettu.
 

Pretor

Jäsen
Mikäköhän mahtaa tiputtaa anturin pois pelistä? Paska anturi? Virtalähde (raspin mukana tullut alkup)? Anturit on Kiinasta aliexpressin kautta tilattuja. Vai kenties verkon kytkentätapa?
Piuhana joku vanha 10m cat-kaapeli pätkittynä, josta 3/4 johdinta siis käytössä. Antureissa itsessään 1m piuha kiinni. Molemmat haarat suunnilleen saman pituisia 4m (3m+1m).
1wraspi.jpg

Liitokset on kyllä kunnossa.
Pari-kolme päivää sitten kaikki anturit oli "mykkänä", eli suoraa viivaa graafissa. Raspin bootti ja taas toimi. Itse raspi ei ollut jumissa, sillä sähköt loggautuivat modbusin kautta koko ajan,
Sitten huomasin toissailtana, että ulkoanturi oli tippunut pelistä, mutta en jaksanut siinä vaiheessa alkaa tutkimaan asiaa. Kuitenkin aamulla anturi olikin herännyt uniltaan itsekseen.
temperature-last-24-hour.jpeg
Nyt sitten samainen anturi oli eilen illalla tippunut uudestaan pois pelistä ja sen perässä kaikki muutkin anturit.
Raspin bootti ja muut anturit heräsi, paitsi tuo yksi.
Anturi ei myöskään enää näkynyt ollenkaan listassa (cd /sys/bus/w1/devices/ ls).
Vaihdoin anturin ja taas näyttää toimivan, mutta kuinka kauan.
 
Viimeksi muokattu:

prelude

Vakionaama
Kaikki ajattelemasi ovat valideja vikaantumismekanismeja. Tuosta piirroksestasi ei käy selväksi, mutta onhan tuo vastas (noin 5-10k) kytketty 3V3.een? RPi:n IO on 3V3 tasoinen eikä oikein tykkää 5V tasoista.
En usko että heijastelut olisivat ongelma, mutta sähkönsyöttöä ehkä mittaisin skoopilla tai laittaisin pikkaisen konkkaa 1-wiren syöttöön. Anturit eivät tunnu rikkoontuvan itsekseen ei minulla enkä ole moista muiltakaan kuullut. Virtalähde taas on helppo testata vaihtamalla toiseen.
 

Pretor

Jäsen
Unohtui tosiaan äkkiä kyhätystä piirroksesta, mutta on 3V3 pinnissä ja vastus on 4.7K.
Mulla on toinen 3A paskalaatuinen virtalähde ja se saattaa antaa välillä undervoltagea. Kaikki kännylaturit on jotain 1-2A, mutta tuo raspin oma on 2.5A ja näytti toimivan parhaiten noista. Eli toistaiseksi ilman kaupassakäyntiä ei selviä lisätestailuista.
Tuo toimi kuitenkin sen muutaman päivän pystyyn saamisen jälkeen ilman mitään ongelmaa. Katsotaan nyt tällä kokoonpanolla miten toimii seuraavina päivinä.
 

VesA

Moderaattori
Ylläpidon jäsen
Käytännössä onewire on uskomattoman robusti, mutta kyllähän tuollainen haarasto on erikseen kielletty onewire-rakennusohjeissa. Jos bitit ovat liian solmussa ( terminoimaton/haaroitettu onewirelanka murjoo bittejä, mutta yleensä systeemi sen kestää ) anturi saattaa vastata 85 tai ei mitään. Esmes pieni määrä kosteutta jonkun anturin juuressa oikosulkee systeemissä kulkevia mitättömiä virtoja ja se lisäkuorma voi sitten nyrjäyttää kamelin selän.
 

TopiR

Jäsen
Ainakin noi kiinan-halpis-1-wire-anturit saattaa mennä latchuppiin (tila, jossa sisäiset trankut muodostaa tyristorin joka johtaa sähköä vcc:n ja gnd:n välillä) ja lakata antamasta mitään tuloksia.

Jouduin muuttamaan kytkentää siten että jatkuvan sähkönsyötön sijaan käyttösähkö tulee yhdestä IO:sta, ja 1-wire-kommunikointi hoidetaan toisella IO:lla.

Latchupin voi todeta sillä, että ottaa anturin lennossa irti (sähköjen katkaisu riittää), ja laittaa samointein takas paikoilleen. Rupee toimimaan ja lämpötilat on alussa kymmeniä asteita liian korkeat (ellei toi anturi ole upotettu nesteeseen tms muuten lämpökytketty erityisen hyvin), josta ne sitten tippuu oikealle tasolle anturin jäähtyessä (latchup lämmittää anturia).

-Topi
 

korsteeni

Jäsen
Kyllä niitä menee tasaisin väliajoin, 5-10 kpl/vuosi.
Kuvassa (keltainen) sekosi ja pisti kaverin (musta) myös sekaisin, vikaa oli ainoastann keltaisessa, oli niitä joissa johto valmiina ja dynamiittinallin näköisessä paketissa, ei tee mitään, yksittäiset blancot paljon laadukkaampia.
 

Liitteet

pökö

Rele-aikakauden änkyrä
Kyllä niitä menee tasaisin väliajoin, 5-10 kpl/vuosi.
Kuvassa (keltainen) sekosi ja pisti kaverin (musta) myös sekaisin, vikaa oli ainoastann keltaisessa, oli niitä joissa johto valmiina ja dynamiittinallin näköisessä paketissa, ei tee mitään, yksittäiset blancot paljon laadukkaampia.
Mulla kestää raspissa kaikki muu paitti se kortti, se simahtaa säännöllisesti.
 

pamppu

Vakionaama
Yksikään 1-wire ei ole pettänyt, 2014 taisin ne laittaa. Raspi on samalta vuodelta ja alkuperäinen muistikorttikin vielä.

Virtalähteenä on 5 tai 6 porttinen USB-poweri, joka syöttää raspin lisäksi verkkokytkintä, ei muistaakseni muuta.
 

Ismo67

Vakionaama
Mulla kestää raspissa kaikki muu paitti se kortti, se simahtaa säännöllisesti.
Mulla lakkasi muistikorttien menot(sekoamiset) kun aloin käyttämään Samsung SDHC Evo Plus Glass 10 muistikortteja.
Edellisessä paikassa oli Raspeja loggashommissa 4kpl ja nykyisessä kämpässä 1kpl.
 

Pretor

Jäsen
Toisella kestää vuositolkulla ja toisella menee muutama kpl/v. Vedä tästä nyt johtopäätöksiä :D
Joka tapauksessa vedin tohon uuteen vaihdettuun ulkoanturiin vielä varuiksi sähköteippiä sen verran, että kutistesukan päät on teipattu umpeen. Tulin vaan itseksenikin jo pohtineeksi, että jospas kutistesukkaliitos ei ehkä ollutkaan ihan tiivis.
 

VesA

Moderaattori
Ylläpidon jäsen
Joka tapauksessa vedin tohon uuteen vaihdettuun ulkoanturiin vielä varuiksi sähköteippiä sen verran, että kutistesukan päät on teipattu umpeen. Tulin vaan itseksenikin jo pohtineeksi, että jospas kutistesukkaliitos ei ehkä ollutkaan ihan tiivis.
Homma on aika herkkää. Omissani on ollut tippa kuumaliimaa kutistaessa. Koitin aluksi muistaaksein nopeaa araldiittia, mutta se imee vettä - ei kelpaa-
 

Pretor

Jäsen
No paskat se mitään toiminut. Eilen oli taas suoraa viivaa ulkoanturin graafissa (oli tiltannut jo yöllä), eli ei toiminut edes vuorokautta.
Eilen illalla irroitin ulkoanturin piuhan "omasta haarastaan" ja vedin sen jatkopiuhalla samaan nippuun muiden antureiden kanssa.
On se ainakin nyt sen vuorokauden toiminut :D
Pitäis olla tuossa valmiissa anturissa/piuhassa tuplajohdot, niin olisi helppo ketjuttaa yhteen pötköön.
 

Pretor

Jäsen
Eipä ole kaatunut ja hävittänyt antureita sen jälkeen, kun vedin tuon ulkoanturin samaan (tähti-)nippuun muiden kanssa.
Välillä kyllä näkyy graafissa yksittäisiä tilttejä, eli pätkä suoraa viivaa hetkellisesti jollain random-anturilla.
 

VesA

Moderaattori
Ylläpidon jäsen
Eipä ole kaatunut ja hävittänyt antureita sen jälkeen, kun vedin tuon ulkoanturin samaan (tähti-)nippuun muiden kanssa.
Välillä kyllä näkyy graafissa yksittäisiä tilttejä, eli pätkä suoraa viivaa hetkellisesti jollain random-anturilla.
Juu, se on kiinni ihan siitä miten terminoimattoman johdonpään heijastukset sattuvat osumaan bitteihin, eli piuhojen mitoista ja onewire-anturien paikoista johdossa. Lyhyilä johdoilla asialla ei ole niin väliä. Jos haluaa että 200m pelaa pitää olla johdon impedanssin mukainen terminaattori. Avoin pää ampuu takaisin samansuuntaisia piikkejä kuin bitit.

 
Ylös Bottom