程序汪7万接的无人台球室项目,开发周期37天

本文章来自程序汪背后的私活小团队,无人台球室的项目,希望把这些真实案例分享出来,大家能学到点东西,比如软件硬件怎么对接,商业项目具体怎么评估价格,无人台球室方案是什么样的等等。

B站【我是程序汪】


开发人员

  • 前端   技术栈  vue  主要任务小程序及PC端页面

  • 后端   技术栈  springboot  

  • 硬件 共享柜TCP 、网关、断路器(控制关灯)

  • 通讯协议  MQTT、TCP

  • 开发周期37天  

  • 开发人数 2人   

  • 整体研发费用是7万 (6W软 1W硬)

  • 走的正规合同

  • 云服务器1台(后面根据情况增加)

  • 维护费 5000年

后端技术选型

  • 核心框架:Spring Boot

  • 数据库连接池:Druid

  • 缓存:redis

  • 数据库:mysql



项目背景

无人台球室,甲方本来自己就运营4家台球室,主要为了减少人力成本提高了工作效率,找我们开发了这套无人台球室项目,利用智能共享柜和智能关灯来无人管控台球室,这样老板也只有出现故障偶尔跑下现场。


核心流程

程序汪还是画个简单的流程图吧,方便大家理解,真实代码逻辑还是复杂的,这里简化了




智能共享柜

这里的智能共享柜是甲方直接找厂家购买的成品但需要我们跟他接口协议对接,核心就三个操作 扫码登陆、借 、还




这里有一个流程图跟我们台球室智能共享柜的流程非常接近,大家可以参考下



一 扫码登陆



二 借台球杆

 三 台球杆




小程序

小程序端主要就是预定台球室场地,这里预定成功后端会马上生成订单,开始时间和结束时间,特别注意后端有定时任务会下发通知  智能断路器进行关灯





当然这里后端是通过网关来控制灯的,具体网关如下

zigbee无线智能家居网关 家居环境智能控制 标准HA协议


网关协议说明:

1、本协议采用的 TCP 传输,控制器作为客户端,软件平台作为服务端。控制器主动发起连

接,连接后双向通道打开,服务端和客户端都可以自由收发数据。

2、TCP 连接的地址和端口,需要在控制器网页进行设置。

3、通常的工作模式由软件平台端发起数据查询,控制器给予回应。但是控制器端的数据变

化,会主动发送更新的数据到软件平台端。

4、数据格式为标准 JSON 数据,JSON 数据之间以‘\0’或者 0 分割。

5、秘钥验证可以做,也可以不做,具体根据硬件配置。当设置了秘钥时,就要进行秘钥验

证,验证的思路是:请求验证方发送验证种子,对方返回加密算法计算返回加密的 md5 结

果,请求方进行比对,匹配时验证成功。

5、通讯流程如下图。


4、获取所有设备信息

获取指令格式:

{"func":" GetAllDevData"}

返回指令格式:

{

"hack": "GetAllDevData",

"result": [{

"address": "1",

"type": 10,

"desc": “智慧物联网关 BEC1000”,

“sn”:”000A000039B6”,

"link": 1

},

{

"address": "5",

第 5 页 共 22 页物联控制器与第三方软件平台对接规范

"type": 1001,

"desc": “三相电量变送器”,

“sn”:”03E900005036”,

"link": 0

}

]

}

断路器配置接口(User Client->MQTT broker->IoTGateWay)

Topic:…/CB

Qos:1

注:变化上报(含复归)、24小时定时固定上报、支持单项设置 

帧格式:

MQTT包头

配置

下行JSON Payload字段:

功能

字段名

数据

备注

类型

字节数

包类型

packType

"CBConfig"

固定

String

≤32

起始寄存器地址

regStart

4000


Integer

≤32

寄存器数量

regCount

107


Integer

≤32

设备地址

addr

3


Integer

≤4

配置数据组

regData

见下分表

JSON数组

String

≤4096

版本

ver

"V1.0.5"

固定

String

≤16

配置数据组:

功能

字段名

数据

备注

类型

字节数

