BME280 Nextion Display 上的温度、湿度和压力
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
应用和在线服务
![]() |
| |||
![]() |
|
关于这个项目
有很多显示 将图形用户界面添加到 Arduino 的选项 板。然而,它们中的大多数需要大量的内存和处理时间,并且不适合 Arduino 内存和处理能力有限的板,例如 Arduino UNO 或 Arduino Nano .当内存有限且需要高级用户界面时,智能可编程串行下一个显示器 是一个受欢迎的选择。 Itad 提供免费的Graphical Nextion Editor 用于设计显示器的用户界面。
BME280 是一个非常准确的组合温度 , 湿度 , 和 气压 传感器。它可以连接I2C 或 SPI 界面,
可视化 具有完整的 Nextion Display 支持,我一直在为 Nextion 计划一个教程 支持一段时间。我还想为 BME280 制作教程 传感器。最后我决定将它们结合起来,制作一个显示温度的教程 , 湿度 , 和 气压 来自 BME280 在 Scope 的 3 个通道上 (波形 ) Nextion Display 上的组件 .
第 1 步:组件

- 一个 Arduino 兼容板(我使用 Arduino Nano,因为我有一个,但任何其他都可以)
- 一个 BME280 传感器模块
- 一个 Nextion 串行接口智能显示器 (我使用了 NX4024K032_11 但任何其他也应该工作)
- 4 女-女 跳线
- 要对显示器进行编程,您还需要一个 5V USB转TTL串口转换器模块
步骤 2:将 Nextion 显示器连接到 USB 串行通信模块



对 Nextion Display 进行编程 使用 Nextion 编辑器 您需要将它与 USB 转 TTL 串行转换器连接起来 到您的计算机:
- 连接 Nextion Wires 连接器 到显示 (图一 )
- 如果您的USB转串口模块 是可配置的,请确保将其设置为提供 5V 电源 (图二 )(在我的情况下,我需要使用电源选择跳线对其进行配置)
- 连接地线 (黑线 ) 来自 Nextion Display 到接地引脚 USB转TTL串行转换器模块 (图二 )
- 连接电源 (+5V) 线 (红线 ) 来自 Nextion Display 电源(VCC/+5V)引脚 USB转TTL串行转换器模块 (图二 )
- 连接 RX 线 (黄线 ) 来自 Nextion Display 到 TX 引脚 USB转TTL串行转换器模块 (图二 )
- 连接TX 线 (蓝线 ) 来自 Nextion Display 到 RX 引脚 USB转TTL串行转换器模块 (图二 )
- 连接USB转TTL串行转换器模块 使用USB 数据线 连接到计算机 (图 3 )
第 3 步:启动 Nextion Editor,并选择 Display Type 和 Orientation




对 Nextion Display 进行编程 ,您将需要下载并安装 Nextion 编辑器 .
- 启动 Nextion 编辑器 (图一 )
- 从菜单 选择 |新建文件 | (图一 )
- 在“另存为 " 对话框,输入项目文件名,然后选择保存项目的位置(图片 2 )
- 点击“保存 " 按钮(图片 2 )
- 在“设置 " 对话框,选择显示类型 (就我而言NX4024K032_11 ) (图 3 )
- 点击“显示 " 标签显示显示设置 (图 4 )
- 选择水平 显示方向(图片 4 )
- 点击“确定 " 按钮关闭对话框(图 4 )
第 4 步:在 Nextion 编辑器中:添加和配置 Waveform(Scope) 组件




我们需要添加一个 Scope 组件,并将其配置为具有 3 个用于 Temperature 的通道 , 压力 , 和 湿度 :
- 在“工具箱 " 在左边点击 "Waveform " 组件(图 1 ) 将其添加到设计区域(图片 2 )
- 调整组件大小以填满显示屏(图片 3 )
- 在“属性 ” 工具箱中,设置“ch”的值 " 属性到 "3 " (图 3 )
- 在“属性 ” 工具箱,设置“dir”的值 " 属性为 "从右到左 " (图 4 )
第 5 步:在 Nextion 编辑器中:将项目上传到 Nextion 显示器




- 点击“上传 " 按钮(图片 1 )
- 在“上传到 Nextion 设备 ”对话框,点击“Go " 按钮(图片 2 ) 开始上传(图 3 )
- 上传完成后(图 4 ),点击“退出 " 按钮关闭对话框。
第六步:启动Visuino,选择Arduino Board类型


