# DS18B20 til payload-server Sketchen måler temperaturen med et Keyestudio KS0023 DS18B20-modul hvert 10. sekund. Målingerne gemmes i en fast ringbuffer og sendes samlet til `https://payloads.p20.dev/api/payloads` hvert 5. minut. Hver måling får sit eget UTC-tidsstempel. Boardet synkroniserer tiden over Wi-Fi og opdaterer tidsreferencen hver 6. time. Bufferen har plads til 1 times målinger. Efter et netværksudfald sendes de ældste batches først; kun et vellykket HTTP 2xx-svar fjerner en batch fra bufferen. Ved uploadfejl prøver sketchen igen efter et minut. Wi-Fi-forbindelsen nulstilles efter hver tredje sammenhængende fejl, og boardet genstarter efter den tolvte. En batch bruger den ældste målings tidsstempel som stabilt `batchId`, så samme batch kan genkendes, hvis et serversvar går tabt og uploaden gentages. Et HD44780-kompatibelt LCD1602 med PCF8574 I²C-backpack viser temperatur, Wi-Fi (`W+`/`W-`), UTC-tid (`U+`/`U-`), heartbeat og antal målinger i bufferen. Under upload viser det batchstatus og HTTP-status. Sensorfejl, uploadfejl og automatisk genstart vises som tydelige tekstbeskeder. Sketchen scanner begge almindelige PCF8574-adresseområder og opdager også et display, der tilsluttes efter opstart. ## Tilslutning | KS0023 | Arduino UNO R4 WiFi | | --- | --- | | `DAT` | D2 | | `VCC` | 5V | | `GND` | GND | KS0023-modulet har pull-up-modstanden til 1-Wire-datalinjen monteret på boardet. | LCD1602 I²C | Arduino UNO R4 WiFi | | --- | --- | | `GND` | `GND` | | `VCC` | `5V` | | `SDA` | `SDA` (eller A4) | | `SCL` | `SCL` (eller A5) | Hvis baggrundsbelysningen tænder, men teksten ikke kan ses, justeres det blå kontrast-potentiometer på I²C-backpacket forsigtigt. ## Secrets Kopiér `arduino_secrets.example.h` til `arduino_secrets.h`. Brug samme `SECRET_SSID` og `SECRET_PASS` som i `wifi_matrix_status`, og indsæt værdien af `API_BEARER_TOKEN` fra repoets lokale `.env` som `SECRET_API_TOKEN`. Den lokale secret-fil er allerede ignoreret af Git. ## Biblioteker og kompilering Installér `OneWire` og `DallasTemperature` i Arduino IDE's Library Manager. `WiFiS3` og `Wire` følger med UNO R4-boardpakken. ```powershell arduino-cli lib install OneWire DallasTemperature arduino-cli compile --fqbn arduino:renesas_uno:unor4wifi sketches/arduino-uno-r4-wifi/ds18b20_payload arduino-cli upload -p COM5 --fqbn arduino:renesas_uno:unor4wifi sketches/arduino-uno-r4-wifi/ds18b20_payload ``` API-payloaden indeholder op til 30 tidsstemplede målinger: ```json { "topic": "sensors/temperature", "payload": { "device": "uno-r4-wifi-ds18b20", "batchId": 1, "samples": [ { "measuredAtUnix": 1793025000, "temperatureC": 22.50 } ] } } ```