Page 1 of 1

1-wire temp sensors

Posted: Thu Oct 15, 2009 12:46 pm
by raptor_demon
Hi All,

soon i feel i will have this all in the bag!

One thing left that i am trying to get nailed down is Temp sensors inside and out.

I did some searching and could not find out if 1-wire is supported with housebot, particulary the DS9490R available at hobby-boards.com.

if not what is everyone else using?

thanks in advance

Raptor

Re: 1-wire temp sensors

Posted: Thu Oct 15, 2009 3:40 pm
by menesi
I'm using some DS18S20-s in parasite mode on 1-wire bus. The schema between 1-wire bus and serial port is the simplest:
Image
On HB server a simplified digitemp (http://www.digitemp.com/) sw runs, fired by a task and a simple script device processes its output file.

Re: 1-wire temp sensors

Posted: Thu Oct 15, 2009 4:09 pm
by roussell
menesi,

Are you saying that you use the circuit you posted as an interface between 1-wire and the PCs serial port instead of something like the DS9097U-A adapter? If so, that's a fabulous little design! Thanks for posting, where did you ever find that little gem?

BTW to the OP, I use a 9097 adapter and OWFS on Linux to collect and transmit the data to HB. I will probably mote to digitemp though as I look to consolidate boxes.

Terry

Re: 1-wire temp sensors

Posted: Thu Oct 15, 2009 4:50 pm
by menesi
This is a web-wide published simple circuit, for example here: http://public.rz.fh-wolfenbuettel.de/~h ... itemp.html, or the better, more understandable figure: http://www.pavolmaria.org/elektronika/d ... s9097e.gif with two DS18S20 sensors in parasite mode (but it works with more sensors too) and a RS-232 DB9F connector on the left side of schema.

Re: 1-wire temp sensors

Posted: Fri Oct 16, 2009 12:04 pm
by raptor_demon
Thanks Guys,

Menesi,

Could you please post how you processed the file and the task?

Do you know if the Digitemp software works with the DS9490R ?

Thanks

Raptor

Re: 1-wire temp sensors

Posted: Sat Oct 17, 2009 2:44 am
by menesi
In my solution I've:

1. A Sleep Timer device, named Digitemp Timer, with 10mins Sleep Time, (Repeat=Yes).
2. A task, named Digitemp Update with:

Code: Select all

If (Digitemp Timer.Running is Equal 'Yes') Then Change 'Digitemp Handler.State' to 'Running'
3. Digitemp Handler is a Script Device, with script:

Code: Select all

Option Explicit
On Error Resume Next


Dim objShell, objFSO, objFile
Dim strPath, strLine, strPort, strType
Dim dimStr

	strPath = ".\Config\Scripts\Digitemp\dt_lite."
	strPort = GetPropertyValue ("Digitemp Handler.Serial Port")

	Set objShell = CreateObject ("WScript.Shell")
	objShell.Run strPath & "exe " & strPort & " " & strPath & "out", 0, True
	Set objShell = Nothing

	Set objFSO = CreateObject ("Scripting.FileSystemObject")
	Set objFile = objFSO.OpenTextFile (strPath & "out", 1, True) 
	Do Until objFile.AtEndOfStream
		strLine = objFile.ReadLine
		dimStr = Split (strLine, "|")
		SetPropertyValue dimStr(0) & ".DTID", dimStr(1)
		SetPropertyValue dimStr(0) & ".DTTemp", dimStr(2)
		SetPropertyValue dimStr(0) & ".DTTime", dimStr(3)
		SetPropertyValue dimStr(0) & ".DTDate", dimStr(4)
		Select Case Mid (dimStr(1), 1, 2)
			Case "10"
				strType = "DS18S20 High-Precision 1-Wire Digital Thermometer"
				
			Case "20"
				strType = "DS1822 Econo 1-Wire Digital Thermometer"
			
			Case "28"
				strType = "DS18B20 Programmable Resolution 1-Wire Digital Thermometer"
		
			Case Else
				strType = "Unknown Type"					
		End Select
		SetPropertyValue dimStr(0) & ".DTType", strType				
	Loop
	objFile.Close
	Set objFile = Nothing

	Set objFSO = Nothing	
The simplified digitemp application (http://www.menesihome.hu/download/dt_lite.exe) is started and its output file is processed by this script. Structure of output file:

Code: Select all

Sensor 0|10EE2C71010800E2|21.2|08:34:23|2009-10-17
Sensor 1|103F7771010800F4|18.9|08:34:24|2009-10-17
4. And some Null Devices, named Sensor 0, Sensor 1, etc. with properties DTID, DTTemp, DTTime, DTDate.

That's all. I've no information about Digitemp with the DS9490R, sorry.