Tabla de contenido:

Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)
Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)

Video: Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)

Video: Puerta para mascotas para exteriores de IoT: 6 pasos (con imágenes)
Video: Cómo instalar una puerta para gatos o perros Rápido y fácil😸🐶 2024, Noviembre
Anonim
Puerta para mascotas al aire libre IoT
Puerta para mascotas al aire libre IoT
Puerta para mascotas para exteriores IoT
Puerta para mascotas para exteriores IoT
Puerta para mascotas al aire libre IoT
Puerta para mascotas al aire libre IoT
Puerta para mascotas al aire libre IoT
Puerta para mascotas al aire libre IoT

Me inspiré en este instructable para crear una puerta automática para gallinero. No solo quería que la puerta del gallinero tuviera un temporizador, sino que también quería conectar la puerta a Internet para poder controlarla con mi teléfono o mi computadora. Esta puerta fue construida para mi gallinero, sin embargo, podría aplicarse fácilmente a otros tipos de viviendas para una variedad de mascotas. También puede usar diferentes tipos de motores de 12 V además del antiguo motor de antena de automóvil que usé.

Después de configurar y conectar Adafruit IO e IFTTT a mi ESP8266, la puerta de mi gallinero se puede controlar en línea. La puerta se puede abrir o cerrar:

1) En momentos precisos en los que entro en adafruit.io

2) Pulsando un botón en mi teléfono

3) Enviando un mensaje de texto a un número específico

4) Al hacer clic en un botón en adafruit.io

5) Pulsando un botón físico

Además de esas características, la puerta del gallinero puede enviar notificaciones automáticas a mi teléfono a través de la aplicación IFTTT sobre cualquier problema con la puerta, como que la puerta no se abra o se cierre.

Debido a que mi gallinero está a unos 500 pies de distancia de mi enrutador WiFi, utilicé un transmisor y receptor RFM69HCW de 433 MHz emparejados con un ESP8266 para llevar a cabo este proyecto. Hay una caja transmisora interior negra con hardware que está conectada a Internet y una caja receptora exterior gris que controla el motor.

Este instructivo lo llevará a través del proceso de creación del hardware necesario para controlar un motor de 12 V que abre o cierra la puerta de mi gallinero.

Usé las siguientes partes:

Adafruit 32u4 con RFM69HCW de 433 MHz - $ 25

Adafruit MCP23017 I2C 16 expansor de puerto de entrada / salida IC - $ 2.95

Adafruit Feather HUZZAH con ESP8266 WiFi - $ 16.95

Adafruit Radio FeatherWing 433MHz RFM69HCW - $ 10

Conector Adafruit SMA para PCB de 1,6 mm de grosor - $ 2,50

Conector de antena Adafruit uFL SMA - $ 0.75

Botón pulsador Adafruit RGB - $ 10.95

Fuente de alimentación de 12V - $ 7

Fuente de alimentación USB de 5V - $ 7

Cable micro USB - $ 5

Placa de relé de 4 canales (puede usar 2 canales) - $ 7

Convertidor DC-DC Buck (solo se usa uno, pero viene en un paquete de 5) - $ 20

Interruptor de lengüeta (sensor de interruptor de puerta magnético) - $ 9

2 antenas omnidireccionales de 433 MHz - $ 6

Adaptador de cable uFL a SMA (solo se usa uno, pero viene como paquete de 2) - $ 5

Caja impermeable para proyectos de ABS al aire libre - $ 11

Caja negra para proyectos de ABS - $ 10

LCD de caracteres azules 20x4 - $ 10

Motor de antena de coche de 12 V - ~ $ 25 en ebay

Alambres y resistencias

Paso 1: receptor exterior

Receptor al aire libre
Receptor al aire libre
Receptor al aire libre
Receptor al aire libre

El receptor exterior consta de un Adafruit 32u4 con RFM69HCW de 433MHz conectado a unos relés que encienden o apagan la alimentación de un motor de 12V. Estos módulos, así como un convertidor CC-CC de 12 V a 5 V, se encuentran dentro de una caja de proyecto gris impermeable. Finalmente, hay un sensor de interruptor de puerta conectado a uno de los pines del microcontrolador Arduino 32u4 que detecta si la puerta se abrió o cerró correctamente o no cuando debería haberlo hecho.

Cada 15 segundos, el transmisor interior enviará "Abrir" o "Cerrar". Según el comando recibido, el Arduino 32u4 encenderá o apagará un relé. Para el motor que elegí, que es un motor de antena de automóvil antiguo, tuve que encender o apagar dos relés debido a cómo está cableado el motor. Básicamente había un relé para encender la energía y luego otro relé que controlaba si el motor se extendía o se retraía.

