Arduino基础入门学习——OLED显示屏+DHT11采集温湿度并显示

Arduino基础入门学习——OLED显示屏+DHT11显示温湿度

    • 一、前言
    • 二、准备工作
    • 三、程序代码
    • 四、结束语

一、前言

本篇文章主要使用OLED液晶显示屏模块和DHT11温湿度传感器,获取环境温湿度并显示在显示屏,也算是结合之前我所编写的博客给大家带来一个算是比较完整的教程。

  • DHT11温湿度传感器的使用
  • OLED显示屏的基本使用

然后这是我本篇博客所写的代码及资源,在我的gitee仓库中,可自行下载,点击跳转。

在这里插入图片描述

二、准备工作

硬件:

  • Arduino Uno开发板
  • 四针脚OLED液晶显示屏模块一个
  • 三针脚DHT11温湿度传感器一个
  • 杜邦线若干和面包板一个

软件:

  • Arduino IDE(没安装可看我的另一篇博客点击跳转)
  • Adafruit_SSD1306芯片支持库(IDE内部自行下载安装即可)
  • DHT11支持库
    在这里插入图片描述
    在这里插入图片描述
  • PCToLCD取模软件(这个我也为大家提前准备好了,点击百度云获取,下载解压出来就能用)

电路图:
由于我找不到3引脚的元器件图,所以这里给大家的电路图是三引脚的,大家按对应引脚接线即可。
在这里插入图片描述

三、程序代码

由于我们需要显示中文和特殊字符,所以我们需要使用到取模软件PCToLCD取模软件对:温湿度及特殊字符℃(摄氏度)进行取模。打开取模软件(没下载的在准备工作下面有下载链接或者在我的gitee仓库中下载,直接下载解压就能用)。

在这里插入图片描述

复制所生成的代码,并在Arduino工程文件夹下新建font.h文件粘贴进去并改写。(具体细节我不细说了,不明白的可以看我这篇博客OLED显示屏的基本使用)

在这里插入图片描述

保存后回到我们新建的Arduino程序,引入对应的头文件。

在这里插入图片描述

下面是我的完整代码

#include <Adafruit_SSD1306.h>  //OLED驱动
#include <DHT.h> //温湿度
#include <DHT_U.h>
#include "font.h" //新建的文字头文件

#define pin_dht 7

DHT dht(pin_dht, DHT11);
Adafruit_SSD1306 OLED(128, 64, &Wire, -1);

float temp = 0.0;
float hum = 0.0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  dht.begin();
  OLED.begin(SSD1306_SWITCHCAPVCC, 0x3c);
  OLED.setTextColor(1);
}

void loop() {
  // put your main code here, to run repeatedly:
  temp = dht.readTemperature();
  hum = dht.readHumidity();

  // Serial.print(temp, 1);
  // Serial.print("/");
  // Serial.println(hum, 1);

  OLED.clearDisplay();
  
  OLED.drawBitmap(0, 0, wen, 12, 12, WHITE);
  OLED.drawBitmap(12, 0, du, 12, 12, WHITE);
  OLED.drawBitmap(0, 16, shi, 12, 12, WHITE);
  OLED.drawBitmap(12, 16, du, 12, 12, WHITE);

  OLED.setCursor(32, 3);
  OLED.print(temp, 1);
  OLED.drawBitmap(58, 1, degrees_celsius, 12, 12, WHITE);
  OLED.setCursor(32, 18);
  OLED.print(hum, 1);
  OLED.print("%");
  OLED.display();
  delay(1000);
}

编译下载后,可以看到显示屏显示对应的温湿度。

在这里插入图片描述

四、结束语

