玩 Nextion Display
组件和用品
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
![]() |
|
应用和在线服务
![]() |
| |||
|
关于这个项目
下一个显示可以节省Arduino中的程序空间吗?
有时我们想使用彩色图形来创建更吸引眼球的项目。不幸的是,漂亮的图形需要大量资源,例如用于图形库例程的控制器内存和用于存储图像的 SD 卡内存等外部存储器。另一方面,Arduino 控制器资源有限,并不完全适合丰富的图形项目。为了减少资源需求,我们可以使用 nextion 显示。在这种情况下,我们不需要图像的外部存储,我们可以显着降低内存需求。
从控制器的角度来看,nextion 显示器只是一个串行设备,而不是比通常的黑白液晶显示器更昂贵的资源。那么有没有可能在Arduino UNO和nextion screen上搭建气象站?
答案并不完全正确。您可以构建一个,但由于缺乏控制器内存,它的功能非常有限。您不能包含一些历史图表等。要构建功能丰富的气象站,您需要更先进的微控制器。
在本文中,我将展示如何构建具有吸引人的图形和数据记录的特色气象站,这些气象站接收来自许多无线天气传感器的天气数据。该气象站基于 nextion dislay 和 arduino mega 2560。
主要思想
假设我们已经拥有外部天气传感器,例如这个或由著名制造商 OREGON THGN123N 制造。我们将创建自己的中央单元,从这些外部传感器接收天气数据,显示温度、湿度和大气压力,定期将数据保存到 SD 卡并绘制历史数据图表。中央单元还根据压力变化进行某种天气预报。
这个气象站单元的主要特点是,它使用背景图片来显示天气预报,而不是像其他气象站通常那样只用小图标。
表演特技
nextion 显示器的一大缺点是显示器固件不支持透明图像。所以我们不能创建圆形元素。您必须在文本小部件中使用“裁剪”背景以在自定义图像上显示文本数据。就我而言,这意味着当显示背景发生变化时,所有文本小部件背景都应相应更改。所以我们需要为每个天气预报创建几个完整的屏幕。
另一方面,利用压力变化,我们可以做出三种不同类型的天气预报:晴天、多云或下雨(下雪)。还。有两个主要的白天时段:白天和黑夜。所以我们只需要创建 8 个不同的屏幕:
- 晴天(晴天,白天)
- 月亮(晴朗的天空,夜晚)
- 阴天
- 阴天
- 下雨天
- 雨夜
- 下雪天
- 雪夜
所有这些屏幕都必须使用 nextion 编辑器在 nextion 显示中创建。所有这些屏幕为我们的传感器数据的文本字段(温度、湿度、压力)共享相同的小部件名称。当控制器更新屏幕时,它首先选择具有所需背景的相应屏幕,然后更新显示小部件内的传感器数据。
主屏幕数据
主屏幕分为三个主要区域。在显示屏的上一行,您可以找到内部传感器数据:家庭温度和湿度、大气压力、当前时间和日期。它假设我们都住在有普通窗户的房子里,所以房子内外的大气压力是一样的。所以控制器主模块内部只有一个压力传感器,可以准确测量大气压力。

在屏幕的左半部分,您可以找到主要的传感器数据:温度和湿度。方便随时在屏幕上查看主要的外部传感器数据。可以在设置屏幕中定义主传感器的 ID。您可以从可用的传感器 ID 列表中选择所需的 ID。因此,请耐心等待,直到所有外部传感器都将信号发送到控制器。通常需要大约两分钟。
在屏幕右侧,您可以找到来自所有外部和内部传感器的数据:传感器 ID、温度和湿度。信息会定期更改,从而可以监控来自所有传感器的数据。控制器最多支持 4 个外部传感器。如果您只有一个外部传感器,内部传感器数据也会显示在主屏幕的右侧。
控制器内置精确的实时时钟模块,ds3231 允许获取实际时间和日期。该时钟数据用于将传感器数据与时间戳一起记录到 SD 卡中,构建昼夜预测并控制显示屏亮度。
其他画面
nextion 显示中有几个额外的屏幕:
- 显示日出日落时间和月龄的屏幕;
- 控制器设置屏幕;
- 调整实时时钟的屏幕;
- 显示传感器历史数据的屏幕

要进入“日出”屏幕,请点击当前日期的主屏幕。要设置控制器并调整时钟,请点击当前时间。要显示历史数据,请点按温度或压力。
历史日志数据画面
历史数据屏幕有两种模式:1 天周期和 8 天周期。要更改当前模式,请点击图表区域。

历史记录屏幕的左侧和顶部有两个图标工具箱菜单。在左侧工具栏菜单上,您可以选择所需的传感器 ID(从可用的 ID 中选择)。内部传感器的 ID 等于 0。在上方的工具栏上,您可以更改要显示的数据类型:压力、温度或湿度。
设置画面
在设置屏幕上,您可以:
- 自定义主要的外部传感器 ID(等待控制器收到所有传感器的信号);
- 设置早晚时间(当控制器改变显示亮度时);
- 配置显示亮度。

防止控制器挂断
为了增加控制器的稳定性并防止控制器挂起,在原理图中实现了外部看门狗电路。这个电路也可以在其他项目中实现,所以在这里你可以看到下面这个定时器的单独图片。

如果没有通过 Arduino A2 引脚接收到信号,定时器将在大约 2-3 分钟内重置 Arduino 控制器。
结论
天气图文丰富,很养眼,站台工作半年左右很稳定。
代码
源代码
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino源代码
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino示意图
完整的原理图
https://github.com/sfrwmaker/Weather_nextion/blob/master/weather_mega_nextion.jpg制造工艺
- Arduino Pong Game - OLED 显示器
- 使用 Arduino 控制硬币接收器
- Arduino 温度。使用 3.2 显示的监视器和实时时钟
- Arduino 带蓝牙控制 LED!
- 如何将 Arduino Mega 与 NEO-6M GPS 模块连接
- DIY 电压表与 Arduino 和诺基亚 5110 显示器
- BME280 Nextion Display 上的温度、湿度和压力
- Arduino 培训平台
- 使用 Nextion Display 构建 Fridgeye 应用程序
- 使用 Arduino 测量太阳辐射
- 带 GPS 和 TFT 显示屏蔽的 GPS 位置显示
- 带智能显示屏的智能电池充电器多路复用器