由于 Arduino Nano 只有一个串口 , 并且需要对 Arduino 进行编程 ,您需要对 Arduino Nano 进行编程 Nextion Display 之前 已连接。
要开始对 Arduino 进行编程,您需要拥有 Arduino IDE 从这里安装:http://www.arduino.cc/。
请注意,Arduino IDE 1.6.6 中存在一些严重错误。
请确保您安装的是 1.6.7 或更高版本,否则本教程将无法运行!
Visuino :https://www.visuino.com 也需要安装。
- 启动 Visuino 如第一张图
- 点击“工具 “Arduino 上的按钮 组件(图 1 ) 在 Visuino 中
- 出现对话框时,选择 Arduino Nano 如图2所示
第 7 步:在 Visuino 中:添加 Nextion Display 组件和 Scope 元素



要控制Nextion Display,我们需要在Visuino中添加Nextion Display组件,然后在it中添加控制Scope的元素:
- 输入“下一步 “在组件工具箱的过滤器框中,然后选择“Nextion Display " 组件(图 1 ),并将其放在设计区域
- 点击“工具 “DisplayNextion1 的按钮 组件(图 2 )
- 在“元素 " 编辑器选择“Scope(Wave) ”元素,然后点击左边的“”按钮(图2 ) 添加范围 元素(图 3 )
第 8 步:在 Visuino 中:将 3 个通道添加到 Scope 元素,并连接 Nextion Display




接下来我们需要向 Scope 添加通道。
- 在对象检查器中,单击“... “频道”值旁边的“按钮 " Scope1 的子属性 元素(图片1 )
- 在频道编辑器中选择“频道 ”元素,然后点击3次 在左侧的“”按钮上(图片 2 ) 添加 3 个通道(图片 3 )
- 关闭“频道 " 和显示 "元素 " 对话框
- 连接“输出 " DisplayNextion1 的输出引脚 组件到“In "Serial[0] 的输入引脚 "Arduino 的频道 组件(图 4 )
第 9 步:在 Visuino 中:添加和配置 3 个 Map Range 组件




Nextion Display Scope 通道旨在显示 0.0 之间的值 和 1.0 .要显示温度、湿度和压力,我们需要将这些值转换为 0.0 到 1.0 范围。我们可以为此使用 Map Range 组件:
- 输入“地图 “在组件工具箱的过滤器框中,然后选择“地图范围 " 组件(图 1 ),然后删除 3 个 在设计区
- 选择MapRange1 组件(图 2 )
- 在对象检查器中展开“输入范围 " 属性(图 2 )
- 在对象检查器中设置“Max”的值 "输入范围的子属性 " 属性为 "101000 " (图 2 ) (你可能需要设置不同的值,如果你所在位置的气压差异很大)
- 在对象检查器中设置“Min”的值 "输入范围的子属性 " 属性为 "99000 " (图 2 ) (你可能需要设置不同的值,如果你所在位置的气压差异很大)
- 选择MapRange2 组件(图 3 )
- 在对象检查器中展开“输入范围 " 属性(图 3 )
- 在对象检查器中设置“Max”的值 "输入范围的子属性 " 属性为 "100 " (图 3 )
- 在对象检查器中设置“Min”的值 "输入范围的子属性 " 属性为 "-20 " (图 3 )
- 选择MapRange3 组件(图 4 )
- 在对象检查器中展开“输入范围 " 属性(图 4 )
- 在对象检查器中设置“Max”的值 "输入范围的子属性 " 属性为 "100 " (图 4 )
第 10 步:在 Visuino 中:将 Map Range 组件连接到 Nextion Display Channels



- 连接“输出 " MapRange1 的输出引脚 组件到“In "Elements.Scope1.Channels.Channel1 的输入引脚 " DisplayNextion1 的元素 组件(图 1 )
- 连接“输出 " MapRange2 的输出引脚 组件到“In "Elements.Scope1.Channels.Channel2 的输入引脚 " DisplayNextion1 的元素 组件(图 2 )
- 连接“输出 " MapRange3 的输出引脚 组件到“In "Elements.Scope1.Channels.Channel3 的输入引脚 " DisplayNextion1 的元素 组件(图 3 )
第11步:在Visuino中:添加并连接BME280组件





我们需要添加一个组件来从 BME280 模块读取数据:
- 输入“280 “在组件工具箱的过滤器框中,然后选择“压力温度湿度 BME280 I2C " 组件(图 1 ),并将其放在设计区域
- 我的BME280 模块 有 I2C 地址 118 (0x76 )。如果您的模块具有不同的地址,则需要设置“地址”的值 " 属性(图 2 )
- 连接“压力(Pa) " PressureTemperatureHumidity1 的输出引脚 组件到“In " MapRange1 的引脚 组件(图 2 )
- 连接“温度 " PressureTemperatureHumidity1 的输出引脚 组件到“In " MapRange2 的引脚 组件(图 3 )
- 连接“湿度(%) " PressureTemperatureHumidity1 的输出引脚 组件到“In " MapRange3 的引脚 组件(图 4 )
- 连接“输出 " PressureTemperatureHumidity1 的输出引脚 组件到“In " I2C 的引脚 Arduino 的频道 组件(图 5 )
第 12 步:在 Visuino 中:添加、配置和连接时钟发生器组件



