与5分钟在手,我已经设置了一个快速的示例应用程序与直流继电器的连接作为访问控制系统使用蓝牙软件狗带/按钮。
这款软件狗是阿里快递的通用款,具有按钮推功能。
目标是能够切换继电器与一个推的软件狗按钮-纯粹的乐趣,虽然会有一些严肃的使用这条线.......
软件狗的背面有一个唯一的MAC地址,这个地址被输入到KNOT中,所以它意识到软件狗:而不是配置:
/iot蓝牙白名单
add address=C5:xx:xx:xx:xx:Bx address-type=随机设备=bt1
add address=F1:xx:xx:xx:xx:Dx address-type=随机设备=bt1
/物联网蓝牙扫描仪
设置filter-policy =白名单
filter-duplicates = keep-newest
以上限制了蓝牙只能接受来自这些已知蓝牙适配器的输入,否则我实验室里的所有蓝牙设备都会通过数据屏幕,包括手机。除了软件狗,我怀疑手机上的APP也应该是合适的。
另一个设置只保留数据列表中的最新条目。如果需要,可以在初始测试期间禁用此功能。
接下来,我必须识别来自软件狗的数据,看看当我按下按钮......时发生了什么变化
/iot蓝牙扫描仪广告打印
在我的例子中,两台设备发送的数据以640000结尾,当按下按钮时,数据变为640001。其他设备可能有不同的表现。
继电器接在GPIO pin4上,为欧姆龙DC24V继电器。注意,Mikroitk KNOT开关到地面,所以应用+24V到继电器,然后继电器的负极到引脚4和电源负极到GPIO引脚1。+(DC)----继电器——GPIO4-----Gnd (- DC)。
下面的脚本检测何时数据发生变化,并切换继电器的开关——它需要工作来“解除”它,因为有时diongle会重复发送数据。
记住,这只是一个概念验证测试
:全局循环"loop"
: {
:全局按钮[/iot蓝牙扫描仪广告查找数据~"640001"];
:if ($button != "") do={
:if ([/system gpio get pin4 output] =0) do={[/system gpio set pin4 output=1];:delay 4} else={[/system gpio set pin4 output=0];:延迟4};
};
/物联网蓝牙扫描仪广告清晰
} while ($loop ="loop");
要做的事情:
1.找到一个体面的GPIO 6引脚突破引线-地雷是从Arduino被黑的引线。
2.改进脚本以获得更多的功能和边例场景