CRBasic Editor
Start
New Code
My Snippets
Public Snippets
Templates
Resources
crbasic 'CRBasic Program for Geokon 4500s, SDI-12 Weather Station, and Tipping Bucket 'Declare Public Variables Public VW1_Freq, VW1_Temp Public VW2_Freq, VW2_Temp Public Rainfall Public AirTemp, Humidity, BarometricPressure 'Declare Constants Const PULSE_PER_TIP = 0.2 'Rainfall per bucket tip (mm or inches depending on gauge) 'Declare Data Tables DataTable(WeatherData, True, -1) 'Store data indefinitely DataInterval(0, 60, Min) 'Log data every 60 minutes Average(1, VW1_Freq, IEEE4) Average(1, VW1_Temp, IEEE4) Average(1, VW2_Freq, IEEE4) Average(1, VW2_Temp, IEEE4) Totalize(1, Rainfall, IEEE4) Sample(1, AirTemp, IEEE4) Sample(1, Humidity, IEEE4) Sample(1, BarometricPressure, IEEE4) EndTable 'Main Program Loop BeginProg 'Set scan interval Scan(1, Min, 0, 0) 'Scan every minute 'Read Geokon 4500 VWPZ sensors (assuming excitation voltage and factor default to unit specifications) VW_VoltDiff(VW1_Freq, VW1_Temp, 1, mV5000, 1, -35, 35, 135, 300, 1.0, 1, 1.0) VW_VoltDiff(VW2_Freq, VW2_Temp, 2, mV5000, 1, -35, 35, 135, 300, 1.0, 2, 1.0) 'Read SDI-12 Weather Station for Temperature, Humidity, and Barometric Pressure SDI12Recorder(WXData(), "0", "C!", 1) 'Assuming Address 0 AirTemp = WXData(1) Humidity = WXData(2) BarometricPressure = WXData(3) 'Read the tipping bucket rain gauge PulseCount(Rainfall, 1, 1, 0, 0, 0) 'Assuming Pulse Port 1 Rainfall = Rainfall * PULSE_PER_TIP 'Convert to mm or inches 'Call DataTables to save data CallTable WeatherData 'Jump back to the start of the loop NextScan EndProg
Make snippet public
Use mock deployment
Save & Share
Validate Code
Fix Missing Variables
Explain Code
Get Assistance
Simulate Code
Deploy to Datalogger
Versions
Version 1 (2025-02-24 19:14:58)
Load Selected Version