Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Haga una puerta de oficina con bloqueo automático con sensor de proximidad para teléfono inteligente

Pssst - quieres algo de protección de alta tecnología para tu oficina en casa, o una cerradura secreta para tu "taller" (ok, me entendiste, en realidad es una mazmorra / sala de juegos) que los niños no podrán entender? Te tenemos cubierto. Construyamos una cerradura inteligente de bricolaje que detecta automáticamente cuando estás allí y bloquea cuando no lo estás.

¿Como funciona? ¡NADIE LO SABE! O más específicamente, Bluetooth.

El concepto

Su teléfono inteligente es un dispositivo poderoso que constantemente revela información sobre sí mismo al mundo exterior; una forma de hacerlo es Bluetooth.

En el modo de descubrimiento, transmite un número de identificación único, pero incluso cuando no se permite específicamente ser descubierto, cualquier persona que sepa esa dirección puede intentar hacer ping. Si se escucha una respuesta, eso indicaría si está dentro del rango o no.

Configuraremos una Raspberry Pi con un adaptador Bluetooth para estar constantemente alerta cuando su teléfono inteligente esté fuera de alcance, y cuando lo esté, el relé entrará en acción y cerrará la puerta.

Necesitará

Trabajar con Bluetooth

Bluetooth es fundamental para este proyecto, así que comencemos por instalar algo de compatibilidad con Bluetooth y probar nuestro adaptador. Puede hacer esto directamente desde la Pi o SSH de forma remota (cómo configurar Windows a SSH en su Pi).

  sudo apt-get install bluez python-bluez  

Inserte su dongle si aún no lo ha hecho, y echemos un vistazo a lo que informa.

  hcitool dev  

Si tiene algo en la lista de resultados, está listo para comenzar. A continuación, usaremos una secuencia de comandos de Python para sondear los dispositivos Bluetooth cercanos y tomaremos la dirección única del dispositivo. Solo necesitamos hacer esto una vez para cada dispositivo.

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

Si ves "0 dispositivos encontrados", no tienes una llave USB Bluetooth compatible o tu teléfono inteligente no es detectable. Sin embargo, no se desespere:descubrí que tenía que abrir la página de configuración de Bluetooth en mi iPhone para ponerlo en modo de descubrimiento, luego sucedió esto:

Genial, ahora creemos la primera etapa de nuestro software que realiza la detección. Cree una aplicación de Python llamada detect.py y ábralo con Nano.

  nano detect.py  

Pegue este código de muestra:

  #! / 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 ):imprime "Usuario presente" else:imprime "Usuario fuera de rango" time.sleep (10)  

y ajuste la siguiente línea con la dirección de su dispositivo Bluetooth:

  resultado =bluetooth.lookup_name ('78:7F:70:38:51:1B ', tiempo de espera =5)  

Presiona CTRL-X y Y cerrar y guardar. Ejecute el mismo código y verá algo como esto:

El código debería ser muy fácil de entender incluso si nunca antes ha tocado Python:busca un dispositivo Bluetooth en particular cada 10 segundos e imprime un mensaje diferente dependiendo de si se encuentra o no. Active y desactive el Bluetooth de su teléfono para simular el movimiento dentro y fuera del alcance (probablemente unos 4 m en realidad). Puede disminuir o aumentar el tiempo entre escaneos, pero sentí que 10 segundos era una cantidad de tiempo razonable para potencialmente tener que esperar a que se desbloquee la puerta, que es a donde vamos con todo este proyecto después de todo.

Debo agregar, no sé sobre el consumo de energía de hacer esto, pero supongo que hacer ping a un dispositivo con más frecuencia necesariamente consumiría más energía. No he visto ningún problema de rendimiento obvio en las pruebas, pero si la duración de la batería es una preocupación importante para usted, considere tener un interruptor dentro de su oficina que active y desactive el ciclo de escaneo, por lo que una vez que esté dentro, puede pausar el bloqueo. sistema, luego vuelva a activar el escaneo cuando salga.

Felicitaciones, ahora tiene una aplicación de Python que sabe cuándo está dentro del alcance, por lo que podemos comenzar a actuar en consecuencia.

