How to Build a WeatherRack3 – No Moving Parts – Weather Station
SwitchDoc Labs has built a new weather station and software with the WeatherRack3, a new generation no-moving parts 7 in 1 sensor. We are building a solar powered box around the WeatherRack3 that will keep the sensor running for long periods of time (even with out sun – love those large capacity lead acid batteries). It’s a similar solar power system to SolarMAX2 (designed to run Raspberry Pi 4B systems) but with a much simpler controller because we don’t need nearly as much power as the Raspberry Pi 4B takes (don’t forget the high startup current on the Pi4!). the WeatherRack3 uses about 1.3W, so we can have a much smaller solar panel (30W) and simpler control system.
The WeatherRack System features:
- New NO MOVING PARTS Weather Sensor. It measures:
– Air Temperature
– Air Humidity
– Air Pressure
– Rainfall (Optical)
– Noise
– Air Quality
– Wind Speed (Ultrasonic)
– Wind Direction (Ultrasonic)
-
- 433MHz communication fromWeatherRack3 to Raspberry Pi
- Compatible with the WeatherSense products (Lightning, Radiation, etc.)
- Solar Powered (panel included)
- Solar controller and Mini Pro Plus included (all that good solar data!)
- Permanent, non changing SERIAL NUMBER (Yea!!!)
We transmit all the information from the WeatherRack3 using the rtl_433 library (the SwitchDoc Fork). Devices 154 and 155. We have two devices defined, one for the Weather Data and one for all the Solar Power data. The solar power controller we are using at the moment is a Renogy 10A Solar Power controller. We have decoded the information from the RS232 port ion the Renogy using our Arduino Mini Pro Plus board and then we transmit a subset of the information via 433MHz to the Raspberry Pi (running an SDR and the SDL_Pi_WeatherSense software.
WeatherRack3 System Wiring Pictures
For more information on the MC4 Plugs and how you put them together, refer to the SolarMAX2 Assembly and Test Guide:
https://www.switchdoc.com/wp-content/uploads/2021/09/SolarMax2AssemblyAndOperation1.1.pdf
Parts List
- 1 Gland Connector – https://amzn.to/3jgOBi3
- 1 MC4 Male and insert / 1 MC4 Female and insert – https://amzn.to/3wACG1J
- 1 Renogy Wanderer – https://amzn.to/4031nRI
- 1 30W Solar Panel – https://amzn.to/3DnhaB3
- 1 SwitchDoc Labs Wr3 Utility Board – For an unpopulated board send a Self Addressed Stamped Envelope (two stamps) to: SwitchDoc Labs, ATTN: WR3 Board, 909 S Shelley Lake Lane, Spokane Valley, WA 99037
- 1 TTL to RS232 Module – https://amzn.to/3Dj2Vx5
- 1 3.3V/5V to RS485 Signal Converter – https://amzn.to/3HhCFEx
- 1 Renogy RJ11 cable – ( https://amzn.to/3jcc6ZD )
- 1 WeatherRack3 Sensor – ( https://www.alibaba.com/product-detail/Renke-Wind-Temp-RH-noise-rainfall_1600275693483.html )
- 1 USB Type A to Type Micro cable – ( https://amzn.to/3HPiLm9 )
- Grove Mini Pro Board – ( https://shop.switchdoc.com/products/grove-mini-pro-plus )
- 433MHz Transmitter – ( https://www.seeedstudio.com/Grove-433MHz-Simple-RF-link-kit-p-1062.html )
NO 12V Battery included
Buy on Amazon:
12V 7ah Battery – https://amzn.to/3Dcsb8u
or
12V 10ah Battery – https://amzn.to/3D96kPh
Don’t Want to Order All This Stuff?
https://shop.switchdoc.com/products/weatherrack3-sensor-package
Downloads
WeatherSense Software
https://github.com/switchdoclabs/SDL_Pi_WeatherSense
SwitchDoc Labs rtl_433 Software
https://github.com/switchdoclabs/rtl_433
Software for the Mini Grove Plus
https://github.com/switchdoclabs/SDL_Arduino_WeatherSenseWR3
Manual for Ultrasonic Weather Station – With Modbus Addresses
Ultrasonic Weather Station Manual
Renogy Manual including Modbus Addresses
RJ12 Renogy Cable Notes
Easiest way to do this cable is buy an assembled one and cut it in half. Note wire positions and colors. Your colors may be different.
Note only the first three lines are used in the RJ12 connector. See our end below of this cable that plugs into the Renogy. Note colors and compare above. Your cable must match the connectivity, but your colors may be different.
Wiring Guide Pictures
The Utility Board
Bare board before pin soldering.
With Pins soldered in. Note the three pin screw down terminals on top. You can just solder the wires in or buy these connectors at: ( https://www.digikey.com/en/products/detail/w%C3%BCrth-elektronik/691214110003/2508517 )
Fully Populated Boards
Wiring Pictures
Your WeatherRack3 ID Number
You can find that by looking at the serial output from the Mini Pro Plus board or by looking at the JSON messages from the unit. You will see it as deviceid in the JSON message.
You can find the message ID in the serial debugging output (in Hex) as below (Unit ID: 0xCA50):
11:56:26.761 -> 11:56:26.761 -> 11:56:26.761 -> >>>>>>>>>><<<<<<<<< 11:56:26.761 -> WeatherSense WeatherRack3 / Renogy Controller 11:56:26.761 -> >>>>>>>>>><<<<<<<<< 11:56:26.761 -> Software Version:8 11:56:26.761 -> FreeMemory=767 11:56:26.957 -> Send Renogy Command Address=0x0 11:56:26.957 -> Sending ModChecksum=6000 11:56:26.957 -> Sending Message 11:56:27.088 -> myRenogySerial.available()=0 11:56:27.088 -> _len=0 11:56:27.579 -> Send Renogy Command Address=0x0 11:56:27.579 -> Sending ModChecksum=6000 11:56:27.579 -> Sending Message 11:56:27.676 -> myRenogySerial.available()=0 11:56:27.676 -> _len=0 11:56:27.677 -> Send Renogy Command Address=0x10A 11:56:27.708 -> Sending ModChecksum=69F4 11:56:27.708 -> Sending Message 11:56:27.806 -> myRenogySerial.available()=0 11:56:27.806 -> _len=0 11:56:28.298 -> Send Renogy Command Address=0x10A 11:56:28.298 -> Sending ModChecksum=69F4 11:56:28.298 -> Sending Message 11:56:28.396 -> myRenogySerial.available()=0 11:56:28.396 -> _len=0 11:56:30.422 -> Writing MessageCount=0 11:56:30.422 -> MessageCount=0 11:56:30.422 -> Writing myID=CA50 11:56:30.422 -> Unit ID: 0xCA50
WeatherRack3 Output
Here are the two JSON messages (output from the SDL rtl_433 Library) and the definitions of the values:
First the Weather Data Message:
{"time" : "2022-12-18 13:19:53", "model" : "SwitchDoc Labs WeatherRack3", "len" : 37, "messageid" : 30039, "deviceid" : 15727, "protocolversion" : 1, "softwareversion" : 0, "weathersenseprotocol" : 20, "windspeed" : 0, "windforce" : 0, "winddirectiondegrees" : 0, "humidity" : 750, "temperature" : -12, "noise" : 412, "PM2_5" : 7, "PM10" : 8, "pressure" : 937, "hwlux" : 0, "lwlux" : 7612, "lightvalue20W" : 76, "rain" : 0, "mic" : "CRC"}
– time: Time of receipt on local machine – time zone is what is on local machine
– model: model name
– len: Message length
– messageid: unique message ID from WR3
– deviceid: unique serial number of WR3
– protocolversion: version of the WeatherSense Protocol
– softwareversion: version of the SDL_Arudino_WeatherSenseWR3 software
– weathersenseprotocol: WeatherSense Protocol Number
– windspeed: meters/second * 10
– windforce: wind force level
– winddirectiondegrees: wind direction in degrees – N is 0 degrees
– humidity: % relative humidity * 10
– temperature: celcius * 10
– noise: dbm (?) * 10
– PM2_5: 2.5um particulate count – air quality
– PM10: 10um particulate count – air quality
– pressure: Kpa absolute value * 10
– hwlux: High 16 bit value of Lux
– lwlux: Low 16 bit value of Lux
– lightvalue20W: lux / 100 (used for when lux > 32 bits as in really bright sunlight)
– rain: mm * 10
– mic: CRC – What is used for message validation
Then the WeatherRack3 Solar Power Message:
{"time" : "2022-12-18 13:20:34", "model" : "SwitchDoc Labs WR3 Power Message", "len" : 53, "messageid" : 30040, "deviceid" : 15727, "protocolversion" : 1, "softwareversion" : 0, "weathersenseprotocol" : 21, "batterycapacity" : 51, "batteryvoltage" : 12.100, "batterychargecurrent" : 0.240, "loadvoltage" : 12.100, "loadcurrent" : 0.110, "solarpanelvoltage" : 12.700, "solarpanelcurrent" : 0.150, "Min_Battery_Voltage_Today_Volts" : 12.100, "Max_Charge_Current_Today_Amps" : 0.600, "Max_Discharge_Current_Today_Amps" : 0.130, "Charge_Amp_Hrs_Today_Amp_Hours" : 1.000, "Discharge_Amp_Hrs_Today_Amp_Hours " : 2.000, "Charge_Watt_Hrs_Today_Watt_Hours" : 12.000, "Discharge_Watt_Hrs_Today_Watt_Hours" : 12.000, "Controller_Uptime_Days" : 0, "Total_Battery_Over_Charges_Count" : 0, "Total_Battery_Full_Charges_Count" : 0, "Controller_Type" : 2560, "wakecount" : 1650, "auxa" : 0, "solarpresent" : 0, "WR3BoardPresent" : 0, "justbooted" : 0, "lowbattery" : 0, "mic" : "CRC"}
– time: Time of receipt on local machine – time zone is what is on local machine
– model: model name
– len: Message length
– messageid: unique message ID from WR3
– deviceid: unique serial number of WR3
– protocolversion: version of the WeatherSense Protocol
– softwareversion: version of the SDL_Arudino_WeatherSenseWR3 software
– weathersenseprotocol: WeatherSense Protocol Number
– batterycapacity : % of capacity that the battery is charged
– batteryvoltage : Current voltage o the battery (V)
– batterychargecurrent : Amount that the battery is being charged in Amps (Note: If you battery is currently being discharged, it will be zero)
– loadvoltage : Voltage of the Load terminals
– loadcurrent : Current going to the load (A)
– solarpanelvoltage : Current voltage on the solar panels
– solarpanelcurrent : Amount of current from the solar panels
– Min_Battery_Voltage_Today_Volts : Lows battery voltage in past 24 hours
– Max_Charge_Current_Today_Amps : maximum charge current in past 24 hours in Amps
– Max_Discharge_Current_Today_Amps : maximum discharge current from the battery in past 24 hours in Ampls
– Charge_Amp_Hrs_Today_Amp_Hours : Number of AmpHours charged in past 24 hours
– Discharge_Amp_Hrs_Today_Amp_Hours : Number of AmpHours discharged in past 24 hours
– Charge_Watt_Hrs_Today_Watt_Hours : Number of Watt Hours charged in past 24 hours
– Discharge_Watt_Hrs_Today_Watt_Hours : Number of Watt Hours discharged in past 24 hours
– Controller_Uptime_Days : Number of days the controller has been on
– Total_Battery_Over_Charges_Count : Total count of Over charges of Battery
– Total_Battery_Full_Charges_Count : Total count of the number of times the battery has been fully charged
– Controller_Type : 2560 – Renogy 10A Wanderer
– wakecount : Number of times the Mini Pro Processor has been awakened. Only reset to zero if the processor has rebooted
– auxa : Additional information – will be defined later
– solarpresent :Additional information – will be defined later
– WR3BoardPresent :Additional information – will be defined later
– justbooted : 1 if just booted
– lowbattery : Additional information – will be defined later
– mic : CRC – What is used for message validation
Next up we will be discussing the MODBUS interface to the Renogy Wanderer RS232 port and also the MODBUS interface to the WeatherRack3 sensor.