Índice:

O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2: 10 etapas (com imagens)
O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2: 10 etapas (com imagens)

Vídeo: O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2: 10 etapas (com imagens)

Vídeo: O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2: 10 etapas (com imagens)
Vídeo: Faça um alimentador automático para cachorros #ManualMaker Aula 12, Vídeo 2 2024, Julho
Anonim
O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2
O Alimentador de Peixe Automático Faça Você Mesmo: Camada 2

O Alimentador Tier 2 é um grande avanço em relação ao Tier 1. Esta versão usa um módulo wi-fi ESP8266 para sincronizar o relógio do arduino para controlar a programação de alimentação e a iluminação do tanque.

Etapa 1: O que você precisa:

Tudo na Camada 1, exceto o temporizador de luz

  • ESP8266-01
  • Programador FTDI (para programar o ESP8266)
  • Ferro de solda
  • Fita LED 5V RGBW (SK6812 IP 65, branco luz do dia, usei este)
  • A faixa de luz precisa ser à prova d'água, pois a água evaporará do tanque e se condensará na tampa do tanque e nas próprias luzes.
  • Fonte de alimentação 5V (usei esta, o arduino NÃO PODE ligar todas as luzes sozinho.).
  • Sinta-se à vontade para usar qualquer fonte de alimentação de 5 V que desejar, apenas certifique-se de que fornece energia suficiente para todas as luzes.
  • Regulador de tensão de 3,3 V
  • O ESP8266 funciona a 3,3 V, é por isso que todo o resto é 5 V, é mais fácil descer 5 para 3,3 do que descer 12 para 3,3
  • Resistores (1kOhm x2, 2kOhm x2 (ou 1kOhm x4), 10kOhm x1)
  • Super cola
  • Cola quente
  • Peças impressas em 3D x8 (arquivos STL fornecidos)
  • Decapantes de arame (eu recomendo essas coisas úteis)
  • Breadboard (para prototipar coisas)
  • Protoboard / placa de projeto (para montagem final)
  • Cabo de alimentação de computador de 3 pinos padrão.
  • (opcional) Motor vibratório de telefone celular (para agitar a tremonha) (usei um destes)
  • Instale estas bibliotecas do arduino:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Paciência.

Etapa 2: como funciona

O ESP8266 obtém a hora Unix de um servidor NIST e a passa para o arduino. O arduino então usa esse tempo para determinar o nascer e o pôr do sol locais e sincronizar seu relógio interno para determinar quantos minutos se passaram desde a meia-noite. Usando esse tempo decorrido desde a meia-noite, o arduino define a cor das luzes e sabe quando ativar o alimentador, que é o mesmo mecanismo do libertador Tier 1. As configurações padrão no código do Arduino que escrevi têm as luzes definidas para um ciclo dia / noite que pode ser controlado até o segundo para fades suaves e são sincronizadas com o nascer e o pôr do sol da sua localização. O arduino também se reinicializa uma vez por dia para se sincronizar novamente com o servidor NIST e garantir que não haja nenhum estouro de temporizador

Etapa 3: Programação do ESP8266

Programando o ESP8266
Programando o ESP8266

Ok, então o ESP8266 é um bastardo para programar.

Não é amigável para placa de ensaio e se você tiver fios de jumper fêmea, eu recomendo usá-los. Se o seu ESP8266 veio sem nenhum firmware instalado como o meu, você terá que fazer o flash do firmware. Use o programador FTDI para fazer isso. Existem muitas instruções sobre como fazer isso em outro lugar, mas forneci um diagrama de fiação para sua conveniência. CERTIFIQUE-SE de que o programador FTDI está fornecendo 3,3 V! 5V vai fritar seu ESP8266. No meu diagrama, a laranja conectada entre GPI01 e GND só deve ser feita ao atualizar o firmware do ESP8266. GPI01 deve permanecer desconectado durante o upload do código Arduino real para o módulo.