Una vez que se recibe la transmisión de apertura o cierre, el receptor exterior responde con "sensorOpen" o "sensorClosed" para indicar el estado del sensor del interruptor de puerta. Idealmente, el comando "abrir" devolvería una respuesta de "sensorOpen", sin embargo, si la puerta se atasca o el motor se atasca, estos no coincidirán. Cuando no coinciden, el transmisor interior mostrará esa información y se enviará una notificación automática a su teléfono.

Paso 2: Conexión del hardware del receptor exterior

Conexión del hardware del receptor exterior
Conexión del hardware del receptor exterior
Conexión del hardware del receptor exterior
Conexión del hardware del receptor exterior
Conexión del hardware del receptor exterior
Conexión del hardware del receptor exterior

El hardware del receptor exterior no es demasiado difícil de conectar. Incluí un esquema de fritzing a continuación para que los pines que utilicé se puedan ver fácilmente.

Como dije anteriormente, el motor que utilicé requería dos relés. Incluí una imagen del pinout. En el segundo que conecte 12V al cable rojo, el motor se retraerá si está extendido. Si conecta 12V al cable rojo y al cable verde al mismo tiempo, el motor se extenderá.

El interruptor de lengüeta que vinculé anteriormente debe conectarse como un interruptor normalmente cerrado. La diferencia entre normalmente abierto y normalmente cerrado se explica en la imagen que adjunto arriba. Usando software, hay una resistencia pullup interna adjunta al pin de entrada en el 32u4, por lo que todo lo que necesita hacer es conectar el interruptor de la puerta al pin de entrada y también a tierra.

Deberá conectar una antena al Adafruit 32u4. Consulte el tutorial muy bien explicado de Adafruit sobre este paso. Elegí usar una antena externa en lugar de un trozo de cable para obtener un mejor alcance.

Paso 3: transmisor interior

Transmisor interior
Transmisor interior
Transmisor de interior
Transmisor de interior
Transmisor interior
Transmisor interior

El transmisor de interior consta de un Adafruit Radio FeatherWing 433MHz RFM69HCW apilado sobre un Adafruit Feather HUZZAH con ESP8266 WiFi. Estos módulos están conectados a una pantalla de 20x4 caracteres y un botón plateado RGB dentro de una caja de proyecto negra.

La pantalla tiene un reloj sincronizado NTC, la fuerza RSSI en dB (mide la fuerza de las señales de radio), la hora en que se abrirá la puerta del gallinero, la hora en que se cerrará la puerta del gallinero y el estado actual de la puerta. El botón es rojo cuando la puerta está cerrada y verde cuando la puerta está abierta.

Si el receptor exterior pierde energía o si la señal de 433MHz no se puede enviar por cualquier motivo, la pantalla y el botón RGB entrarán en el primero de los dos posibles modos de error. En el primer modo de error, la pantalla dirá "¡ERROR! Intente reiniciar el receptor exterior". y el botón no tendrá color. Si el sensor del interruptor de la puerta detecta que la puerta no se cerró o abrió correctamente, la pantalla y el botón RGB entrarán en el segundo de los dos modos de error. En el segundo modo de error, la pantalla indicará "¡ERROR! Problema con el sensor de puerta o interruptor". y el botón no tendrá color. Cuando el problema se resuelva por sí solo, la pantalla y el botón RGB volverán a la normalidad. Puede recibir notificaciones automáticas en su teléfono si se produce cualquiera de estos modos de error (repasaré esa configuración en un paso posterior).

Paso 4: Conexión del hardware del transmisor interior

Conexión del hardware del transmisor interior
Conexión del hardware del transmisor interior
Conexión del hardware del transmisor interior
Conexión del hardware del transmisor interior

Después de apilar el Adafruit Radio FeatherWing 433MHz RFM69HCW sobre un Adafruit Feather HUZZAH con ESP8266 WiFi, solo quedan 2 pines que no se toman, los pines I2C SDA y SCL. Por eso elegí el circuito integrado (IC) MCP23017. Es un IC realmente genial que conecta hasta 16 pines de entrada / salida adicionales a cualquier microcontrolador a través de I2C. Además, hay una biblioteca preescrita llamada Adafruit-RGB-LCD-Shield que usa este IC con una pantalla de caracteres que está escrita técnicamente para este producto Adafruit, sin embargo, funciona perfectamente para este proyecto.

La idea de usar el MCP23017 con una pantalla de caracteres proviene de este instructivo muy bien escrito. ¡Por favor, míralo!

Tomé ese instructable y en lugar de conectar varios botones y una pantalla RGB al IC, solo conecté un botón que tenía un LED RGB en su interior y una pantalla monocromática al IC. Esto me permitió definir el PIN 1 del IC (normalmente utilizado para la luz de fondo azul de una pantalla RGB) como la luz de fondo de mi pantalla monocromática, el PIN 28 (normalmente utilizado para la luz de fondo verde de una pantalla RGB) como el LED rojo dentro del y el PIN 27 (normalmente utilizado para la luz de fondo roja de una pantalla RGB) como el LED verde dentro del botón. El PIN 24 estaba conectado a un lado del botón y el otro lado estaba conectado a tierra. Puede ver el pinout del botón en la imagen adjunta arriba (dejé el cátodo azul desconectado).

