电源设计技术信息网站

FAQ   订阅电子杂志   English   繁體中文   日本語   한국어

下载中心

TECH INFORaspberry Pi初学者指南

使用Crystal Signal Pi第2部分: 使用Raspberry Pi创建警示灯解决方案 —中间件

这篇文章来源于DevicePlus.com英语网站的翻译稿。

Crystal Signal Pi middleware

原文最初由deviceplus.jp发布,本文为英译版。

“Crystal Signal Pi”系列的第二个部分将重点介绍中间件。

Crystal Signal Pi Control Panel

Crystal Signal Pi中间件的面板上有四个菜单:“Control Panel(控制面板)”、“Log(日志)”、“Settings(设置)”以及“ctrl”。因为查看点亮的式样是非常容易的,所以未来通过Crystal Signal Pi创建的DIY项目将会非常有用。

让我们来看一下如何查看和使用每个屏幕。

在本文中,我们将使用与上次相同的Raspberry Pi设置。

当您已经可以从浏览器访问Raspberry Pi IP地址的时候,我们就可以开始了。本文使用IP地址是“192.168.0.9.”。

“控制面板”和“Ctrl”屏幕

在“控制面板”屏幕上,从Crystal Signal Pi浏览器运行“警报设置”,会出现“Status Response(状态响应)”窗口。您可以在“状态响应”窗口中找到“Ctrl”屏幕。

有关如何使用这些工具的更多信息,请查看软件用户手册,或查看GitHub上的英文信息(截止2017年8月,GitHub上有了更新的版本。)

Crystal Signal Pi Web UI

图 1

如何使用Web UI功能

  • • 通过左右移动滑块,您可以控制LED的颜色(RGB值)以及灯光闪烁的速度。
  • • 可以在此处切换点亮/灯光闪烁/非同步闪烁按钮。
  • • 非同步闪烁是一项可以使RGB颜色在每次闪烁时都发生变化的功能。灯光闪烁的同时,颜色也会发生变化。
  • • infoText 中包含了服务协议。
  • • 您可以为应用程序的响应显示选择HTML 和JSON格式。
  • • 单击“Turn off alert(关闭警报)”按钮将会熄灭LED灯。
  • • 单击“Send(发送)”按钮,将会使您的警报设定为当前设置。

 

LED灯有三种点亮类型。您可以使用按钮对其进行设置。

  1. 1. 标准“点亮”功能,LED灯将以您指定的颜色点亮。
  2. 2. “灯光闪烁”功能,可以使LED灯光持续闪烁。
  3. 3. “非同步闪烁”功能,将“灯光闪烁”功能与颜色随机显示功能相结合(想要进一步了解“非同步闪烁”功能,请参考本系列文章中“设置LED”部分的视频链接)。

 

可以通过在此处移动滑块来对颜色进行选择。每个程序设计的相关细节,请参阅“如何使用API函数”PDF文件中的表格。

如何使用API函数

参数 应用
颜色 每个LED的RGB值可以在0~255的范围内进行设置
模式 为LED选择“点亮”或“灯光闪烁”功能。将值设置为0会将其置于“点亮”功能,1为“灯光闪烁”功能,2为“非同步闪烁”功能。默认值为0。
周期 当模式值设置为1时,本参数用于选择灯光闪烁的时间间隔(单位毫秒)。默认值为1000(每秒闪烁一次)。
重复次数 当模式值设置为1时,本参数用于设置闪烁次数。默认值为0(无限次)。
ack 用于选择警报的启动和停止。默认值为0,表示发出警报(LED灯将会亮起)。如果选择ack=1,不论其他参数如何设置,LED灯将会熄灭。
json 设置json=1,将通过JSON格式发送当前的Crystal Signal Pi设置。在这种情况下,将会忽略其他参数设置。本参数用于获取不受shell脚本等影响的当前设置。
info 本参数包含了服务协议内容。

通过屏幕左上角的颜色选择滑块可以很容易地对颜色进行调整。

右上角的滑块,也就是“周期”参数,用于选择灯光闪烁的时间间隔。这在运行“灯光闪烁”和“非同步闪烁”功能的时候都非常有用。设置的值越大,灯光闪烁的就越慢,从而产生一种渐强渐弱的效果。此外,即使在“灯光闪烁”和“非同步闪烁”功能中将该参数设定为相同的值,两者闪烁的速度也不同(“灯光闪烁”功能中闪烁的更快)。

位于底部的“重复次数”功能可以控制LED灯闪烁的次数。仅在运行“灯光闪烁”功能时有效。值设为0时,闪烁次数为无限次。

“Info Text(信息文本)”中您可以设置服务协议的字符串。

包含参数的URL字符串会自动显示在“QueryString”一栏中。

例如,在开始设置中间件的参数时,将会显示如下所示的URL(单击“发送”按钮就会弹出窗口)。

