← Crafts
Swims preview

Swims

Environment pilot Full-stack engineer

Comprehensive environmental monitoring solution — serial/protobuf sensor ingestion with realtime dashboards for water and air quality trials.

Problem

Environmental pilots fail when sensor data stays trapped on USB serial logs. SWIMS unifies protobuf-framed sensor ingestion, Python realtime services, and TypeScript web views so field teams can monitor temperature, pH, dissolved oxygen, and salinity continuously.

What it covers

  • Protobuf SensorData frames over serial from edge acquisition
  • Python realtime ingestion with continuous generator pattern
  • TypeScript web console (swims-web) for live charts
  • Draft monitor modules for graphing and logger utilities
Field probes Acquisition MCU USB serial Python decoder Realtime API swims-web UI
Sensor to dashboard
def get_continuous_sensor_data(self, serial_port='/dev/ttyUSB0', baud_rate=9600):
    with serial.Serial(serial_port, baud_rate, timeout=1) as ser:
        while True:
            incoming_data = ser.read(ser.inWaiting())
            if incoming_data:
                sensor_data = sensor_data_pb2.SensorData()
                sensor_data.ParseFromString(incoming_data)
                self.temperature = round(sensor_data.temperature, 2)
                self.pH = round(sensor_data.pH, 2)
                yield self
SWIMS monitoring dashboard placeholder
Screenshot placeholder — swap for the realtime water-quality chart view.