亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

玩 Nextion Display

组件和用品

Arduino Mega 2560
× 1
Arduino Mega Proto Shield
× 1
nextion HMI display 2.4"
× 1
SD 读卡器
× 1
DHT22 温度传感器
× 1
SparkFun 大气传感器突破 - BME280
× 1
DS3231 RTC 模块
× 1
RXB6 超外差 433MHz 接收器
× 1
电阻 10k ohm
× 1
电阻 475 ohm
× 1
ne555 计时器
× 1
AC-DC 电源 5v
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE
Nextion Editor

关于这个项目

下一个显示可以节省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

制造工艺

  1. Arduino Pong Game - OLED 显示器
  2. 使用 Arduino 控制硬币接收器
  3. Arduino 温度。使用 3.2 显示的监视器和实时时钟
  4. Arduino 带蓝牙控制 LED!
  5. 如何将 Arduino Mega 与 NEO-6M GPS 模块连接
  6. DIY 电压表与 Arduino 和诺基亚 5110 显示器
  7. BME280 Nextion Display 上的温度、湿度和压力
  8. Arduino 培训平台
  9. 使用 Nextion Display 构建 Fridgeye 应用程序
  10. 使用 Arduino 测量太阳辐射
  11. 带 GPS 和 TFT 显示屏蔽的 GPS 位置显示
  12. 带智能显示屏的智能电池充电器多路复用器