Arduino制作温湿度计

2023-10-27

之前买的arduino套装,里面有一个LCD显示屏,就想用它加上手头的一些传感器做点实用的东西,顺便验证一下显示屏是否可用。于是想到了可以做一个温湿度计。

实验目的:将温湿度传感器采集的温湿度显示在LCD显示屏上。

首先准备工作:

    1、  arduino主板一个

    2、  面包板一块

    3、  连接线若干

    4、  DHT11温湿度传感器1枚

    5、  1602A LCD显示屏一块(带背光)

    6、  可变电阻一个(或1K电阻一枚,但试验之后发现电阻效果不好,最好是可变电阻)

准备好这些器件后,就开始进行连线编码了。这里有很多需要注意的问题,我所使用的LCD显示屏排针是没有焊接到屏幕上的,所以参考例程连线以及编码后发现屏幕根本就不是预期中显示我想让他显示的字符,只是显示一排共16个小方块,可变电阻怎么调节都没有效果。上网查了很多资料也没有搞定,连线检查了多遍可以保证绝对没有错误。于是在淘宝店家那里咨询了一下,店长说需要把排针焊接到屏幕上才行,不然可能接触不良。开始半信半疑,想办法搞到锡焊焊接上之后果然OK了。如果有人遇到这种问题,可以焊接上再试试。

 

 LCD1602引脚详细说明:

引脚编号

名称

说明

1

Vss

接地 (0V)

2

Vdd

电源 (+5V)

3

Vo

接可变电阻中间引脚

4

RS

Register Select: 
  1: D0 – D7
当做资料解释 
  0: D0 – D7
当做指令解释

5

RW

Read/Write mode: 
  1:
从 LCD 读取资料 
  0: 写资料到 LCD 

6

E

Enable

7

D0

Bit 0 LSB

8

D1

Bit 1

9

D2

Bit 2

10

D3

Bit 3

11

D4

Bit 4

12

D5

Bit 5

13

D6

Bit 6

14

D7

Bit 7 MSB

15

A

背光(电源正极)

16

K

背光(GND)

    

DHT11引脚说明:

 

 

先晒一下效果图:(屏幕排针焊反了。。导致不能直接插到面包板上,只好通过若干导线来解决,给大家提个醒,焊接一定注意好别焊反了)

 

 

接线:

·    将 LCD的 RS, E, D4, D5, D6, D7 依序接到 12, 11, 5, 4, 3, 2 引脚上

·    将 LCD的 Vss 及 RW 接到 GND,Vdd 接到 +5V

·    可变电阻中间引脚接到 LCD的 Vo,剩下的两个引脚,一支接到 5V,另外一支接到 GND

·    DHT11接数字口8.

 

    

编码:程序实现上行显示温度,下行显示湿度。DHT11需要库文件,解压后放入libraries。

下载链接:https://pan.baidu.com/s/1ZqKCAeb5wOc97qh5YG2Urw 提取码: fct6

 代码:

 

/*
 *LCD RS pin to digital pin 12
 *LCD Enable pin to digital pin 11
 *LCD D4 pin to digital pin 5
 *LCD D5 pin to digital pin 4
 *LCD D6 pin to digital pin 3
 *LCD D7 pin to digital pin 2
 *LCD R/W pin to ground
 *10K resistor:
 *ends to +5V and ground
 *wiper to LCD VO pin (pin 3)
*/
#include <LiquidCrystal.h>
#include <dht11.h>
#define DHT11PIN 8
dht11 DHT11;
// initialize the library with the numbersof the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup() {
 pinMode(DHT11PIN,OUTPUT);
  //set up the LCD's number of columns and rows:
 lcd.begin(16, 2);
}
 
void loop() {
  intchk = DHT11.read(DHT11PIN);
 lcd.setCursor(0, 0);
 lcd.print("Tep: ");
 lcd.print((float)DHT11.temperature, 2);
 lcd.print("C");
  //set the cursor to column 0, line 1
  //(note: line 1 is the second row, since counting begins with 0):
 lcd.setCursor(0, 1);
  //print the number of seconds since reset:
 lcd.print("Hum: ");
 lcd.print((float)DHT11.humidity, 2);
 lcd.print("%");
 delay(200);
}

 

