Temperaturvisning på hemsida (Raspberry-Pi)

Berätta om dina pågående projekt.
Användarvisningsbild
MiaM
Inlägg: 12838
Blev medlem: 6 maj 2009, 22:19:19

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av MiaM »

Snyggt!


Jag tänkte inte på det när jag tipsade om Biltemas säkringshållare, men det kan kanske vara bra att veta att bilsäkringar skyddar i stort sett bara mot kabelbrand. Däremot tror jag att det går bra att stoppa i vanliga 5x20mm glasrörssäkringar i en såndär bilsärkingshållare om man vill. Antar att du kanske redan har glasrörssäkring, bilsäkringar finns väl inte som mindre än 5A?


Eftersom du har mer än 3,3V tillgängligt så kan du ju välja en OP som behöver högre spänning, och då räcker det att den klarar att gå ända ner till minusmatningens nivå (antar att du reglerar 12V på plussidan).

På stenåldern minns jag att CA3140 var vanlig när man inte hade balanserad matningsspänning. Den fungerar med ner till -0,5V på ingångarna och funkar med 4-36V matningsspänning (d.v.s. borde gå bra antingen med 5V USB-spänning eller 12V batteri/nätaggspänning). Databladet verkar säga att den kan ge mellan 0,13-3V ut vid 5V matning.


Det finns säkert klart bättre OP idag. Den där användes nog t.ex. i ingångssteget i ett ljudslutsteg som Allt om Elektronik byggde i sitt andra nummer (1982) vilket säger en del om åldern :wink:
elste
Inlägg: 47
Blev medlem: 26 januari 2013, 08:58:37

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av elste »

hej jag kom på idag att en R-Pi borde väll kunna sitta fint i båten och då mäta

soppaflöde
rpm
gaspådrag
trim
hiss
knop(gps)

och sen kunna presentera detta som en vacker graf
vad tror ni om det?
sodjan
EF Sponsor
Inlägg: 43247
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av sodjan »

> Det finns säkert klart bättre OP idag...

T.ex:
http://www.tradera.com/20-st-single-low ... _174548326
http://www.tradera.com/20-st-dual-low-v ... _174630428

Båda är spacade ner till 1.8 V single supply, rail-to-rail.

(Japp, mina auktioner...)
Anonym2
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Anonym2 »

Tack för tipset! Men jag har tyvärr inte haft någon framgång med ytmonterat, har för dålig syn och är för skakig på händerna :(

Jag hittade en som jag tror ska funka, MC3403PG single supply ner till 3v. För att få till lite fler funktioner passade jag även på att beställa en barometer modul som pratar i2c, BMP085.

Efter att ha stått med nätspänning i ett par dagar laddas nu batteriet(12v/7,2Ah) med 130mA och håller en spänning på 13,6volt. Standby-laddning är specificerad till 13.5v - 13,8v. Märkligt att spänningen går upp över zenerdiodens 13v dock...

Skulle spänningen fortsätta att stiga går det ju alltid att montera ett effektmotstånd med högre motstånd i serie med zenerdioden för att få ner laddströmmen.
ronnylov
Inlägg: 987
Blev medlem: 23 februari 2012, 12:06:19
Ort: Borås

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av ronnylov »

Vet inte om du har gjort det men det är också bra att ha ett djupurladdningsskydd på batteriet. Om batterispänningen vid batteridrift går ner till ett visst värde (kolla datablad på batteriet) så stänger du ner datorn på ett snyggt sätt och kopplar från batteriet helt från lasten. Sedan när nätspänningen återkommer så kopplas batteriet in igen för laddning. Ett batteri som djupurladdas (alltså laddas ur för mycket) kommer aldrig bli sig likt igen. Tänker vid ett längre strömavbrott.

Ska man utöka det ytterligare kanske man kan tänka sig batteriladdning med solceller.
Fröding
Inlägg: 27
Blev medlem: 13 oktober 2011, 20:36:19
Ort: Jönköping
Kontakt:

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Fröding »

Hej!

Mycket intressant tråd. Jag funderar på att göra samma sak, men har inte lika bred kompetens inom elektronik. Men fungerar det att koppla in den andra sensorn på t.ex. GPIO17, eller är det något speciellt med just GPIO4?
Tack på förhand :)

Hälsningar
Gustav
Anonym2
Inlägg: 456
Blev medlem: 17 november 2007, 21:20:16

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av Anonym2 »

GPIO4 är specifik för att kopplas till one-wire systemet med temperaturgivaren, där kan dock kopplas på hur många givare som helst(eller ngt...). För I2C är GPIO0 och GPIO1 man är hänvisad till att använda, samma sak här dock, ett fleratal givare kan kopplas.

Bild

Nu är GPIO pinnarna utdragna till ett kort så att dom är lite lättare att komma åt, och att det finns fler punkter att ansluta spänningsmatningen på. Barometer-giaren verkar vara defekt, ska göra några försök till med den...
gtx
Inlägg: 1
Blev medlem: 20 december 2015, 14:41:59

Re: Temperaturvisning på hemsida (Raspberry-Pi)

Inlägg av gtx »

Då väcker jag liv i denna tråd då :) Förlåt och/eller varsegåd ;)

Jag är helt ny med raspberryPi, men älskar verkligen detta :)
hade mycket hjälp av din kod på första sidan för att få igång min logger..

