Raspberry pi ja 1-wire

  • Viestiketjun aloittaja Viestiketjun aloittaja ilpena
  • Aloituspäivämäärä Aloituspäivämäärä
Vs: Raspberry pi ja 1-wire

Ei onnistu minun verkon luku millään adaptereilla, tulee herjaa "bus.1 structure uncached" , vai onko tää mikään herja, sehän tulee vaikka verkossa on vain 2 anturia.
lukee 5 kpl 28. alkuisia ja 2kpl 30. alkuisia.
Linuxista olen oppinut paljon, kun lähtökohta on ollut 0.

Niin, ja vielä se, että usb lukee pisimmälle ftdi llä jännitteet tapissa ja DS2480+ varustettuna.
 
Vs: Raspberry pi ja 1-wire

Joku sulla mättää adapterien kanssa, ehkä raspin syöttö ei riitä ja tulee ongelmia? Mulla on sen DS9490R adapterin nokassa 9 lämpötila-anturia, 1 dual countteri, 1 a/d muunnin ja 1 dual switch. Osalle on +5v syöttö adapterilta ja osassa datalinjoja on jotkut ~150ohm vastukset. Temppuili se aluksi, mutta tokeni hyvin nuilla sarjavastuksilla.

Raspi on poweroitu 1A mikrousb päisellä kännykkälaturilla.
 
Vs: Raspberry pi ja 1-wire

apophis sanoi:
Joku sulla mättää adapterien kanssa, ehkä raspin syöttö ei riitä ja tulee ongelmia? Mulla on sen DS9490R adapterin nokassa 9 lämpötila-anturia, 1 dual countteri, 1 a/d muunnin ja 1 dual switch. Osalle on +5v syöttö adapterilta ja osassa datalinjoja on jotkut ~150ohm vastukset. Temppuili se aluksi, mutta tokeni hyvin nuilla sarjavastuksilla.

Raspi on poweroitu 1A mikrousb päisellä kännykkälaturilla.

Minullakin kännykkälaturi DC 5.0v/1200mA ja sitten 1 wire verkkoon on syöttö pytäkoneen powerilta suoraan, joten virtaa piisaa. FTDI n VCCIO ei toiminut 3,3 voltilla ja ohjelmalla nostin signaali virrat maximiin.
Tämä verkkohan toimii ja on käytössä koko ajan, ollut vuosia, ja pelaa Logtemp/Win täysin, mutta tällaistahan tämä on.
Ei minun ymmärryksen mukaan käyttöjärjestelmällä ole mitään osuutta lukemattomuuteen, luulen että OWFS on vaan erilainen ja vaatii erilaiset "metkut" kun Logtemp.
Adaptereita en epäile kun ne on Maximin tähän tarkoitukseen tekemiä, GPIO kokeilin suoraan ja toimii, mutta ei lue verkkoa, i2c adapterina on DS2482s-100+ , ja USB FTDI + DS2480B+
Mutta eiköhän se siitä, puran hieman tuota verkkoa jotta saan osia käyttöön että voi kokeilla mikä siellä OWFS ää kiusaa
 
Vs: Raspberry pi ja 1-wire

Logtemp ja winkkariympäristö tuntuu pelittävän monilla ilman isompia ongelmia, oli verkko minkälainen tahansa. Mullakin oli alunperin ongelmia jo noin pienellä anturimäärällä ja sitä ihmettelin aikoinaan owfs : n ja miniläppärin kanssa. Mutta kun sen sai pelaamaan, niin raspilla se toimi täsmälleen samalla tavalla.
 
Vs: Raspberry pi ja 1-wire

Nyt on 9 anturia ja lukee i2c llää, kyllä ongelma tuossa verkossa on, pitää vaan selvitellä, onneks on rinnakkaiskaapeleita ym . jotta voi testailla eri kokoonpanoilla. Tää on siks hankala kun luku tapahtuu runkolinjan väliltä, ei päästä, niin törmäilyjä kyllä syntyy.
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Nyt on 9 anturia ja lukee i2c llää, kyllä ongelma tuossa verkossa on, pitää vaan selvitellä, onneks on rinnakkaiskaapeleita ym . jotta voi testailla eri kokoonpanoilla. Tää on siks hankala kun luku tapahtuu runkolinjan väliltä, ei päästä, niin törmäilyjä kyllä syntyy.