Em seguida, você terá que fazer o upload do código real do ESP8266. Use o programador FTDI desta vez junto com o IDE arduino. Você também precisará baixar e instalar todas as bibliotecas usadas. As configurações usadas para fazer upload do código com o arduino 1.8 estão na parte comentada no início. TENHA CERTEZA de atualizar o código com sua rede wi-fi e senha.

Etapa 4: conecte o ESP8266 ao Arduino

Conecte o ESP8266 ao Arduino
Conecte o ESP8266 ao Arduino
Conecte o ESP8266 ao Arduino
Conecte o ESP8266 ao Arduino

Assim que o código for carregado, você pode desconectar o programador FTDI e conectar o ESP8266 conforme mostrado no diagrama. Os resistores são usados como divisores de tensão para garantir que o arduino não bombeie 5 V na comunicação do ESP8266 e nos pinos de reinicialização. Faça esta etapa em uma placa de pão para depuração, vamos colocá-la na protoplaca mais tarde.

Uma vez que o ESP8266 esteja conectado, você deve ver uma luz azul piscando quando ele estiver conectado à energia, após alguns segundos ele deve obter o horário Unix da internet e enviá-lo para o arduino, então ele tem um loop vazio vazio () que permanece até ser redefinido, assim como o alimentador Tier 1.

Para ter certeza de que o ESP8266 está funcionando, você precisará carregar o código da próxima etapa para o arduino e abrir o monitor serial.

Etapa 5: Upload do código do Arduino e solução de problemas

Upload do código do Arduino e solução de problemas
Upload do código do Arduino e solução de problemas

Agora carregue o código para o arduino nano, abra o monitor serial, você deve ver algo como o exemplo acima. O arduino é redefinido quando você abre o monitor serial, portanto, o ESP8266 será redefinido ao mesmo tempo. o monitor serial começará a contar os segundos a partir da meia-noite de 1 de janeiro de 1970, até que o ESP8266 envie a hora Unix atual. Quando isso acontecer, você deverá ver o seguinte:

Pode levar de 3 a 15 segundos para que isso funcione, então seja paciente. Raramente vejo demorar mais de 10 segundos, mas espere 15 antes de começar a solução de problemas.

Se o seu ESP8266 não está enviando o tempo para o arduino, tente estas etapas:

· Certifique-se de que tudo está conectado EXATAMENTE como deveria

· Verifique novamente se você colocou o SSID e a senha do wi-fi corretos no ESP8266, caso contrário, você terá que conectá-lo de volta ao programador FTDI para carregar as informações corretas e, em seguida, reconectá-lo ao arduino. (um SSID ou senha superlongos podem causar alguns problemas, mas minha rede wi-fi tem mais de 20 caracteres em ambos os campos, portanto, a maioria das redes domésticas deve funcionar)

· Verifique a página de administração do roteador (se possível) para um dispositivo conectado que só aparece quando o ESP8266 está ligado. Para garantir que ele permaneça ligado enquanto você verifica isso (o arduino o desativa), reconecte o fio que conduz ao pino de reinicialização do ESP8266 diretamente em 3,3 V, mantendo-o ALTO para manter o ESP8266 ligado. Certifique-se de desfazer isso após verificar.

Etapa 6: personalizar o código do Arduino

Assim que o ESP8266 estiver conectado e enviando a hora para o arduino, o arduino programado simplesmente contará o tempo e exibirá alguns outros bits de informações de depuração, como nascer e pôr do sol. Podemos personalizar alguns desses valores no código do arduino, o resto simplesmente está lá para que eu possa depurar todo o sistema.

Para entender melhor como o arduino calcula o nascer e o pôr do sol, leia a documentação na Biblioteca Dusk2Dawn. Você precisará inserir sua latitude e longitude (se você alterar o nome de sua localização, certifique-se de que ele seja alterado em todos os lugares do código!) Dusk2Dawn usa suas coordenadas GPS (que você pode encontrar no google maps) e a hora local, para determinar quando o sol nasce e se põe em minutos a partir da meia-noite. A variável minfromMid é o minuto atual desde a meia-noite e é comparada com o nascer do sol, o pôr do sol, os horários de alimentação e o crepúsculo para dizer ao arduino quando fazer o quê. Certifique-se de atualizar seu fuso horário também, o padrão é EST.

