Índice:

Porta do animal de estimação ao ar livre da IoT: 6 etapas (com fotos)
Porta do animal de estimação ao ar livre da IoT: 6 etapas (com fotos)

Vídeo: Porta do animal de estimação ao ar livre da IoT: 6 etapas (com fotos)

Vídeo: Porta do animal de estimação ao ar livre da IoT: 6 etapas (com fotos)
Vídeo: CACHORRINHO PROTEGENDO O PATINHO!!! #shorts 2024, Dezembro
Anonim
Porta para animais de estimação ao ar livre IoT
Porta para animais de estimação ao ar livre IoT
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
IoT Outdoor Pet Door
Porta para animais de estimação ao ar livre IoT
Porta para animais de estimação ao ar livre IoT

Fui inspirado por este instrutível para criar uma porta automática do galinheiro. Eu não queria apenas a porta do galinheiro com um cronômetro, mas também conectar a porta à internet para que pudesse controlá-la com meu telefone ou computador. Esta porta foi construída para o meu galinheiro, no entanto, pode ser facilmente aplicada a outros tipos de alojamento para uma variedade de animais de estimação. Você também pode usar diferentes tipos de motores de 12 V além do antigo motor de antena de carro que usei.

Depois de configurar e conectar o Adafruit IO e o IFTTT ao meu ESP8266, a porta do meu galinheiro pode ser controlada online. A porta pode ser aberta ou fechada:

1) Nos momentos precisos que entro no adafruit.io

2) Apertando um botão no meu telefone

3) Enviando uma mensagem de texto para um número específico

4) Ao clicar em um botão em adafruit.io

5) Ao apertar um botão físico

Além desses recursos, a porta do galinheiro pode enviar notificações push para o meu telefone através do aplicativo IFTTT sobre quaisquer problemas com a porta, como falha ao abrir ou fechar.

Como meu galinheiro fica a cerca de 150 metros de distância do meu roteador WiFi, usei um transmissor e receptor RFM69HCW de 433 MHz emparelhado com um ESP8266 para realizar este projeto. Há uma caixa transmissora interna preta com hardware conectado à Internet e uma caixa receptora externa cinza que controla o motor.

Este instrutível irá guiá-lo através do processo de criação do hardware necessário para controlar um motor de 12 V que abre ou fecha a porta do meu galinheiro.

Usei as seguintes peças:

Adafruit 32u4 com 433 MHz RFM69HCW - $ 25

Adafruit MCP23017 I2C 16 de expansão de porta de entrada / saída IC - $ 2,95

Adafruit Feather HUZZAH com ESP8266 WiFi - $ 16,95

Adafruit Radio FeatherWing 433 MHz RFM69HCW - $ 10

Conector Adafruit SMA para PCBs de 1,6 mm de espessura - $ 2,50

Conector de antena Adafruit uFL SMA - $ 0,75

Botão de pressão Adafruit RGB - $ 10,95

Fonte de alimentação de 12 V - $ 7

Fonte de alimentação USB 5V - $ 7

Cabo Micro USB - $ 5

Placa de relé de 4 canais (pode usar 2 canais) - $ 7

Conversor DC-DC Buck (usado apenas um, mas vem como um pacote de 5) - $ 20

Reed Switch (sensor magnético do interruptor da porta) - $ 9

2 Antena Omnidirecional 433 MHz - $ 6

Adaptador de cabo uFL para SMA (usado apenas um, mas vem como um pacote de 2) - $ 5

Caixa de projeto ABS impermeável para exterior - $ 11

Caixa preta de projeto ABS - $ 10

LCD de caracteres 20x4 azul - $ 10

Motor de antena de carro 12V - ~ $ 25 no ebay

Fio e resistores

Etapa 1: receptor externo

Receptor Externo
Receptor Externo
Receptor Externo
Receptor Externo

O receptor externo consiste em um Adafruit 32u4 com 433 MHz RFM69HCW conectado a alguns relés que ligam ou desligam a energia para um motor de 12V. Esses módulos, bem como um conversor DC-DC de 12V a 5V, estão dentro de uma caixa de projeto cinza à prova d'água. Finalmente, há um sensor de chave de porta conectado a um dos pinos do microcontrolador 32u4 Arduino que detecta se a porta foi aberta ou fechada corretamente quando deveria.

A cada 15 segundos, o transmissor interno enviará "Abrir" ou "Fechar". Com base no comando recebido, o Arduino 32u4 ligará ou desligará um relé. Para o motor que escolhi, que é um motor de antena de carro antigo, tive que ligar ou desligar dois relés por causa da fiação do motor. Basicamente, havia um relé para ligar a energia e, em seguida, outro relé que controlava se o motor estava estendido ou retraído.

