Weather station with ModBus over RS-485
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
marcel 71a3a48af7 Si7021 wrap around bug now has a partial workaround 1 month ago
article Heater algoritm now 10/10min, was 5/15min 2 months ago
build-doc Heater algoritm now 10/10min, was 5/15min 2 months ago
datasheet Buffer overflow windspeed fixed 3 months ago
firmware Si7021 wrap around bug now has a partial workaround 1 month ago
hardware/ds-15901_interface Added build document 3 months ago
test_software Tweaked settings heater algorithm 3 months ago
CHANGELOG.md Si7021 wrap around bug now has a partial workaround 1 month ago
LICENSE First commit 4 months ago
README.md Si7021 wrap around bug now has a partial workaround 1 month ago

README.md

Weather station with ModBus over RS-485

Abstract

A weather station build around a SparkFun Weather Meter Kit (SEN-15901). The temperature, humidity and pressure are measured with I2C sensors housed in an RS1 Passive Radiation Shield from Garni. The data is available via an RS485 ModBus RTU interface. The main processor is an Arduino Pro Mini (ATmega328P 5V@16MHz)

Block diagram of weather station

Documentation

An apprehensive description of the project can be found here: https://meezenest.nl/mees/weather_station.html

Sensors

  • SparkFun SEN-15901 Weather Station (wind speed, wind direction and rain fall)
  • Silicon Labs Si7021 (humidity and temperature)
  • Bosch BMP280 (pressure)

Measurements

  • Wind direction
  • Wind speed (average of last 10 minutes)
  • Wind gust (last 10 minutes)
  • Rain fall (last hour)
  • Rain fall (last 24 hours)
  • Temperature
  • Humidity
  • Atmospheric pressure

ModBus

  • RS485 transceiver
  • ModBus address: 14 (fixed in software)

Dependencies

  • Arduino IDE

Arduino libraries

Libraries are included with the source code of this project

Known bugs

There is a bug in the Si7021 chip: when the sensor is exposed to extreme environmental conditions for a longer period (very high or very low humidity), the humidity register will wrap around and give wrong values. (https://community.silabs.com/s/question/0D51M00007xeOo9SAE/si7021-relative-humidity-reading-underflowing-?language=en_US). Workaround: let's assume the humidity will never go below 15%. In the Netherlands a humidity below 20% is rare, but can occur and the minimum value ever measured in De Bilt was 6% (on 1 april 1965). At several other sites in the Netherlands the humidity went as low as 10%. But as this was a one time event and the measurements are doubtful, this event was not registered in the original database. (https://nl.wikipedia.org/wiki/Relatieve_luchtvochtigheid) In rare cases, the humidity value could creep up above 15% (when the actual humidity is 100%) and still give wrong values.

License

Copyright (C) 2023, 2024 M.T. Konstapel

Software

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Hardware and documentation

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.