Depois que sua localização for definida, defina a hora do crepúsculo para dizer ao arduino quanto tempo você deseja que o crepúsculo seja. Isso controla quanto tempo dura o período entre o dia e a noite e é dado em minutos. O padrão é 90 minutos, então as luzes RGBW irão diminuir do dia para a noite ou vice-versa nesse período de tempo.

Em seguida, defina os horários de alimentação desejados. Os tempos reais de alimentação são definidos no método getTime () para manter as alimentações sincronizadas com o dia / noite. Se você quiser que seus peixes sejam alimentados no mesmo horário todos os dias, comente as configurações relativas e use as configurações iniciais no início do código. Lembre-se de que esses horários são em minutos a partir da meia-noite. O uso de horários iniciais de alimentação codificados pode interferir na iluminação se o horário de alimentação cair durante o desvanecimento entre o crepúsculo e a luz do dia (ao nascer e pôr do sol). O padrão para o código é 15 minutos antes e depois do pôr do sol e do nascer do sol, respectivamente. Tempos de alimentação adicionais podem ser adicionados, se desejar.

Em seguida, defina a hora que deseja que o Arduino reinicie. Isso garante que nenhuma temporização ultrapasse e sincronize novamente o relógio. Recomendo que isso aconteça ao meio-dia, quando você estiver ausente, pois o processo de reinicialização faz com que as luzes fiquem com brilho total. De dia isso não será um problema para os peixes, mas à noite ou de manhã / tarde, o flash de luz pode incomodar seus peixes ou estragar a aparência do aquário por alguns segundos enquanto você o desfruta.

Finalmente, verifique o número de LEDs na faixa que você tem, Minha faixa tem 60, mas você deve atualizar este valor no código de configuração para quantos LEDs você estiver usando.

Etapa 7: a iluminação

A iluminação
A iluminação

Conecte sua faixa de LED, se ainda não o fez.

Alimentação (vermelho) para 5 V, aterramento (branco) para aterramento, sinal (verde) para o pino 6 (ou o que você definir). Depois que o arduino for reiniciado, as luzes ficarão com brilho total até que o ESP8266 envie a hora para o arduino e ele determine onde ele está no ciclo de iluminação. É melhor configurar isso à noite ou à noite, pois a mudança de luz será mais drástica. Se as luzes não mudarem em 30 segundos, reinicie o arduino. Meu código de redefinição deve estar funcionando, mas não sou um programador profissional, então ainda pode haver alguns bugs aqui ou ali. Você pode testar se a redefinição está funcionando definindo o tempo de redefinição para um minuto depois de recarregar o código e aguardar (o segundo de redefinição é aleatório, então pode levar 1-2 minutos para realmente redefinir). Você pode fazer o mesmo truque mais tarde para certificar-se de que o servo está funcionando, alterando o tempo de alimentação. Lembre-se de alterar esses tempos de volta antes de deixá-lo funcionando.

A programação de iluminação padrão é muito simples:

À noite, todas as luzes estão apagadas, exceto a azul, que está na configuração mais baixa (2/255). Conforme o tempo se aproxima do nascer do sol, o azul aumenta para sua intensidade total (255), que atinge no início do crepúsculo. Durante o crepúsculo, o vermelho e o verde aumentam de até 255. Ao nascer do sol, o vermelho, o azul e o verde estão todos em 255, mas a luz do dia é branca, então nos próximos 2 minutos o vermelho, o azul e o verde desaparecem e o branco desaparece Ao longo do resto do dia, o branco está em plena intensidade, até 2 minutos antes do pôr do sol, quando desaparece e é substituído por vermelho, azul e verde novamente. Ao pôr do sol, a luz entra novamente no crepúsculo, exceto que desta vez o vermelho e o verde começam com intensidade total e desaparecem, deixando o azul com intensidade total quando a noite chega. A partir daqui, o azul desbota lentamente de volta ao seu valor mais baixo, que chega à meia-noite.

