Sida 3 av 4
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 31 januari 2013, 20:42:15
av Ranstam
En säkring är en bra ide! ska se om en sådan går att ordna fram
Nu har jag gjort lite ändringar i koden, framförallt att "trasiga" värden inte loggas och att värdena loggas exakt prick varje minut(inte med sleep-fördröjning som tidigare). Problemet verkar vara att flyttals jämförelser i python är opålitliga.
Kod: Markera allt
mport 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]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
if temperature == -0.062:
return("#error")
else:
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]
temperature = float(temperaturedata[2:])
temperature = temperature / 1000
if temperature == -0.062:
return("#error")
else:
return(temperature)
def getdate():
date = datetime.datetime.now()
return(unicode(date.replace(microsecond=0)))
def logg():
if readtwo() == -0.062 or readone() == -0.062:
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")
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:
d = datetime.datetime.now()
if d.second == 59:
logg();
copy();
main();
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 31 januari 2013, 23:20:58
av MiaM
En ren gissning gällande flyttalsberäkningarna:
Utan att faktiskt veta något alls om python (mer än att det är ett interpreterande programmeringsspråk eller nåt sånt

) så gissar jag att det är dynamiskt typat. Kan det vara så att du måste tvinga fram flyttalsberäkningar och att python gör heltalsberäkning om du matar in tal utan decimaler (men gör t.ex. en division)?
Annars kan du kanske i värsta fall räkna allt som heltal och klämma in decimalkommat på strängnivå.
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 1 februari 2013, 01:46:51
av sodjan
> Problemet verkar vara att flyttals jämförelser i python är opålitliga.
Det är en så att säga inbyggd finess i flyttal, det har inget med Python som sådant att göra.
Man måste "ta höjd" och se till att ha marginal för eventuella avrundningseffekter.
Tänker du t.ex på detta :
Kod: Markera allt
temperature = temperature / 1000
if temperature == -0.062:
return("#error")
else:
return(temperature)
Det är ju ett typexempel på ett fall där jämförelsen är osäker.
Jag är ganska säker på att 0.062 inte går att representera exakt binärt.
Det är sannolikt bättre att t.ex göra :
Kod: Markera allt
if temperature == -62:
return("#error")
else:
return(temperature/1000)
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 1 februari 2013, 15:57:04
av Ranstam
Nu har jag monterat den nya spänningsregulatorn och testat med en Raspberry, systemet fungerar som det är tänkt. Nu återstår det att se hur bra Wifi fungerar innifrån plåtlådan... alternativt får det vara kabel. Fortsatt utprövning får också visa huruvida värmeutveckingen i skåpet blir ett problem. Återkommer med bilder när installationen är klar.
Spänningsregulatorn är denna
http://www.electrokit.com/switchregulator-5v-1a.45051 tänkte först använda en vanlig 7805 men kom snabbt fram till att det skulle bli välldans mycket spillvärme inne i skåpet när man matar med 19v(gammalt nätagg från en bärbar dator)
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 1 februari 2013, 17:03:26
av sodjan
Och hur var det med de opålitliga flyttals jäömförelserna?
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 2 februari 2013, 16:27:52
av MiaM
Ja, ytterligare ett skäl till att räkna med heltal och "måla" kommatecknet på strängnivå istället för att räkna med flyttal.
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 2 februari 2013, 16:54:23
av Ranstam
Den befintliga koden verkar nu kunna solla ut samtliga felvärden, så det problemet är löst! Nu är det bara lite meck som återstår med placeringen i lådan, diverse saker "krockar" med varandra.
Raspberry Pi på UPS-kraft!

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 2 februari 2013, 17:20:23
av sodjan
> Den befintliga koden verkar nu kunna solla ut samtliga felvärden,
Har alltså koden börjat bete sig annorlunda utan någon ändring?
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 2 februari 2013, 23:35:18
av Ranstam
Ja
Jag gjorde en rad försök att kunna sålla ut just felvärdena, vilket inte fungerade. Därpå gjorde jag försök att sortera ut alla värden mellan 5 och 30grader vilket inte heller fungerade. Detta testades både med flyttal och heltal men fungerade inte alls. Helt plötsligt efter lite omändringar i koden började det fungera tillfredsställande utan synbar anledning.
Antingen så har det gått troll i koden, eller så har jag missat något fundamentalt i python programering.
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 00:04:49
av MiaM
... eller så har det blivit väderändring och kondens/fukt på utomhusgivaren har torkat bort?
Vilket år som helst borde man orka läsa på om nån versionshanterare (typ git rekomenderas väl nu för tiden), då kan man lättare backa till äldre version.
Ja, hade alla OS varit lika bra som VMS så hade man såklart haft inbyggt system för att hantera flera versioner av samma fil...
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 00:39:05
av sodjan
Hade inte kunnat säga det bättre själv...

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 11:11:06
av björn
Man skall givetvis inte hålla på med att sortera ut felaktiga värden, se istället till att inte få felaktiga värden från 1-wire bussen. Felaktiga läsningar beror på något fel.
Jag har själv med kopplat upp en Pi för loggning av värmesystemet och elförbrukning mm, jag använder även Pin för att styra värmepumpen.
Min vp har original en styrning som endast kör med fast kondensering, genom att styra till och frånslagstemperaturer med pin istället så kan jag nu ha flytande kondensering.
Jag styr även shunten med med kurva i pi så jag kan hålla tankens temp på en vald temp över framledningstemperaturen, fungerar bra.
/B
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 13:53:27
av Ranstam
Såja, nu UPS matningen klar!
Wifi fungerar fint med locket stängt, bortfall av nätspänning påverkar inte raspberryn och temperaturen håller sig på en rimlig nivå(ca 30grader) utan någon kylning när man kör på nätanslutning.
Nästa del av projektet får nog bli att se över one-wire nätet som påtalades. En del fel har inträfat där programmet stannat pga filerna som ska läsas har saknats. Givaren behöver nog lite bättre isolering och sladden behöver göras lite snyggare.
Jag kom också på en del funktioner som jag gärna skulle vilja bygga in, bland annat batteriövervakning. Tyvärr saknar ju raspberryn ADomvandlare, men det finns säkert i2c - ADomvandlare.
Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 14:38:32
av MiaM
Bäst är givetvis att både se till att inte få felaktiga data men också se till att koden klarar att hantera felaktiga data.
M.v.h. Captain Obvious

Re: Temperaturvisning på hemsida (Raspberry-Pi)
Postat: 3 februari 2013, 18:32:46
av Ranstam
Nu är servern försedd med säkringar från biltema som det tipsades om. 1st från nätagget och 1st från batteriet, båda på 2A. Dock så drar enheten bara runt 300mA i under dom 5min som jag mätte. El-installationen är också lite uppsnyggad med straps och sådant.
Nästa steg blir nog att sätta ett kretskort med batteri/spänningsövervakning i dörren. Det hade varit kul att knåpa ihop något med op-förstärkare, det var ett tag sedan jag pysslade med dessa. Jag hade tänkt rigga upp ett par komparatorer för att hålla koll på batterispänning samt om man befinner sig i batteridrift.
Är det någon som kan rekomendera en OP-förstärkare för 3,3V med sk. "rail to rail"(single supply) egenskaper?
