0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino的OLED温度计湿度计的制作教程

454398 来源:工程师吴畏 2019-08-01 10:39 次阅读

在这个项目中,我们将制作Arduino OLED温度计和湿度计。我们将从DHT22传感器读取温度和湿度,然后我们将在OLED屏幕上显示数据。

OLED代表有机发光二极管,它们有多种不同尺寸可供选择。我们要使用的尺寸是128X64(1.3英寸)。 OLED通过SPI和I2C通信与Arduino配合使用,但在我们的项目中,我们将使用SPI通信。

电路图

首先,我们将OLED与Arduino连接起来。 OLED可以连接到I2C中的Arduino以及SPI。以I2C方式连接OLED的连接更容易,但SPI通信比I2C更快。因此,我们将使用SPI将OLED与Arduino连接起来。按照以下方式将OLED与Arduino连接:

将OLED上的CS引脚连接到Arduino上的引脚10

将OLED上的DC引脚连接到Arduino上的引脚9

将OLED上的RST引脚连接到Arduino上的引脚8

将OLED上的D1或CLK引脚连接到Arduino上的引脚11

将OLED上的D0或DIN引脚连接到引脚13在Arduino

我们已将OLED连接到引脚13,11,10,9和8,因为这些引脚用于SPI通信。接下来,将DHT22与Arduino连接。 DHT22传感器与Arduino的连接如下:

将DHT22上的VCC连接到Arduino上的5V引脚

将DHT22上的GND连接到Arduino上的GND

将DHT22的数据引脚连接到Arduino上的引脚7

Arduino代码

#include #include“DHT.h “#define DHTPIN 7 #define DHTTYPE DHT22 DHT传感器(DHTPIN,DHTTYPE); U8GLIB_SH1106_128X64 oled(13,11,10,9,8); void setup(){sensor.begin(); oled.firstPage(); do {oled.setFont(u8g_font_fur14);//设置字体大小//在OLED上打印数据oled.drawStr(20,15,“欢迎”); oled.drawStr(40,40,“To”); oled.drawStr(5,60,“DIYHACKING “); } while(oled.nextPage()); delay(5000);} void loop(){float h = sensor.readHumidity();//读取湿度值float t = sensor.readTemperature();//读取温度值float fah = sensor.readTemperature(true);//读取Fahrenheitif中的温度(isnan(h)|| isnan(t)|| isnan(fah)){//检查我们是否收到值或notSerial.println(“无法读取DHT传感器!”); return;} float heat_index = sensor.computeHeatIndex(fah,h);//计算Fahrenheitfloat中的热指数heat_indexC = sensor.convertFtoC(heat_index);//在Celsiusoled.firstPage()中计算热量指数; do {oled.setFont(u8g_font_fub11);//设置字体大小//在OLBled.drawStr上打印数据(0,15,“Temp:”); oled.drawStr(0,40,“Hum:”); oled.drawStr(0,60,“嗨:“); oled.setPrintPos(72,15);//设置尺寸以打印temperatureoled.print(t,0); oled.println(“C”); oled.setPrintPos(72,40);//设置尺寸以打印humidoled.print(h,0); oled.println(“%”); oled.setPrintPos(72,60);//设置尺寸以打印热量indexoled.print(heat_indexC,0); oled.println(“%”);} while(oled。 nextPage()); delay(2000); }

代码说明

首先,我们包括DHT22传感器和OLED的库。 ‘ U8glib ’库适用于OLED,它使代码非常简单。我们将使用“ U8glib ”库的功能显示OLED上的数据。

#include #include“DHT.h”接下来,我们定义了连接DHT22传感器数据引脚的引脚,然后定义了DHT传感器的类型。市场上还有一些其他类型的DHT传感器。之后,我们初始化了连接OLED的引脚。

#define DHTPIN 7 #define DHTTYPE DHT22 DHT传感器(DHTPIN,DHTTYPE); U8GLIB_SH1106_128X64 oled(13 ,11,10,9,8); 在设置功能中,我们给出命令以开始从DHT22传感器接收值。然后我们设置字体并在OLED上打印“欢迎DIYHACKING”5秒钟。如果您不喜欢,可以更改字体大小。你可以在这里找到不同的字体大小。

