I built a Weather Observer App, that is includes:
- An Arduino Weather Station that collects, for instance, temperature, humidity, and atmospheric pressure data.
- A Raspberry Pi Weather Base Station that receives data from Arduino Weather Station, stores the data on an SQLite database and exposes a RESP API written in Flask.
With these three components it's possible to observe the weather conditions of remote places (you can build as many Arduino Station as you want and install them anywhere, making it possible to cover large areas) and consequently monitor climate changes on these environments.
Science and Observation
It's possible use the Weather Dashboard in the following https://profbrunolopes.github.io/weather-dashboard/
I used a ngrok tunnel to expose my Raspberry Pi to the Web, and sometimes it's necessary to change the link above. When this happens, this text and the project’s github repository will be both updated).
In Brazil we have a big problem with climate changes caused by human interference on the environment. Thus, it's necessary to observe these changes so it can be possible to act in the environment in order to mitigate the climate problems.
Having this problem in mind i've built a weather station using a Arduino, Raspberry Pi, and pieces of software that allows us to monitor the temperature, humidity, and atmospheric pressure of the environment.
With this project it's possible to cover a wide area using as many Arduino Weather stations as you can. The collected data will be send to the Raspberry PI Weather Base Station through a NRF24l01 transceiver radio (it's possible to make a mesh network to create a Wireless Sensor Network with this transceiver to cover huge areas).
The Raspberry Pi stores the data on an SQLIte database and expose these data through REST API written in Flask microframework. The New Relic solution was used on Raspberry Pi to monitor the REST API performance and some hardware resources too.
It's possible see a running dashboard using this link
The app is divided in three componets. The links to Github repos is bellow:
All three projects are under the MIT license. You can read the license text at:
I'm a 35 years computer scientist that teach computer programming at Fortaleza University, located um Ceará State, northeast of Brazil.
There are many places in Brazil where monitoring weather is hard, like the Amazon rainforst or the northeast "Sertão" (it's a poor region known for it's dry and short on rain weather, just like the Australian outback), rivers, etc. In these regions, human intervention are provoking climate change. Over the years, the average temperature on these regions are increasing, making weather changing monitoring solutions necessary.
Thus, this application was designed to create a climate monitoring solution where anyone can assemble, view and share the collected data.
New Relic's solution was used to monitor Raspberry Pi performance since Raspberry Pi is responsible by:
- Receive data from Arduino Weather Station;
- Store these data on SQLite database;
- Run a REST API built in Flask microframework.
Since Raspberry Pi is doing a lot of work it's necessary to keep it's performance under constant check. The New Relic solution show us how long it takes for Python 3 to process a request, how SQLite behaves during a request. All that while show the usage of Raspberry Pi, the average requests per seconds and also other interesting and important performance indicators.