我们可以按原样使用该项目,但是它会一直非常快速地刷新 Scope。如果 Scope 每秒更新 10 次,则效果会更好。为此,我们将添加一个时钟组件来为传感器的读数和示波器的更新计时。
- 输入“时钟 “在组件工具箱的过滤器框中,然后选择“Clock Generator " 组件(图 1 ),并将其放在设计区域
- 在对象检查器中,设置“频率”的值 " ClockGenerator1 的属性 到“10 " (图 2 )
- 连接“输出 " ClockGenerator1 的输出引脚 组件到“时钟 " PressureTemperatureHumidity1 的输入引脚 组件(图 3 )
第 13 步:生成、编译和上传 Arduino 代码


- 在 Visuino 中 , 按 F9 或点击图片1上显示的按钮 生成 Arduino 代码,并打开 Arduino IDE
- 在 Arduino IDE 中 ,点击上传 按钮,编译和上传代码(图片2 )
第 14 步:将 BME280 温度、湿度和压力传感器连接到 Arduino



- 连接3V3 VCC 电源 (红线 ), 地面 (黑线 ),SDA (绿线 ) 和 SCL (黄线 ),到 BME280 模块(图片 1 )
- 连接地线的另一端 (黑线 ) 接地 Arduino Nano 的引脚 板(图 2 )
- 连接3V3 VCC电源线的另一端 (红线 ) 到 3V3 Arduino Nano 的电源引脚 板(图 2 )
- 连接SDA 线的另一端 (绿线 ) 到 SDA/模拟引脚 4 Arduino Nano 板(图 2 )
- 连接SCL 线的另一端 (黄线 ) 到 SCL/模拟引脚 5 Arduino Nano 板(图 2 )
- 图 3 显示地面的位置 , 3V3 电源,SDA/模拟引脚 4 , 和 SCL/模拟引脚 5 ,Arduino Nano 的引脚
第 15 步:将 Nextion 显示器连接到 Arduino




- 断开 Nextion Display 从 USB 到 TTL 串行转换器模块的电线
- 接地
- 断开 Nextion Display 从 USB 到 TTL 串行转换器模块的电线
- 连接地线 (黑线 ) 来自 Nextion Display 到接地引脚 Arduino Nano (图二 )
- 连接TX 线 (蓝线 ) 来自 Nextion Display 到 RX(D0) 引脚 Arduino Nano (图二 )
- 连接 RX 线 (黄线 ) 来自 Nextion Display 到 TX(D1) 引脚 Arduino Nano (图二 )
- 图 4 显示地面的位置 , 5V 电源,RX/数字引脚 0 , 和 TX/数字引脚 1 ,Arduino Nano 的引脚
- 连接+5V 电源线 (红线 ) 来自 Nextion Display 到 5V 电源引脚 Arduino Nano (图 3 )
- 图 4 显示为红色 地面在哪里 , 5V 电源,RX/数字引脚 0 , 和 TX/数字引脚 1 , Arduino Nano 的引脚(蓝色表示上一步中连接的引脚)
第 16 步:然后玩……


恭喜! 您已完成该项目。
图一 显示连接并通电的项目。正如您在图片和视频中看到的 范围 在 Nextion Display 上 将绘制压力 ,温度 ,以及湿度 来自 BME280 模块 .
在图片2 你可以看到完整的Visuino 示意图。
附件是 Visuino 我为本教程创建的项目。您可以在 Visuino 中下载并打开它 :https://www.visuino.com
同一个 zip 中还附有 Nextion Editor Nextion Display 项目 .
FJE6Y04IWE4O3H6.zip
制造工艺
- Raspberry Pi 上的简易温度和湿度
- 实验室“气象站”
- 温湿度数据记录仪
- Arduino 温度。使用 3.2 显示的监视器和实时时钟
- 玩 Nextion Display
- DIY 电压表与 Arduino 和诺基亚 5110 显示器
- Sonar 使用 arduino 并在处理 IDE 上显示
- 如何使用 DHT11 在 Blynk 上读取温度和湿度
- 使用 Nextion Display 构建 Fridgeye 应用程序
- 带 GPS 和 TFT 显示屏蔽的 GPS 位置显示
- 带有实时时钟的 Arduino OLED 温度显示
- Arduboy Clone 与 Arduino Nano 和 I2C OLED 显示器