Second endeavor into weather sensors and data acquisition. I'm designing this system a bit differently. I have really admired the way that Fractal Xaos implemented this and the design works perfectly for separating items into different VLAN's.
Heavily inspired by Fractal Xaos Github
- ESP32 MicroMod Processor
- Sparkfun Weather MicroMod Board
- Weather Meter Kit
- 25 Watt Solar Panel and Charger
- 12v 9ah battery
- Waterproof junction box
I did buy extra cable gland joints to have a smaller diameter hole in the junction box. It's not 100% necessary to go smaller. I have the station mounted on a 4x4x8 pressure treated wood, buried 20" in the ground and held in place with some cement.
The weather station itself is isolated. It will continuously collect data. The service-relay
will query the station via REST api calls to get data. It then transforms the data (ever so slightly) and then publishes it to Kafka. From here, services can be attached and detached without data loss (for the most part). In order to graph out the data, there are a couple of helping services. telegraf
directly connects to the Kafka queue and will consume and push data to influxdb
. The grafana-dashboard
then consumes from influxdb to provide chart data of weather events. In the future, there will be another consumer that will store data into a long term database (PostgreSQL).
- Inside the Arduino folder, open up the
Preferences
code, fill in your information for WiFi (SSID and Password). This will be stored in the EEPROM of your ESP32. Once loaded and uploaded to your board, you can then open theWeatherStation
project and upload that to your board. It'll read from the EEPROM to get your WiFi information without the need to hardcode it. - Now that you have gotten the Arduino piece setup, edit the
STATION_URL
in thedocker-compose.yml
file. This is the IP address or URL for the weather station. After thatdocker-compose up -d
should be all that's needed to get all the containers running and actively collecting data.