当前位置: 首页 > news >正文

第三篇、基于Arduino uno,用oled0.96寸屏幕显示dht11温湿度传感器的温度和湿度信息——结果导向

0、结果

说明:先来看看拍摄的显示结果,如果是你想要的,可以接着往下看。

1、外观

说明:本次使用的oled是0.96寸的,别的规格的屏幕不一定适用本教程,一般而言有显示白色、蓝色和蓝黄一起显示的,虽然dht11温湿度模块形态各异,但是代码都是适用的,因为它们的模块都是一样的。

2、连线

说明:只需要连接三根线。

uno————dht11

    5V--------------VCC
GND--------------GND

    D7--------------DATA

说明:只需要连接四根线。

uno————oled 0.96

    5V--------------VCC
GND--------------GND

 SCL--------------SCL

 SDA--------------SDA

3、源程序

说明:采用非阻塞方式编写,一定时间检测和显示一次温湿度数据,并将对应功能进行函数化,方便移植。

/****************************************dht11 part****************************************/
#include <dht11.h>                                      //include library
#define dht11Pin 7                                      //Define DHT11 sensor connection pins
#define dht11TimeInterval 1000                          //Detect the time interval of a tripdht11 DHT11;                                            //Instantiate an object
unsigned long dht11Times = 0;                           //Record the device running time
int dhtTemp = 0, dht11Humi = 0;                         //Storage temperature  //Storage humidity
/****************************************oled96 part****************************************/
#include <Arduino.h>                                                          //include library
#include <U8g2lib.h>                                                          //include library
#include <Wire.h>                                                             //include libraryU8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);#define oledTimeInterval 1000                                                 //Detect the time interval of a trip
unsigned long oledTimes = 0;                                                  // Record the device running time/****************************************set up and loop part*********************************/
void setup() {u8g2.begin();                                                               //Example Initialize the IIC
}
void loop() {getTempData();                                                              //Obtain the temperature and humidity valuesoledDisplayMath();                                                          //Display math
}
/****************************************oled96 part****************************************/
/*Display math*/
void oledDisplayMath() {if (millis() - oledTimes >= oledTimeInterval) {                              //This command is executed once in a whileoledTimes = millis();u8g2.setFont(u8g2_font_ncenB14_tr);                                         //u8g2_font_6x12_tru8g2.setFontDirection(0);u8g2.firstPage();do {u8g2.setCursor(0, 15);                                                    //0 means start at the first column and 15 means end at row 15u8g2.print("Temp:");u8g2.setCursor(64, 15);                                                    //0 means start at the first column and 15 means end at row 15u8g2.print(dhtTemp);u8g2.setCursor(96, 15);                                                    //0 means start at the first column and 15 means end at row 15u8g2.print(" C");u8g2.setCursor(0, 31);                                                    //0 means start at the first column and 15 means end at row 15u8g2.print("Humi: ");u8g2.setCursor(64, 31);u8g2.print(dht11Humi);u8g2.setCursor(96, 31);                                                    //0 means start at the first column and 15 means end at row 15u8g2.print(" %");} while ( u8g2.nextPage() );}
}
/****************************************dht11 part****************************************/
/*Obtain the temperature and humidity values*/
void getTempData() {if (millis() - dht11Times >= dht11TimeInterval) {dht11Times = millis();DHT11.read(dht11Pin);                               //Update all sensor informationdhtTemp = DHT11.temperature;dht11Humi = DHT11.humidity;Serial.print("Temperature: ");Serial.print(dhtTemp);Serial.print(" (C), ");Serial.print("Humidity: ");Serial.print(dht11Humi);Serial.println(" (%).");}
}

4、注意事项

说明:需要在线下载<u8glib.h>库文件和<dht11.h>库文件。

相关文章:

第三篇、基于Arduino uno,用oled0.96寸屏幕显示dht11温湿度传感器的温度和湿度信息——结果导向

0、结果 说明&#xff1a;先来看看拍摄的显示结果&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;本次使用的oled是0.96寸的&#xff0c;别的规格的屏幕不一定适用本教程&#xff0c;一般而言有显示白色、蓝色和蓝黄一起显示的&#xff0…...

什么是npu算力盒子,算力是越大越好吗?

一、什么是npu算力盒子&#xff1f;该怎么选&#xff1f; NPU&#xff08;神经处理单元&#xff09;算力盒子是一种专门用于进行人工智能计算的硬件设备&#xff0c;其中集成了高性能的NPU芯片。NPU是一种针对深度学习任务进行优化的处理器&#xff0c;具备高度并行计算和低功…...

后端返回文件流时,前端如何处理并成功下载流文件以及解决下载后打开显示不支持此文件格式

一、文件和流的关系 文件&#xff08;File&#xff09;和流(Stream)是既有区别又有联系的两个概念。 文件 是计算机管理数据的基本单位&#xff0c;同时也是应用程序保存和读取数据的一个重要场所。 存储介质&#xff1a;文件是指在各种存储介质上&#xff08;如硬盘、可…...

Ansible的脚本-playbook 剧本

目录 1.剧本&#xff08;playbook&#xff09; 1.playbook介绍 2. playbooks 的组成 3.案例&#xff1a;编写httpd的playbook 4.定义、引用变量 5.指定远程主机sudo切换用户 6.when条件判断 7.迭代 2.playbook的模块 1.Templates 模块 2.tags 模块 3.Roles 模块 1.…...

python lambda表达式表达式详解及应用

目录 Python Lambda表达式的优势 Lambda表达式用法 1. 当作参数传递 2. 使用Lambda表达式过滤列表 3. 使用Lambda表达式计算数学表达式 4. 使用Lambda表达式作为返回值 5. 实现匿名回调函数 Lambda表达式注意事项 总结 Lambda表达式是Python中的一种匿名函数&#xff…...

Windows 10计算机性能优化:让你的电脑更流畅

Windows 10是目前最流行的操作系统之一&#xff0c;但在长期使用过程中&#xff0c;可能会出现一些性能方面的问题。本文将为你介绍如何选择合适的Windows 10版本&#xff0c;并提供一些优化技巧&#xff0c;使你的电脑性能更加流畅。此外&#xff0c;还将特别关注游戏用户和工…...

SpringMVC底层原理源码解析

SpringMVC的作用毋庸置疑&#xff0c;虽然我们现在都是用SpringBoot&#xff0c;但是SpringBoot中仍然是在使用SpringMVC来处理请求。 我们在使用SpringMVC时&#xff0c;传统的方式是通过定义web.xml&#xff0c;比如&#xff1a; <web-app><servlet><servle…...

【CSS系列】第八章 · CSS浮动

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…...

janus videoroom 对接freeswitch conference 篇1

janus videoroom 实时性非常好&#xff0c; freeswitch conference的功能也很多 &#xff0c;有没办法集成到一块呢 让很多sip 视频终端也能显示到videoroom 里面&#xff0c; 实现方式要不两种 1.改源码实现 &#xff08;本文忽略 难度高&#xff09; 2.找一个videoroom管…...

cs109-energy+哈佛大学能源探索项目 Part-2.1(Data Wrangling)

博主前期相关的博客见下&#xff1a; cs109-energy哈佛大学能源探索项目 Part-1&#xff08;项目背景&#xff09; 这次主要讲数据的整理。 Data Wrangling 数据整理 在哈佛的一些大型建筑中&#xff0c;有三种类型的能源消耗&#xff0c;电力&#xff0c;冷冻水和蒸汽。 冷冻…...

__101对称二叉树------进阶:你可以运用递归和迭代两种方法解决这个问题吗?---本题还没用【迭代】去实现

101对称二叉树 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 101. 对称二叉树 https://leetcode.cn/problems/symmetric-tree/ 完成情况&#xff1a; 解题思路&#xff1a; 递归的难点在于&#xff1a;找到可以…...

怎么取消只读模式?硬盘进入只读模式怎么办?

案例&#xff1a;电脑磁盘数据不能修改怎么办&#xff1f; 【今天工作的时候&#xff0c;我想把最近的更新的资料同步到电脑上的工作磁盘&#xff0c;但是发现我无法进行此操作&#xff0c;也不能对磁盘里的数据进行改动。有没有小伙伴知道这是怎么一回事&#xff1f;】 在使…...

如何使用Java生成Web项目验证码

使用Java编写Web项目验证码 验证码是Web开发中常用的一种验证方式,可以防止机器恶意攻击。本文将介绍如何使用Java编写Web项目验证码,包括步骤、示例和测试。 步骤 1. 添加依赖 首先需要在项目中添加以下依赖: <dependency><groupId>com.google.code.kaptc…...

【读书笔记】《亲密关系》

作者&#xff1a;美国的罗兰米勒 刚拿到这本书的时候&#xff0c;就被最后将近100页的参考文献折服了&#xff0c;让我认为这本书极具专业性。 作者使用了14章&#xff0c;从人与人之间是如何相互吸引的&#xff0c;讲到如何相处与沟通&#xff0c;后又讲到如何面对冲突与解决矛…...

面试季,真的太狠了...

金三银四面试季的复盘&#xff0c;真的太狠了… 面试感受 先说一个字 是真的 “ 累 ” 安排的太满的后果可能就是一天只吃一顿饭&#xff0c;一直奔波在路上 不扯这个了&#xff0c;给大家说说面试吧&#xff0c;我工作大概两年多的时间&#xff0c;大家可以参考下 在整个面…...

2023年十大最佳黑客工具!

​用心做分享&#xff0c;只为给您最好的学习教程 如果您觉得文章不错&#xff0c;欢迎持续学习 在今年根据实际情况&#xff0c;结合全球黑客共同推崇&#xff0c;选出了2023年十大最佳黑客工具。 每一年&#xff0c;我都会持续更新&#xff0c;并根据实际现实情况随时更改…...

每日练习---C语言

目录 前言&#xff1a; 1.打印菱形 1.1补充练习 2.打印水仙花 2.1补充训练 前言&#xff1a; 记录博主做题的收获&#xff0c;以及提升自己的代码能力&#xff0c;今天写的题目是&#xff1a;打印菱形、打印水仙花数。 1.打印菱形 我们先看到牛客网的题&#xff1a;OJ链…...

边缘计算如何推动物联网的发展

随着物联网&#xff08;IoT&#xff09;的快速发展&#xff0c;物联网设备数量呈现爆炸性增长&#xff0c;这给网络带来了巨大的压力和挑战。边缘计算作为一种新兴的计算模式&#xff0c;旨在解决数据处理和通信在网络传输中的延迟和带宽限制问题&#xff0c;从而提高数据处理效…...

第五章 栈与队列

目录 一、用栈实现队列二、用队列实现栈三、有效的括号四、删除字符串中的所有相邻重复项五、逆波兰表达式求值六、滑动窗口最大值七、前 K 个高频元素 一、用栈实现队列 Leetcode 232 class MyQueue { public:stack<int> in, out;MyQueue() {}void push(int x) {in.pu…...

PyQt5桌面应用开发(16):定制化控件-QPainter绘图

本文目录 PyQt5桌面应用系列画画图&#xff0c;喝喝茶QPainter和QPixmapQPixmapQPainter绘制事件 一个魔改的QLabelCanvas类主窗口主程序&#xff1a; 总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2…...

【限时解密】某千亿级AI平台内部禁用的技术选型路径(附决策树红蓝对抗推演):3类高危组合+2种隐性技术债触发阈值

第一章&#xff1a;AI原生软件研发技术选型决策树的元模型构建 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发已超越传统框架适配阶段&#xff0c;进入以语义驱动、能力可组合、生命周期自演进为特征的新范式。元模型作为该范式的技术选型中枢&#xff0c;需…...

梅德生物技术快报|重组蛋白纯化工程化实现:Amuc_0119 蛋白 Ni‑NTA 亲和层析全参数方案

这里是卡梅德生物技术快报&#xff0c;本文面向生物工程、蛋白研发工程师&#xff0c;提供 Akk 菌 Amuc_0119重组蛋白纯化的完整工程化方案&#xff0c;包含实验参数、缓冲液体系、质控方法&#xff0c;可直接复现。在微生物功能蛋白研发中&#xff0c;重组蛋白纯化是决定蛋白质…...

大模型概述1

一个中文字符大约0.6个token&#xff0c;一个英文单词一般0.3个token&#xff0c;不同的大模型有自己不同的tokenize。令牌化的方法。FLOPs&#xff1a;算力的参数&#xff0c;多少此浮点型运算大模型分类&#xff1a;分类方式一&#xff1a;多模态的&#xff0c;多种形态的模型…...

网约摩的席卷县城:2公里收费超网约车,外卖员排队加入引争议

2026年春&#xff0c;一场由“网约摩的”掀起的出行变革正席卷广东、湖南多地县城。在茂名、乐昌、衡东等地&#xff0c;一款名为“摩的一下”的网约摩托车平台悄然上线&#xff0c;其定价模式引发热议&#xff1a;起步价6元/2公里&#xff0c;折合每公里高达3元&#xff0c;短…...

从防御者视角复盘:如果你的PHP代码像DVWA Low级一样写,会被黑客怎么‘爆’?

开发者必修课&#xff1a;当你的PHP代码沦为黑客的游乐场 想象一下这样的场景&#xff1a;你三年前写的PHP代码至今仍在线上运行&#xff0c;而某天突然发现数据库中的所有用户信息被黑客拖库。更可怕的是&#xff0c;攻击者利用的正是你当年随手写下的$id $_REQUEST[id];这样…...

一款基于 .NET 开源、跨平台应用程序自动升级组件适

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

江西市口碑好的专业中专学校哪家权威

江西市口碑好的专业中专学校哪家权威在江西省&#xff0c;选择一所口碑好且权威的专业中专学校对于学生未来的职业发展至关重要。赣州现代科技职业学校作为赣州市的一所知名职业高中&#xff0c;在教学质量、实训设施以及就业保障等方面都表现出色&#xff0c;是众多学子和家长…...

何日得遂田圆乐,睡到人间饭熟时

何日得遂田圆乐&#xff0c;睡到人间饭熟时女儿三岁&#xff0c;去年玩我手机&#xff0c;摔破屏幕&#xff0c;于是&#xff0c;拼㙍&#xff08;duo)㙍&#xff08;duo)上网购唱戏机&#xff0c;内存SD卡&#xff0c;上有视频&#xff0c;这样代替手机&#xff0c;手机替代品…...

BilibiliDown:如何高效管理你的B站视频收藏库?

BilibiliDown&#xff1a;如何高效管理你的B站视频收藏库&#xff1f; 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader &#x1f633; 项目地址: https://gitcode.com/gh_mirro…...

Embedding微调避坑指南:ms-swift里5种Loss函数到底怎么选?(附数据集格式样例)

Embedding微调实战&#xff1a;ms-swift框架中5种损失函数的深度选择指南 当你在ms-swift框架中进行Embedding模型微调时&#xff0c;损失函数的选择往往决定了整个项目的成败。面对InfoNCE、余弦相似度、对比学习等不同选项&#xff0c;很多开发者都会陷入"选择困难症&qu…...