Inspiration
As amateur astrophotographers, we are constantly pained by the unpredictability of local weather conditions. Local weather phenomena can easily ruin a night - factors like fog & cloud cover can change the visibility from perfect to impossible to work with, with little warning.
We are tired of wasting time travelling out to sites just to see a thick layer of fog, so decided to tackle the problem ourself.
What it does
To target this problem, we have developed an open standard for local astrophotography weather stations and made our own weather station to show how to use it.
Anyone can register their own custom weather station as long as it has a few key bits of data (e.g. location, temperature, humidity, etc) and post their data to our server which performs machine learning techniques to estimate cloud coverage. As well as this, we perform classical weather forecasting, secondary product derivations and moon phase detection.
All of these factor in to our score (0-100) which informs the user which locations around the world have great weather conditions for astrophotography so your time is not wasted.
How we built it
We broke this problem down into three parts:
- Embedded hardware & firmware
- Open standard API
- Frontend to all exploration of data
Our hardware consisted of:
- Raspberry Pi 4
- SI7021 temperature & humidity sensor
- BNP280 barometric pressure & temperature sensor
- Pi camera
- SIM800L sim card network module
Our API has an OpenAPI Schema to allow users to easily upload & download their data. We process their data on arrival and cache the results in our real-time database. We then give back:
- Score: overall conditions combined
- Moon phase
- Moon visibility: affects light pollution
- Cloud Cover
- Fog Cover
- Predicted pressure trends
- Dew point & dew point spread
- All of the raw data the user provided.
Our frontend is built in Vite & React with Material UI icons & recharts for simplistic yet elegant data representation.
Challenges we ran into
We had issues with power management: because of the PI camera we used, a large Pi4 was necessary when an ESP32 would have been sufficient. Furthermore, analogue inputs were a challenge which we couldn't overcome as the Pi didn't support them and because we didn't have an analogue to digital converter.
Finally, the SIM module's reliability is questionable and would require more work to be production ready.
Accomplishments that we're proud of
Working weather station hooked up to our webapp. Clean UI & map of all stations across the planet.
We are particularly proud of our data processing & score - the data is really easy and cheap for everyone to collect and our data processing allows so much value to be extracted and given back.
What we learned
Some team members quickly learnt new technologies and completing a project with such a large scope (frontend, backend & hardware) in such a short timeframe is an experience we will take forward with us.
What's next for AstroWatch
Integration of LUX sensor to improve our fog detection. We would refine the electronics into a Raspberry Pi shield & would improve power management to allow for solar panels to be used.
We would develop our API further, improving the documentation & adding new data processing pipelines.
Our frontend could build further on the Google Maps API and filterable & searchable local weather stations would be useful.
Built With
- camera
- circuit-python
- cnn
- firebase
- firestore
- flask
- machine-learning
- python
- raspberry-pi
- react
- sensors
- typescript
- vite
Log in or sign up for Devpost to join the conversation.