亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

使用智能手机接近传感器制作自动上锁的办公室门

– 想要为您的家庭办公室提供一些高科技保护,或者为您的“工作室”安装一个秘密锁(好吧,你明白了,它实际上是一个地牢/游戏室) 孩子会不会想不通?我们已经为您提供了保障。让我们来构建一个 DIY 智能锁,当你在那里时自动检测,并在你不在时上锁。

它是如何工作的?没人知道!或者更具体地说,蓝牙。

概念

您的智能手机是一种功能强大的设备,它会不断向外界透露有关自身的信息;这样做的一种方式是蓝牙。

在发现模式下,它会广播一个唯一的标识号——但即使没有明确允许自己被发现,任何知道该地址的东西都可以尝试 ping 它。如果听到响应,则表明它是否在范围内。

我们将设置一个带有蓝牙适配器的 Raspberry Pi,以不断留意您的智能手机何时超出范围,当超出范围时,继电器将立即启动并锁上门。

你需要

使用蓝牙

蓝牙是这个项目的核心,所以让我们先安装一些蓝牙支持并测试我们的适配器。您可以直接从 Pi 执行此操作,也可以远程通过 SSH 执行此操作(如何设置 Windows 以通过 SSH 连接到您的 Pi)。

sudo apt-get install bluez python-bluez 

如果您还没有插入加密狗,请插入它,让我们看看它报告的内容。

hcitool dev 

如果您在输出中列出了某些内容,那么您就可以开始了。接下来,我们将使用 Python 脚本轮询附近的蓝牙设备,并获取唯一的设备地址。我们只需要为每个设备执行一次。

wget https://pybluez.googlecode.com/svn/trunk/examples/simple/inquiry.py python query.py 

如果您看到“找到 0 个设备”,则您要么没有兼容的 USB 蓝牙加密狗,要么无法发现您的智能手机。不过不要绝望:我发现我必须在 iPhone 上实际打开蓝牙设置页面才能将其踢入发现模式,然后发生了这种情况:

太好了,现在让我们创建进行检测的软件的第一阶段。创建一个名为 detect.py 的 Python 应用 , 然后用 Nano 打开。

nanodetect.py 

粘贴此示例代码:

#!/usr/bin/python import bluetooth import time while True:print "Checking " + time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime()) result =bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) if (result !=None ):打印“用户存在” else:打印“用户超出范围” time.sleep(10)  

并用您的蓝牙设备地址调整以下行:

result =bluetooth.lookup_name('78:7F:70:38:51:1B', timeout=5) 

CTRL-X 关闭并保存。运行相同的代码,您会看到如下内容:

即使您以前从未接触过 Python,代码也应该非常容易理解:它每 10 秒扫描一次特定的蓝牙设备,并根据是否找到它打印出不同的消息。切换手机上的蓝牙以模拟进出范围(实际上可能约为 4m)。您可以减少或增加扫描之间的时间,但我觉得 10 秒是可能需要等待门解锁的合理时间,毕竟这是我们整个项目的目标。

我应该补充一点,我不知道这样做的功耗,但我认为更频繁地 ping 设备必然会消耗更多的电量。我在测试中没有看到任何明显的性能问题,但是如果电池寿命对您来说是一个严重的问题,请考虑在您的办公室内安装一个开关来激活和停用扫描循环,因此一旦您进入室内,您就可以暂停锁定系统,然后离开时重新激活扫描。

恭喜,您现在拥有了一个 Python 应用,它知道您何时在范围内,因此我们可以开始对此采取行动。

GPIO 板模式

在继续之前,您需要弄清楚您将使用哪种棋盘模式。没有正确或错误的答案,它只影响您指定的是文字引脚编号还是虚拟 GPIO 引脚编号。

默认是使用文字引脚编号(“板模式”),从左下角的引脚 1 开始(如果向下看带有右侧 USB 端口的 Pi)。 Pin 2 就在上面。

但是,如果您有 GPIO 分线(“补鞋匠”)板,则您拥有的标签来自替代模式,称为“BCM”(Broadcom SOC 通道),并且通常在数字前加上 GPIO 或 P。你并不严格需要 GPIO 突破——它只是让事情变得更容易。如果您没有分线板并且不想购买,请使用此图:

请注意,原始模型 B 修订版 1、修订版 2 以及模型 B+ 和 Pi2 都有不同的引脚排列。请参阅此 StackExchange 问题以获取适合您的电路板的图表。

在此项目代码中,我使用 BCM GPIO 编号系统,它对应于我拥有的 Adafruit 分线板。如果您希望使用文字 pin 模式,则需要稍作修改。

继电器中的接线

连接分线板,确保引脚 1 和 2(Pi 角落的那些)的电线连接到分线板上的 3v3 和 5V0。您可能需要拔出电压测试仪来检查这一点。

在继续之前,请检查是否有其他人将您的特定继电器与 Raspberry Pi 一起使用(或事先找到一个您知道有效的继电器)。有些可能需要 5V 才能激活——但 RPi 只能在 GPIO 输出引脚上提供 3.3V。碰巧,我用的那个对 3.3V 很满意,所以我不需要任何额外的电路,只需要 5V0 到 VCC , GND 到 GND , 和 GPIO 引脚 23 用于第一个继电器输入 .

我之前关于 GPIO 的教程展示了如何连接晶体管电路以在需要时将 3.3V 放大到完整的 5V(事实上,我在该教程中使用了相同的继电器板,但事实证明我不需要 5V毕竟)。

无需在电磁铁中接线,因为当继电器触发时,您将能够听到咔嗒声。

接下来,让我们获取一些代码来与 GPIO 端口进行交互。

我们将首先在 Python 之外进行测试,以确认一切都在端口本身上运行。安装wiringPi,它为您提供了一些有用的命令行工具。

git clone git://git.drogon.net/wiringPi cdwiringPi ./build 

安装后,将 GPIO 引脚 23 配置为输出。

gpio -g mode 23 out 

现在,快速扫描所有端口以确认

gpio -g readall 

您将拥有与此类似的东西,尽管在 B+ 或 Pi2 型号上您的时间可能更长,因为它有更多的 GPIO 引脚:

更多细节:用智能手机接近传感器制作一个自动上锁的办公室门


制造工艺

  1. 银行金库
  2. 简单的接近传感器电路和应用
  3. 考虑基于蓝牙的智能传感器网络的第一个问题
  4. 赛普拉斯:蓝牙 MCU 通过无处不在的智能手机连接提供网状网络
  5. 带 RPi 的线跟踪传感器
  6. 带有 RPi 的环境传感器 API
  7. 带有数字接口的简单模拟接近传感器(用于 Raspberry Pi)[最后更新:2014 年 2 月 7 日]
  8. Portenta 和热电偶传感器(带 MAX6675)
  9. 使用 K30 传感器监测二氧化碳
  10. Arduino 带蓝牙控制 LED!
  11. 带有 Arduino 或 ESP8266 的电容式指纹传感器
  12. 基于密码的门锁