Luulenpa että owfs lukee anturit läpi eikä erityisemmin niiden kanssa yritä uudelleen jos menee heikosti. Itse käytin linuxin kanssa digitemp nimistä softaa jolla antureita saattoi lukea enempi omaan tahtiin, eikä softa yrittänyt etsiä niitä uudelleen kunhan paukutti osoitetta kunnes pääsi läpi. Tällä virillä sai luettua antureita vielä aika karmeiden häiriöiden läpi kunhan osui sopivaan väliin...
 
Vs: Raspberry pi ja 1-wire

Omissa testeissä huomasin sen, että ei kannate esimerkiksi jatkuvasti lukea owfs rakennetta, koska se aiheuttaa kaikkien sensorien id searchin. Eli parempi on lukea suoraan ne anturit tekemättä listausta rakenteesta. Paransi toimintaa huomattavasti, kun laitoin erilliseen fileeseen listan antureista, jotka luetaan.
 
Vs: Raspberry pi ja 1-wire

apophis sanoi:
Omissa testeissä huomasin sen, että ei kannate esimerkiksi jatkuvasti lukea owfs rakennetta, koska se aiheuttaa kaikkien sensorien id searchin. Eli parempi on lukea suoraan ne anturit tekemättä listausta rakenteesta. Paransi toimintaa huomattavasti, kun laitoin erilliseen fileeseen listan antureista, jotka luetaan.

Joo.. id search taitaa huutaa verkkoon että ketäs täällä ja sehän kestää kun anturit vuorotellen tms vuoroaan odotellen ilmottautuvat joka kerta uudelleen. Jos on häiriöitä jää sitten osa näistä kuulematta. Parempi on lukea yhtä tunnettua anturia muutama kerta kunnes se pääsee läpi. Tai sitten tehdä niin hyvä verkko ettei tätä tarvita ;D

Demosoftissa toki aina etsitään tavarat, mutta jatkuvassa mittailussa siitä on lähinnä kiusaa.
 
Vs: Raspberry pi ja 1-wire

apophis sanoi:
Omissa testeissä huomasin sen, että ei kannate esimerkiksi jatkuvasti lukea owfs rakennetta, koska se aiheuttaa kaikkien sensorien id searchin. Eli parempi on lukea suoraan ne anturit tekemättä listausta rakenteesta. Paransi toimintaa huomattavasti, kun laitoin erilliseen fileeseen listan antureista, jotka luetaan.

Mikäli oikein ymmärrän, Logtemp tekee listan antureista, .ini tiedoston.
Logtemp on vaan hieman rajallinen minun harrastuksissa esimekkinä vaikkapa DS2450, sillä voisi käsittääkseni lukea jo 4 mittauspisteen vaikkapa paine ym lähettimiä. nyt on aikamoista säätämistä painelähettimien mittaus.
Toinen on tuo Logtempin luvattu kosteusmittauksen parannus, 80% mittauksista erroria/vuosi.
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Mikäli oikein ymmärrän, Logtemp tekee listan antureista, .ini tiedoston.
Logtemp on vaan hieman rajallinen minun harrastuksissa esimekkinä vaikkapa DS2450, sillä voisi käsittääkseni lukea jo 4 mittauspisteen vaikkapa paine ym lähettimiä. nyt on aikamoista säätämistä painelähettimien mittaus.
Toinen on tuo Logtempin luvattu kosteusmittauksen parannus, 80% mittauksista erroria/vuosi.

Logtemp onpi saattanut saada innoitteensa digitempistä ( josta oli ainakin niihin aikoihin windowsversio ), tutkin näitä muinoin ja selvää yhtäläisyyttä oli, kuten juurikin tuo että anturien etsintä ja lukeminen listan mukaan tehdään selkeästi erikseen. Logtemp alkoi kuitenkin ahdistaa muutamassa tunnissa, se toimii ja tekee hyvin sen minkä tekee, mutta sillä vaan ei pysty tekemään miten itse haluaa, vähän samaan tapaan kuin erinäisillä Applen tuotteilla. Niinpä vaihdoin samantien digitempiin ja skriptausmahdollisuuksien takia nopeasti myös windowsista linuxiin.
 
