4G +16路锁控 + 多路NFC
<p>产品简介
4G主板 使用485接16控板,控制16个电控锁,并通过485外接多个NFC读卡器,以实现可靠的物品借还业务。主要分为下面三种逻辑:
①用户借出时:开锁、关锁、NFC检测不到物品
②用户未取走:开锁,关锁、NFC仍检测到物品
③用户归还:开锁、关锁、NFC检测到物品
两种异常逻辑:
①开锁失败:开锁,设备未反馈
②借还过程中未关锁:</p>
<h2>1、主板参数配置</h2>
<p>//4G dtu涉及参数【改后需重启】
VERSION2_MODEID = "2016" --待确认
VERSION2_SERVICEID = "20160101" --待确认
MODE_485_TYEP = 9 --表示是16控+nfc模式
POWER_EXPAND_NUM = 6 --nfc主板数量</p>
<p>//16控板涉及参数
波特率: 115200 --默认,不用管
MODUBS id :100 --默认1,需修改</p>
<p>//NFC板涉及参数
波特率: 115200 --默认,不用管
MODUBS id:1-6 --从1开始,根据实际数量修改</p>
<hr />
<h2>2、使用逻辑</h2>
<p>使用逻辑就一个,通过上报的卡号判断是存入还是取出、还是未取走。
①服务器远程下发开锁指令【开锁没反应需要重试】
②设备开锁,等待关锁【关锁超时,设备无响应】
③关锁成功后,读取nfc
④读取成功,上报实际卡号,表示存入/读取失败上报空,表示取出</p>
<hr />
<h2>3、 4G mqtt通信</h2>
<pre><code class="language-c">---------------周边配套----------------
//遗嘱:【服务器--&gt;服务器】
Topic: /xm/sh/will/mqtt/863482068466636/2016/v2
willTopic
//心跳报文【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200585&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;sync&quot;,&quot;serviceid&quot;:&quot;20160101&quot;,&quot;params&quot;:{&quot;15&quot;:&quot;35&quot;,&quot;20&quot;:&quot;0&quot;,&quot;12&quot;:0}}]}}
//上线消息【设备--&gt;服务器】
Topic: /xm/sh/online/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200574&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;}]}}
//modbus通信指令统计【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200586&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;sync&quot;,&quot;serviceid&quot;:&quot;20160101&quot;,&quot;params&quot;:{&quot;485&quot;:&quot;1,0,0,0,0,0,0,0,0&quot;}}]}}
------------------------------业务相关-------------------------
//开锁指令【服务器--&gt;设备】
Topic: /xm/sh/request/mqtt/863482068466636/1111/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1101&quot;: 1}}]}}
//开锁上报【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200611&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1101&quot;:&quot;1&quot;}}]}}
//关锁上报【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200621&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1101&quot;:&quot;0&quot;}}]}}
//id校验【设备--&gt;服务器】
Topic: /xm/sh/check/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200622&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1601&quot;:&quot;1510100110135438&quot;}}]}}
//id验证结果【服务器--&gt;设备】
Topic: /xm/sh/request/mqtt/863482068466636/2016/v2
{&quot;header&quot;: {&quot;timeStamp&quot;: &quot;&quot;}, &quot;payload&quot;: {&quot;devices&quot;: [{&quot;action&quot;: &quot;command&quot;, &quot;params&quot;: {&quot;1601&quot;: true}}]}}
//未成功读取id(取出物品)上报【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200624&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1601&quot;:&quot;&quot;}}]}}
//成功读取id(存入物品 or 未取走)上报【设备--&gt;服务器】
Topic: /xm/sh/response/mqtt/863482068466636/2016/v2
{&quot;header&quot;:{&quot;timeStamp&quot;:&quot;1749200624&quot;,&quot;session&quot;:&quot;0&quot;},&quot;payload&quot;:{&quot;devices&quot;:[{&quot;nodeid&quot;:&quot;000&quot;,&quot;action&quot;:&quot;command&quot;,&quot;params&quot;:{&quot;1601&quot;:&quot;1325xxxxxxxx&quot;}}]}}</code></pre>