arduino+dht11+oled(0.96 4pin)

代码使用库共享(包括dht11与U8glib): 
http://download.csdn.net/detail/qq_35177575/9854616(将文件解压后导入到Arduino IDE安装路径中的library文件中即可) 
使用元件:

0.96寸 12864 I2C OLED 128x64规格
DHT11温度模块 湿度模块
ARDUINO UNO
面包板
跳线
u8glib是目前arduino上使用的最多的点阵液晶显示器驱动库,它支持型号众多的液晶显示器,详情查阅:http://clz.me/u8glib/

OLED接线方式: 
VCC<————>3.3V 
GND<————>GND 
SCL<————>SCL 
SDA<————>SDA

DHT11接线方式: 
GND<————>GND 
DATA<————>2(数字输入/输出) 
VCC<————>5V
 

// 128x64 I2C OLED
#include  
// 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);
}

 

原文:https://blog.csdn.net/qq_35177575/article/details/72784584

你可能感兴趣的:(物联网)