'Botanical_Gardens_West.cr1 'CR1000 'Created by Short Cut (3.2) ' steinhart_hart: '' constants for GWS thermistors, YSI 44033: Const KA = 1.468E-3 Const KB = 2.383E-4 Const KC = 1.007E-7 '' constants for GWS thermistors, YSI 44034 Const YSI_44034_KA = 1.285E-3 Const YSI_44034_KB = 2.362E-4 Const YSI_44034_KC = 9.285E-8 ConstTable ' pakbus-info: Const PAKBUS_INFO = 620 ' site-info: Const SITE_NAME = "Botanical Gardens West" Const SITE_DESCR = "soil moisture/temp" ' thermistor-atb: Const THERM_TYPE = "YSI 44033" Const THERM_REF_OHMS = 1000 EndConstTable ' prog-signature: Public progSig As Long 'Declare Variables and Units Dim LCount Public BattV Public PTemp_C Public VW(30) Public LCount_2 Public CS65X(3) Public ThermMult(30)={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} Public ThermOffs(30)={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ' thermistor-atb: Public THERM(30) : Units THERM() = degC Public THERM_R(30) : Units THERM_R() = kOhms Dim Therm_X(30) Alias CS65X(1)=VWC_PIT Alias CS65X(2)=EC_PIT Alias CS65X(3)=T_PIT Alias VW(1)=VW1_1 Alias VW(2)=VW1_2 Alias VW(3)=VW1_3 Alias VW(4)=VW1_4 Alias VW(5)=VW1_5 Alias VW(6)=VW1_6 Alias VW(7)=VW1_7 Alias VW(8)=VW1_8 Alias VW(9)=VW1_9 Alias VW(10)=VW1_10 Alias VW(11)=VW1_11 Alias VW(12)=VW1_12 Alias VW(13)=VW1_13 Alias VW(14)=VW1_14 Alias VW(15)=VW1_15 Alias VW(16)=VW2_1 Alias VW(17)=VW2_2 Alias VW(18)=VW2_3 Alias VW(19)=VW2_4 Alias VW(20)=VW2_5 Alias VW(21)=VW2_6 Alias VW(22)=VW2_7 Alias VW(23)=VW2_8 Alias VW(24)=VW2_9 Alias VW(25)=VW2_10 Alias VW(26)=VW2_11 Alias VW(27)=VW2_12 Alias VW(28)=VW2_13 Alias VW(29)=VW2_14 Alias VW(30)=VW2_15 Alias THERM(1)=Temp1_1 Alias THERM(2)=Temp1_2 Alias THERM(3)=Temp1_3 Alias THERM(4)=Temp1_4 Alias THERM(5)=Temp1_5 Alias THERM(6)=Temp1_6 Alias THERM(7)=Temp1_7 Alias THERM(8)=Temp1_8 Alias THERM(9)=Temp1_9 Alias THERM(10)=Temp1_10 Alias THERM(11)=Temp1_11 Alias THERM(12)=Temp1_12 Alias THERM(13)=Temp1_13 Alias THERM(14)=Temp1_14 Alias THERM(15)=Temp1_15 Alias THERM(16)=Temp2_1 Alias THERM(17)=Temp2_2 Alias THERM(18)=Temp2_3 Alias THERM(19)=Temp2_4 Alias THERM(20)=Temp2_5 Alias THERM(21)=Temp2_6 Alias THERM(22)=Temp2_7 Alias THERM(23)=Temp2_8 Alias THERM(24)=Temp2_9 Alias THERM(25)=Temp2_10 Alias THERM(26)=Temp2_11 Alias THERM(27)=Temp2_12 Alias THERM(28)=Temp2_13 Alias THERM(29)=Temp2_14 Alias THERM(30)=Temp2_15 Units BattV=Volts Units PTemp_C=Deg C Units Therm_X=mV Units VWC_PIT=m^3/m^3 Units EC_PIT=dS/m Units T_PIT=Deg C 'Define Data Tables DataTable(HrlySoil,True,-1) DataInterval(0,60,Min,10) Sample(1,progSig,Long) Average(1,VW(1),FP2,False) Average(1,VW(2),FP2,False) Average(1,VW(3),FP2,False) Average(1,VW(4),FP2,False) Average(1,VW(5),FP2,False) Average(1,VW(6),FP2,False) Average(1,VW(7),FP2,False) Average(1,VW(8),FP2,False) Average(1,VW(9),FP2,False) Average(1,VW(10),FP2,False) Average(1,VW(11),FP2,False) Average(1,VW(12),FP2,False) Average(1,VW(13),FP2,False) Average(1,VW(14),FP2,False) Average(1,VW(15),FP2,False) Average(1,VW(16),FP2,False) Average(1,VW(17),FP2,False) Average(1,VW(18),FP2,False) Average(1,VW(19),FP2,False) Average(1,VW(20),FP2,False) Average(1,VW(21),FP2,False) Average(1,VW(22),FP2,False) Average(1,VW(23),FP2,False) Average(1,VW(24),FP2,False) Average(1,VW(25),FP2,False) Average(1,VW(26),FP2,False) Average(1,VW(27),FP2,False) Average(1,VW(28),FP2,False) Average(1,VW(29),FP2,False) Average(1,VW(30),FP2,False) Average(1,THERM(1),FP2,False) Average(1,THERM(2),FP2,False) Average(1,THERM(3),FP2,False) Average(1,THERM(4),FP2,False) Average(1,THERM(5),FP2,False) Average(1,THERM(6),FP2,False) Average(1,THERM(7),FP2,False) Average(1,THERM(8),FP2,False) Average(1,THERM(9),FP2,False) Average(1,THERM(10),FP2,False) Average(1,THERM(11),FP2,False) Average(1,THERM(12),FP2,False) Average(1,THERM(13),FP2,False) Average(1,THERM(14),FP2,False) Average(1,THERM(15),FP2,False) Average(1,THERM(16),FP2,False) Average(1,THERM(17),FP2,False) Average(1,THERM(18),FP2,False) Average(1,THERM(19),FP2,False) Average(1,THERM(20),FP2,False) Average(1,THERM(21),FP2,False) Average(1,THERM(22),FP2,False) Average(1,THERM(23),FP2,False) Average(1,THERM(24),FP2,False) Average(1,THERM(25),FP2,False) Average(1,THERM(26),FP2,False) Average(1,THERM(27),FP2,False) Average(1,THERM(28),FP2,False) Average(1,THERM(29),FP2,False) Average(1,THERM(30),FP2,False) Average(1,VWC_PIT,FP2,False) Average(1,EC_PIT,FP2,False) Average(1,T_PIT,FP2,False) EndTable DataTable(HrlySoilRes,True,-1) DataInterval(0,60,Min,10) Sample(1,progSig,Long) Average(30,THERM_R(),FP2,False) EndTable DataTable(HrlyDiag,True,-1) Sample(1,progSig,Long) DataInterval(0,60,Min,10) Minimum(1,BattV,FP2,False,False) Sample(1,BattV,FP2) Average(1,BattV,FP2,False) Average(1,PTemp_C,FP2,False) EndTable ' thermistors:calc_thermistors() Sub calc_thermistors() Dim j,lnR For j=1 To 6 '' calculate thermistor resistance from ratio and ref R: THERM_R(j) = THERM_REF_OHMS * Therm_X(j) / (1-Therm_X(j)) '' calculate natural log of thermistor resistance: lnR = LN(THERM_R(j)) '' use Steinhart & Hart equation to derive temperature: THERM(j) = (1/(KA + KB*lnR + KC*lnR^3)) - 273.15 THERM_R(j)= THERM_R(j)/1000 Next j ' calculate four Alpha thermistors For j=7 To 8 '' calculate thermistor resistance from ratio and ref R: THERM_R(j) = THERM_REF_OHMS * Therm_X(j) / (1-Therm_X(j)) '' calculate natural log of thermistor resistance: lnR = LN(THERM_R(j)) '' use Steinhart & Hart equation to derive temperature: THERM(j) = (1/(YSI_44034_KA + YSI_44034_KB*lnR + YSI_44034_KC*lnR^3)) - 273.15 THERM_R(j)= THERM_R(j)/1000 Next j For j=9 To 30 '' calculate thermistor resistance from ratio and ref R: THERM_R(j) = THERM_REF_OHMS * Therm_X(j) / (1-Therm_X(j)) '' calculate natural log of thermistor resistance: lnR = LN(THERM_R(j)) '' use Steinhart & Hart equation to derive temperature: THERM(j) = (1/(KA + KB*lnR + KC*lnR^3)) - 273.15 THERM_R(j)= THERM_R(j)/1000 Next j EndSub 'Main Program BeginProg 'Main Scan Scan(300,Sec,1,0) 'Default CR1000 Datalogger Battery Voltage measurement 'BattV' Battery(BattV) 'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C' PanelTemp(PTemp_C,250) 'Turn AM16/32 Multiplexer On PortSet(2,1) Delay(0,150,mSec) LCount=1 SubScan(0,uSec,10) 'Switch to next AM16/32 Multiplexer channel PulsePort(1,20000) 'ECHO Probe EC-5 measurement VW on the AM16/32 Multiplexer BrHalf(VW(LCount),3,mV2500,1,1,3,2500,False,10000,250,2.975,-0.4) LCount=LCount+3 NextSubScan 'Turn AM16/32 Multiplexer Off PortSet(2,0) Delay(0,150,mSec) 'Turn AM16/32 Multiplexer On PortSet(3,1) Delay(0,150,mSec) LCount_2=1 SubScan(0,uSec,30) 'Switch to next AM16/32 Multiplexer channel PulsePort(1,10000) 'Generic Single Ended Voltage measurements 'Therm_X()' on the AM16/32 Multiplexer BrHalf (Therm_X(LCount_2),1,mV2500,15,Vx2,1,2500,True,0,_60Hz,ThermMult(LCount_2),ThermOffs(LCount_2)) LCount_2=LCount_2+1 NextSubScan 'Turn AM16/32 Multiplexer Off PortSet(3,0) calc_thermistors() Delay(0,150,mSec) 'CS650/655 Water Content Reflectometer measurements 'VWC_PIT', 'EC_PIT', and 'T_PIT' SDI12Recorder(CS65X(),7,"M","M!",1,0,-1) 'Call Data Tables and Store Data CallTable HrlySoil CallTable HrlyDiag CallTable HrlySoilRes NextScan EndProg Ñ