SurfBeacon
Print Profile(0)
Description
š SurfBeacon: The IoT Forecast Lamp
š„ COMPLETE GUIDE & CODE: View Project on GitHub
(Please check the GitHub repository for the latest firmware updates, wiring diagrams, and detailed troubleshooting.)
š What is SurfBeacon?
SurfBeacon is an intelligent, WiFi-connected lamp designed for surfers who want to stay connected to the ocean without being glued to a screen. Instead of doom-scrolling through forecast apps, SurfBeacon sits on your desk or shelf and visualizes the real-time surf conditions of your favorite spots using beautiful, organic light animations.
If it's glowing, there are waves.
Unlike commercial alternatives, this is 100% self-hosted. There are no subscriptions, no clouds, and no accounts to create. Your "Secret Spot" coordinates are stored locally on the device inside your house.
⨠Key Features
- š± Phone-Free Monitoring: Instant visual feedback.
- Slow Pulse = Chill, small waves.
- Fast Pulse = Bigger waves.
- Rainbow mode = Epic conditions.
- š Multi-Spot Tracking: Track different surf spots. The lamp cycles through any spot that is currently "firing."
- š Interactive Map Picker: The new Web UI features a built-in map. Simply drag the pin to your local break, click the water, and the system automatically validates the coordinates to ensure accuracy.
- š§ Smart Scoring Logic: Choose between "Standard Mode" (Energy calculation) or "Pro Mode" (Wind direction, swell angle, and chop filtering).
- š Telegram Alerts: (Optional) The lamp can send a message to your phone when a spot hits good conditions.
- š Night Mode: Set "Quiet Hours" (e.g., 11 PM - 7 AM) where the lamp automatically turns off so you can sleep.
- š Safe Power: Software-limited power draw ensures it runs safely off any standard USB computer port or phone charger.
š Bill of Materials (BOM)
This project is designed to be affordable and easy to build (~$15-20 total).
- Microcontroller: ESP32 Development Board (ESP-WROOM-32 recommended).
- LEDs: WS2812B Addressable LED Strip (You need a strip of 30 LEDs).
- Recommendation: High density (60+ LEDs/m) strips fit best.
- Power Cable: USB-A to USB-C cable (or Micro-USB, depending on your board).
- Wiring: 3x Jumper wires or silicone wire (Red, Black, Green/Yellow).
ā” Assembly & Wiring
The circuit is very simple and requires minimal soldering.
- Prepare the LEDs: Cut your WS2812B strip to 30 LEDs.
- Solder Connections:
- 5V (Strip) ā VIN or 5V (ESP32)
- GND (Strip) ā GND (ESP32)
- DIN (Data In) ā GPIO 16 (ESP32)
- (Note: GPIO 16 is marked as RX2 on some boards, check your pinout).
- Mounting:
- Put the ESP32 into the base
- Connect the LEDs cables and insert the LED support over the base, sticking leds onto the tube.
- Insert the diffuser.
š» Firmware Setup
- Download the latest code from the GitHub Repository.
- Flash it to your ESP32 using Arduino IDE (Instructions in the GitHub Readme).
- Power on the device.
- Connect to the SurfBeacon_Setup WiFi network on your phone to configure your home WiFi credentials.
- Open your browser to http://surfbeacon.local to access the dashboard.
š Usage
Once online, the Web Interface allows you to:
- Add Spots: Open the map, click on the ocean, and save.
- Customize: Change the LED colors for each spot so you know exactly which break is working just by looking at the color.
- Relax: The lamp will check the forecast every hour and update automatically
š¤ Credits & Acknowledgments
This project stands on the shoulders of giants. Special thanks to:
- Open-Meteo (https://open-meteo.com/): For providing an incredible, free, and open-source weather API without the need for complex keys. All weather data used in this project is provided by Open-Meteo.com under CC BY 4.0.
- OpenStreetMap (https://www.openstreetmap.org/): Map data and tiles used in the spot picker are Ā© OpenStreetMap contributors.
- Leaflet.js (https://leafletjs.com/): For the interactive map interface.
- Libraries: Thanks to the creators of FastLED, ArduinoJson, WiFiManager, UniversalTelegramBot, and TinyExpr for their amazing work on the ESP32 ecosystem.
ā Disclaimer
This device is a hobbyist project, not a safety device.
The forecast data is an approximation and should not be your sole source of information. The ocean is unpredictable. Always assess real-world conditions yourself before entering the water. The creator assumes no liability for missed sessions, broken boards, or safety incidents.
š License
This project is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).






Comment & Rating (0)