Además de usar ese instructable que vinculé para ayudar a conectar la pantalla, he incluido un esquema de fritzing que lo ayudará a conectar todo.

Tendrá que acortar tres pines en la parte superior del FeatherWing 433MHz RFM69HCW como se explica en este tutorial de Adafruit. También tendrá que conectar una antena al FeatherWing 433MHz RFM69HCW. Consulte el tutorial muy bien explicado de Adafruit sobre este paso. Elegí usar una antena externa con un conector SMA de montaje lateral en lugar de un trozo de cable para obtener un mejor alcance.

Paso 5: Conexión a Adafruit. IO e IFTTT

Conexión a Adafruit. IO e IFTTT
Conexión a Adafruit. IO e IFTTT
Conexión a Adafruit. IO e IFTTT
Conexión a Adafruit. IO e IFTTT

Adafruit IO:

Siga las instrucciones de este tutorial de Adafruit para registrarse en Adafruit. IO si no tiene una cuenta. También debería leer sobre qué es un feed y un panel de control.

En términos simples, un tablero es una especie de interfaz gráfica de usuario, mientras que los feeds son a los que envía datos para que pueda almacenarlos en Internet. Deberá crear 1 panel y 4 fuentes. Nombré el mío antes de saber cómo deletrear gallinero correctamente, así que perdona la ortografía incorrecta. Si no desea cambiar el nombre de los nombres de las fuentes en el código arduino, simplemente use el mismo nombre que yo.

Primero cree los cuatro feeds:

1) "Golpe de pollo" Esto es para el interruptor Abierto / Cerrado

2) "Temporizador de golpe de pollo" Esto es para el temporizador de apertura

3) "Chicken Coup Timer 2" Esto es para el temporizador de cierre.

4) "Mensaje de error de golpe de pollo" Esto es para los mensajes de error

A continuación, cree un tablero llamado Chicken Coup y agregue 4 bloques usando el botón azul +. Consulte la imagen de arriba para ver los tipos de bloques que debe colocar, así como los nombres de los bloques. Asegúrese de nombrar los estados del interruptor exactamente como "Abierto" y "Cerrado"

IFTTT:

La parte IFTTT de este proyecto agrega la capacidad de presionar un botón en su teléfono y enviar un mensaje de texto para abrir o cerrar la puerta del gallinero. También permite que la aplicación IFTTT le envíe notificaciones automáticas si se publica algo en el mensaje de error de Chicken Coup. Si no desea estas capacidades, puede omitir esta sección.

Primero, configure una cuenta IFTTT si aún no tiene una. Si desea utilizar los subprogramas prefabricados que creé, simplemente navegue a mi cuenta y active los subprogramas que desee. De lo contrario, tendrá que crear el suyo propio y suscribirse o publicar en el feed de adafruit que creó anteriormente.

Paso 6: Carga de código y edición de SSID y contraseña de WiFi

Deberá pasar por esta página del tutorial de Adafruit para poder cargar el código en el transmisor interior.

Deberá pasar por esta página del tutorial de Adafruit para poder cargar el código en el receptor exterior.

Deberá instalar la biblioteca RFM69, la biblioteca Adafruit_RGBLCDShield, la biblioteca de reloj NTC llamada simpleDSTadjust y la biblioteca de ticker. Puede encontrar un tutorial sobre cómo hacerlo aquí.

Abra Arduino IDE y cargue el código "Outdoor_Receiver.ino" en el Arduino 32u4 para exteriores a través de un cable USB.

Luego, abra "Indoor_Transmitter.ino", abra la pestaña config.h, e ingrese su nombre de WiFi (SSID) y contraseña dentro de las comillas. Luego, obtenga su nombre de usuario de Adafruit. IO y su clave IO siguiendo esta página de tutorial e ingréselo en la pestaña config.h.

Si cambió los nombres de las fuentes de Adafruit IO, deberá editar el código en la pestaña principal de Indoor_Transmitter. Edite lo siguiente:

AdafruitIO_Feed * toggleSwitch = io.feed ("Golpe de pollo");

AdafruitIO_Feed * timer = io.feed ("Temporizador de golpe de pollo");

AdafruitIO_Feed * timer2 = io.feed ("Temporizador de golpe de pollo 2");

AdafruitIO_Feed * error = io.feed ("Mensaje de error de golpe de pollo");

¡Eso debería ser todo lo que tienes que hacer! Si desea comprender mejor cómo funcionan los dos bocetos, comenté el código. Por favor hazme saber si tienes preguntas. ¡Buena suerte!

Recomendado: