How koonosuke/tsukechi-kushihara-waterlevel works
This repository’s active application is ESP32-C3 water-level telemetry firmware. Its main workflow reads and validates ultrasonic distance measurements, then sends a JSON report with cellular signal metrics to Soracom; failures are retained for later reporting and can trigger deep sleep. The sampled source shows these stages in src/main.cpp. The tree also contains a PCF8563 Arduino library, but the available excerpts do not show it participating in the firmware workflow, so it is omitted here.
Main entry points: main.cpp Telemetry sender
Components 10
Measurement
- Firmware loop
src/main.cpp - Distance validation
src/main.cpp
Cellular telemetry
- Telemetry sender
src/main.cpp - Signal metrics
src/main.cpp - JSON report
src/main.cpp
Failure recovery
- NVS log store
- Retry and sleep
src/main.cpp
Other components
- Ultrasonic sensor
- LTE modem
- Soracom endpoint
Connections 13
- Firmware loop → Ultrasonic sensor: reads UART
- Firmware loop → Distance validation: validates frames
- Firmware loop → Telemetry sender: calls on sample
- Telemetry sender → Signal metrics: queries metrics
- Signal metrics → LTE modem: sends AT commands
- Telemetry sender → LTE modem: configures and posts
- Telemetry sender → NVS log store: reads prior logs
- Telemetry sender → JSON report: assembles report
- JSON report → LTE modem: writes request body
- LTE modem → Soracom endpoint: posts report
- Telemetry sender → NVS log store: stores failed-send metrics
- Telemetry sender → Retry and sleep: handles post failure
- Retry and sleep → LTE modem: switches power off