Vs: Raspberry pi ja 1-wire

Ajattelin pistää ihan vimosen päälle, kun ei maksanut tuo DS9503P+ kun reilun euron niin yllätys, kun tuossa lämmitin ja lämpötilat menivät 100°c pintaan niin lukeminen loppui korkeampia lämpötiloja näyttäviltä antureilta, poistin, niin taas toimii kuten ennekin. Turha osa, haittaa vain.
 
Vs: Raspberry pi ja 1-wire

Jos on käytössä Debian Wheezy ja näppäimistökartta on jostain syystä väärä, niin onnistuu sen vaihtaminen esmes. näin.

sudo nano /etc/default/keyboard

ja sieltä etsitään kohta

XKBLAYOUT="gb"

ei muuta kun gp tilalle fi

F3:lla tallennetaan ja F2:lla poistutaan .... sitten boottaus
 
Vs: Raspberry pi ja 1-wire

lorvi sanoi:
Ajattelin pistää ihan vimosen päälle, kun ei maksanut tuo DS9503P+ kun reilun euron niin yllätys, kun tuossa lämmitin ja lämpötilat menivät 100°c pintaan niin lukeminen loppui korkeampia lämpötiloja näyttäviltä antureilta, poistin, niin taas toimii kuten ennekin. Turha osa, haittaa vain.

Vehkeiden vuotovirrat lisääntyvät lämpötilan noustessa.. väylältä lataaminen ennen lukua alkaa käydä epävarmaksi. Siksipä lämpöantureille aikoinaan luvattiin pienempi lämpötila-alue jos sillä ei ollut erillistä virransyöttöä.
 
Vs: Raspberry pi ja 1-wire

jos kolvi pysyy kädessä niin helppo reset nappi modaus tai lisäys
http://www.recantha.co.uk/blog/?p=1066
 
Vs: Raspberry pi ja 1-wire

Umpikuja, olen kokeillut eri kaapeleilla, enempi ja vähempi kierteisillä, maadoitellut, laittanut vastuksia, syöttänyt lisävirtaa päistä ja väliltä, tehnyt kaikki mahdollinen. Puolet verkosta saan lukemaan satunnaisesti, kymmenkunta anturia tuntuu menevän mutta ei edes sitä verkon osaa missä ei juurikaan haaroja ole lue. Virta piisaa ja jännittet kohillaan.
Aloin miettiä että onkohan tuo verkko jo "rajoilla" kun siinä on nelisenkymmentä useamman eri tyypin antureita ja kaapeleita haarat mukaanlukien yli 130 metriä.
Pitää vielä tutkiskella mutta taidan olla sidottu winukkaan/Logtempiin, niillä lukee olipa millainen kaapeli tahansa.
Adapterilla ei näyttäisi olevan juurikaan vaikutusta, i2c lukee eniten antureita mutta ero on pieni ja satunnainen.
 
Vs: Raspberry pi ja 1-wire

Oletko kokeillut ilman sitä owfs filesysteemiä, eli laitat vain sen owserverin tulille ja sitten käytät owdir, owread komentoja? Ja vielä niin, että owread : lla luet suoraan id : n perusteella, etkä käytä hakemiston lukua lainkaan?

Se voi olla nimenomaan verkon skannaus, joka aiheuttaa kaikki ongelmat. Yksittäisen anturin luku voi toimia ok, jos sulla on id : t tiedossa.
 
Vs: Raspberry pi ja 1-wire

Kyllä se verkon rakenteessa on, taitaa olla kaapelien pituus elikkä liitoksien paikat ja mittauspiste avainasemassa. Itse kaapelilla, onko se kierre, suora, ohut, paksu, suojattu jne en saa mitään vaikutusta.
Nut lukee owfs 21 anturia elikkä eiköhän se virittelemällä vielä kevääseen mennessä lue kaikki.
 