Modos de placa GPIO

Antes de continuar, debes averiguar qué modo de tablero vas a usar. No hay una respuesta correcta o incorrecta, solo afecta si especifica el número de pin literal o el número de pin GPIO virtual.

El valor predeterminado es usar el número de pin literal ("modo de placa"), comenzando con el pin 1 en la parte inferior izquierda (si mira hacia abajo en el Pi con puertos USB a la derecha). El pin 2 está justo encima de eso.

Sin embargo, si tiene una placa de ruptura GPIO ("zapatero"), las etiquetas que tiene son de un modo alternativo, llamado "BCM" (canal Broadcom SOC), y comúnmente se escriben con GPIO o P como prefijo. No es estrictamente necesario un desglose de GPIO, simplemente facilita las cosas. Si no tiene una placa de ruptura y no quiere comprar una, use este diagrama:

Tenga en cuenta que el modelo B original revisión 1, revisión 2 y el modelo B + y Pi2 tienen diferentes pines. Consulte esta pregunta de StackExchange para obtener un diagrama correcto para su placa.

En este código de proyecto, estoy usando el sistema de numeración BCM GPIO que corresponde a la placa adaptadora Adafruit que tengo. Se necesitan modificaciones menores si desea utilizar el modo de pin literal.

Cableado en un relé

Conecte la placa de ruptura, asegurándose de que el cable de los pines 1 y 2 (los que están en la esquina de su Pi) se conecte a 3v3 y 5V0 en la ruptura. Es posible que desee sacar un probador de voltaje para verificar esto.

Antes de continuar, verifique si alguien más ha usado su relé particular con la Raspberry Pi (o busque uno de antemano que sepa que funciona). Algunos pueden requerir 5V para activarse, pero el RPi solo puede proporcionar 3.3V en los pines de salida GPIO. Por casualidad, el que estoy usando está contento con 3.3V, por lo que no necesité ningún circuito adicional, solo el 5V0 a VCC , GND a GND y pin 23 de GPIO para la primera entrada de relé .

Mi tutorial anterior sobre GPIO mostró cómo conectar un circuito de transistor para escalar 3.3V a 5V completos si es necesario (de hecho, usé la misma placa de relé para ese tutorial, pero resulta que no necesitaba 5V después de todo).

No es necesario conectar el electroimán todavía, ya que podrá escuchar un clic audible cuando se active el relé.

A continuación, tomemos un código para interactuar con los puertos GPIO.

Comenzaremos probando fuera de Python para confirmar que todo funciona en los propios puertos. Instale wirePi, que le brinda algunas herramientas útiles de línea de comandos.

  git clone git://git.drogon.net/wiringPi cd cableadoPi ./build  

Una vez instalado, configure el pin 23 de GPIO para que sea una salida.

  gpio -g modo 23 fuera  

Ahora, haga un escaneo rápido de todos los puertos para confirmar

  gpio -g readall  

Tendrá algo similar a esto, aunque el suyo puede ser más largo en un modelo B + o Pi2 ya que tiene más pines GPIO:

Para obtener más detalles:haga una puerta de oficina con bloqueo automático con sensor de proximidad para teléfono inteligente


Proceso de manufactura

  1. Bóveda del banco
  2. Circuito de sensor de proximidad simple y trabajo con aplicaciones
  3. Considere el problema número uno con las redes de sensores inteligentes basadas en Bluetooth
  4. Cypress:las MCU Bluetooth ofrecen redes de malla con conectividad ubicua para teléfonos inteligentes
  5. Sensor de seguimiento de línea con RPi
  6. API de sensor ambiental con un RPi
  7. Un sensor de proximidad analógico simple con interfaz digital (para Raspberry Pi) [última actualización:7 de febrero de 2014]
  8. Portenta y sensor de termopar (con MAX6675)
  9. Monitoreo de CO2 con sensor K30
  10. ¡Arduino con Bluetooth para controlar un LED!
  11. Sensor capacitivo de huellas dactilares con Arduino o ESP8266