Обработка неудачных считываний
Обнаруживайте NaN и повторяйте попытку без аварийного завершения.
«Обработка неудачных считываний» — бесплатный урок Arduino & IoT Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Arduino & IoT Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Arduino & IoT Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Reads Can Fail
Even a good sensor sometimes returns nothing useful. Loose wires, fast polling, or noise can cause a failed read, so plan for it. ⚠️
Meet NaN
When a read fails, the library returns NaN, which means Not a Number. It is the sensor's way of saying I did not get a value.
Why NaN Is Tricky
A NaN never equals anything, not even itself. So you cannot just compare it with a normal number to catch the error.
Detect It with isnan
Use the built-in isnan() function to test a reading. It returns true when the value is the failed NaN result.
if (isnan(t)) {
}Check Before You Use
Always test a reading before you print or act on it. Skipping this check lets bad data slip into your logic unnoticed.
Check Both Values
Guard temperature and humidity together, since either can fail. If one is NaN, treat the whole reading as bad and skip it.
if (isnan(t) || isnan(h)) {
return;
}Print a Warning
When a read fails, print a clear message instead of a value. Future you will thank present you for the helpful note.
Serial.println("Failed to read DHT!");Retry, Do Not Crash
A single failure is normal, so do not stop the program. Simply retry on the next loop and the reading usually succeeds.
Keep the Last Good Value
For a steady display, store the last good reading and reuse it when a read fails. Your screen never shows an ugly blank.
Slow Down to Fix Failures
If failures pile up, you may be reading too fast or your wiring is loose. A longer delay and a firm connection often cure it.
Robust by Design
Handling errors gracefully is what separates a toy from a real device. Your sensor now survives the occasional hiccup calmly.
Quick Check
A DHT read fails. How should your sketch detect that in code?
Recap
You learned that failed reads return NaN, caught them with isnan, warned instead of crashing, and kept your device steady. 🎉
Часто задаваемые вопросы
Урок «Обработка неудачных считываний» бесплатный?
Да — полный текст урока «Обработка неудачных считываний» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Arduino & IoT Academy, подпишись на CoddyKit PRO. Курс Arduino & IoT Academy содержит 4 уроков всего.
Чему я научусь в уроке «Обработка неудачных считываний»?
Обнаруживайте NaN и повторяйте попытку без аварийного завершения. Ты практикуешь Arduino & IoT Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Arduino & IoT Academy?
Предыдущий опыт не требуется. Arduino & IoT Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Обработка неудачных считываний»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Arduino & IoT Academy?
Да. Каждый урок Arduino & IoT Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Подключение DHT11/DHT22
- Установка библиотеки DHT
- Считывание температуры и влажности
- Обработка неудачных считываний