Update
TheWeatherFrog iOS app is now in beta testing!! Reach out to me if you'd like to demo it. I plan on submitting it to the app store/play store by Halloween. The website is also available, with limited functionality.
The goal of the project is to be able to remotely measure rain and wind speed in any given field. Typically, we place rain gauges in various fields, then periodically check them. My idea was to create a digital rain gauge that we would be able to continuously monitor on our phones.
The way this happens is that I have programmed an ESP32 microcontroller, using Arudino's IDE, to measure temperature, rain fall, wind direction, wind speed, latitude and longitude. The data is then uploaded into an RDS database at AWS via WiFi or LTE.
The purpose of the project was to get more familiar with creating a product and building it from end to end (i.e. from the hardware to the software) In particular, to get familiar with building iOS & Android applications, programming electronics, and all the backend engineering to enable it.
Here is a picture of the station's "brains" minus the wind direction, anemometer and rain gauge instruments - the casing was designed in Fusion 360 to fit the dimensions of the solar panel, then printed on my 3D printer with PTEG filament. I am currently in the process of designing a printed circuit board (PCB) and 3D modeling the casing/parts that it will go into. The ultimate goal is to have an injection mold of the product and sensors with a custom PCB designed to fit the weather station's unique needs.




For the project, I am using a LILYGO ESP32 microcontroller with a SIM7000G LTE module, a DS18B20 sensor to measure temperature, along with weather instruments that can be found here. I am sending the data to Amazon's SQL database (RDS), then using API gateway, in combination with Lambda, to create API endpoints for my app to pull the data from. Additionally, I am using API's from OpenWeatherMap (weather data/forecasts), Google Places (geocoding/autocomplete), MapBox (maps) & RainViewer (radar) in combination with Firebase (user registration/sign in authentication, saving profile details, etc.)