源码完整下载:https://pan.baidu.com/s/1ZqKCAeb5wOc97qh5YG2Urw 提取码: fct6

 

显示若是模糊可以调节可变电阻达到最佳效果。

参考资料:

http://www.arduino.cn/forum.php?mod=viewthread&tid=2908

http://www.arduino.cn/forum.php?mod=viewthread&tid=1429

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino制作温湿度计 的相关文章

  • android BluetoothChat 使用来自另一个类的发送接收方法

    您好 我使用 BluetoothChat 示例来与 arduino 进行通信 到目前为止 一切正常 现在我想访问 sendMessage 方法 以便能够不从主类发送数据 而是从我创建的另一个类发送数据 这是BluetoothChat jav
  • C++ 递减单字节(易失性)数组的元素不是原子的!为什么? (另外:如何在 Atmel AVR mcus/Arduino 中强制原子性)

    由于试图通过一些我不知道的简单内容来调试我的代码 我损失了几天的时间 实际上是大约 25 小时的工作 事实证明 在 AVR ATmega328 8 位微控制器 Arduino 上 用 C 递减单字节数组的元素不是原子操作 并且需要原子访问防
  • 如何在观察者中处理具有不同状态值类型的 Observables

    首先是上下文和问题 框架代码在帖子底部 我们正在创建并实现一个 C 框架 以便在 Arduino 等环境中使用 为此 我想使用观察者模式 其中任何对传感器状态变化感兴趣的组件 Observables 可以注册自己 并且它将通过 Observ
  • 如何在Arduino上将int转换为字符串?

    如何转换 int n 到一个字符串 以便当我通过串行发送它时 它作为字符串发送 这是我到目前为止所拥有的 int ledPin 13 int testerPin 8 int n 1 char buf 10 void setup pinMod
  • 在 Android 上将 USB 波特率从 9600 更改为 115200

    我有一个 Arduino 它以 115200 波特率串行发送数据 有一个应用程序以 9600 波特率从 Arduino 接收数据 代码是 Arduino USB serial converter setup Set control line
  • 蓝牙 HC-05 发送错误 1F 仅适用于 INQ 命令

    我的新蓝牙 HC 05 模块有问题 在 AT 模式下 它可以与我需要的所有命令完美配合 除了 INQ 我已经尝试事先发送一大堆其他命令 AT INIT OK AT ORGL OK AT ROLE 1 OK AT CLASS 0 OK 他们都
  • 如何将 char 数组定义为常量?

    这里是 C C 菜鸟 我已经在头文件中定义了它 typedef unsigned char BitChar 9 8 data bytes chars and one width byte char extern BitChar BitFon
  • 如何通过蓝牙在Raspberry Pi 4和Arduino Nano BLE之间进行读写?

    我能够通过 Rpi4 的 bluepy 和 Arduino Nano BLE 的 ArduinoBLE h 连接 Raspberry Pi 4 和 Arduino Nano BLE 不幸的是 当我尝试从 Rpi4 写入 Arduino Na
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • 带/不带类的回调函数指针 C++

    我被困 我正在尝试形成一个函数 它将吃掉无类函数指针和对象中的函数指针 这是我当前的代码 希望能解释更多 它应该在 Arduino 上运行 所以我不能使用大型库 首先 我在 Arduino 上使用这个库 SimpleTimer A time
  • Arduino:连接字符串时崩溃和错误

    我尝试将 AES 256 加密的输出连接到一个字符串 将此字符串与从 Android 手机发送的加密字符串进行比较 基本上 连接似乎有效 但在几次运行后会出现错误 不可读的字符 字符串变得更短而不是更长 或崩溃 它是可重现的 重启后在同一点
  • AVRDUDE Android Arduino ioctl 错误

    我之前的问题 Android 无法使用 AVRDUDE 与 Arduino 通信 https stackoverflow com questions 15596376 android cannot talk to arduino using
  • Arduino 上的 Serial 和 Stream 有什么区别,Serial.write 是如何实现的?

    我很难理解串行和流这两个术语之间的区别 串行不是流的一种吗 我对作业有一些我不明白的问题 计算机通过使用 流或串行 读取 彼此发送的数据来确定每个字节的含义 Also Serial write 我也很困惑 它返回一个字节的数据 对吗 一个字
  • 将浮点数转换为字节数组的 C 函数

    我正在尝试创建一个函数来接受浮点变量并将其转换为字节数组 我找到了一段有效的代码片段 但如果可能的话 希望在函数中重用它 我也在使用 Arduino 环境 但我知道它接受大多数 C 语言 目前工作 float variable 1 11 b
  • 如何使用GSM模块SIM800和Arduino Uno发送短信?

    我正在尝试通过 SIM800 GSM 模块从 Arduino 发送短信 消息到达给定号码 但格式不正确 它显示 消息格式不支持 我在这里添加了我的代码 非常感谢您的快速回复 include
  • 在声明对象之前在全局函数中使用类的成员函数

    我有一个事件处理函数 在该函数中调用了类的成员函数 事件处理函数在类 cpp 文件中声明 但不是类的一部分 它不是成员函数 当我编译代码时 编译器表示该函数在范围内 因为它正在调用全局事件处理函数中的成员函数 我的问题如下 有没有办法在全局
  • 如何提高 PySerial 读取速度

    我目前正在构建一台使用 Arduino Mega2560 作为主控制器的机器 Arduino 通过串口连接 获取命令 执行它并每 1ms 吐出一堆测量数据 我有一个运行 Python 的 Raspberry Pi 为用户提供一个漂亮的 GU
  • 当我启动程序时,Arduino IDE (Win10) 崩溃

    我的 Arduino IDE Win10 上的版本为 1 8 12 在启动时崩溃 运行arduino debug exe我收到此错误消息 C Program Files x86 Arduino gt arduino debug exe Se
  • Arduino 错误:未命名类型?

    我已经编写了一个库 但遇到错误未命名类型的问题 我已经尝试了一切 搜索了几个小时 但没有运气 库放置在arduino sketch文件夹的 libraries 文件夹中 请帮忙 我使用的是 OSX 但 Windows 上也出现同样的问题 这

