Redian新闻
>
为地铁站构建一个智能停车系统 | Linux 中国

为地铁站构建一个智能停车系统 | Linux 中国

科技
 
导读:本文将帮助你设计一个基于 Web 的应用程序,使用 Node-RED 为地铁站的汽车提供一个自动智能停车系统。
本文字数:3027,阅读时长大约:4分钟

Web 应用程序是在 Web 服务器上运行的软件。终端用户通过 Web 浏览器访问 Web 应用程序。Web 应用程序使用客户端—服务器(C/S)架构进行编程,该架构是用户(客户端)通过远程服务器(可能由第三方托管)提供服务。Web API(应用程序编程接口)在整个 Web 上是可用的,用户可以通过 HTTP 协议访问该接口,如图 1 所示。

Figure 1: Web API

本文将演示如何为地铁设计一个基于 Web 的汽车自动智能停车系统。它是使用开源的 Node-RED 设计。该系统使用模板节点创建了一个交互式的、时尚的用户登录表单,用 HTML 和 CSS 编码以获取车主的详细信息,从而实现停车系统的自动化。我们可以在图 2 和图 3 看到登录表单和提交表单的流程图。

使用的节点如下:

table function

地铁智能停车节点流程设计

Node-RED 由 node-red 命令激活。访问网址 http://127.0.0.1:1880/ 可以看到 Node-RED 用户界面流程浏览器已经启用,可以认为 Node-RED 设置已完成,可以正常工作了。

按照下面给出的步骤创建登录表单和提交表单。

Figure 2: Login form flow diagram

Figure 3: Submission form flow diagram

登录表单

1、在节点画布中,拖放 http 输入(http in) 节点,这会为创建 Web 服务创建一个 HTTP 访问点。

2、将 http 输入(http in) 节点连接到 函数(function) 节点。函数节点有助于编写 JavaScript 函数处理节点接收到的消息。

Figure 4: Login form for smart parking for cars

3、将 函数(function) 节点连接到 模板(template) 节点,模板节点基于提供的模板创建一个 Web API。

4、将 模板(template) 节点连接到 http 响应(http response) 节点,它将响应 http 输入(http in) 节点的请求。

Figure 5: Submission form for smart parking for cars

提交表单

1、拖放 http 输入(http in) 节点并将其连接到 json 节点,json 节点将数据转换为 JSON 字符串进行通信。

2、将 http 输入(http in) 节点连接到 调试(debug) 节点,调试节点的调试监控器会输出结果。

3、将 json 节点放置并连接到 函数(function) 节点,将后者连接到 http 响应(http response) 节点。

创建完整流程后,单击 Node-RED 窗口右上角的 部署(Deploy) 按钮。访问 http://127.0.0.1:1880/ui/ 这个链接查看用户界面。

输入链接然后单击 提交(Submit) 后,该链接会跳转到下一页,你可以在该页面阅读所有新闻。

Node-RED 工作流程

在单个 Node-RED 流程中,你可以创建登录表单和提交表单,如图 4 和图 5 所示。

现在我们将配置节点属性。

登录表单

编辑 http 输入(http in) 属性:

◈ 方法(method) 选择 “Get”
◈ 网址(URL) 设为 /MetroStation
◈ 名称(name) 配置为 “智能停车系统(Smart Parking)”。

(LCTT 译注:下文 http 响应节点的名称为 Smart parking,p 字母小写,为了区分,此处中文翻译成智能停车系统。)

Figure 6: Http in node property configurations

注意:URL 可以使用任何用户定义的本地变量。

现在选择 函数(function) 节点,编辑函数节点属性:输入代码 msg.url = project ,并配置代码 名称(name) 字段为 “项目提交(Project Submission)”。

Figure 7: Function node property configurations

在 模板(template) 节点的属性窗口,为登录表单配置相应的 HTML 代码,并将代码 名称(name) 命名为 “显示面板(Display panel)”。在此流程使用了 Mustache 模板格式(LCTT 译注:Mustache 是胡子的意思,因为它的嵌入标记 {{ }} 非常像胡子)。Mustache 是一个简单的 Web 模板系统,被描述为无逻辑的模板引擎。Mustache 没有任何显式的控制流语句,例如 if 和 else 条件和 for 循环。可以通过使用块标签处理列表和lambdas 来实现循环和条件评估。

Figure 8: Template node property configurations

配置编辑 http 响应(http response) 节点的属性,名称(name) 设为 “智能停车(Smart parking)”(图 9) 。

Figure 9: Http response node property configurations

提交表单