Vs: Raspberry pi ja 1-wire

Nyt lukee raspi kaikki anturit. Tästä on taas hyvä jatkaa.
 
Vs: Raspberry pi ja 1-wire

repomies sanoi:
Tein paljonkin. ihan mielenkiinnosta.
Kokeilin laittaa kaikki yhteen ketjuun kytkemällä paluun joka anturilta viereistä paria käyttäen, ei auttanut, verkon kaapelien pituus ilmeisesti kasvoi niin suureksi tai....en tiedä , ettei Logtemp kään lukenut enää kokoverkkoa.
Sitten kymmeniä eri variaatioita edellisestä mutta en saanut koko verkkoa kyytiin.
Havaitsin myös siinä samalla että jokainen verkkoa pidentävä operaatio heikensi kokonaisuuden toimintaa.
Poistin kaikki paluukytkennät ja kokeilin vielä kertaalleen lukemista verkon päistä.
Se toimikin kun vei läppärin kumpaan tahansa päähän, mutta kun veti piuhat sisälle kummasta tahansa päästä niin vain osittain toimi lukeminen.
Minulla mittauspaikka on paha, noin 1/3 toisesta päästä.
Ongelmaksi näytti kiteytyvän 3-10m pitkät haarat, olipa ne sitten missä kohdin verkkoa tahansa. Sopivassa kohdin yksi pimensi koko verkon.
100 Ω vastuksilla sain nuo haarat haltuun mutta silti toimi vain jompikumpi puoli- ei yhdessä.
Vastusten paikka olikin tässä verkossa väärä (maximin suositus) . Kun laitoin vastukset liki mittauspistettä juuri ennen adapteria, raspi luki koko verkon.
Sitten oli vielä 2 irroitettua yhden anturin haaraa, joista kumpi tahansa kytkettynä koko paska halvaantui, vain 4-5 anturia löytyi.
Vedin ne jatkokaapelilla mittauspaikalle saakka vastuksella höystettynä, niin johan toimii raspilla koko verkko kaikkine haaroineen.
Nyt on 1 haara kahden 100Ω vastuksen takana, toimii kuitenkin, pitää vielä kokeilla.
Ratkaisu tässä verkossa olivat vastukset ja ne pitää olla mittauspiteessä.
 
Vs: Raspberry pi ja 1-wire

Kiitos. Jos joskus jaksat piirtää verkkosi topologian vastuksineen, siitä voisi olla palstan 1-wire-tuskailijoille apua.
 
Vs: Raspberry pi ja 1-wire

Tuossa tupakkiaskin kansi versio. Vanha , on vähän muuttunut mutta pääpiirteet.
http://korsteeni.com/kaaviokuva.htm
 
Vs: Raspberry pi ja 1-wire

Itse olen huomannut linux ympäristössä käteväksi Midnight Commanderin eli mc.
Pääteyhteydellä toimiva tekstipohjainen tiedostonhallinta yms, kaksi ikkunaa helpottaa kopiontia paikasta toiseen.
Myös ftp/ssh yhteys toisiin koneisiin onnistuu.

Asentuu Raspiin:

sudo apt-get install mc
 
Vs: Raspberry pi ja 1-wire

Edistystä tapahtunut, lämpötilat siirtyvät tietokantaan ja löytyvät sieltä toisella koneella. Tästä on taas hyvä jatkaa.
 
Vs: Raspberry pi ja 1-wire

