做一个管理停车场设备的硬件要怎么设计?

2022-02-12 12:57:38 +08:00
 Michelangelono

我们计划是用 java 写一个跑在工控机的脚本,然后脚本会广播出一个后台管理的网页。脚本还会管理视频流,控制闸道的开启之类的操作。工控机连公网,定期分发配置信息(停车场价格的),然后定期上传订单信息等。 这个方案靠谱吗?还有啥其他更靠谱的方案吗?

3329 次点击
所在节点    Java
40 条回复
Michelangelono
2022-02-14 10:01:41 +08:00
1 、长链接就是 socket 这种吗?
2 、工控机淘宝可以搜到,最便宜的大概 600 。配置前期可能不是最要考虑的吧,因为我们程序也不是很复杂。如果后期配置不够,应该可以再找性价比更高的方案。
Michelangelono
2022-02-14 10:15:53 +08:00
@markgor
1 、长连接具体是什么方案?比如在公网的服务器搭建一个 MQTT 服务器?
2 、我们这边没有有嵌入式开发经验的人,暂时也没有这方面预算。然后功耗这块也是小事。之所以用工控机而不用普通的台式电脑,另一方面也是因为觉得以后可以将这个硬件盒子和软件一起打包出售。
3 、选择 x86 上跑 windows 觉得可能本地的维护人员好维护一些,然后可以自己写自动更新脚本的程序可能简单点。
markgor
2022-02-14 14:56:03 +08:00
1 、长连接就是建立持久的 tcp 链接。
优点:不需要频繁创建销毁,创建链接后后续消息载体直接通过连接发送,并且可随时客户推去服务器 /服务器推客户端。
缺点:自行维护链接,如网络波动或异常时做好重连。

2 、3 、非性能场景下,其实看维护简易度。这个看你们公司吧。


我之前是 http 短连接的形式,因为不需要服务端推送数据给客户端,都是客户端请求服务端,但是如果联网异常的话没法告警,只能显示屏上显示断网。你用长连接的话可以自己监控链路状态,持续异常多久则服务端发出告警信息。*短连接其实也可以告警,只是我们当初的场景对这个不敏感。
Michelangelono
2022-02-14 16:01:39 +08:00
@markgor 还有一个问题,第三方支付的处理可以放在这个设备里吗?不依赖公网的服务器,如果盒子没固定 IP 的话。因为希望每个盒子之间是相互独立的,即使公网的服务器炸了也不影响停车场设备的运行。
lqw3030
2022-02-14 21:46:02 +08:00
你在做毕业设计吗
Michelangelono
2022-02-15 09:30:56 +08:00
@lqw3030 公司的产品
lqw3030
2022-02-15 09:53:11 +08:00
@Michelangelono 我前段时间做过,道闸只接收开关信号,建议前期产品未成形前直接用厂商的设备,成型了再考虑替换设备成本优化
Michelangelono
2022-02-15 09:55:13 +08:00
@lqw3030 厂商的设备是指什么?我们现在已经有在运行的产品了,但道闸是直接连公网的,稳定性和开闸速度都不够好,所以想加个本地控制设备。
Michelangelono
2022-02-15 10:39:33 +08:00
@lqw3030 还有就是公网断了以后,停车场基本就瘫痪了。
julyclyde
2022-02-15 12:22:10 +08:00
这东西现在已经成熟了吧
建议抱着学习而不是创业的态度来研究这个东西
Michelangelono
2022-02-15 14:14:15 +08:00
@julyclyde 客户已经有了,必须要弄出来……
julyclyde
2022-02-15 14:34:19 +08:00
@Michelangelono 找现成的买一套?
Michelangelono
2022-02-15 14:42:10 +08:00
@julyclyde 我们有免费的人力,但没有钱去买现成的。
Michelangelono
2022-02-15 14:44:14 +08:00
@julyclyde 最顶级的产品肯定是很成熟了,但大部分市面上用的产品,应该都是不太成熟的。比如我看过主流的产品,一般是一个停车场放一个台式机上面跑一个服务器脚本。但缺点是必须要台式机太占地方了,岗亭端也得是用电脑控制。
julyclyde
2022-02-15 15:52:18 +08:00
@Michelangelono 笔记本电脑也行。这东西也很少“真正无人运行”吧,总要提供紧急开门之类的功能。要不然万一故障了,难道让客户撞杆出去吗?
lx0758
2022-02-15 15:56:22 +08:00
@Michelangelono 你这所谓的用台式电脑的是很老的方案了, 现在都是无人值守, 数据上云. 很巧我两年年就是做这块的
markgor
2022-02-15 16:09:41 +08:00
@Michelangelono #24 微信支付的话有 IOT 模块,但是我没了解过这个接口。
如果是使用 H5/微信 支付这些接口的话,建议是公网服务器进行接收支付回调,相比客户端设备的网络而言,公网服务器网络稳定很多。

车进库->识别车牌-> [ 工控机 判断是否白名单,记录数据,推送给服务器 ]
车出库->识别车牌-> [ 工控机 判断是否白名单,轮询服务器支付结果]

月租客户:
公众号进入 H5 页面,输入车牌,线上支付月租费用。
工控机:间隔 30 分钟同步一次服务器月租数据。

单次停车:
公众号进入缴费 h5 页面,输入车牌,线上支付费用。
工控机:间隔 1 分钟同步一次服务器支付数据。

如果长连接的话把间隔 X 分钟去掉,有信息服务器推给终端设备即可。

工控机做好数据的同步,
1 、局域网管理的数据,同步上服务器;
2 、服务器的数据,同步到工控机;
自行考虑当断网或人工操作情况下导致数据冲突的情况即可了。要么服务器的为主,要么本地为主......

预案:
断网:
断网前已开通月租的车辆不受影响,临停车辆支付信息如果在断网前有同步到工控机的也不受影响,其他情况只能人工兜底。

服务器异常:
影响:临时付费的,开通月租的,但已开通月租或已付费临时车不受影响。这一步一样只能人工兜底。另外可以通过监控自主发现异常,一般可能性比较少。

服务器炸了这个情况估计比较少,
哪怕你们有 100 个客户,并发数也高不到哪里去。

如果是轮询形式的,可能服务器压力会大点,
如果是长连接形式的,服务器压力会小很多(因为不需要轮询)

而且停车场出入这些,除非你们是打算做 0 人工值守的,否则有人工做兜底,就算出问题也不会太大。
Michelangelono
2022-02-15 18:15:28 +08:00
@lx0758 局域网的控制设备的架构有什么建议吗?
Michelangelono
2022-02-15 18:16:54 +08:00
@julyclyde 现实是很少有完全无人的停车场,但实现无人肯定是目标之一。现在有的停车场已经有远程客服设备了,按一下按钮就可以呼叫客服,可以作为出故障的处理方法。我们现在主要的问题是太依赖公网服务器。
Michelangelono
2022-06-16 17:12:22 +08:00
经过几个月的研发第一个版本已经上线跑了几周了,感谢大家。有这方面项目需求和技术问题的也可以随时和我联系。QQ763818096
如果有这方面实际项目经验,后面可能会找兼职,也可以提前沟通下。
[![XHngx0.png]( https://s1.ax1x.com/2022/06/16/XHngx0.png)]( https://imgtu.com/i/XHngx0)
[![XHn6Gn.png]( https://s1.ax1x.com/2022/06/16/XHn6Gn.png)]( https://imgtu.com/i/XHn6Gn)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/833373

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX