Inspiration

Current weather data we see on the weather app, etc. is predictive. There are no sensors actually sensing data, which is why these reports are often inaccurate. We wanted a way to calculate real time weather, which could be also used to detect poor air quality and fires. This could be used for a wide variety of humanitarian aid. A hyper-localized weather network would be great for disaster preparedness, agriculture planning, and overall community well-being. Also, it could be used to detect natural disasters in real time, such as forest fires.

What it does

Our device senses temperature, AQI, and humidity in a localized area. It updates every 15 seconds in our database. Our website shows the localized weather data wherever our device is located, which is denoted by a "pin" on the map. The device is small and portable, so it could be placed anywhere.

How we built it

We used Arduino to build a device that senses temperature, AQI, and humidity in a localized area. We set up a server in Arch using SQLite to act as communications between our device and the frontend interface. Our devices used community drivers to poll the sensors (before they melted) and sent data to the servers via HTTP requests. We also set up the server to have an API endpoint that could be called by the frontend GUI. The frontend used the Google Maps API and has pins dropped where our devices are. The frontend updates Temperature, AQI, and humidity as the device gathers the data points and passes it through the database. There is a Weather History page that shows past weather data for the location.

Challenges we ran into

The sensors melted. We couldn't scale raw socket communication in C, so we needed to switch to Rust.

Accomplishments that we're proud of

We were fully able to get a device that senses temperature, AQI, and humidity of a specific location sending data to our Postgres server. The frontend is fully fleshed out as well, and has an interactive GUI.

What we learned

We learned that doing a hardware to software full project is much more difficult than anticipated. Creating our own networking protocol for raw socket for data transmission efficiency and minimizing overhead was extremely difficult.

What's next for Project Nimbus

Our next step is to update some hardware. The hardware was old, so some sensors melted. However, it was working for a while. We will also finish feeding the API endpoints into the front end.

Built With

Share this project:

Updates