repomies sanoi:
RPi ei ole oikein houkuttanut johtuen tuosta GPIO:n vaatimasta puskuroinnista ja jännitetason muunnoksesta. Ei niin ettenkö olisi arduinoonkin joutunut jotain vähän vastaavaa joskus tekemään, mutta kyllä se helpommalla 1-wiren kaveriksi taipuu.
Ei se puskurointi nyt paljoa vaadi, kahdella piirillä hoituu kaikki GPIO:n väylät (1-wire käyttää yhtä: GPIO #4), esim näin: http://www.thebox.myzen.co.uk/Raspberry/Buffer_Board.html. Piirillä hintaa pari euroa, esim. Partcolta.
Jos tarvitsee jännitetasoja muuttaa TTL:ksi niin onnistuu esim. tällä: http://adafruit.com/products/757 ja ei tämäkään ole hinnalla pilattu.
 
Vs: Raspberry pi ja 1-wire

Pientä vinkkiä taasen.
Lukuscripti ei toiminut copypastella siksi kun siinä oli tyhjiä rivejä tai etulyöntejä, en tiedä, mutta nyt toimii kun poistin ne.
Entä tuo perl scripti, saako/pitääkö siinä olla tyhjiä, en saa toimimaan, tulee vain pieni kuvake vasempaan ylälaitaan.
 
Vs: Raspberry pi ja 1-wire

perl skriptissä saa kyllä olla white spaceja rivien aluissa melkolailla vapaasti. Kannattaa ajaa se skripti komentoriviltä, niin näkee minkä virheilmoituksen se pukkaa ulos.

copy-pastena laitoin silloin kaikki ohjeet toimivasta setupista.
 
Vs: Raspberry pi ja 1-wire

Joku näppihäiriö minulla kun kaatuu heti alkuunsa
use strict;
bash: use: command not found
 
Vs: Raspberry pi ja 1-wire

tuo on perliä, joten skriptin juuri ekalla rivillä on oltava

#!/usr/bin/perl

tai sitten skripti pitää ajaa

$ perl img.pl

EDIT: http://koti.kainuu.com/kpomatt74/img_test.pl

laitoin skriptin tuonne, raspissa voit hakea sen esim:

$ wget http://koti.kainuu.com/kpomatt74/img_test.pl
$ chmod +x img_test.pl

ja sitten voit muutella sitä niinkuin haluat
 
Vs: Raspberry pi ja 1-wire

#!/usr/bin/perl
Tämä on kyllä siinä alussa, elikkä tuo toinen rivi herjaa.
 
Vs: Raspberry pi ja 1-wire

no entäs jos ajaa sen 'manuaalisesti' perlillä?

$ perl img.pl

mitä sanoo?

ainiin! chekkaa että EI ole windows rivinvaihdot rivien lopussa! ne voi sekoittaa tuon ensimmäisen rivin ja linux ei tunnista että skripti on perliä
 
Vs: Raspberry pi ja 1-wire

apophis sanoi:
no entäs jos ajaa sen 'manuaalisesti' perlillä?

$ perl img.pl

mitä sanoo?

ainiin! chekkaa että EI ole windows rivinvaihdot rivien lopussa! ne voi sekoittaa tuon ensimmäisen rivin ja linux ei tunnista että skripti on perliä

Herjaa line 85, tuo rivinvaito on varmaan mikä sekoittaa.
 
Vs: Raspberry pi ja 1-wire

Kyllä se nyt, mutta tuo gnuplot, pitää katella....

pi@raspberrypi ~ $ perl img_test.pl
Content-type: image/png

Can't exec "gnuplot": No such file or directory at img_test.pl line 87.
gnuplot failed at img_test.pl line 87.
pi@raspberrypi ~ $
 
Vs: Raspberry pi ja 1-wire

Joo se on jo tuossa gnuplot komennon alueella, siinä ei kestä myöskään olla winkkari rivinvaihtoja.

$ sudo apt-get install gnuplot

niin joko sitten? ;)

HUOM! Jos sitten ajat skriptin komentoriviltä ja se toimii, niin lopputulos on iso kasa sössöä ssh ikkunassa! Eli siinä vaiheessa kannattaa jo selaimesta ottaa kiinni, niin näet sen kuvan.
 
Vs: Raspberry pi ja 1-wire

Pitkä rivi erroreita, ei löydä ilmeisesti mistä latais sen gnuplotin, no pitää vaikka aloittaa alusta, voi olla minun jäljiltä jo niin solmussa kun olen kaikkea kokeillut linux alkuhuumassa.
 
Vs: Raspberry pi ja 1-wire

