I would be quite surprised to find even two sensors that were close...
Have a look at this to get some ideas about calibration:

http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2006-June/017282.html

MS


Latronico Mario wrote:
> I have similar problems, but i got a value which is some celsius degree above 
> the real temperature. My code is:
>  
> System.out.println("ADC Value " + average);
> 
> final double a = 0.00130705;
> 
> final double b = 0.000214381;
> 
> final double c = 0.000000093;
> 
> double Rthr = ( 10000.0 * (1023.0 - average )) / (double)average;
> 
> System.out.println("Rthr " + Rthr);
> 
> double logRthr = Math.log(Rthr);
> 
> double inverseKelvinTemp = a + b * logRthr + c * (logRthr * logRthr * 
> logRthr);
> 
> System.out.println("Inverse Kelvin " + inverseKelvinTemp);
> 
> double celsiusTemp = 1.0 / inverseKelvinTemp - 273.15;
> 
>  
> when the temperature is around 20 or 22 celsius degrees i got 29 or 30 
> celsius degrees.
>  
>>From the MTS and MDA manual i see that the constants are different among 
>>different sensor board. I use the XBow MTS310CA sensor board 
>  
> Mario
> 
> ________________________________
> 
> Da: [EMAIL PROTECTED] per conto di Yanchuan Li
> Inviato: mer 14/05/2008 23.13
> A: [email protected]
> Oggetto: [Tinyos-help] About Temperature
> 
> 
> Anyone knows how to convert a ADC reading into real Degrees for temperature?
> On the Manual, it's said like following:
>  
> The mote's ADC output can be converted to degrees Kelvin using the following 
> approximation over 0-50 °C: 1/T(K) = a + b × ln(Rthr) + c × [ln(Rthr)]3
> where:
> Rthr = R1(ADC_FS-ADC)/ADC
> a = 0.00130705
> b = 0.000214381
> Page 10 Doc. # 7430-0020-03 Rev. B
> MTS/MDA Sensor Board User's Manual
> Wireless Sensor Networks
> c = 0.000000093
> R1 = 10 k?
> ADC_FS = 1023
> ADC = output value from mote's ADC measurement.
>  
> BUT I always got readings like between 500-600. And when I using the function 
> above, I got some really weird numbers after calculation.
>   double a = 0.00130705;
>   double b = 0.000214381;
>   double c = 0.000000093;
>   double r1 = 10;
>   double adc_fs = 1023;
>   double adc = 600;
>   double rthr = (r1 * (adc_fs - adc))/adc;
>   double temp = Math.log10(rthr);
>   double temp1=Math.pow(temp, 3);
>   double temp3=a+b*temp+c*temp1; 
>   System.out.println(1/temp3);
>  
> RESULT: 671.6176617203942
> --
> The information transmitted is intended for the person or entity to which it 
> is addressed and may contain confidential and/or privileged material. Any 
> review, retransmission, dissemination or other use of, or taking of any 
> action in reliance upon, this information by persons or entities other than 
> the intended recipient is prohibited. If you received this in error, please 
> contact the sender and delete the material from any computer.
> 
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

-- 
Platform: WinXP/Cygwin
TinyOS version: 1.x, Boomerang
Programmer: MIB510
Device(s): Mica2, MicaZ, Tmote
Sensor board: homebrew

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to