加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 运营中心 > 交互 > 正文

如何借助树莓派建造一个物联网风格的电动宠物门

发布时间:2022-06-10 10:15:31 所属栏目:交互 来源:互联网
导读:这个项目的目标是建造一个物联网风格的电动宠物门,这样我们就可以控制哪些动物可以进入房子。为此,我们使用附着在动物(猫)上的BLE标签和RaspberryPi3上的内置蓝牙模块来扫描标签。同时我们还在RaspberryPi3上配备了一些LED指示灯,用于对门应该处于的状
  这个项目的目标是建造一个物联网风格的电动宠物门,这样我们就可以控制哪些动物可以进入房子。为此,我们使用附着在动物(猫)上的BLE标签和RaspberryPi3上的内置蓝牙模块来扫描标签。同时我们还在RaspberryPi3上配备了一些LED指示灯,用于对门应该处于的状态进行故障排除。
 
  Node-REDBLEScan节点持续扫描BLE广告。如果它看到与设备名称和最小RSSI匹配的设备,它将打开宠物门,并在超时后关闭门。为了防止门在缓慢移动的动物身上过早关闭,系统将在获得BLE匹配时重置计时器。
 
 
  这个项目有几个不同的部分:
 
  硬件:操纵门所需的所有布线和组件
 
  软件:决定门应该向哪个方向移动的所有逻辑。
  
  软件
 
  该项目的软件只是在标准Raspbian安装上运行的Node-RED。大多数逻辑都是使用带有RPi版本node-red的标准节点处理的,但BLE扫描仪除外,它需要来自node-red-contrib-noble的“scanble”节点。按照以下链接中的说明设置组件:
 
  安装Raspbian
 
  安装Node-RED
 
  安装node-red-contrib-noble
 
  在一切都安装并工作后,继续配置您的Node-RED流程,使其看起来像这样:
  
  我们的流程入口点是“scanble”节点;确保选中该框以允许重复。
 
  
  然后,您可以添加另一个“开关”节点来根据标签的唯一ID过滤标签,这样它就不会在门附近的其他标签上触发。如果您还不知道唯一ID,您可以使用“scanble”节点上的调试节点来查看广告并尝试查看哪个是您的。设置第一条规则匹配一个空UUID并且不连接输出;这将过滤掉一些垃圾广告,为每个UUID添加附加规则。
 
  
  为您在前一个节点中添加的每个规则添加一个“更改”节点,并为其赋予一个唯一的“触发源”值。这些节点不是必需的,但它们将使您能够在将来对每个标签进行额外的过滤,我用我的猫的名字作为来源。
 
  
  接下来,我们需要通过将消息有效负载更改为1来告诉流的其余部分我们想要触发门打开。将任何打开的触发源连接到此节点。
 
  
  现在这个触发消息将做两件事:触发蓝色LED闪烁以接收BLE数据包,并触发门打开。
 
  首先通过添加“触发器”节点来设置LED路径。将其设置为发送1,然后在500毫秒后发送0。这将导致LED仅闪烁一次。
 
  
  到该节点连接一个“rpigpio”输出节点并将其配置为蓝色LEDGPIO。将其设置为初始化为0(关闭)状态。
 
  
  接下来是配置门触发路径。返回触发有效负载节点并将“更改”节点与两个输出连接。一个输出将路由到具有“1”有效负载的开放路径,另一个将路由到具有“0”有效负载的关闭路径。
 
  
  这两个输出都将连接到同一个节点,但打开的连接在路径中有一个额外的触发节点,可以在超时后触发关闭。添加“触发”节点以发送“1”,然后在超时(15秒)后发送“0”。
 
  
  然后将该触发节点和前一个节点的第二个输出连接到“功能”节点。此功能节点有两个输出连接到打开的GPIO节点和关闭的GPIO节点。由于您不希望门同时打开和关闭,因此它将向每个输出发送相反的值。因此,如果触发有效载荷为“1”表示打开,它将向打开的GPIO发送“1”,向关闭的GPIO发送“0”,如果有效载荷为“0”表示关闭,它将向打开的GPIO发送“0”和“1”到关闭的GPIO。
 
  
  最后,将两个GPIO节点连接到每个输出:一个用于LED,一个用于H桥输入。
 
    
  这应该对主要的Node-RED流程执行此操作。此外,您应该添加一个“注入”节点以自动“1”有效负载以在启动时打开门,这样流程就知道门处于哪个状态。我还添加了一些手动注入节点,用于通过Node-RED接口。
 
  

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读