Assim que a transmissão aberta ou fechada é recebida, o receptor externo responde com "sensorOpen" ou "sensorClosed" para indicar o status do sensor do interruptor da porta. Idealmente, o comando "abrir" retornaria uma resposta "sensorOpen", no entanto, se a porta emperrar ou o motor emperrar, eles não corresponderão. Quando eles não correspondem, o transmissor interno exibirá essas informações e uma notificação push será enviada para o seu telefone.

Etapa 2: Conexão do Hardware do Receptor Externo

Hardware receptor de conexão externa
Hardware receptor de conexão externa
Hardware receptor de conexão externa
Hardware receptor de conexão externa
Hardware receptor de conexão externa
Hardware receptor de conexão externa

O hardware do receptor externo não é muito difícil de conectar. Eu incluí um esquema fritzing abaixo para que os pinos que usei possam ser facilmente visualizados.

Como afirmei acima, o motor que usei exigia dois relés. Incluí uma foto da pinagem. No segundo que você conectar 12 V ao fio vermelho, o motor irá retrair se estiver estendido. Se você conectar 12 V ao fio vermelho e ao fio verde ao mesmo tempo, o motor será estendido.

O switch reed I linkado acima deve ser conectado como um switch normalmente fechado. A diferença entre normalmente aberto e normalmente fechado é explicada na imagem que anexei acima. Usando o software, há um resistor pullup interno conectado ao pino de entrada no 32u4, então tudo que você precisa fazer é conectar a chave da porta ao pino de entrada e também ao aterramento.

Você terá que conectar uma antena ao Adafruit 32u4. Por favor, verifique o tutorial muito bem explicado de Adafruit nesta etapa. Optei por usar uma antena externa em vez de um pedaço de fio para obter um melhor alcance.

Etapa 3: transmissor interno

Transmissor Interno
Transmissor Interno
Transmissor Interno
Transmissor Interno
Transmissor Interno
Transmissor Interno

O transmissor interno consiste em um Adafruit Radio FeatherWing 433 MHz RFM69HCW empilhado em cima de um Adafruit Feather HUZZAH com ESP8266 WiFi. Esses módulos são conectados a um display de 20x4 caracteres e um botão RGB prata dentro de uma caixa preta de projeto.

O display possui um relógio sincronizado com NTC, a força RSSI em dB (mede a força dos sinais de rádio), a hora em que a porta do galinheiro será aberta, a hora em que a porta do galinheiro será fechada e o status atual da porta. O botão fica vermelho quando a porta está fechada e verde quando a porta está aberta.

Se o receptor externo perder energia ou se o sinal de 433 MHz não puder ser enviado por qualquer motivo, o display e o botão RGB entrarão no primeiro dos dois modos de erro possíveis. No primeiro modo de erro, o display mostrará "ERROR! Tente reiniciar o receptor externo." e o botão não terá uma cor. Se o sensor do interruptor da porta detectar que a porta não foi fechada ou aberta corretamente, o monitor e o botão RGB entrarão no segundo dos dois modos de erro. No segundo modo de erro, o display mostrará "ERROR! Problema na porta ou no sensor da chave." e o botão não terá uma cor. Quando o problema for resolvido, a tela e o botão RGB voltarão ao normal. Você pode receber notificações push em seu telefone se um desses modos de erro ocorrer (examinarei essa configuração em uma etapa posterior).

Etapa 4: conectar o hardware do transmissor interno

Hardware transmissor de conexão interna
Hardware transmissor de conexão interna
Hardware transmissor de conexão interna
Hardware transmissor de conexão interna

Depois de empilhar o Adafruit Radio FeatherWing 433 MHz RFM69HCW em cima de um Adafruit Feather HUZZAH com ESP8266 WiFi, restam apenas 2 pinos que não foram retirados, os pinos I2C SDA e SCL. É por isso que optei pelo circuito integrado (IC) MCP23017. É um IC muito legal que conecta até 16 pinos de entrada / saída adicionais a qualquer microcontrolador em I2C. Além disso, há uma biblioteca pré-escrita chamada Adafruit-RGB-LCD-Shield que usa este IC com um display de caracteres que é tecnicamente escrito para este produto Adafruit, no entanto, funciona perfeitamente para este projeto.

A ideia de usar o MCP23017 com um display de caracteres vem deste instrutível muito bem escrito. Por favor, confira!

Peguei essa instrução e, em vez de conectar vários botões e um display RGB ao IC, conectei apenas um botão que tinha um LED RGB dentro dele e um display monocromático ao IC. Isso me permitiu definir o PIN 1 do IC (normalmente usado para a luz de fundo azul de uma tela RGB) como a luz de fundo para minha tela monocromática, PIN 28 (normalmente usado para a luz de fundo verde de uma tela RGB) como o LED vermelho dentro do botão e PIN 27 (normalmente usado para a luz de fundo vermelha de um monitor RGB) como o LED verde dentro do botão. O PIN 24 foi conectado a um lado do botão e o outro lado foi conectado ao aterramento. Você pode ver a pinagem do botão na imagem anexada acima (deixei o cátodo azul desconectado).