Existe outro código no final do esboço do Arduino para outros modos de iluminação, então sinta-se à vontade para brincar com a matemática para fazer a iluminação esmaecer de forma diferente ou para alterar as cores durante diferentes períodos do dia. Lembre-se de que a matemática é feita no formato flutuante, mas os valores das cores devem ser ints, portanto, a conversão é necessária entre os dois com qualquer nova matemática de iluminação que você implementar.

Etapa 8: Imprimir as peças

Se você ainda não imprimiu as peças para este nível, faça-o. A caixa tem quase o mesmo tamanho de uma unidade de filtro de tamanho médio e demorou a noite toda para eu imprimir. Limpe as peças, insira a divisória da antepara, com a ranhura voltada para cima e a borda arredondada voltada para fora. O servo é instalado da mesma maneira que no Tier 1, e se você estiver substituindo um sistema Tier 1, a tremonha, a tampa e a roda de alimentação são idênticas, então você não terá que reimprimi-los se estiverem funcionando.

A pasta.zip contém dois conjuntos de arquivos STL, um para o servo motor SM22 original que usei e outro para o servo SG90, muito mais comum. Ambos contêm os arquivos do Fusion 360 se você quiser / precisar modificar qualquer uma das partes. Os STLs SM22 definitivamente se encaixam, já que são os que eu usei. Não imprimi nem testei as peças do SG90.

Para os materiais, recomendo usar um plástico adequado para alimentos. Usei Raptor PLA da makergeeks, que vem em uma tonelada de cores e é super forte depois de recozido por 10 minutos. Isso pode ser feito fervendo as peças, o que eu recomendo que você faça apenas para a roda se ela não couber, pois o recozimento encolherá as peças em cerca de 0,3%.

Imprimi a caixa de lado (com a parte superior voltada para o lado e o lado aberto voltado para cima). Isso usa muito menos material de suporte do que outras orientações. O funil pode ser impresso de cabeça para baixo para evitar todo o material de suporte nele. A tampa da tremonha também deve ser impressa de cabeça para baixo, porém a tampa grande deve ser impressa com o lado direito para cima.

Há também uma peça de 'fim de curso' para fornecer suporte para a parte inferior da caixa. Depois de deixar o alimentador no lugar por algumas semanas, percebi que ele começou a ceder e dobrar com o peso da fonte de alimentação, e isso estava afetando a capacidade da tremonha de alimentar a roda. Basta colar com cola quente 1-2 batentes na parte inferior da caixa para manter tudo nivelado.

Etapa 9: Montagem

conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto
conjunto

Use um protoboard para conectar tudo. Usei fios de jumper, então não precisei soldar tanto, mas é aqui que você vai soldar mais. Contanto que as conexões sejam todas iguais, o sistema funcionará como na placa de ensaio. Soldei os pinos do cabeçalho para criar "trilhos" de energia para aterramento, 5 V, 3,3 V, bem como portas de sinal para os sinais servo e sem energia de 3,3 V para o ESP8266 (RX, CH_PD e RST). Orientei todos os pinos em direção à parte inferior do protoboard, com os componentes na parte superior.

Depois de concluir o protoboard, insira-o na cavidade superior da caixa e conecte o servo motor. Os cabos de iluminação saem do entalhe na tampa do gabinete e a fonte de alimentação se encaixa na cavidade inferior. A cavidade inferior é arredondada e tem uma ligeira inclinação para drenar qualquer água que de alguma forma conseguir entrar no gabinete longe dos componentes eletrônicos. Conecte os terminais positivo e negativo da fonte de alimentação ao sistema e adicione a tampa lateral.

Se você ainda não fez isso para a fonte de alimentação, corte a extremidade do cabo de alimentação que não se conecta à parede e descasque os fios o suficiente para colocá-los nos terminais corretos da fonte de alimentação. Se você tem pontas frisadas que você pode colocar nas pontas, sugiro usá-las, se não o cobre nu vai ficar bem, apenas certifique-se de que nada está em curto! LEMBRE-SE de que ele será conectado à rede elétrica de sua casa. SEJA SEGURO E NUNCA TRABALHE COM O SISTEMA LIGADO.