<strong>http://(Raspberry Pi IP Address)/ctrl/?color=100,80,0&amp;mode=0&amp;repeat=0&amp;period=1000&amp;json=0</strong>

 

移动滑块,按下按钮,或者进行任何操作,都会运行该函数(它将运行发送指令)。当停止一个操作时,请尝试按下“关闭警报”按钮。或者,如果您想以相同的值重新开始,请按下“发送”按钮。

crystal-signal-pi-2-status-response

图 2

这是“状态响应”窗口。当在响应窗口输入“Html”时,参数的有关信息将会显示在窗口中。

crystal-signal-pi-2-fig3-status-response

图 3

当选择“Json”时,字符串将为如图3所示的JSON格式。当您打算向程序员端传输任何值时会使用该方法。

「Log」屏幕

在“Log(日志)”屏幕中,您可以浏览并查看所有之前在“Crystal Signal Pi”上执行过的操作。

crystal-signal-pi-2-fig4

图 4

每当在浏览器上执行操作时,日志都会实时进行更新。但是,当程序或按钮操作发生变化时,日志将不会自动更新(我们稍后会谈到)。这时候,您必须使用“Update Log(更新日志)”按钮进行手动更新。

虽然日志数据不会永久保存,但是如果您删除一个最近的日志记录,可以使用“Delete Log(删除日志)”按钮进行手动删除。

当警报打开时,状态行中将会显示“pending(待机)”字样,并且每一行背景为红色,如图4所示。

crystal-signal-pi-2-fig5

图 5

点击“关闭警报”按钮,将会关闭警报,并将状态切换为“acknowledge(确认)”,每一行背景变为绿色。

有时候即使打开了警报(背景为红色)LED灯也不亮,例如如果您将RGB全部设置为0,系统会认为闪烁次数已经满足了设置为“灯光闪烁”功能时的要求。这在您无法仅通过LED闪烁方式进行判断时会很便利。

crystal-signal-pi-2-fig6

图 6

如果您点击“Parameter(参数)”栏的任一行,将会弹出包含所有参数信息的对话气泡。

「Settings」屏幕

crystal-signal-pi-2-fig7

图 7

确实,我第一次看到“Button Settings(按钮设置)”窗口的时候才意识到这些按钮的存在。也就是在这时我开始寻找主“按钮”是哪个。

crystal-signal-pi-2-fig8

图 8

在亚克力板上,有一个圆形的橙色部分是与其他部分完全分离的。这就是Crystal Signal Pi的按钮。不知道是不是尺寸的原因,这个按钮稍微有点紧(请一直按压直到听到咔哒声为止)。之后,要按住按钮一段时间,以使其完成注册。

您可以设置四种操作:“normal short push(正常短按)”和“long push(长按)”可分别对应于“while ON(开启时)”和“while OFF(关闭时)”。

crystal-signal-pi-2-fig9

图 9

单击下拉窗口将显示出包含所有程序的列表。默认情况下,内置有三种类型的脚本(截止至2017年8月)。

  1. Ack.sh:删除所有警报
  2. AckNewestOnly.sh:删除最新警报
  3. AlarmSound.sh:发出女声语音警报并重复两次,语音内容为“警报发出”(音频文件:/var/lib/crystal-signal/sounds/alarm.wav)

 

“Ack.sh”和“AckNewestOnly.sh”可以在多个警报产生时作出区分。在图10中,当两个警报被发出后,它将会进行注册,就像把每个脚本都通过按钮得到了实现。(在图10中,通过IP区分来自两个不同IP的警报,每个IP发送一个警报)。

“Ack.sh”删除所有警报。而“AckNewestOnly.sh”只删除新的警报(第一行/下一行发出的警报),从而激活之前的设置。

选择“点亮”功能,并设置为“标准按压”,我们尝试从两个终端发送警报。

通过调整颜色的滑块依次发出橙色→黄色→白色→粉色→蓝色5次警报后,开始执行按钮操作,对应该顺序,第一次按下按钮后我们返回到粉色警报,然后继续白色→黄色→橙色→熄灭。按照这样的方式,您就可以回到之前的一步了。

每个程序文件都存储在下面所示的位置。每当您想添加新的程序时,请将所添加程序放入该目录中。

/var/lib/crystal-signal/scripts/

即使“基本设置中”的“发生警报后实施”已启用,您也可以像之前一样使用按钮对此操作进行设置。在“灯光设置”中,您可以将LED亮度在40% 至100%范围内进行设置。

即使程序重新开始或系统重启,该设置也会被保存下来。

总结

本文介绍了如何在Crystal Signal Pi上使用中间件。

通过了解如何使用中间件,我们对Crystal Signal Pi具备的功能类型有了更好的理解。

在下一篇文章中,我们将尝试在Crystal Signal Pi上制作一些工具!

DevicePlus 编辑团队
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

分享到社交媒体