“V1E GO” Maker Faire May 2024 - Submissions/Entries

Zambretti-OpenWeatherForecaster

A digital display of open weather data for the user’s gps location with Zambretti forecasting [1] using LEDs.

V1 Engineering MPNC project with V1E ESP32 devkit module

What can be better than V1 Engineering[2], Blinkenlights[3], and a good weather forecaster!

Features

  1. Front panel engraved and holes cut by MPCNC primo (V1 Engineering) built by the author.

  2. ESP32 Microcontroller module using genuine components (V1 Engineering). Monitors the following:

    • Wifi Manager [4] allows user to enter and save SSID and Password, as well as save open weather API Key and Adafruit IO API Key.
    • GPS device (Ublox Neo 6M) receives latitude and longitude for use by open weather.
    • DPS310 pressure sensor measures location pressure in hPa (Adafruit).
    • API calls to open weather 3.0 [5] once every two minutes (free) for temperature, humidity, wind-speed, wind-direction, and cloud coverage.
    • Seapressure and dewpoint are calculated using temperature and elevation.
    • API call to open-elevation.com [6] using latitude and longitude once per hour if needed (glitch protection). GPS elevation wanders a bit.
    • API calls to io.adafruit.com [7] to record two minute intervals of weather data. Graphical history on iphone or computer browser.
    • Controls 8 colored leds using Zambretti calculations with 3 hour pressure changes, wind direction and calendar month as inputs.
    • Controls pressure display (HT16K33 driven 8 digit 7-segment) in hPa,
    • Controls (HT16K33 driven 8 digit 7-segment) NTP time-date displays.
    • Controls (HT16K33 driven 4 digit 14-segment) moon phase display in percent and words (like ‘FULL’).
    • Astronomical [8]: calculation of sunrise, sunset, moonrise, moonset from observer location and time-date.
    • Sends JSON packet [9] of time and weather, astronomical, and pressure change data once a second to STM32 Nucleo64 microcontroller.
  3. STM32 Nucleo64 F103RB module for:

    • Receives JSON data packet from ESP32.
    • Numerous GPIO on morpho pinout.
    • TM1637 4 digit 7-segment displays:
    • Sea pressure changes 1 hour, 3 hour, and 6 hours.
    • Location: Elevation, Latitude & Longitude.
    • Open Weather: Temperature, Humidity, Dewpoint (calculated), wind speed, wind direction, cloud coverage.
    • Astronomical: display of sunrise, sunset, moonrise, moonset.
  4. Build:

    • Front panel engrave and hole cutout with V1 Engineering MPCNC Primo :smiley:. Board material is 3/16th marker board 2x4ft from Home Depot.
    • Carcase is constructed with handtools (yes 45 degree miters with a plane, and splines for strength).
    • V1 Engineering genuine ESP32 module :smiley:. Stable, better than ESP8266 and more GPIO pins.
    • STM32 Nucleo64 F103RB ($10 powerful arduino compatible microcontroller with lots of GPIO).
    • Lots of dupont crimping of pins/wires and plastic shells!! These were a source of intermittent behavior.
    • TM1637 4 digit seven segment display modules of various colors.
    • HT16K33 modules (Adafruit) to drive larger .56 inch seven segment displays.
    • Many, many iterations of experimenting and burn-in periods exposing design flaws.
  5. Inspiration:




  1. Zambretti weather forecasting ↩︎

  2. V1 Engineering ↩︎

  3. Blinkenlights definition ↩︎

  4. WifiManager Library ↩︎

  5. OpenWeatherMap One Call API 3.0 ↩︎

  6. Open-Elevation API ↩︎

  7. Adafruit IO ↩︎

  8. Astronomical Sun, Moon, Planets Calculations Library ↩︎

  9. Arduino JSON Library ↩︎

11 Likes