ArduinoPlayground/sketches/arduino-uno-r4-wifi/ds18b20_payload
…
..
arduino_secrets.example.h
ds18b20_payload.ino
README.md

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.

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:

{
  "topic": "sensors/temperature",
  "payload": {
    "device": "uno-r4-wifi-ds18b20",
    "batchId": 1,
    "samples": [
      {
        "measuredAtUnix": 1793025000,
        "temperatureC": 22.50
      }
    ]
  }
}