Além de usar aquele instrutível vinculado para ajudar a conectar o monitor, incluí um esquema fritzing que ajudará você a conectar tudo.

Você terá que colocar três pinos no topo do FeatherWing 433 MHz RFM69HCW conforme explicado neste tutorial do Adafruit. Você também terá que conectar uma antena ao FeatherWing 433 MHz RFM69HCW. Por favor, verifique o tutorial muito bem explicado de Adafruit nesta etapa. Optei por usar uma antena externa com um conector SMA montado lateralmente em vez de um pedaço de fio para obter melhor alcance.

Etapa 5: Conectando-se a Adafruit. IO e IFTTT

Conectando-se a Adafruit. IO e IFTTT
Conectando-se a Adafruit. IO e IFTTT
Conectando-se a Adafruit. IO e IFTTT
Conectando-se a Adafruit. IO e IFTTT

Adafruit IO:

Siga as instruções neste tutorial do Adafruit para se inscrever no Adafruit. IO se você não tiver uma conta. Você também deve ler sobre o que é um feed e um painel.

Em termos simples, um painel é como a interface gráfica do usuário, enquanto os feeds são para onde você envia dados para que possa armazená-los na Internet. Você precisará criar 1 painel e 4 feeds. Eu dei um nome ao meu antes de saber como soletrar galinheiro corretamente, então, por favor, perdoe a grafia incorreta. Se você não quiser renomear os nomes dos feeds no código do Arduino, apenas use a mesma nomenclatura que usei.

Crie os quatro feeds primeiro:

1) "Chicken Coup" Isto é para o interruptor Aberto / Fechado

2) "Cronômetro de Golpe de Galinha" Este é o cronômetro de abertura

3) "Cronômetro de Golpe de Galinha 2" Este é para o cronômetro de fechamento

4) "Mensagem de erro de canja de galinha" Isto é para as mensagens de erro

Crie um painel chamado Chicken Coup e adicione 4 blocos usando o botão azul +. Por favor, veja a imagem acima para os tipos de blocos que você deve colocar, bem como os nomes dos blocos. Certifique-se de nomear os status do switch exatamente como "Aberto" e "Fechado"

IFTTT:

A parte IFTTT deste projeto adiciona a capacidade de apertar um botão em seu telefone e enviar um texto para abrir ou fechar a porta do galinheiro. Ele também permite que o aplicativo IFTTT envie notificações push se algo for publicado no feed de mensagens de erro do frango golpe. Se você não quiser esses recursos, pode pular esta seção.

Primeiro, configure uma conta IFTTT se ainda não tiver uma. Se você quiser usar os miniaplicativos pré-fabricados que criei, basta navegar até minha conta e ativar os miniaplicativos desejados. Caso contrário, você terá que criar o seu próprio e assinar ou publicar o feed da adafruit que você criou acima.

Etapa 6: Upload de código e edição de SSID e senha WiFi

Você precisará passar por esta página do tutorial Adafruit para poder carregar o código para o transmissor interno.

Você precisará passar por esta página do tutorial Adafruit para poder fazer o upload do código para o receptor externo.

Você precisará instalar a biblioteca RFM69, a biblioteca Adafruit_RGBLCDShield, a biblioteca de relógio NTC chamada simpleDSTadjust e a biblioteca ticker. Você pode encontrar um tutorial sobre como fazer isso aqui.

Abra o IDE do Arduino e carregue o código "Outdoor_Receiver.ino" para o Arduino 32u4 externo por meio de um cabo USB.

Em seguida, abra "Indoor_Transmitter.ino", abra a guia config.h e digite seu nome de WiFi (SSID) e senha entre aspas. Em seguida, obtenha seu nome de usuário Adafruit. IO e chave IO seguindo esta página de tutorial e insira-o na guia config.h.

Se você alterou os nomes dos feeds Adafruit IO, você precisará editar o código na guia principal Indoor_Transmitter. Edite o seguinte:

AdafruitIO_Feed * toggleSwitch = io.feed ("Chicken Coup");

AdafruitIO_Feed * timer = io.feed ("Cronômetro de Golpe de Galinha");

AdafruitIO_Feed * timer2 = io.feed ("Cronômetro de Golpe de Galinha 2");

AdafruitIO_Feed * error = io.feed ("Mensagem de erro de canja de frango");

Isso deve ser tudo o que você precisa fazer! Se você quiser entender melhor como os dois esboços funcionam, comentei o código. Por favor, deixe-me saber se você tem alguma dúvida. Boa sorte!

Recomendado: