'CR1000 ' Version 1.0: 7/3/2007: GPS & High Frequency output commented ' 8/29/2007: added switch 12V instructions for serial2IP and 802.11 radio ' 10/19/2007: commented switch 12V instructino for 50W solar panel, add rain gauge ' 10/20/2007: add new sensors: TN9 IR, Thermistor, SHT75 ' 11/27/2007: power cycle for wireless radio ' 03/24/2008: Added SEVar1, SEVar2, SEVar3, and rearranged sensors ' Sensors Included: LiCOR 200SZ Pyranometer; SHT75; TN9; thermistor; Davis Wind; Davis Rain; ' Apogee IRR-P Infrared Sensor; T107; CS215 Campbell Scientific Temperature / RElative Humidity; ' 2 Single Ended Variable Channels 'Declare Variables and Units Public Batt_Volt Public TRH(2) Alias TRH(1)=AirTC Alias TRH(2)=RH Public SlrW Public WS_ms Public WindDir Public T107_C Public PTemp, SBTemp, TmV, TargTemp Dim Tsqr1, Tsqr2, SBTempK, m, b, TargTempK Public Rain_in Public Tn9_TargTemp, Tn9_SBTemp Public PVTemp Public SHT75_TRH(2) Public SEVar1, SEVar2, SEVar3, SEVar4 Alias SHT75_TRH(1)=SHT75_AirTC Alias SHT75_TRH(2)=SHT75_RH Units Batt_Volt=Volts Units AirTC=Deg C Units RH=% Units WS_ms=meters/second Units WindDir=Degrees Units T107_C=Deg C Units Rain_in = in Units Tn9_SBTemp=Deg C Units Tn9_TargTemp=Deg C Units SHT75_AirTC=Deg C Units SHT75_RH=% Units PVTemp = Deg C Units SEVar1 = mV Units SEVar2 = mV Units SEVar3 = mV Units SEVar4 = mV 'THESE VARIABLES ARE SENSOR SPECIFIC!!!! 'SEE CALIBRATION SHEET for IRR-P 1288 Const mC2 = 82689.2 Const mC1 = 8579210 Const mC0 = 1575210000 Const bC2 = 6541.2 Const bC1 = 30848 Const bC0 = -1480950 'Constants for THERMISTOR Const a0 =-22.7244912 Const a1 =70.9539861 Const a2 =-17.4828918 Const a3 =-4.37906224 Const a4 =4.01190227 'Constant for Solar Panel Current Meter const a5 =3/1.24 'Define Data Tables DataTable(Met,True,-1) DataInterval(0,5,Min,10) Average(1,Batt_Volt,FP2,False) Average(1,T107_c,FP2,False) Average(1,AirTC,FP2,False) Average(1,RH,FP2,False) Average(1,SlrW,FP2,False) StdDev(1,SlrW,FP2,False) WindVector(1,WS_ms,WindDir,Fp2,False,0,0,0) FieldNames("WSpd_ms,WDir,Std_WDir") Totalize(1,Rain_in,FP2,False) ' Average(1,PTemp,FP2,False) Average(1,SBTemp,FP2,False) Average(1,TargTemp,Fp2,False) Average(1,Tn9_SBTemp,FP2,False) Average(1,Tn9_TargTemp,Fp2,False) Average(2,SHT75_TRH,FP2,False) Average(1,SEVar1,FP2,False) Average(1,SEVar2,FP2,False) Average(1,SEVar3,FP2,False) Average(1,SEVar4,FP2,False) EndTable 'Main Program BeginProg Scan(2,Sec,0,0) If ( Batt_Volt<12.1 ) Then SW12 (FALSE) EndIf If ( Batt_Volt>12.25 ) Then SW12 (TRUE) EndIf If ( IfTime (4,1440,Min) ) Then SW12 (FALSE) EndIf If ( IfTime (59,1440,Min) ) Then SW12 (TRUE) EndIf 'Default Datalogger Battery Voltage measurement Batt_Volt: Battery(Batt_Volt) 'CS215 Temperature & relative humidity: SDI12Recorder(AirTC,7,"0","M!",1,0) 'LI200X Pyranometer measurement SlrW: VoltDiff(SlrW,1,mV7_5,1,True,0,_60Hz,-111.200,0) If SlrW<0 Then SlrW=0 'T107 Temperature Therm107(T107_C,1,14,2,0,_60Hz,1.0,0.0) 'Davis Wind PulseCount(WS_ms,1,1,2,1,1.00575,0) BrHalf(WindDir,1,mV2500,8,1,1,2500,true,0,_60Hz,355,0) If WindDir>=360 Then WindDir=0 'IRR-P radiometer PanelTemp (PTemp,_60Hz) 'Intsruction to measure the sensor body temperature. Therm109(SBTemp,1,13,3,0,_60Hz,1.0,0) 'Instruction to measure the mV output thermopile. VoltDiff(TmV,1,mV2_5,6,True,0,_60Hz,1.0,0) 'Calculation of m (slope) and b (intercept) coefficients for target temperature calculation m = mC2*SBTemp*SBTemp +mC1*SbTemp+mC0 b = bC2*SBTemp*SBTemp +bC1*SBTemp+bC0 'Target Temperature calculation based on m and b coefficients SBTempK = SBTemp + 273.15 Tsqr1 = SBTempK*SBTempK*SBTempK*SBTempK +m*TmV+b Tsqr2 = SQR(Tsqr1) TargTempK = SQR(Tsqr2) TargTemp = TargTempK - 273.15 'Rain Gauge PulseCount(Rain_in,1,2,2,0,0.01,0) 'TN9 IR sensor VoltSE(Tn9_TargTemp,1,mV2500,6,True,0,_60Hz,.04,-30) VoltSE(Tn9_SBTemp,1,mV2500,5,True,0,_60Hz,.04,-30) 'SHT75 T&RH sensor VoltSE(SHT75_AirTC,1,mV2500,4,True,0,_60Hz,.04,-30) VoltSE(SHT75_RH,1,mV2500,3,True,0,_60Hz,.04,0) 'SEVar1 VoltSE(SEVar1,1,mV2500,9, True,0,_60Hz,1,0) VoltSE(SEVar2,1,mV2500,10,True,0,_60Hz,1,0) VoltSE(SEVar3,1,mV2500,15,True,0,_60Hz,1,0) VoltSE(SEVar4,1,mV2500,16,True,0,_60Hz,1,0) PVTemp = a0 + a1*(SEVar1/1000) +a2*(SEVar1/1000*SEVar1/1000) +a3*(SEVar1/1000*SEVar1/1000*SEVar1/1000) +a4*(SEVar1/1000*SEVar1/1000*SEVar1/1000*SEVar1/1000) CallTable(Met) NextScan EndProg 'wiring instructions 'CS215 Temperature & Relative Humidity Sensor ' Clear,white,black: G ' Green: C7 ' Red: 12V 'T107_C ' Clear: G ' Black: EX2 ' Red: SE14 ' Purple: power ground 'Davis Wind ' Black: P1 ' Red: power ground ' Green: SE8 ' Yellow: EX1 'Li200SZ Pyranometer ' clear with copper wire: 1H ' silver: 1L ' 100 Ohm resistor from 1H to 1L 'IRR-P ' white: EX3 ' Clear: power G ' Red: Diff 6H ' Black: Diff 6L ' Green: SE13 ' Blue: G 'Davis Rain Gauge ' red: P2 ' green: G ' others: not used 'TN9 ' white: SBTemp: SE5 ' blue: TargetTemp: SE6 ' black/shield: ground 'SHT75 ' blue: Temperature SE4 ' white: RH SE3 ' black/shield: ground ''''''''''' UNIQUE SINGLE ENDED MEASUREMENTS '''''''''''''''' 'Solar Panel Current Meter (SEVar1) ' red: SE15 ' black: Ground 'Thermistor ' brown: Thermistor: SE9 (General SE) ' black: ground 'SPN PYRANOMETER ' White: (SEVar1) (direct): SE15 ' Brown: (SEVar2) (diffuse): SE16 ' Green: Ground ' Pink: 12V ' Gray: Ground ' Black: Ground ' Others (not used for now)