随机推荐

  • 类和对象

    1 面向过程 在开发一个程序的时候 看中的是中间的过程 每一个过程步骤都需要自己去做 例如C语言 看中的是过程的开发 2 面向对象 当开发一个程序的时候 不看重具体的过程 看中谁能帮我去完成这件事情 找人 对象 帮我去做 前期去设计类的时候
  • N圆最密堆积、最小外接正方形的matlab求解(二维、三维等圆Packing 问题)

    圆形最密堆积 最小外接正方形的matlab求解 二维 三维等圆Packing 问题 0 前言 1 N个圆的最小外接正方形求解 2 N个球的最小外接立方体求解 惯例声明 本人没有相关的工程应用经验 只是纯粹对相关算法感兴趣才写此博客 所以如果
  • cesium for ue->CesiumRunTime

    共118个文件 23283行 含注释 截至2022年11月10日 剩下118个文件 23283行 截至2022年11月20日 剩下108个文件 21646行
  • react补充--hooks

    1 setState setState更新状态的2种写法 1 setState stateChange callback 对象式的setState 1 stateChange为状态改变对象 该对象可以体现出状态的更改 2 callback是
  • 「AIGC」智能美学,AI绘画 API 激发无限创意

    引言 随着人工智能 AI 技术的迅猛发展 AI绘画 API 正在以惊人的速度改变艺术创作的面貌 它不仅为艺术家和创作者提供了全新的创作工具 还激发了无限的创意和想象力 在这个智能美学的时代 让我们一起探索 AI 绘画 API 如何推动艺术创
  • 【转】数据库的设计(E-R图,数据库模型图,三大范式)

    一 数据库设计的概念 数据库设计是将数据库中的数据实体及这些数据实体之间的关系 进行规划和结构化的过程 二 数据库设计的重要性 如果一个数据库没有进行一个良好的设计 那么这个数据库完成之后他的缺点是 1 效率会很低 2更新和检索数据时会出现
  • python最大最小距离算法贴近度评价法

    1 大最小贴近度评价法 概念 贴近度表示两个模糊几何之间的彼此接近程度 在模糊模式识别方法中采用贴近度的大小识别待判别模糊子集的模式类别 为衡量待识别子集的类别 需要判别各个阶段与标杆模糊集合之间的相对贴近程度 上表中第一列是优化 标杆 模
  • 学习TensorFlow,TensorBoard可视化网络结构和参数

    在学习深度网络框架的过程中 我们发现一个问题 就是如何输出各层网络参数 用于更好地理解 调试和优化网络 针对这个问题 TensorFlow开发了一个特别有用的可视化工具包 TensorBoard 既可以显示网络结构 又可以显示训练和测试过程
  • 春招实习前端面试题汇总

    经历了两个月的复习 笔试 面试 现在总结一下 前端面试中我认为经常被问及的问题 计算机网络部分 tcp udp的区别 三次握手 四次挥手 谈谈你对http协议的理解 这里可以深入学习一下HTTPS http1 2 3 ws协议也可以了解 状
  • linux中,管道能够在同一进程中进行通信吗?

    linux中 管道能够在同一进程中进行通信吗 答案是否定的 管道是用于不同进程之间通信 不能再同一进程中进行通信 同一进程中 直接进行参数传递就行了 不设计通信问题 不同进程之间才需要通信 通信类别有多种 如管道 共享内容 其中 管道又有匿
  • 微服务---今年主要实践路

    福州 2021 04 01 潮湿 享受的天气 还是一如往常脑袋里还是昨天搭建4台服务遇到问题 今天提前1小时到公司 整理思路 今天讲一些普通知识记录 网站高手说明 Spring boot 是 Spring 的一套快速配置脚手架 可以基于sp
  • 第17课 处理边界(增加边界)

    文章目录 1 卷积边界问题 2 处理边界 2 1 BORDER DEFAULT 常用 2 2 BORDER CONSTANT 自定义指定像素值 2 3 BORDER REPLICATE 通过插值计算 2 4 BORDER WRAP 另外一边
  • PAT 5 分小组(字符串与字符转换)

    分小组 java 9名运动员参加比赛 需要分3组进行预赛 有哪些分组的方案呢 我们标记运动员为 A B C I下面的程序列出了所有的分组方法 该程序的正常输出为 ABC DEF GHI ABC DEG FHI ABC DEH FGI ABC
  • qt字符串和数字转换

    字符串转数字 qstring转整数的函数如下 qstring转浮点数的函数如下 字符串转十进制整数 QString str 123 int num str toInt 字符串转二进制 bool ok QString str 123 int
  • docker权限问题,ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running

    ERROR Couldn t connect to Docker daemon at http docker localunixsocket is it running 出现这个问题是因为当前用户权限的问题 只要将当前用户加入docker组
  • return R.ok()

    https www cnblogs com liuyi13535496566 p 11626533 html
  • 网络攻防——kali操作系统基本使用-调用摄像头

    1 阅读前的声明 本文章中生成的木马带有一定的攻击性 使用时请遵守网络安全相关的法律法规 恶意攻击操作系统属于违法行为 2 利用kali操作系统的metasploit攻击windows操作系统 kali中打开终端最好是进入root sudo
  • Spring Cloud Alibaba实战(八) - Dubbo + Nacos

    目录 一 Nacos动态配置 二 Nacos注册中心 三 Sentinel之限流 四 Sentinel之熔断 五 Gateway之路由 限流 六 Gateway之鉴权 日志 七 Gateway搭配Nacos实现动态路由 八 Dubbo Na
  • libcareplus生成热补丁文件

    libcareplus生成热补丁文件 kpatch gensrc汇编文件生成 使用kpatch strip的 strip裁剪不需要关注的节 使用kpatch strip的 rel fixup修正重定位信息 通过strip strip unn
  • Arduino制作温湿度计

    之前买的arduino套装 里面有一个LCD显示屏 就想用它加上手头的一些传感器做点实用的东西 顺便验证一下显示屏是否可用 于是想到了可以做一个温湿度计 实验目的 将温湿度传感器采集的温湿度显示在LCD显示屏上 首先准备工作 1 ardui