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

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

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

3385 次点击
所在节点    Java
40 条回复
l1ve
2022-02-12 13:10:50 +08:00
没太看懂...

意思是这个脚本还要识别车牌?控制闸机?生成订单? 但为什么是定期上传呢..
cssk
2022-02-12 13:13:13 +08:00
不靠谱
darkengine
2022-02-12 13:36:28 +08:00
用 java 写一个脚本。。。广播出一个后台管理网页。。。请问 lz 是研发吗?
Michelangelono
2022-02-12 13:37:39 +08:00
@l1ve 不识别车牌,车牌识别是摄像头自带的程序。之所以定期上传因为服务器不需要实时的订单信息。
Michelangelono
2022-02-12 13:38:00 +08:00
@darkengine 不太懂后台开发。
Michelangelono
2022-02-12 13:40:00 +08:00
@cssk 那有啥更好的方案?我看过一个商业的产品,也是电脑跑一个脚本程序,只是用户端是 PC 客户端。
markgor
2022-02-12 13:45:41 +08:00
问题不大吧。
现在停车管理基本这样,但是否 java 跑脚本...我就不清楚。
闸机-摄像头
|
工控机 /x86
|
配置分发(局域网 /互联网)


@l1ve #1 一般定期上传都是做备份而已,实际业务估计本地机器进行处理了。
Michelangelono
2022-02-12 13:48:27 +08:00
@markgor 一般是什么语言写的?因为我们后台研发都是 java ,所以首先考虑 java 。
Michelangelono
2022-02-12 13:50:53 +08:00
@markgor 架构和我计划的差不多。难点是脚本有办法自动更新吗?
markgor
2022-02-12 13:55:07 +08:00
@Michelangelono #8
C -> C++ -> (JAVA/JS/PY/GO/PHP....)
你要看你工控机配置在去选择,最求性能稳定性的那就 C/C++,资源利用充足且相对稳定。
我之前弄过就餐类的,场景是提前一天 18:00 前确认次日中午 /晚上是否就餐,次日通过二维码识别进行取餐。
后台是 PHP ,本地机器( x86 工控)是 nodeJS 。

不过你这种场景我不清楚,我用过的停车系统都是包含微信支付的,如果你这个也涉及线上支付的话,要考虑网络环境,一般都是 支付网关<->服务器<->工控机,很少会直接支付完->工控机,这种我只见过崁入式硬件有直接和第三方支付对接的。
Michelangelono
2022-02-12 13:59:39 +08:00
@markgor 第三方支付当然是要联网的,但现在我们系统的问题是,设备如果断网了,包月的车都无法进出。所以有工控机的话,可以局域网保存一个白名单。离线支付的话,我看过阿里巴巴的摄像头的方案,可以用户支付后显示一个二维码,然后给停车场的摄像头去识别。
markgor
2022-02-12 14:00:41 +08:00
@markgor #10
说错了,早期是
服务器->本地服务器(nodejs/sqlite)->触摸屏工控机->窗口二维码摄像头
后期改为
服务器->触摸屏工控机->窗口二维码摄像头

一开始是本地服务器是为了缓存第二天点餐信息,后来由于多一台机器多一个维护所以把它取消了。
另外 触摸屏工控机 上是用 C#开发的界面,主要是显示二维码识别信息和外接音箱播报。
那时候还专门问老板取消了本地服务器的话那断网怎么办。
老板说把产品改名云就餐系统就行了........
最后一直稳定运行至今.
markgor
2022-02-12 14:16:31 +08:00
@Michelangelono #11
工控机就做管理就好了,对外提供接口即可。
如:
进:摄像头->车牌->工控机(本地判断是否车位已满)->闸机开
出:摄像头->车牌->工控机(计费方式)->已缴费 /包月 /特殊车牌->闸机开

工控机 API->( web 形式提供公网 /局域网调用)
1 、获取车牌列表
2 、获取车牌详情
3 、修改 /删除 /新增车牌信息(包月 /特殊车牌..)
4 、获取账单
5 、开闸 /关闸
。。。。。

