Temperaturvisning på hemsida (Raspberry-Pi)

Berätta om dina pågående projekt.
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av PopUnoNkoK »

Kan nämna min "setup" här.

Raspberry Pi med 1-wire nät som loggar (i nuläget) 6 tempsensorer + en räknare som loggar husets energiförbrukning.
Datan loggas till en MySql databas och därifrån visar jag datan i grafer och siffror med hjälp av Jpgraph.
Jag har kopplat en gammal mobiltelefon till RaspberryPin med hjälp av Gnokii som skickar ett sms till mig om tempen på golvet i garaget sjunker under 4 grader i mer än 20 minuter. (tidgränsen beror på att det ibland blir lägre än så när jag kör in bilen utan att nåt är "fel"). Telefonen har jag lite andra planer för också, inte bara detta "larm".

Jag har aldrig grejat med Linux innan men tycker att det är riktigt roligt. Jag gillar dock att läsa för att lära vilket har hjälpt en del. Sedan har jag fått hjälp endel från detta forum.
sodjan
EF Sponsor
Inlägg: 43236
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av sodjan »

Körs MySQL på Pi'en själv?
PopUnoNkoK
Inlägg: 789
Blev medlem: 10 december 2007, 12:40:08
Ort: Piteå

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av PopUnoNkoK »

Sodjan: Jo det gör den. Jag har haft samma typ av loggning på en gammal "fullstor" stationär PC tidigare men jag ville testa om jag lyckades med Raspberryn och det gick över förväntan. Förutom att det känns segt när den genererar grafer (Jpgraph) så känns det mycket bättre på Raspberryn än gammla PCn. Att köra SSH för att komma åt att köra command lines från soffan är jätte kul. =)
Ranstam
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16
Ort: LUND

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Ranstam »

Projektet fortsätter:

Idag har jag finslipat lite på koden i python programmet, framförallt lagt in felvärdeshantering. Av någon anledning dyker det ibland upp temperaturer som är exakt -0.062grader, dessa sorteras nu bort och ersätts med en kort information om att felvärde har uppstått. Samplingstiden är dessutom ökad till en mätning i minuten samt hemsidans automatiska uppdateringsfrekvens är satt till samma tid.

Följande ändring är gjort för felhanteringen

Kod: Markera allt

def logg():
        errorref = -0.062
        if abs(readtwo()-errorref)<0.00001 or abs(readone()-errorref)<0.00001:
                file = open("logg.txt", "a")
                file.write("#ERROR")
                file.write("\n")
        else:
                file = open("logg.txt", "a")
                file.write(str(getdate()))
                file.write(" ")
                file.write(str(readone()))
                file.write(" ")
                file.write(str(readtwo()))
                file.write("\n")
Nästa steg blir att sätta en fixerad X-axel som går ett visst antal timmar/dagar tillbaka i tiden. Detta verkar dock vara lite knepigt att åstakomma i Gnuplot. En möjlighet är att styra det genom ska loggfiler som är exakt så lång tid man vill ha, långa. fortsättning följer.
Användarvisningsbild
MiaM
Inlägg: 12628
Blev medlem: 6 maj 2009, 22:19:19

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av MiaM »

Sidospår

jens75:

Är ditt system uppbyggt så att din värmepump antingen ensam driver elementen eller matar in värme i ackumulatortanken? D.v.s. på sommaren genererar du varmvatten med den och på höst-vinter-vår värmer du elementen?
Niffa
Inlägg: 6
Blev medlem: 4 december 2007, 21:27:35
Ort: Täby

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Niffa »

Hej

Jag kan rekommendera http://openenergymonitor.org/emon/
Köpte sändare med givare (emonTX) och 3 st strömtrafo + mottagare till RaspberryPI (RFM12Pi). Kortet klarar f.ö. pulsgivare och temp sensorer.
Kör deras programvara (emoncms) på Raspberry'n för att logga och visa elförbrukningen.

Loggningen har gått 24*7 sen nyår.

Verner
Ranstam
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16
Ort: LUND

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Ranstam »

Med hjälp av kommandot "tail" har jag nu lyckats sortera ut enbart dom sista värdena i loggfilen för att kunna "skala" grafen. I exemplet tar jag fram en logg för dom senaste 3 timmarna(en mätning per minut loggas).

Kod: Markera allt

plot "< tail -180 logg.txt" using 1:3 axes x1y1 lw 3 title "inomhus", "" using 1:4 axes x1y2 lw 3 title "utomhus"#
Med mina ytterst begränsade hemside-skapande kunnskaper har jag nu också fått ihop en väljarfunktion där man kan blädra bland skalorna.

Bild

Det har dock visat sig svårt att ta bort de felvärden som kommer från tempgivarna med jämna mellanrum(de visar exakt -0.062c).

Diverse trixande med att logga dessa värden som "0" för att sedan sortera bort dom har inte fungerat.

Kod: Markera allt

import datetime;
import time;
import commands

def readone():
        tfile = open("/sys/bus/w1/devices/28-0000040db5a9/w1_slave")
        text = tfile.read()
        tfile.close()
        secondline = text.split("\n")[1]
        temperaturedata = secondline.split(" ")[9]
        if temperaturedata != -62:
                print temperaturedata
                temperature = float(temperaturedata[2:])
                temperature = temperature / 1000
        else:
                temperature = 0
                print "temperature is 0"
        return(temperature)

def readtwo():
        tfile = open("/sys/bus/w1/devices/28-0000040de8fc/w1_slave")
        text = tfile.read()
        tfile.close()
        secondline = text.split("\n")[1]
        temperaturedata = secondline.split(" ")[9]
        if temperaturedata != -62:
                print temperaturedata
                temperature = float(temperaturedata[2:])
                temperature = temperature / 1000
        else:
                temperature = 0
                print "temperature is 0"
        return(temperature)