在 http 输入(http in) 节点的编辑属性窗口,方法(method) 选择 “POST” ,网址(URL) 设为 /project

Figure 10: Http in node property configurations

在 JSON 节点的编辑窗口,操作(Action)设为 “JSON字符串与对象互转(Convert between JSON String & Object)”,参考图 11。

Figure 11: JSON node property configurations

函数(function) 节点的配置如图 12 所示。

Figure 12: Function node property configurations

在 http 响应(http response) 节点,编辑属性 名称(name) 为 “已提交项目(Project Submitted)”。

Figure 13: Http response node property configurations

注意:添加带有评论的评论节点作为 “登录表单” 和 “提交表单”。

Figure 14: Debug node property configurations

用户界面的控制面板

当用户单击 提交(Submit),给出的数据将显示在用户界面和调试节点。如果单击 重置(Reset),详细信息将被清除,允许用户输入新的详细信息(图15)。

Figure 15: User login UI

地铁停车费率通过超链接提供,收费表在用户界面显示。因此,汽车智能停车系统通过适当的超链接实现自动化,展示地铁站的停车费。该自动化系统的最终输出可以在 Node-RED 控制面板的用户界面和调试监控器调取和展示。

Figure 16: Metro parking tariff


via: https://www.opensourceforu.com/2022/06/build-a-smart-parking-system-for-a-metro-station/

作者:Dr Maheswari R. 选题:lkxed 译者:Maisie-x 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出


LCTT 译者 :Maisie-x
🌟🌟
翻译: 2.0 篇
|
贡献: 16 天
2022-07-11
2022-07-26
https://linux.cn/lctt/Maisie-x
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Linux 桌面刻薄版点评 | Linux 中国使用 Linux 上的开源财务工具 Skrooge 管理你的预算 | Linux 中国Linux 优先的 AI 图像提升器 Upscayl 发布了第一个版本 | Linux 中国在美国123.劝陆开源朗读者:Linux 太难了?你需要知道这 5 点 | Linux 中国Amberol 是一款外观漂亮的 Linux 音乐播放器,只播放音乐,不做其他事情 | Linux 中国贺Laopika加入星坛班委会神秘的 GeckoLinux 创建者推出了一个新的 Debian 合成发行版 | Linux 中国开源朗读者:我为什么从 Mac 转到 Linux | Linux 中国Fedora Linux 37 的内核 5.18 测试周到了,一起来做贡献吧! | Linux 中国周六在Manhattan 乐虾的晚餐巧克力戚风奶油蛋糕三明治(Chocolate Chiffon Cake Sandwich)分裂使 Linux 超越 Windows 的梦想破灭了 | Linux 中国“作弊”:只需要知道这一个 Linux 命令就够了 | Linux 中国Linux 内核 5.19 RC1 发布,完成了 ARM 通用内核的工作 | Linux 中国开源朗读者:我是如何帮助妈妈从 Windows 切换至 Linux 的 | Linux 中国Linux Mint 接管 Timeshift 备份工具的开发,并作为一款 XApp 来维护 | Linux 中国如何通过 chroot 恢复 Arch Linux 系统 | Linux 中国有了扩展,GNOME Web 正逐渐成为 Linux 桌面上一个有吸引力的选择 | Linux 中国用这些开源工具在 Linux 上编辑 PDF 文件 | Linux 中国在 Linux 上使用 Bash 创建一个临时文件 | Linux 中国Linux 终端,它不可怕,拥抱它 | Linux 中国Linux 中国开通播客频道:“开源朗读者”和“硬核观察” | Linux 中国美国现在是乱七八糟江河日下。。关于 Linux 和 Git 的创造者 Linus Torvalds 的 20 件趣事 | Linux 中国我如何使用现场 USB 设备恢复我的 Linux 系统 | Linux 中国如何构建一个在线绘图工具:Feakin 是如何设计与构建的?在 Linux 上安装 FFmpeg | Linux 中国在 Linux 上玩电子游戏的三种方式 | Linux 中国Collision:用于验证 ISO 和其他文件的 Linux 应用 | Linux 中国诺基亚勒令一个开源 Linux 手机项目 “NOTKIA” 改名字 | Linux 中国开源朗读者:在虚拟机中运行 Linux 的十大优点 | Linux 中国Linux Lite 6.0 发布:弃用 Firefox,默认浏览器使用 Chrome | Linux 中国值得尝试的六款 Linux 文字处理程序 | Linux 中国如何在 Linux 中使用 Pandoc 转换文件格式 | Linux 中国
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。