这样就可以不需要强同步,客户端随便上个 electron ,然后通过本地 api 管理工控机的数据。
如果要外网管理,那通过 ddns 的形式,让外网能访问这台工控机的 api 即可。
markgor
2022-02-12 14:19:41 +08:00
@Michelangelono #8 另外用什么语言,
我觉得应该看你的终端设备支持什么语言控制吧,比如我之前弄的二维码扫码的,只有 dll 接口,那就用 C#来写。
说白了这个控制机只是作为一个控制终端设备,并暴露接口给服务器调用即可。
coala
2022-02-12 14:26:05 +08:00
我是做这个的, 相机(一体机) + 道闸 + 屏卡 + 摄像头监控 , 线上支付平台等等..

相机都是由 TCP 协议支持的, Java 可以做(网络编程这块 用 Netty Mina 都行).
道闸的开闸信息是可以通过相机透传的, 就是闸接到相机上, 屏卡也是 TCP 的一般各种私有协议, 这边也是用 Netty 做的.

相机也可以透传屏卡的信息给屏卡, 屏卡接到相机上.

硬件上总结: 基本都可以用 Java 实现, 岗亭软件用 Java 做的话就是网页端了, 做的最大的科拓(速停车) 也是用 Java 做的
如果车场做桌面端 那就基本上要 C++实现了, 也有不少厂家这么做

线上和车场交互: TCP 长连接, 车场注册到服务端.

线上部分总结: Java 最合适, 支付或者各种线上的信息 命令下发, Sokect 服务端, 肯定 Java 做最合适

普通的摄像头监控: 这个牵扯到存储, 网络带宽等等各种问题, 一般车场本地存 3 个月就拉倒把.. 不然处理很麻烦
coala
2022-02-12 14:27:50 +08:00
相机也会提供动态库接口 , Java 去调用也可以.. 我两种都实现过, 动态库毕竟提供的接口比较少嘛. TCP 是一体机相机最全的接口了
Michelangelono
2022-02-12 16:50:14 +08:00
@coala
@markgor
加个 QQ 交流下? 763818096
Michelangelono
2022-02-12 21:14:42 +08:00
@markgor 工控机有推荐的吗?比如 DDNS 这种功能,有工控机自带吗?还是说要自己开发?
@coala
coala
2022-02-14 08:57:11 +08:00
@Michelangelono DDNS 对网络有要求的, 必然我在的江苏电信 你很容易要到动态 IP, 移动就不一定了, DDNS 对车场网络有一定要求的, 财大气粗当然都没所谓, 有的甲方甚至自己有 IP, DDNS 实现也很成熟了, 基本不用开发. 我们还是用长链接的形式, 这样车场只要能上外网就行

工控机指的是铁壳子电脑小电脑嘛? 这种就是迷你笔记本, 配置蛮落后的, 我们也主要用这个, 因为我是做 Java 的我也不用管工控机, 但是我自己也是 DIY 玩家.. 我觉得这种铁壳子小电脑也没好到那里去.... 质量还是性价比. 就是普通电脑级别的

我们体量小, 工控机买的也很杂, 因为工控机没什么技术含量, 用的好多年前的 CPU 和硬件.... 各个牌子都用
markgor
2022-02-14 09:50:15 +08:00
@Michelangelono #18
DDNS 主要解决的是动态 IP 的问题,但是如#19 所说,DDNS 最大阻碍就是部分地区运营商不分配外网 IP ,移动家用 100%没公网 IP 且不支持申请。

另外长连接效率确实是更高,并且当工控作为客户端连接服务器时,可以忽略公网 IP 的问题,但是长连接需要自己维护好,主要是心跳重连这一块。

我上面提到的那个项目当时考虑到信息量性能要求不大,所以没使用自行维护长连接,用的是 http 协议的短连接,权鉴直接用 http auth 就可以了。

DDNS 一般第三方都有免费 API ,把外网 IP 获取后通过 API 同步过去就行了。


@coala #19
X86 工控机性价比确实不高,但是解决了占位和功耗的问题,不是 mini 笔记本,是 itx 主板。itx 的由于是 x86 所以基本兼容大部分语言作为客户端。
如果有崁入式开发经验的,其实 arm 系列的才是最优选择,无论从功耗还是稳定性来说,之前看过 jvm on arm ,但不清楚具体如何,如果 jvm 能在 arm 上完美运行,其实买个 arm 系列的工控可能会更加好。


另外 mqtt+流量卡 好像是现在 IOT 的标配,建议可以关注一下。

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

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

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

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

© 2021 V2EX