使用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. 标准“点亮”功能,LED灯将以您指定的颜色点亮。
  2. “灯光闪烁”功能,可以使LED灯光持续闪烁。
  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 编辑团队
设备升级版适用于所有热爱电子和机电一体化的人。

相关文章

  1. Raspberry pi quadcopter

    基于Raspberry Pi的DIY无人机第3部分–FPV设置指南

  2. 在Raspberry Pi上模拟Commodore Amiga

  3. 用于Raspberry Pi的Sense HAT扩展板——操纵杆

  4. Crystal Signal Pi

    使用Crystal Signal Pi第1部分—使用Raspberry Pi创建警示灯解决方案

  5. raspberry pi

    如何将Raspberry Pi用作Web服务器?

  6. raspberry pi drone

    DIYRaspberry Pi无人机第二部分–Naza-M Lite指南

  7. Internet of Things DIY

    走进物联网:制备您自己的Wi-Fi开关 !

  8. 使用Raspberry Pi和Arduino Uno构建波表合成器

  9. raspberry pi motion control lamp

    如何用Raspberry Pi制作动作控制感应灯

TECH INFO

  • 重点必看
  • 技术分享
  • Arduino入门指南

基础知识

  • Si功率元器件
  • IGBT功率元器件
  • 热设计
  • 仿真
  • 开关噪声-EMC
  • AC/DC
  • DC/DC
  • 电机
  • 传递函数

工程技巧


PICK UP!

  1. 刘铭
  2. ROHM开发出业界先进的第4代低导通电阻
PAGE TOP