elä aloita alusta, jos olet jo noin pitkällä! repoissa voi olla muutoksia, joten

$ sudo apt-get update
$ sudo apt-get install gnuplot

niin kyllä se siitä etenee. Ei linuxia voi saada solmuun ;)
 
Vs: Raspberry pi ja 1-wire

Kiitän ja kumarran, nyt näkyy graafi, tästä on taas hyvä jatkaa.

Ja se jatko on että alan aluksi tällä raspilla kokeilla lukemaan niitä antureita mitä en tällähetkellä Logtempillä voi lukea, DS2438 kosteus/valoisuus ja DS2450 millä ilmeisesti ehkä saan luettua paineanturit. Tai ainakin noista paineantureista oikeat lukemat ettei javascriptillä niitä tarvitse muuntaa.
Laatikossa Liquid Crystal Display Controller V1.00 http://www.louisswart.co.za/1-Wire_Overview.html , mille ei Logtempillä mahtanut mitään, ehkäpä ensi vuonna.
 
Vs: Raspberry pi ja 1-wire

Hyvä homma! Tuossa perl skriptissä kun siihen tutustut tarkemmin voi datalle tehdä sellaisia muunnoksia kuin vaan haluaa.

Skriptihän hakee funktiossa mysql_select tietokannasta tavaraa tietyllä haulla. Tässä tapauksessa nykyisen tai skriptille annetun vuorokauden arvot:

WHERE DATE(aika)=DATE(\"$cgi_date\")

googlella löytyy hyvin ohjetta, miten esim. haetaan viimeisin kuukausi, viikko, vuosi jne.

skripti käyttää temporary fileä hakemistossa /dev/shm, johon haetut arvot tallennetaan kohdassa:

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

eli sinne menee aikaleima ja tiedot antureista sellaisenaan. Nyt jos haluaisi antureiden dataa käsitellä, niin $row[1] voi split komennolla jakaa välilyöntien kohdalta toiseksi taulukoksi. Sitten siitä taulukosta voi tehdä vaikka laskutoimituksia ja tuossa while loopissa print komentoon voi lätkäistä ne lasketut uudet arvot.

Mulla on tuommoinen systeemi, kun lasken alapohjan kosteusprosenttia ja samoin kwh laskennassa joutuu tekemään samanlaisia kikkailuja.

Gnuplot on ehkä hieman rajoittunut sen suhteen miten sillä voi input dataa manipuloida. Se on mahdollista, mutta itse olen tehnyt niinpäin että pyörittelen datat perlissä sopivaan muotoon ja gnuplot skripti pysyy siistinä.
 
Vs: Raspberry pi ja 1-wire

Meni eilen oma seurantasysteemi jumekseen. Olen ihmetellyt, kun pikkuhiljaa vapaana olevan RAM muistin määrä vähenee ja ehkä lopulta sen takia kantaan syöttö oli jumissa ja prosessilista täynnä cronin ajamia loggaus skriptejä. Ei voi kehua uptimeä, joka oli vain reilu 2 kuukautta... Reboot korjasi asian, mutta syy on edelleen selvittämättä.

Ehkä pitäisi tehdä joku jatkuvasti ajossa oleva loggausta hoitava perl skritpti, eikä käyttää crontabia? Vai onko tuossa wheezy imagessa joku tiedetty bugi tai sitten mysql tms. vuotaa arm käännöksenä?
 
Vs: Raspberry pi ja 1-wire

apophis sanoi:
Ehkä pitäisi tehdä joku jatkuvasti ajossa oleva loggausta hoitava perl skritpti, eikä käyttää crontabia? Vai onko tuossa wheezy imagessa joku tiedetty bugi tai sitten mysql tms. vuotaa arm käännöksenä?

Sain vapautettua 60Mt muistia pienellä apachen konffauksella. Niitä oli käynnissä yleensä 6-7 kpl.
Tuo mysql/phpmyadmin kombinaatio taitaa olla muutenkin liian raskas Piille.
 

Liitetiedostot

  • apache.jpg
    apache.jpg
    51,9 KB · Lukukerrat: 543
Takaisin
Ylös Bottom