Håndter mislykkede avlesninger
Oppdag NaN og prøv på nytt uten at programmet krasjer
Håndter mislykkede avlesninger er en gratis leksjon i Arduino & IoT Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Arduino & IoT Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Arduino & IoT Academy inneholder totalt 4 leksjoner.
Målinger kan mislykkes
Selv en god sensor kan av og til returnere noe som ikke kan brukes. Løse ledninger, for hyppige avlesninger eller støy kan føre til en failed read, så planlegg for det. ⚠️
Møt NaN
Når en avlesning mislykkes, returnerer biblioteket NaN, som betyr Not a Number. Det er sensorens måte å si at den ikke fikk noen verdi.
Derfor er NaN vanskelig
En NaN er aldri lik noe, ikke engang seg selv. De kan derfor ikke bare sammenligne den med et vanlig tall for å oppdage feilen.
Oppdag det med isnan
Bruk den innebygde funksjonen isnan() til å teste en måling. Den returnerer true når verdien er det mislykkede NaN-resultatet.
if (isnan(t)) {
}Kontroller før De bruker verdien
Test alltid en måling før De skriver den ut eller reagerer på den. Hvis De hopper over denne kontrollen, kan ugyldige data snike seg ubemerket inn i logikken.
Kontroller begge verdiene
Kontroller temperature og luftfuktighet sammen, siden begge kan mislykkes. Hvis én av dem er NaN, skal hele målingen behandles som ugyldig og hoppes over.
if (isnan(t) || isnan(h)) {
return;
}Skriv ut en advarsel
Når en avlesning mislykkes, skriver De ut en tydelig message i stedet for en verdi. De vil takke Dem selv senere for denne nyttige meldingen.
Serial.println("Failed to read DHT!");Prøv på nytt uten å krasje
Én enkelt feil er normalt, så ikke stopp programmet. Prøv ganske enkelt på nytt i neste løkke; da lykkes avlesningen vanligvis.
Behold den siste gyldige verdien
For et stabilt display lagrer De den last good reading og bruker den på nytt når en avlesning mislykkes. Skjermen viser da aldri et stygt tomrom.
Senk tempoet for å løse feil
Hvis feilene blir hyppigere, kan De lese av for raskt, eller ledningene kan være løse. En lengre delay og en solid tilkobling løser ofte problemet.
Robust fra starten av
Å håndtere feil på en god måte skiller en lekeoppkobling fra en ekte device. Sensoren Deres tåler nå sporadiske problemer uten å miste besinnelsen.
Hurtigsjekk
En DHT-avlesning mislykkes. Hvordan bør sketchen oppdage dette i koden?
Oppsummering
De lærte at mislykkede avlesninger returnerer NaN, fanget dem opp med isnan, skrev ut en advarsel i stedet for å krasje og holdt enheten stabil. 🎉
Lær deg C++ med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Håndter mislykkede avlesninger» gratis?
Ja – hele teksten i «Håndter mislykkede avlesninger» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Arduino & IoT Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Arduino & IoT Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Håndter mislykkede avlesninger»?
Oppdag NaN og prøv på nytt uten at programmet krasjer Du øver på Arduino & IoT Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Arduino & IoT Academy?
Ingen tidligere erfaring er nødvendig. Arduino & IoT Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Håndter mislykkede avlesninger»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Arduino & IoT Academy-leksjonen?
Ja. Alle Arduino & IoT Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Koble til DHT11/DHT22
- Installer DHT-biblioteket
- Les temperatur og luftfuktighet
- Håndter mislykkede avlesninger