Skip to content

The ECE398 Weather Station

The ECE 398 Weather Station was designed and realized by students enrolled in Vertically Integrated Projects in the Electrical Engineering department at Bradley University. This project aims to provide students on Bradley's campus a way to monitor and log weather data. In the future, we hope this project expands to hosting multiple weather nodes that can all work together to accurately predict weather on campus.

In its current form, the weather station is just one node that uploads data to a server which is accessible at weather.jacobsimeone.net.

This site serves to document the weather station software, and allow anyone who comes next to get the weather station up and running on their system quickly and efficiently.

CAD can be found on OnShape.

Design Overview

The ECE 398 Weather Station project is split up into 4 different pieces of software:

  • The Firmware, which runs on the microcontroller that collects the data
  • A Broker, which "translates" LoRa messages into network traffic that can be posted to the API.
  • An API, used for saving data to a database, and accessing that data later
  • The Website, which is just an example implementation of what you can do with the data, and is how we currently share our data.
graph LR
    subgraph Weather Station
    ws[Weather Station]
    end
    ws[Weather Station] -->|LoRa| b[Broker]
    subgraph On-Site Server
    b
    end
    b -->|Over Internet, JSON| api([API, node.js])
    subgraph Cloud Server
    api --> db[(Database, redis)]
    db --> api
    api -->|JSON| web[Website, Next.js]
    end
    c[Client] --> web
    web --> c

The weather station, which is equipped with a LoRa radio, transmits data to a broker equipped with the same radio, where the data is parsed and converted into JSON to publish to the API. The API then saves that data to a redis database located on the same physical server, which can also be hosting the website. (The website can be hosted remotely, but you will need to set the API endpoint). Clients cna then connect to the website to view data served by the API.

Broker Radio Location

However the radio is connected to the on-site server is fine, but the radio on the weather station, and the radio on the broker must be in range of each other.

Tech Stack

Maintainers of the weather station should be proficient in the following technologies to effectively support the weather station system:

Firmware

  • PlatformIO - an IDE that works with VsCode and the Arduino framework
  • ESP32 - Microcontroller used in the weather station (this could be switched out in the future)
  • LoRa - Long-Range radio communication technology used to transfer data

API

Website

User Manual

  • TODO: LED Codes