men jag, nörd som man är, har redigerat den ganska brutalt, och gjort ett vad jag tycker lite mer komplett script, och i Open-Source anda, så postar jag mitt script här också, så hjälper jag kanske någon i min tur..

Denna kod, vet jag redan nu ska få lite förbättringar, som tex automatisk avläsning av ID-nummer på ansluta sensorer som ett slags settings-script..
Men tills vidare funkar denna kod mycket bra!
har inte hunnit testa triggning av för höga värden i error-checken, men bör funka :)
denna kod, gör även en smidig sak, den skriver en enda rad, som uppdateras, i ett dokument Cvalue1.txt, där man då alltid kan gå in och läsa senast skrivna värda utan att behöva gå på den tjocka filen..
med Fel-kods hantering och diverse debugging-loggar man kan läsa utifall saker går snett..

jag har alltså i detta script 3 värden som loggas, men man kan fylla på ID-numret till alla sina sensorer i settings raden så loggas dom också!

Har sedan ett annat script som också ligger i Crontab, som kopierar den stora loggfilen till ett anslutet USB minne vid midnatt, utifall nått skulle hända.
denna backup-funktion kommer däremot senare komma in i detta script också, så allt ligger i samma, mer komplett.

Gnuplottning är också egen körning.

glöm inte att ändra allt i Settings till önskade värden.

Kod: Markera allt

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import datetime;
import time;
import commands;
import os;

###############
#INSTÄLLNINGAR#
###############

#Mappen där allt ska loggas
cpath = "/gt/log/"

#Sensorskip är vad som ske vid felvärde på en sensor
#1 = hela inläsningsraden skippar och går vidare
#2 = skriver en 0-nolla istället för felet
#3 = ersätter felvärdet med senaste godkända värdet, kan också bli 0 om det är första som blir fel.

sensorskip = 1 

#Array med alla temps, Lägg till fler ID-nummer här för automatisk inläsning.
SensorID = ["28-0000072e5c9b","28-0000072e65c6","28-0000072e4aad"] #Inomhus, #utomhus , #Framledning


#######################
#Slut på INSTÄLLNINGAR#
#######################


RawSensor = []

def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        return False
		
		
if not os.path.isdir(cpath):
	os.makedirs(cpath)

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

		
def readall(rlistan):
	for i, rawvarde in enumerate(rlistan):
		tfile = open("/sys/bus/w1/devices/" + rawvarde + "/w1_slave") 
		text = tfile.read()
		tfile.close()
		secondline = text.split("\n")[1]
		temperaturedata = secondline.split(" ")[9]
		temperature = float(temperaturedata[2:])
		temperature = temperature / 1000
		RawSensor.insert(i,temperature)
	

		
		
		
def CheckTempErrors(Tempin):
#här kan man även lägga in sina egna felkoder.
#Borde gå över till trippning av värde för å sen samla ihop alla fel till printen, men bara några få fel än så länge.
	if float(Tempin) < -40 or float(Tempin) > 60 or Tempin == None:
		return True
		if Tempin == None:
			Tempin = "None"
		ErrorLogg(str(getdate()) + " Temperror värde: " + str(Tempin))
	elif not is_number(Tempin):
		ErrorLogg(str(getdate()) + " Tempvärde ej giltig siffervärde: " + str(Tempin))
		return True
	else:
		return False


def ErrorLogg(TextOut):
	if not TextOut == None:
		Efile = open(cpath + "errorlogg.txt", "a")
		Efile.write(str(TextOut))
	else:
		print "Nu tror jag väl, Error i error printen!\n"

		
def ReturnNiceValue(Tempin):
	Tfile = open(cpath + "cvalue1.txt", "r")
	
	

def logg():
	printresultat = ""
	skipthisread = ""

	for i, sob in enumerate(RawSensor):
		if CheckTempErrors(sob) == False:
			if printresultat == "": 
				printresultat = str(sob)
			else:
				printresultat = printresultat + " " + str(sob)
		else:
			ErrorLogg("Kunde inte läsa av sensor: "  + SensorID(i))
			if sensorskip == 1:
				skipthisread = True
			elif sensorskip ==  2:
				if printresultat == "": 
					printresultat = 0
				else:
					printresultat = printresultat + " " + 0
			elif sensorskip == 3:
				if os.path.isfile(fname):
					Tfile = open(cpath + "cvalue1.txt", "r")
					Lastmes = Tfile.read()
					Tfile.close()
					Lastmes = Lastmes.split(" ")[i+2]
				else:
					Lastmes = 0		
				if printresultat == "": 
					printresultat = Lastmes
				else:
					printresultat = printresultat + " " + Lastmes
					
		
	#print printresultat
	if not skipthisread:
		Tfile = open(cpath + "cvalue1.txt", "w")
		Tfile.write(str(getdate()))
		Tfile.write(" " + printresultat + "\n")
		
		file = open(cpath + "pilogger1.txt", "a")
		file.write(str(getdate()))
		file.write(" " + printresultat + "\n")
		
		
		
# Här kan vi börja ropa på allmänna kommandon nu när själva scriptet är skapat.

#Printar ID namnet på alla sensorer, bara för Debugging
# for s in SensorID:
	# print s

#Läser in alla värden från sensorerna.
readall(SensorID)
logg()


#Printar värdet från respektive sensor, bara för debugging

# for s in RawSensor:
#print s
Skriv svar