390880244 发表于 2018-10-2 21:35:40

用Arduino做温湿度显示器是代码出现问题

// 128x64 I2C OLED
#include "DHT.h"
// DHT22数字传感器库
#include "U8glib.h"
// OLED库

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);    // I2C

#define DHTPIN 2
#define DHTTYPE DHT22   // DHT 22(AM2302)
DHT dht(DHTPIN, DHTTYPE);

void draw(void) {

u8g.setFont(u8g_font_8x13); //使用8x13大小的字符
u8g.setPrintPos(0, 20); // 对应 x,y 轴值
u8g.print("HUMI(%) :");
u8g.setPrintPos(73, 20);
u8g.print((float)DHT22.humidity);
u8g.setPrintPos(0, 40);
u8g.print("TEMP(oC):");
u8g.setPrintPos(73, 40);
u8g.print((float)DHT22.temperature);
}

void setup()
{
Serial.begin(9600);//串口波特率
Serial.println("DHT22 TEST PROGRAM ");
Serial.print("LIBRARY VERSION: ");
Serial.println(DHT22LIB_VERSION);
Serial.println();
}

void loop()
{
Serial.println("\n");

int chk = DHT22.read(DHT22PIN);

Serial.print("Read sensor: ");
switch (chk)
{
    case DHTLIB_OK:
                Serial.println("OK");
                break;
    case DHTLIB_ERROR_CHECKSUM:
                Serial.println("Checksum error");
                break;
    case DHTLIB_ERROR_TIMEOUT:
                Serial.println("Time out error");
                break;
    default:
                Serial.println("Unknown error");
                break;
}

Serial.print("Humidity (%): ");
Serial.println((float)DHT22.humidity,2);

Serial.print("Temperature (oC): ");
Serial.println((float)DHT22.temperature,2);

u8g.firstPage();
do {
    draw();
} while( u8g.nextPage() );

delay(10000);
}

FishGan 发表于 2018-10-4 13:59:32

本帖最后由 FishGan 于 2018-10-4 14:00 编辑

把59行的代码Serial.println((float)DHT22.humidity,2);改成
Serial.println((float)dht.humidity,2);
就行了。62行也对应改一下

gada888 发表于 2018-10-9 10:44:35

学习了

390880244 发表于 2019-7-19 15:57:08

FishGan 发表于 2018-10-4 13:59
把59行的代码改成


大神!

390880244 发表于 2019-7-19 15:57:13

FishGan 发表于 2018-10-4 13:59
把59行的代码改成


大神!
页: [1]
查看完整版本: 用Arduino做温湿度显示器是代码出现问题