基于mqtt的门锁的python api
dlock13的Python项目详细描述
#dlock13
突破设计(在鹰)和我们的门锁执行器的源代码,运行在树莓pi(1)。 与锁的通信通过[mqtt](https://en.wikipedia.org/wiki/MQTT)进行。 不包含用户界面,请检查[door web](https://github.com/bitraf/door-web)是否包含该界面。
##MQTT接口
要打开门,请将秒数发送到:
/bitraf/door/$door_id/open # Ex: 20
成功时,将输出值:
/bitraf/door/$door_id/isopen # Ex: true/false /bitraf/door/$door_id/openuntil # Unix timestamp when door will lock again. Ex: 1495469392
出错时,将发送一个带有错误消息的字符串:
/bitraf/door/$door_id/error # Ex: “Time to open is negative”
其中,$door\u id是例如2floor,frontdoor,4floor。 /bitraf/door/前缀是可配置的,可以设置为/mysystem/doorlocks。
###代码
在[dlock13 msgflo/dlock13.cpp](/dlock13 msgflo/dlock13.cpp)
< P>在C++ 11中使用[MSGFLO CPP](^ {A3})。##python api
还提供了一个简单的Python模块,用于检查MQTT消息 成功/错误时发送。
安装
pip install dlock13
包括一个命令行工具
dlock13-open /bitraf/door/$door_id 60
关于如何编程使用,请使用[dlock13 open](/dlock13 open)作为示例代码
##董事会
啊![带组件的RPI转接板](/doc/rpi breakout populated.jpg)
该电路板有两个用于驱动标准电子锁的mosfet。 两个输入的扩展也存在。
单面板带通孔元件,可方便数控铣削或蚀刻。
啊![RPI转接板示意图](/doc/rpi breakout schematic.png)
###引脚输出
# Function | Connector pin | BCM SoC pin | WiringPi pin | === mosfet1 | 19 | 10 | 12 mosfet2 | 2 | 11 | 14
BCM SoC pin是用于/sys/class/gpio/gpioNN和类似的
##展开
系统服务模板通常用于每个门锁:[dlock13@.service](dlock13 msgflo/dlock13@.service)
systemctl status dlock13@2floor
使用以下环境变量。它们可以在/etc/dlock13/$door_id.conf中指定。
- MSGFLO_BROKER-MQTT代理连接详细信息例如:mqtt://user:password@mqtt.example.net
- DLOCK13_PIN-要使用的GPIO PIN号例:11