[Day22] Esp32用STA mode + AHT10 - (程序码讲解)

1.前言

这边主要是为解说前几篇关於AHT10的程序码,此次主要讲的部分是loop中的程序码,因为透过上次讲解已经知道ESPAsyncWebServer不是透过loop分析数值的了,所以这边会讲解loop的部分。

2.程序码

void loop(){  
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    // save the last time you updated the AHT values
    previousMillis = currentMillis;
    // Read temperature as Celsius (the default)
    float newT = myAHT10.readTemperature();
    // Read temperature as Fahrenheit (isFahrenheit = true)
    //float newT = AHT.readTemperature(true);
    // if temperature read failed, don't change t value
    if (isnan(newT)) {
      Serial.println("Failed to read from AHT sensor!");
    }
    else {
      t = newT;
      Serial.println(t);
    }
    // Read Humidity
    float newH = myAHT10.readHumidity();
    // if humidity read failed, don't change h value 
    if (isnan(newH)) {
      Serial.println("Failed to read from AHT sensor!");
    }
    else {
      h = newH;
      Serial.println(h);
    }
  }
}

第137行,AHT10会读取温度(单位预设为摄氏)
第149行,AHT10会读取湿度
第141行,判断newT的值是否为空值(nan)
第151行,判断newH的值是否为空值(nan)

其实这边程序码大多都重复,因为就先读取数值,在判断是否空值(nan),如果是显示错误讯息,如果不是就输出数值,最需要注意的是读取数值的资料型态,一定需要是浮点数(因为读取的温湿度值都有小数点)。

欢迎交流

好了,铁人赛30天说长不长说短不短,如果从开头看到这里,那就代表你已经入门这块领域了(师父引进门修行在个人),因为大多数简单的程序码都比我现在贴得可能都还少行,那复杂更困难的都会破百破千甚至更多,那今天讲解稍微少点,因为下一篇会更加精彩,所以就留给明天的精彩表演拉(我是不是超级大划水阿)。


<<:  D22-(9/22)-长荣航(2618)-差了一个字,就是涨倍和涨十倍的差别

>>:  Firebase推播(上) - 文字推播

Normal Map

大家好,我是西瓜,你现在看到的是 2021 iThome 铁人赛『如何在网页中绘制 3D 场景?从 ...

[Day01] 前言

参赛动机 笔者正在转职前端工程师的路上,过去一直知道有铁人赛,也有参加的念头,但由於本人的惰性及害怕...

我遇到的RWD网页难题

上次文章终於迎来续集 我的第一个RWD网页 这次的网页练习跟上次的网页是同系列的,不过这次可是有记起...

NNI的特性及核心功能

上次开场白说明了NNI最基本的Hyper-parameters(超参)调整,其实只是其中的功能之一。...

硬碟管理实作

昨天介绍完硬碟管理,来实作吧~ TIPS: Array在unRaid指的是资料池,并非POOL(在u...