Arduino提高篇06—温湿度OLED显示

温湿度OLED显示
本篇结合温湿度传感器DHT11和OLED,将采集到的温湿度显示到OLED屏幕上。

DHT11使用上篇介绍的「DHT sensor library」库,OLED使用U8g2库,库安装请参照前面的文章介绍。

1. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • OLED显示屏
  • DHT11传感器模块

2. 实验步骤

1. 根据原理图搭建电路图。

OLED屏的VCC和GND分别连接开发板的3.3V和GND,OLED屏的SDA和SCL分别连接开发板A4和A5。DHT11模块VCC、GND分别连接到开发板的5V、GND,模块的DATA引脚连接开发板数字引脚2。

实验原理图如下图所示:

电路连接图

实物连接图如下图所示:

实物连接图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

#include <Arduino.h>
#include <U8g2lib.h>
#include <Wire.h>
#include "DHT.h"

#define DHTPIN  2
#define DHTTYPE DHT11

//iic驱动方式
U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  u8g2.begin();
  dht.begin();
}

char h_str[3];
char t_str[3];
float h;
float t;

void loop() {

  h = dht.readHumidity();//读湿度
  t = dht.readTemperature();//读温度(摄氏度)
  strcpy(h_str, u8x8_u8toa(h, 2));    /* convert m to a string with two digits */
  strcpy(t_str, u8x8_u8toa(t, 2));    /* convert m to a string with two digits */

  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_fur20_tf);
    u8g2.drawStr(0, 23, "T");
    u8g2.drawStr(20, 23, ":");
    u8g2.drawStr(40, 23, t_str);
    u8g2.drawStr(90, 23, "C");

    u8g2.drawStr(0, 63, "H");
    u8g2.drawStr(20, 63, ":");
    u8g2.drawStr(40, 63, h_str);
    u8g2.drawStr(90, 63, "%");
  } while ( u8g2.nextPage() );
  delay(1000);
}

3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

3. 实验现象

OLED屏幕刷新显示温湿度。

实验现象

关注微信公众号:TonyCode
Arduino学习交流群:868283450

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

  • 29
    点赞
  • 230
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
根据引用\[1\]的描述,这个温湿度显示器是由ATMEGA328P芯片作为MCU,采用SHT30温湿度探头和0.96寸的OLED屏幕组成的。硬件方面,它包括了PCB设计文件、程序源码和3D打印文件。你可以使用Arduino IDE来编写程序并下载到ATMEGA328P芯片上。 根据引用\[2\]的描述,第一版的时候遇到了一个问题,即ATMEGA328P芯片可以刷bootload,但不能用IDE下载自己写的程序。后来发现是串口芯片CP2102和MCU芯片ATMEGA328P之间的串口通信没有做阻抗匹配。为了解决这个问题,第二版增加了原理图中的R17和R18两个电阻。 根据引用\[3\]的说明,连接这个温湿度显示器只需要四根线。将Arduino Uno的5V引脚连接到OLED屏幕的VCC引脚,将GND引脚连接到OLED屏幕的GND引脚,将SCL引脚连接到OLED屏幕的SCL引脚,将SDA引脚连接到OLED屏幕的SDA引脚。 所以,你可以使用Arduino IDE编写程序,通过连接这四根线将Arduino Uno和0.96寸的OLED屏幕连接起来,实现温湿度显示。 #### 引用[.reference_title] - *1* *2* [0.96寸的温湿度显示器](https://blog.csdn.net/qq_42722691/article/details/108593467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [第三、基于Arduino uno,用oled0.96寸屏幕显示dht11温湿度传感器的温度和湿度信息——结果导向](https://blog.csdn.net/qq_55490300/article/details/130777379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值