· Jacob Simeone · Projects  · 5 min read

Bradley University Weather Station

Data acquisition project to make on-campus weather data accessible to all at Bradley University

Data acquisition project to make on-campus weather data accessible to all at Bradley University

Data acquisition is a rapidly expanding field of Electrical Engineering, especially with the recent rise of Internet of Thngs (IoT) products. The Bradley University Weather Station sets out to convert real-world environmental signals to a digital format that can then be stored and processed later. The BU Weather Station is open-source, allowing anyone to learn from (and hopefully, improve) our implementation of this common project.

Links:

System-Block Diagram

block diagram for weather station

The BU Weather Station follows a typical setup for IoT devices: an embedded controller is on-board the Weather Station itself (top-left in diagram), which measures the digital signals output by sensors and then transmits that data over the radio. Radio data is received by a gateway, which posts data to the internet.

The radios implemented are RYLR896 LoRa radios. LoRa is a long-range proprietary radio protocol owned by Semtech. “LoRa” quite literally stands for “Long-Range.”

It should be noted: in future designs, it is not recommended to use these radios. The radios communicate using all ASCII and don’t really provide any interface for communicating using binary data, which would be better for this application. Furthermore, the RYLR896 radios don’t allow for close control of the internal radio transceiver IC.

The data is then received by a bridge, which acts as a gateway between the radio data and the internet. The software for this application is written targetting linux-y systems. Specifically, the software was tested on Ubuntu-server 24.04.

The data is posted via a JSON request to our custom-built API which then stores the data in a database. Currently, this database is Redis: but the team plans on changing this soon in favor of a SQL database. The API also allows users to pull data.

On the same server, a web-server is running that will serve a website to users that can visualize the weather station data.

Sensors

A core part of the BU Weather Station is the sensors that translate real-world signals into data the on-board controller can read.

Humidity, Pressure, Air Quality - BME680

bme680 sensor on a circuit board

The BME680 by Bosch is a popular environmental sensor that is capable of measuring temperature, pressure, humidity, and theoretically: air quality.

The Weather Station interfaces with the BME680 with the on-board controller over a serial bus, allowing us to pull the data from the sensor every so often.

Air Quality

The BME680 has a VOC (Volatile Organic Compounds) sensor which reports kOhms of resistance to our controller. This value itself does not seem to represent air quality, and Bosch wants users to use their proprietary software in order to calculate something linke air-quality-index. However: there seems to be open-source algorithms to fuse all the values of this sensor to calculate air quality. This is a future feature of the Weather Station.

For now, the Weather Station just reports the raw value from the VOC sensor, in kOhms.

Temperature - RTD

rtd

The Weather Station uses an RTD (Resistive Temperature Device) to detect outdoor temperature. We picked an RTD due to its higher accuracy, with the trade-off of a lower response time.

Custom Printed Circuit Board

custom circuit board

The Weather Station team developed a custom PCB carrying a MAX31865 RTD-to-Digital converter IC.

The RTD sensor connects to this board, which provides an interface between the rtd signal and a digital controller.

Control Board

control circuit board

The Weather Station control board carries or breaks out all the connections for sensors needed to be read by the microcontroller. The control board was created due to issues using proto-board to connect everything, such as assembly time and shorts.

Hardware Design

The Weather Station hardware was designed using OnShape, and is available to all using the link at the top of this document. The part of the Weather Station that goes outside had some requirements:

  • Keep water off of cricitcal electronics
  • Pass cables through for external sensors and the solar panel
  • Well-ventilated to maintain accuracy of sensors mounted internally

Water Sensor

water sensor on custom mount

The BU Weather Station measures if it is raining or not by mounting a resistive water sensor onto a 3d-printed custom mount. The sensor is then connected to the control board internally through a cable-gland on the side of the station.

Vent

hook-shaped air vent

The hooked vent allows airflow without allowing water in.

BME680 Mount

mount for internal bme680

The BME680 sensor is mounted internally against the vent, in order to keep it as close to external air as possible.

Power

solar panel with mount

The BU Weather Station is powered through a solar panel, hooked up to a charge controller, and then a battery. The solar panel tops off the battery during the day, and when there is no sun, the station relies on the battery for power.

The solar panel is connected to the weather station through a connector on the bottom side of the enclosure, which leads to the electronics on the other side.

API

The API allows users to pull data from our service. The data is formatted in JSON and looks like this:

{
  "weatherData": [
    {
      "timestamp_unix_ms": "1745921796526",
      "temp_c": "22.66",
      "humid_prcnt": "45.0",
      "pressure_kpa": "98.36",
      "gas_kohms": "1181.17",
      "rain_an": "0",
      "light_an": "1352"
    }
  ]
}

This API feeds our website: weather.jacobsimeone.net.

Cost

Unfortunately, due to some design decisions of the station: the cost is upwards of $400, which is on the more expensive side of these types of projects. To get the cost down, we would probably move away from using an RTD as a temperature sensor, changing the enclosure to something cheaper, finding a different mounting solution, and removing custom circuit boards.

Another way cost could be driven down is by potentially figuring out a way to use 3d-printed enclosures.

Potential Improvements

  • Reduce cost through simplified electronics and enclosure
  • Improve radio transmission format by moving to a new radio
  • Change enclosure to encourage venting, while keeping water off electronics
  • Attempt a 3d-printed enclosure
  • Improve API
Back to Blog

Related Posts

View All Posts »
Automated Chessboard

Automated Chessboard

An intellegent chessboard that uses an electromagnet to physically move pieces and play against humans.