好了,以上就是Arduino使用OLED显示屏及DHT11温湿度模块显示温湿度的介绍了,我是“风行男孩”,咱们有缘再见!(码字不易,转载请标明出处,如有帮助,留个痕迹,点个赞即可。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/958768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes相关知识入门详解

一、Pod的滚动升级 1.服务升级的一般思路&#xff1a;停止与该服务相关的所有服务pod&#xff0c;重新拉去更新后的镜像并启动。这种方法存在一个比较现实的问题是逐步升级导致较长时间的服务不可用。 2.Kubernetes滚动升级的思路&#xff1a;通过滚动升级的命令创建新的rc&…

云原生时代,如何构建高效分布式监控系统

文章目录 一.监控现状二.Thanos原理分析SidecarQuerierStoreCompactor 三.Sidecar or ReceiverThanos Receiver工作原理 四.分布式运维架构 一.监控现状 Prometheus是CNCF基金会管理的一个开源监控项目&#xff0c;由于其良好的架构设计和完善的生态&#xff0c;迅速成为了监控…

Qt 5.14.2 学习记录 —— 십구 事件

文章目录 1、事件的概念2、处理事件3、鼠标事件1、鼠标单击和双击2、鼠标移动3、鼠标滚轮滚动 4、键盘事件5、定时器事件6、窗口移动和大小改变事件 1、事件的概念 用户进行操作时会产生事件&#xff0c;事件可以关联处理函数。Qt封装了操作系统的事件机制&#xff0c;然后进一…

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析

10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析 文章目录 10. SpringCloud Alibaba Sentinel 规则持久化部署详细剖析1. 规则持久化1.1 Nacos Server 配置中心-规则持久化实例 2. 最后&#xff1a; 1. 规则持久化 规则没有持久化的问题 如果 sentinel 流控规则没有…

地学专业想提前准备春招?怎么准备自己的简历?

眼看着即将过年&#xff0c;过完年后基本上春招也要开始提上日程 之前咱们说过&#xff0c;很多同学认为自身技术过硬就会一路顺风&#xff0c;自己经验丰富、编程技术过硬&#xff0c;就不愁找不到工作&#xff0c;这固然是取得好offer的基础。 但再好的技术也不可能通过混乱…

IoTDB结合Mybatis使用示例(增删查改自定义sql等)

IoTDB时序库是当前越来越流行以及基于其优势各大厂商越来越易接受的国产开源时序数据库&#xff0c;针对IoTDB的内容不做过多介绍&#xff0c;在使用该时序库时&#xff0c;往往有一定入门门槛&#xff0c;不同于关系型数据库或文档型数据库那般方便维护和接入开发&#xff0c;…

Go语言的栈空间管理

Go 语言的栈空间管理 Go 语言的栈空间管理是其并发模型的核心之一。Go 的运行时环境&#xff08;runtime&#xff09;采用动态栈分配机制&#xff0c;能够根据 Goroutine 的需求动态扩展和收缩栈空间&#xff0c;避免了传统固定栈大小的限制。Go 的栈管理经历了从 分块式栈 到…

细说STM32F407单片机电源低功耗StandbyMode待机模式及应用示例

目录 一、待机模式基础知识 1、进入待机模式 2、待机模式的状态 3、退出待机模式 二、待机模式应用示例 1、示例功能和CubeMX项目设置 &#xff08;1&#xff09; 时钟 &#xff08;2&#xff09; DEBUG、LED1、KeyRight、USART6、CodeGenerator &#xff08;3&#x…

我谈《概率论与数理统计》的知识体系

学习《概率论与数理统计》二十多年后&#xff0c;在廖老师的指导下&#xff0c;才厘清了各章之间的关系。首先&#xff0c;这是两个学科综合的一门课程&#xff0c;这一门课程中还有术语冲突的问题。这一门课程一条线两个分支&#xff0c;脉络很清晰。 概率论与统计学 概率论…

第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

第十五届的题目在规定时间内做出了前5道&#xff0c;还有2道找时间再磨一磨。现在把做的一些思路总结如下&#xff1a; 题1&#xff1a;握手问题 问题描述 小蓝组织了一场算法交流会议&#xff0c;总共有 50人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例…

OpenEuler学习笔记(四):OpenEuler与CentOS的区别在那里?

OpenEuler与CentOS的对比 一、基本信息 起源与背景&#xff1a; OpenEuler&#xff1a;由华为发起&#xff0c;后捐赠给开放原子开源基金会&#xff0c;旨在构建一个开放、多元化的云计算和边缘计算平台&#xff0c;以满足华为及其他企业的硬件和软件需求。CentOS&#xff1a;…

【MySQL — 数据库增删改查操作】深入解析MySQL的create insert 操作

数据库CRUD操作 1 CRUD简介 CURD是对数据库中的记录进行基本的增删改查操作: 2. Create 新增 语法 INSERT [INTO] table_name[(column [&#xff0c;column] ...)] VALUES(value_list)[&#xff0c;(value_list)] ... # value 后面的列的个数和类型&#xff0c;要和表结构匹配…

苍穹外卖—订单模块

该模块分为地址表的增删改查、用户下单、订单支付三个部分。 第一部分地址表的增删改查无非就是对于单表的增删改查&#xff0c;较基础&#xff0c;因此直接导入代码。 地址表 一个用户可以有多个地址&#xff0c;同时有一个地址为默认地址。用户还可为地址添加例如&q…

从ChatGPT热潮看智算崛起

2025年1月7日&#xff0c;科智咨询发布《2025年IDC产业七大发展趋势》&#xff0c;其中提到“ChatGPT开启生成式AI热潮&#xff0c;智能算力需求暴涨&#xff0c;算力供给结构发生转变”。 【图片来源于网络&#xff0c;侵删】 为何会以ChatGPT发布为节点呢&#xff1f;咱们一起…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

【express-generator】06-RESTFUL API设计(第二阶段)

前言&#xff1a; 前面我们学习了第一阶段的express-generator内容以及做了对应练习&#xff0c;现在我们正式开始第二阶段的学习以及练习。本篇介绍的内容是RESTFUL API设计。 第二阶段的大纲如下&#xff1a; RESTful API 设计&#xff1a; 学习如何设计符合 REST 原则的 …

Python 预训练:打通视觉与大语言模型应用壁垒——Python预训练视觉和大语言模型

大语言模型是一种由包含数百亿甚至更多参数的深度神经网络构建的语言模型&#xff0c;通常使用自监督学习方法通过大量无标签文本进行训练&#xff0c;是深度学习之后的又一大人工智能技术革命。 大语言模型的发展主要经历了基础模型阶段(2018 年到2021年)、能力探索阶段(2019年…

【深度学习】2.视觉问题与得分函数

计算机视觉任务 可以通过神经网络搜索是什么类别的动物。 图像实际就是含有数值的三维矩阵。 像素值从0-255可以表示亮度递增的参数。数字越大&#xff0c;像素点越亮。 最后的3表示三个颜色通道&#xff0c;常见的如JPG、RGB等。 现实场景容易发生各种遮蔽现象。 计算机判断…

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

使用Edge打开visio文件

使用Edge打开visio文件 打开Edge浏览器搜索‘vsdx edge’ 打开第一个搜索结果 Microsoft Support 根据上述打开的页面进行操作 第一步&#xff1a;安装Visio Viewer 第二步&#xff1a;添加注册表 桌面新增文本文件&#xff0c;将下面的内容放入新建文本中&#xff0c;修…