def getdate():
        date = datetime.datetime.now()
        return(unicode(date.replace(microsecond=0)))

def logg():
        if readtwo() == 0 or readone() == 0:
                print "error!"
                file = open("logg.txt", "a")
                file.write("#ERROR")
                file.write("\n")
        else:
                file = open("logg.txt", "a")
                file.write(str(getdate()))
                file.write(" ")
                file.write(str(readone()))
                file.write(" ")
                file.write(str(readtwo()))
                file.write("\n")
                print str(getdate())
def copy():
                commands.getstatusoutput('gnuplot logg.pg')
                commands.getstatusoutput('gnuplot logg3d.pg')
                commands.getstatusoutput('gnuplot logg3h.pg')
                commands.getstatusoutput('gnuplot logg1d.pg')
                commands.getstatusoutput('gnuplot logg7d.pg')




def main():

        while 1 > 0:
                time.sleep(55)
                print readone(), " ", readtwo()
                logg();
                copy();
main();
jens75
Inlägg: 167
Blev medlem: 17 oktober 2011, 23:49:36
Ort: Skåne

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av jens75 »

MiaM - Sidospåret:

Jag har en Thermia Atec. Den är kopplad direkt till elementslingan utan acktank. Det finns en tank för varmvatten i den. Så svaret på frågan blir att den producerar värme och varmvatten "samtidigt".

Lagt en bild på min loggning här. Är fortfarande långt från klart. Vet inte riktigt ifall jag vill använda rrdtool eller inte.
http://img21.imageshack.us/img21/7749/rrdtool.jpg
sodjan
EF Sponsor
Inlägg: 43236
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av sodjan »

> Det har dock visat sig svårt att ta bort de felvärden som kommer från tempgivarna med jämna mellanrum(de visar exakt -0.062c).

Antingen inte logga dessa värden alls eller logga föregående värde en gång till (om man
måste ha en kontinuerlig tidslinje utan "hål").
Användarvisningsbild
MiaM
Inlägg: 12628
Blev medlem: 6 maj 2009, 22:19:19

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av MiaM »

... eller

plot "< tail -180 logg.txt | grep -v -0.062c" using 1:3 axes x1y1 lw 3 title "inomhus", "" using 1:4 axes x1y2 lw 3 title "utomhus"#

Den kommer då ge färre än 180 värden om det finns felaktiga mätvärden. Om man byter plats på grep och tail så får man exakt 180 värden men då kommer grep att tugga igenom hela filen. Det kan ta en stund om filen fått växa till sig.


Jag skulle nog övervägt att trycka in mätvärdena i en sql-databas, en sån är ju optimerad för att t.ex. plocka fram alla värden mellan två tidpunkter sorterade på tid o.s.v.

P.S. om du vill göra diverse akrobatiska konster med grafandet så verkar rrdtool kunna ordna grafer med extra allt inklusive gurka :)
Ranstam
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16
Ort: LUND

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Ranstam »

Jag var ute och letade efter en just låda att montera min server i, dom lådor jag hittade var dock lite plastiga och inte så tilltalande. Tittade lite på elinstallationslådor också men fattade inte riktigt tycke för dessa heller. Tillslut hittade jag ett nyckelskåp på biltema! Jag kom även på tanken att eftersom det finns gott om plats över så vore kanske en UPS på sin plats :) Skåpet är praktiskt att sätta på väggen, så spar man plats på skrivbordet.

Batteriet är på 12v och 7,2ah så det borde räcka en bra stund eftersom enheten drar under 1A. Med en verkningsgrad på 70% och en ström på 0.8A borde det hela klara sig i runt 15timmar. En switchande spänningsregulator för att ta ner spänningen till 5v utan att bränna av en massa energi är beställd, liksom lite genomföringar och dioder för att ordna laddningen av batteriet. Någon form av ventilation behövs nog också ordnas.


Bild
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av blueint »

Biltema: Nyckelskåp med lås artnr: 86667 för 100 SEK ?
Ranstam
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16
Ort: LUND

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Ranstam »

Japp!, med mellanplattan borttagen och en bygel för att hålla batteriet fastsvetsad.
Ranstam
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16
Ort: LUND

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Ranstam »

Nu är batteriladdningen ordnat, en enklare krets som sätter 13v över batteriet med hjälp av en zener diod. Ett 39ohms effektmotstånd begränsar strömmen. Egenteligen ska batteriet ha en laddningsspänning på 13,5v vid underhållsladdning så förmodligen får jag en något lägre laddningsgrad på batteriet. Med hjälp av ett par dioder leder strömmen ut från batteriet på "huvudskenan" där den högre spänningsmatningen från strömadaptern normalt kommer. Kanske skulle det gå att hitta någon diod med spänningsfall på 0.5V och sätta i serei med Zenerdioden?

Spänningsregleringskretsen brann dessvärre upp, en ny modul är beställd tillsammans med en USB-anslutning för att kunna föra över spänningen till Raspberryn.


Bild
Användarvisningsbild
MiaM
Inlägg: 12628
Blev medlem: 6 maj 2009, 22:19:19

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av MiaM »

Inte dumt med nyckelskåpet!

En säkring direkt vid batteriet kan vara en bra idé, gärna på den pol som inte är kopplad till chassie/jord (oftast pluspolen). "Hängsäkring" är bra sökord på t.ex. Biltema.

Zenerdiod direkt på batteriet är kanske inte jättebra, om du skulle ladda batteriet med annan laddare och direkt flytta över det till din krets så kan zenerdioden i värsta fall kanske paja och då börjar den med att kortsluta batteriet, utan säkringar så kan det bli riktigt dåligt då...
Skriv svar