FROM TWIN TO HARDWARE
Device protocol
ESP32-S3 → JSON batch every 15 minutes. Three readings, original timestamps.
POST /api/ingest
Click “Prepare test payload” to create a timestamped, deterministic 3-reading batch.
ESP32-S3 · pin map
| Peripheral | Pin assignment |
|---|---|
| ADS1115 I²C SDA | GPIO 8 |
| ADS1115 I²C SCL | GPIO 9 |
| pH probe | ADS A0 |
| TDS / EC probe | ADS A1 |
| Turbidity probe | ADS A2 |
| DS18B20 temperature | GPIO 4 |
| RGB status lamp | GPIO 18 |
| Sample pump / valve | GPIO 17 · MOSFET + flyback diode |
| Buzzer | GPIO 16 |
| microSD SPI | CS 10 / MOSI 11 / SCK 12 / MISO 13 |
Device-side detection, timestamped SD evidence and GSM alerts continue during Wi-Fi loss. The server validates shape and runs stateless sensor-fault and hard-bound checks. Stateful persistence decisions remain on the node.
EC25 = EC / (1 + 0.02 × (T − 25)); TDS = 0.5 × EC25. Flow is usage context. No drinking-safety conclusion has been made.