天天看点

Arduino_DH11+0.96OLED_u8glib库 温湿度显示

u8glib_arduino_OLED0.96

一、电路连接

DHT11接线方式:

GND<————>GND

DATA<————>2(数字输入/输出)

VCC<————>5V

OLED接线方式:

VCC<————>3.3V

GND<————>GND

SCL<————>SCL

SDA<————>SDA

LED1<————>10

LED2<————>11

二、实验材料

Uno R3开发板

DH11传感器

面包板及配套连接线

1个0.96OLED

Arduino_DH11+0.96OLED_u8glib库 温湿度显示

//OLED接线方式:

//VCC<————>3.3V

//GND<————>GND

//SCL<————>SCL

//SDA<————>SDA

//

//DHT11接线方式:

//GND<————>GND

//DATA<————>2(数字输入/输出)

//VCC<————>5V

// 128x64 I2C OLED

#include <dht11.h>

// DHT11数字传感器库

#include "U8glib.h"

// OLED库

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);    // I2C

dht11 DHT11;

#define DHT11PIN 2

// Data链接数字针脚2

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)DHT11.humidity);

  u8g.setPrintPos(0, 40);

  u8g.print("TEMP(oC):");

  u8g.setPrintPos(73, 40);

  u8g.print((float)DHT11.temperature);

}

void setup()

{

  Serial.begin(9600);//串口波特率

  Serial.println("DHT11 TEST PROGRAM ");

  Serial.print("LIBRARY VERSION: ");

  Serial.println(DHT11LIB_VERSION);

  Serial.println();

}

void loop()

{

  Serial.println("\n");

  int chk = DHT11.read(DHT11PIN);

  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)DHT11.humidity, 2);

  Serial.print("Temperature (oC): ");

  Serial.println((float)DHT11.temperature, 2);

  u8g.firstPage();  

  do {

    draw();

  } while( u8g.nextPage() );

  delay(200);

}

Arduino_DH11+0.96OLED_u8glib库 温湿度显示

————————————————