sensor.begin(); oled.firstPage(); do {oled.setFont(u8g_font_fur14);//设置字体大小//在OLED上打印数据oled.drawStr(20,15,“欢迎”); oled.drawStr(40,40,“To”); oled.drawStr(5,60,“DIYHACKING “); } while(oled.nextPage()); delay(5000);} 在循环函数中,我们从DHT22传感器读取湿度和温度值,然后我们使用温度计算热量指数湿度。

float h = sensor.readHumidity();//读取湿度值float t = sensor.readTemperature();//读取温度值float fah = sensor.readTemperature(true);//读取Fahrenheitif中的温度(isnan(h)|| isnan(t)|| isnan(fah)){//检查我们是否收到值或notSerial.println(“无法读取DHT传感器!”); return; float heat_index = sensor.computeHeatIndex(fah,h);//计算Fahrenheitfloat中的热指数heat_indexC = sensor.convertFtoC(heat_index);//以摄氏度计算热指数最后,我们再次设置字体大小并在OLED上打印温度,湿度和热指数。您可以按照上面讨论的链接更改字体大小,也可以在不同的维度设置数据。

oled.firstPage(); do {oled.setFont(u8g_font_fub11);//设置字体大小//在OLBED.drawStr上打印数据(0,15,“Temp:”); oled.drawStr(0,40,“Hum:”); oled.drawStr(0,60,“嗨:“); oled.setPrintPos(72,15);//设置尺寸以打印temperatureoled.print(t,0); oled.println(“C”); oled.setPrintPos(72,40);//设置尺寸以打印humidoled.print(h,0); oled.println(“%”); oled.setPrintPos(72,60);//设置尺寸以打印热量indexoled.print(heat_indexC,0); oled.println(“%”);} while(oled。 nextPage()); delay(2000); }

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    119

    文章

    6199

    浏览量

    224169
  • 湿度计
    +关注

    关注

    0

    文章

    16

    浏览量

    11028
  • 温度计
    +关注

    关注

    6

    文章

    404

    浏览量

    78469
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    187034
收藏 人收藏

    评论

    相关推荐

    关于远传双金属温度计你真的了解吗?

    温度计
    jzyb
    发布于 :2024年12月13日 09:58:38

    双金属温度计优点竟然这么多!

    温度计
    jzyb
    发布于 :2024年11月27日 10:59:36

    带远传双金属温度计的接线方法竟是这样!

    温度计
    jzyb
    发布于 :2024年11月01日 11:32:07

    你知道双金属温度计该怎么测量吗?

    温度计
    jzyb
    发布于 :2024年10月08日 11:27:29

    注意!双金属温度计该选择轴向or径向?

    温度计
    华泰天科
    发布于 :2024年09月21日 09:08:44

    探针式电子温度计由什么组成

    探针式电子温度计是一种用于测量物体表面或内部温度的高精度仪器,广泛应用于工业、医疗、科研等领域。它由多个精密部件组成,以确保测量的准确性和可靠性。 一、探针式电子温度计的工作原理 探针式电子
    的头像 发表于 09-07 10:54 504次阅读

    探针式电子温度计用来测量什么的温度

    探针式电子温度计是一种高精度的温度测量工具,广泛应用于各种工业、医疗、科研和日常生活中,以确保温度的精确控制和监测。这种温度计通过一个或多个探针来接触被测物体,从而测量其表面或内部的
    的头像 发表于 09-07 10:53 767次阅读

    探针式温度计使用的正确流程是

    探针式温度计,也称为温度探头或热电偶,是一种用于测量温度的设备。它们广泛应用于工业、医疗和科学领域。以下是使用探针式温度计的正确流程的概述: 选择合适的探针式
    的头像 发表于 09-07 10:51 828次阅读

    电阻式温度计是利用什么原理

    电阻式温度计是一种利用物体电阻随温度变化的特性来测量温度的仪器。它的原理基于金属导体的电阻率随温度的升高而增加,而半导体材料的电阻率则随温度
    的头像 发表于 08-27 16:28 1497次阅读

    仪表工程师带你快速了解远传双金属温度计

    温度计
    华泰天科
    发布于 :2024年07月29日 09:49:39

    温度计的种类、常见故障及原因分析

    温度计,作为一种能够准确测量和显示温度变化的工具,在科研、工业、医疗、日常生活等多个领域中都发挥着重要作用。随着科技的发展,温度计的种类越来越丰富,功能也越来越完善。然而,在使用过程中,温度计
    的头像 发表于 05-10 15:36 1453次阅读

    温度计的技术原理及分类 温度计的功能特点及应用场景

    温度计,作为测量温度的专用仪器,在科研、工业、医疗、日常生活等多个领域发挥着至关重要的作用。随着科技的不断进步,温度计的种类、性能和应用范围也在不断扩展。本文将对温度计的技术原理、分类
    的头像 发表于 05-10 15:28 2293次阅读

    如何使用Arduino设置热敏电阻来创建温度计

    在本教程中,我们将指导您如何使用Arduino设置热敏电阻以创建基本温度计。提供的原理图、试验板图和示例代码将使热敏电阻工作变得简单明了。
    的头像 发表于 02-11 10:37 2515次阅读
    如何使用<b class='flag-5'>Arduino</b>设置热敏电阻来创建<b class='flag-5'>温度计</b>

    电子温度计电路图分享

      电子温度计是一种利用电子技术测量温度的仪器,它可以测量热电信号、电阻信号、红外线信号等多种形式的热量转换成的信号。电子温度计的工作原理是基于物质对温度的反应,即当物体的
    的头像 发表于 02-07 16:51 2276次阅读
    电子<b class='flag-5'>温度计</b>电路图分享

    温度计的种类有哪些,各有什么用途

    温度计是用来测量温度的仪器,常见的温度计种类有很多,每种温度计都有其独特的用途和适用范围。以下将详细介绍几种常见的温度计。 气压
    的头像 发表于 01-22 11:34 5407次阅读