仅三相的断路器具备的字段,字段名:mp ,包含:A、B、C相:phaA、phaB、phaC

过功率预警

ovLoadp


0.01KW为单位

Integer

≤32

过功率报警

ovLoad


0.01KW为单位

Integer

≤32

欠压预警

uvp


0.01V为单位

Integer

≤32

欠压报警

uv


0.01V为单位

Integer

≤32

过压预警

ovp


0.01V为单位

Integer

≤32

过压报警

ov


0.01V为单位

Integer

≤32

过流预警

ocp


0.1A为单位

Integer

≤32

过流报警

oc


0.1A为单位

Integer

≤32

温度预警

otp


0.1摄氏度为单位

Integer

≤32

温度报警

ot


0.1摄氏度为单位

Integer

≤32

通用及单相字段,如果断路器为三相必传

剩余电流预警

lep


1mA为单位

Integer

≤32

剩余电流报警

le


1mA为单位

Integer

≤32

过功率预警

ovLoadp


0.01KW为单位

Integer

≤32

过功率报警

ovLoad


0.01KW为单位

Integer

≤32

欠压预警

uvp


0.01V为单位

Integer

≤32

欠压报警

uv


0.01V为单位

Integer

≤32

过压预警

ovp


0.01V为单位

Integer

≤32

过压报警

ov


0.01V为单位

Integer

≤32

过流预警

ocp


0.1A为单位

Integer

≤32

过流报警

oc


0.1A为单位

Integer

≤32

温度预警

otp


0.1摄氏度为单位

Integer

≤32

温度报警

ot


0.1摄氏度为单位

Integer

≤32

过功率预警

opp


0.1KW为单位

Integer

≤32

过功率报警

op


0.1KW为单位

Integer

≤32

上行数据(网关回应)

MQTT包头

命令回复

上行JSON Payload字段:

功能

字段名

数据

备注

类型

字节数

结果

res

"OK"或者"fail"

固定

String

≤32

原因

reason

"bad command "

仅出错时有效

String

≤32

指令类型

packType

"CBConfig"


String

≤32

版本

id

92930


Integer

≤16

注:网关收到该指令并正确解析后会立即发布回应消息(仅反映网关正确收到消息,不保证执行结果正确)




PC端

预定球场预定台球等等各种需要场地的运动都可以用类似的系统改吧改吧,下面就是当时拿羽毛球篮球的预定系统稍微修改修改,核心功能都是定场管理 订单管理 其他权限 会员 优惠券都是电商系统通用功能









点击“阅读原文”,官网B站视频版本~


相关推荐

  • 一代快时尚鼻祖走到了悬崖边
  • 马斯克称一些被裁员工的遣散费过低,将予以补偿;Mistral 宣布最新开放大模型 Mixtral 8x22B | 极客头条
  • 用 AI 和不用 AI 学习编码,区别在于……
  • 调查了 150 位 ChatGPT 用户后,有了最新的发现
  • 退休一天后,波士顿动力宣布:人形机器人 Atlas 以全新电动化状态“复活”!
  • 创业14年,我总结了7条最重要的赚钱原则
  • ChatGPT、大模型、AI资料分享群
  • 5个简单好用的本地运行大模型的方法
  • 这款Linux发版发起AI禁令!生成代码质量堪忧!阿里也被大模型幻觉愚弄了!网友:人比生产力更重要!
  • 如何用 AI 工具做数据分析与可视化?
  • 这个 404 页面,是真的炫酷~
  • 耗时几个月,我们做的小工具上线啦!
  • Kafka的2种日志清理策略感受一下
  • 波士顿动力抛弃液压机器人Atlas,推出全新电动化机器人,动作超灵活
  • Stable Diffusion 3 API 发布!超越Midjourney v6和DALL-E 3
  • 极越员工称因购买小米SU7被辞退?公司回应来了
  • 利用 GitOps 优化阿迪达斯的容器平台
  • 预约直播|AIGC 来袭,未来哪类岗位会稀缺?
  • 跨平台 CPU 加速,百度智能云的一键性能调优技术分享
  • Linux 一社区封杀大模型代码!“shit”7次出现在小作文,网友:此举非常明智!