Em seguida, a faixa de luz precisa ser adicionada ao tanque. Remova a tampa do tanque e seque-o completamente. Certifique-se de que a superfície da tampa está limpa e seca antes de adicionar as luzes. A tira que recebi tem um adesivo, isso não funcionará para prender a tira de luz, mas funcionará para colocá-los ao longo da borda da tampa (ou onde quer que você os coloque) Minha tampa do tanque passou a ser do tamanho certo para minha tira, então eu não tive que estender nenhum fio. Apenas certifique-se de que todos os fios expostos estão cobertos com materiais à prova d'água antes de colocar a tampa de volta no tanque. Usei cola quente para cobrir as pontas, mas isso pode não funcionar a longo prazo. Depois que as luzes estiverem dispostas como você gosta, cole-as no lugar. Tive que usar cola extra nos cantos, pois a faixa de LED subia ali. Deixe a cola secar por alguns minutos antes de colocar a tampa de volta no tanque, apenas para garantir que nada pingue. Assim que a tampa estiver de volta, basta conectar os fios ao arduino.

O conjunto do alimentador é exatamente igual ao alimentador da Camada 1. O servo se encaixa em sua cavidade com a roda alimentadora colada a ele. O bolso da roda do alimentador deve apontar para a tremonha quando o servo estiver na posição 0 (e girar em direção ao tanque na posição 180). Se você estiver usando o motor de vibração opcional, solde alguns fios de chumbo nele e insira-o na tremonha, há uma cavidade na cavidade do servo para ele. Envie os fios condutores do motor pelo mesmo caminho que os fios servo e conecte-os ao terra e ao pino do motor no arduino. Cole a tremonha na base com cola quente.

Depois que tudo estiver conectado, você pode conectar a fonte de alimentação na parede. O arduino deve passar por sua sequência de inicialização e as luzes mudarão quando chegar a hora. Caso contrário, reinicie a placa até chegar a hora. Eu colei a tampa do gabinete no lugar, mas deixei a tampa lateral descolada para que eu pudesse acessar o arduino para reiniciá-lo ou reprogramá-lo.

Parabéns! Seu alimentador de peixes Nível 2 está pronto! Maravilhe-se com a bela iluminação e sua capacidade de alimentar seus peixes quando você estiver fora! Monitore o sistema nos próximos dias para garantir que tudo esteja funcionando corretamente e que seus peixes estejam, de fato, sendo alimentados.

Etapa 10: Coisas a serem observadas no início:

Coisas a serem observadas em primeiro lugar
Coisas a serem observadas em primeiro lugar
Coisas a serem observadas em primeiro lugar
Coisas a serem observadas em primeiro lugar
Coisas a observar no início
Coisas a observar no início

Quando configurei o meu pela primeira vez, acidentalmente conectei o servo ao pino de sinal errado, de forma que os peixes não foram alimentados por vários dias até que percebi o erro (eu estava alimentando-os manualmente à noite em resposta ao próximo erro). Tente definir os horários de alimentação para quando é mais provável que você esteja por perto para confirmar que seus peixes foram alimentados.

Outro erro a observar é o reset. Se, por exemplo, você chegar em casa após o pôr do sol e seu tanque ainda estiver aceso durante o dia, é provável que a função de redefinição tenha falhado e o arduino nunca tenha obtido a hora do ESP8266. Isso também significa que seus peixes não foram alimentados desde o tempo de reinicialização, então provavelmente você mesmo deve alimentá-los enquanto pressiona o botão de reinicialização do arduino. Tenho 99% de certeza de que eliminei isso, mas codificação não é minha profissão, portanto, fique atento.

Além disso, certifique-se de verificar a comida no depósito a cada uma ou duas semanas, reabasteça conforme necessário e certifique-se de que nada estrague.

Se você vai viajar de férias, certifique-se de fazer uma troca de água e outras manutenções básicas do tanque antes de sair. O alimentador apenas garante que a comida e a iluminação não acabarão com os seus peixes se você ficar fora por muito tempo. Você nunca deve ter que usar alimentadores de férias novamente!

Recomendado: