Tabla de contenido:

El mejor alimentador automático de peces de bricolaje: Nivel 2:10 pasos (con imágenes)
El mejor alimentador automático de peces de bricolaje: Nivel 2:10 pasos (con imágenes)

Video: El mejor alimentador automático de peces de bricolaje: Nivel 2:10 pasos (con imágenes)

Video: El mejor alimentador automático de peces de bricolaje: Nivel 2:10 pasos (con imágenes)
Video: DESCUBRE ESTE ALIMENTADOR AUTOMATICO PARA ACUARIO / CON ACCIDENTE INCLUIDO 😭😂 2024, Noviembre
Anonim
El mejor alimentador automático de peces de bricolaje: Nivel 2
El mejor alimentador automático de peces de bricolaje: Nivel 2

El alimentador de nivel 2 es un gran paso adelante del nivel 1. Esta versión utiliza un módulo wifi ESP8266 para sincronizar el reloj del arduino para controlar el horario de alimentación y la iluminación del tanque.

Paso 1: Qué necesitará:

Todo en el Nivel 1 excepto el temporizador de luz

  • ESP8266-01
  • Programador FTDI (para programar el ESP8266)
  • Soldador
  • Tira de LED 5V RGBW (SK6812 IP 65, luz diurna blanca, yo usé esta)
  • La tira de luz debe ser impermeable, ya que el agua se evaporará del tanque y se condensará en la tapa del tanque y se encenderá.
  • Fuente de alimentación de 5V (utilicé este, el arduino NO PUEDE encender todas las luces por sí solo).
  • Siéntase libre de usar cualquier fuente de alimentación de 5V que desee, solo asegúrese de que proporcione suficiente energía para alimentar todas las luces.
  • Regulador de voltaje de 3.3V
  • El ESP8266 funciona a 3.3V, es por eso que todo lo demás es 5V, es más fácil bajar 5 a 3.3 que bajar 12 a 3.3
  • Resistencias (1kOhm x2, 2kOhm x2 (o 1kOhm x4), 10kOhm x1)
  • Super pegamento
  • Pegamento caliente
  • Piezas impresas en 3D x8 (archivos STL proporcionados)
  • Pelacables (recomiendo estas cosas útiles)
  • Placa de pruebas (para hacer prototipos de cosas)
  • Protoboard / Tablero de proyecto (para montaje final)
  • Cable de alimentación de computadora estándar de 3 clavijas.
  • (opcional) Motor de vibración del teléfono celular (para agitar la tolva) (Usé uno de estos)
  • Instale estas bibliotecas de arduino:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Paciencia.

Paso 2: cómo funciona

El ESP8266 obtiene la hora Unix de un servidor NIST y la pasa al arduino. Luego, el arduino usa ese tiempo para determinar el amanecer y el atardecer locales y sincronizar su reloj interno para determinar cuántos minutos han transcurrido desde la medianoche. Usando este tiempo transcurrido desde la medianoche, el arduino establece el color de las luces y sabe cuándo activar el alimentador, que es el mismo mecanismo que el liberador de nivel 1. La configuración predeterminada en el código arduino que escribí tiene las luces configuradas en un ciclo de día / noche que se puede controlar hasta el segundo para obtener desvanecimientos suaves y se sincronizan con el amanecer y el atardecer de su ubicación. El arduino también se reinicia una vez al día para volver a sincronizarse con el servidor NIST y asegurarse de que no haya desbordamientos del temporizador.

Paso 3: Programación del ESP8266

Programando el ESP8266
Programando el ESP8266

Bien, entonces el ESP8266 es un bastardo para programar.

No es compatible con la placa de pruebas y si tiene cables de puente hembra, recomiendo usarlos. Si su ESP8266 vino sin ningún firmware instalado como el mío, tendrá que actualizar el firmware. Use el programador FTDI para hacer esto, hay muchas instrucciones sobre cómo hacer esto en otros lugares, pero proporcioné un diagrama de cableado para su conveniencia. ¡ASEGÚRESE de que el programador FTDI esté proporcionando 3,3 V! 5V freirá su ESP8266. En mi diagrama, la naranja conectada entre GPI01 y GND solo debe hacerse cuando se actualiza el firmware del ESP8266. GPI01 debe permanecer desconectado al cargar el código arduino real al módulo.

A continuación, deberá cargar el código real del ESP8266. Utilice el programador FTDI esta vez junto con el IDE de arduino. También deberá descargar e instalar todas las bibliotecas utilizadas. La configuración utilizada para cargar el código con arduino 1.8 se encuentra en la parte comentada al principio. ASEGÚRESE de actualizar el código con su red wifi y contraseña.

Paso 4: conecta el ESP8266 al Arduino

Conecte el ESP8266 al Arduino
Conecte el ESP8266 al Arduino
Conecte el ESP8266 al Arduino
Conecte el ESP8266 al Arduino

Una vez que se carga el código, puede desconectar el programador FTDI y conectar el ESP8266 como se muestra en el diagrama. Las resistencias se utilizan como divisores de voltaje para asegurarse de que el arduino no bombee 5V a los pines de comunicación y reinicio del ESP8266. Haga este paso en una placa de pruebas para la depuración, lo pondremos en la proto-placa más tarde.

Una vez que el ESP8266 esté todo enchufado, debería ver un destello de luz azul cuando esté conectado a la alimentación, después de unos segundos más tarde debería obtener la hora Unix de Internet y enviarla al arduino, luego tiene un bucle vacío vacío () que se asienta hasta que se reinicia, al igual que el alimentador de nivel 1.

Para asegurarse de que el ESP8266 esté funcionando, deberá cargar el código del siguiente paso en el arduino y abrir el monitor en serie.

Paso 5: carga del código Arduino y solución de problemas

Carga del código Arduino y solución de problemas
Carga del código Arduino y solución de problemas

Ahora cargue el código en el arduino nano, abra el monitor en serie, debería ver algo como el ejemplo anterior. El arduino se reinicia cuando abre el monitor en serie, por lo que el ESP8266 se reiniciará al mismo tiempo. el monitor serial comenzará a contar los segundos desde la medianoche del 1 de enero de 1970, hasta que el ESP8266 le envíe la hora Unix actual. Cuando eso suceda, debería ver esto:

Esto puede tardar entre 3 y 15 segundos en funcionar, así que tenga paciencia. Rara vez he visto que demore más de 10 segundos, pero déle 15 antes de comenzar a solucionar problemas.

Si su ESP8266 no envía la hora al arduino, intente estos pasos:

· Asegúrese de que todo esté cableado EXACTAMENTE como se supone que debe

· Verifique que haya puesto el SSID y la contraseña correctos del wifi en el ESP8266; de lo contrario, tendrá que volver a conectarlo al programador FTDI para cargar la información correcta y luego volver a conectarlo al arduino. (un SSID o una contraseña muy largos pueden causar algunos problemas, pero mi red wifi tiene más de 20 caracteres en ambos campos, por lo que la mayoría de las redes domésticas deberían estar bien)

· Consulte la página de administración de su enrutador (si puede) para ver si hay un dispositivo conectado que solo aparece cuando el ESP8266 está encendido. Para asegurarse de que permanece encendido mientras verifica esto (el arduino lo deshabilita) vuelva a conectar el cable que conduce al pin de reinicio del ESP8266 directamente a 3.3V, manteniéndolo ALTO mantendrá el ESP8266 encendido. Asegúrese de deshacer esto después de verificar.

Paso 6: personalización del código Arduino

Una vez que su ESP8266 esté conectado y envíe tiempo al arduino, el arduino programado simplemente contará el tiempo y mostrará algunos otros bits de información de depuración, como el amanecer y el atardecer. Podemos personalizar algunos de estos valores en el código de arduino, el resto simplemente están ahí para poder depurar todo el sistema.

Para comprender mejor cómo el arduino calcula el amanecer y el atardecer, lea la documentación en la biblioteca Dusk2Dawn. Deberá ingresar su latitud y longitud (si cambia el nombre de su ubicación, ¡asegúrese de que se cambie en todas partes del código!) Dusk2Dawn usa sus coordenadas gps (que puede encontrar en Google Maps) y la hora local, para Determine cuándo sale y se pone el sol en minutos a partir de la medianoche. La variable minfromMid es el minuto actual desde la medianoche y se compara con el amanecer, el atardecer, los tiempos de alimentación y el crepúsculo para decirle al arduino cuándo hacer qué. Asegúrese de actualizar también su zona horaria, la predeterminada es EST.

Una vez que se establece su ubicación, configure el tiempo de crepúsculo para decirle al arduino cuánto tiempo desea que sea el crepúsculo. Controla cuánto dura el período entre el día y la noche, y se expresa en minutos. El valor predeterminado es 90 minutos, por lo que las luces RGBW se atenuarán del día a la noche o al revés en esa cantidad de tiempo.

A continuación, configure los tiempos de alimentación que desee. Los tiempos reales de alimentación se establecen en el método getTime () para mantener la alimentación sincronizada con el día / noche. Si desea que sus peces sean alimentados a la misma hora todos los días, comente la configuración relativa y use la configuración inicial al principio del código. Recuerde que estos tiempos están en minutos a partir de la medianoche. El uso de tiempos de alimentación iniciales codificados de forma rígida podría interferir con la iluminación si el tiempo de alimentación llega durante el desvanecimiento entre el crepúsculo y la luz del día (al amanecer y al atardecer). El código predeterminado es 15 minutos antes y después del atardecer y el amanecer, respectivamente. Se pueden agregar tiempos de alimentación adicionales si lo desea.

A continuación, establezca la hora a la que desea que se reinicie el arduino. Esto asegura que ninguno de los tiempos se desborde y vuelva a sincronizar el reloj. Recomiendo hacer que esto suceda al mediodía, cuando no esté, ya que el proceso de reinicio hace que las luces se vuelvan completamente brillantes. Durante el día, esto no será un problema para los peces, pero por la noche o por la mañana / tarde, el destello de luz podría molestar a tu pez o arruinar el aspecto del tanque durante unos segundos mientras lo disfrutas.

Finalmente, verifique la cantidad de LED en la tira que tiene, Mi tira tiene 60, pero debe actualizar este valor en el código de configuración para la cantidad de LED que esté utilizando.

Paso 7: la iluminación

La iluminación
La iluminación

Conecte su tira de LED si aún no lo ha hecho.

Alimentación (rojo) a 5V, tierra (blanco) a tierra, señal (verde) al pin 6 (o lo que sea que lo configure). Una vez que se reinicia el arduino, las luces estarán en pleno brillo hasta que el ESP8266 envíe la hora al arduino y determine dónde está en el ciclo de iluminación. Es mejor configurar esto por la tarde o por la noche, ya que el cambio de luz será más drástico. Si las luces no cambian en 30 segundos, reinicia el arduino. Mi código de reinicio debería estar funcionando, pero no soy un programador de profesión, por lo que es posible que todavía haya un par de errores aquí o allá. Puede probar que el restablecimiento está funcionando estableciendo el tiempo de restablecimiento en un minuto después de volver a cargar el código y esperar (el segundo de restablecimiento es aleatorio, por lo que puede tardar entre 1 y 2 minutos en restablecerse). Puede hacer el mismo truco más tarde. para asegurarse de que el servo está funcionando cambiando el tiempo de alimentación. Solo asegúrese de volver a cambiar estos tiempos antes de dejarlo en funcionamiento.

El horario de iluminación predeterminado es bastante simple:

Por la noche, todas las luces están apagadas excepto la azul, que está en su configuración más baja (2/255). A medida que se acerca el amanecer, el azul aumenta a su máxima intensidad (255), que alcanza al comienzo del crepúsculo. Durante el crepúsculo, el rojo y el verde aumentan desde apagado hasta 255. Al amanecer, el rojo, el azul y el verde están todos en 255, pero la luz del día es blanca, por lo que durante los próximos 2 minutos el rojo, el azul y el verde se desvanecen y el blanco se desvanece. in. Durante el resto del día, el blanco está en plena intensidad, hasta 2 minutos antes de la puesta del sol, cuando se desvanece y es reemplazado por rojo, azul y verde nuevamente. Al atardecer, la iluminación vuelve a entrar en el crepúsculo, excepto que esta vez el rojo y el verde comienzan con toda su intensidad y se desvanecen, dejando el azul con toda su intensidad cuando llega la noche. A partir de aquí, el azul se desvanece lentamente hasta su valor más bajo, que alcanza a la medianoche.

Existe otro código al final del boceto de arduino para otros modos de iluminación, así que siéntase libre de jugar con las matemáticas para hacer que la iluminación se desvanezca de manera diferente o para cambiar los colores durante diferentes períodos del día. Recuerde que las matemáticas se realizan en formato flotante, pero los valores de color deben ser ints, por lo que es necesaria la conversión entre los dos con cualquier nueva matemática de iluminación que implemente.

Paso 8: Impresión de las piezas

Si aún no ha impreso las piezas para este nivel, hágalo. La carcasa es aproximadamente del mismo tamaño que una unidad de filtro de tamaño mediano, y me tomó toda la noche imprimir. Limpie las piezas, inserte el divisor de mamparo, con la ranura hacia arriba y el borde redondeado hacia afuera. El servo se instala de la misma manera que en el Nivel 1, y si está reemplazando un sistema de Nivel 1, la tolva, la tapa y la rueda de alimentación son idénticas, por lo que no tendrá que volver a imprimirlas si están funcionando.

La carpeta.zip contiene dos conjuntos de archivos STL, uno para el servomotor SM22 original que usé y otro para el servo SG90 mucho más común. Ambos contienen los archivos Fusion 360 si desea / necesita modificar alguna de las partes. Los STL SM22 definitivamente encajan, ya que son los que he usado. No he impreso ni probado las piezas del SG90.

Para los materiales, recomiendo usar un plástico apto para alimentos. Usé Raptor PLA de makergeeks, que viene en una tonelada de colores y es súper fuerte después de que lo recoces durante 10 minutos. Eso se puede hacer hirviendo las partes, lo que le recomiendo que haga solo para la rueda si no encaja del todo, ya que el recocido encogerá las partes en aproximadamente un.3%.

Imprimí la carcasa de lado (con la parte superior hacia el lado y el lado abierto hacia arriba). Esto usa mucho menos material de soporte que otras orientaciones. La tolva se puede imprimir al revés para evitar todo el material de soporte sobre ella. La tapa de la tolva también debe imprimirse boca abajo, sin embargo, la tapa grande debe imprimirse boca arriba.

También hay una pieza de 'tope final' para proporcionar soporte a la parte inferior de la carcasa. Después de dejar el alimentador en su lugar durante un par de semanas, noté que había comenzado a combarse y doblarse por el peso de la fuente de alimentación, y eso estaba afectando la capacidad de la tolva para introducir alimentos en la rueda. Simplemente pegue con pegamento en caliente 1 o 2 topes en la parte inferior de la carcasa para mantener todo nivelado.

Paso 9: Montaje

Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje
Montaje

Usa un protoboard para conectar todo. Usé cables de puente para no tener que soldar tanto, pero aquí es donde soldarás más. Siempre que las conexiones sean todas iguales, el sistema funcionará como lo hizo en la placa de pruebas. Soldé los pines del cabezal para crear "rieles" de energía para tierra, 5V, 3.3V, así como puertos de señal para las señales servo y sin energía de 3.3V al ESP8266 (RX, CH_PD y RST). Orienté todos los pines hacia la parte inferior del protoboard, con los componentes en la parte superior.

Una vez que tenga el protoboard completo, insértelo en la cavidad superior de la carcasa y conecte el servomotor. Los cables de iluminación salen por la muesca en la tapa del gabinete y la fuente de alimentación encaja en la cavidad inferior. La cavidad inferior es redondeada y tiene una ligera pendiente para drenar el agua que de alguna manera se las arregla para entrar al recinto lejos de la electrónica. Conecte los terminales positivo y negativo de la fuente de alimentación al sistema y agregue la cubierta lateral.

Si aún no lo ha hecho para su fuente de alimentación, corte el extremo del cable de alimentación que no se conecta a la pared y pele los cables lo suficiente para que pueda colocarlos en los terminales correctos de la fuente de alimentación. Si tiene extremos rizados que puede poner en los extremos, sugiero usarlos, si no, el cobre desnudo estará bien, ¡solo asegúrese de que no haya ningún cortocircuito! RECUERDE que esto se conectará a la toma de corriente de la pared de su hogar, SEA SEGURO Y NUNCA TRABAJE CON EL SISTEMA ENCHUFADO.

A continuación, se debe agregar la tira de luz al tanque. Retire la tapa de su tanque y séquelo completamente. Asegúrese de que la superficie de la tapa esté limpia y seca antes de agregar las luces. La tira que obtuve tiene un respaldo adhesivo, esto no funcionará para asegurar la tira de luz, pero funcionará para colocarlas a lo largo del borde de la tapa (o donde sea que las coloques) La tapa de mi tanque resultó ser del tamaño correcto para mi tira, por lo que no tuve que extender ningún cable. Solo asegúrese de que todos los cables expuestos estén cubiertos con materiales impermeables antes de volver a colocar la tapa en el tanque. Usé pegamento caliente para cubrir los extremos, pero puede que no funcione a largo plazo. Una vez que las luces estén colocadas como te gusten, pégalas en su lugar. Tuve que usar pegamento adicional en las esquinas ya que la tira de LED se levantó allí. Deje que el pegamento se seque durante unos minutos antes de volver a colocar la tapa en el tanque, solo para asegurarse de que no gotee nada. Una vez que la tapa esté nuevamente colocada, simplemente conecte los cables al arduino.

El conjunto del alimentador es exactamente el mismo que el alimentador de Nivel 1. El servo encaja en su cavidad con la rueda de alimentación pegada a él. El bolsillo de la rueda de alimentación debe apuntar hacia la tolva cuando el servo está en su posición 0 (y girar hacia el tanque en la posición 180). Si está utilizando el motor de vibración opcional, suelde algunos cables e insértelo en la tolva, hay una cavidad en la cavidad del servo para ello. Envíe los cables conductores del motor por la misma ruta que los cables del servo y conéctelos a tierra y al pin del motor en el arduino. Pega la tolva a la base con pegamento caliente.

Una vez que todo esté conectado, puede enchufar la fuente de alimentación a la pared. El arduino debe pasar por su secuencia de inicio y las luces cambiarán cuando llegue el momento. Si no es así, reinicie la placa hasta que llegue la hora. Pegué con pegamento caliente la tapa de la caja en su lugar, pero dejé la cubierta lateral sin pegar para poder acceder al arduino para restablecerlo o reprogramarlo.

¡Felicidades! ¡Su alimentador de peces de nivel 2 está listo! ¡Maravíllate con la hermosa iluminación y su capacidad para alimentar a tus peces cuando no estás! Asegúrese de monitorear el sistema durante los próximos días para asegurarse de que todo funcione correctamente y que sus peces, de hecho, estén siendo alimentados.

Paso 10: Cosas a tener en cuenta al principio:

Cosas a tener en cuenta al principio
Cosas a tener en cuenta al principio
Cosas a tener en cuenta al principio
Cosas a tener en cuenta al principio
Cosas a tener en cuenta al principio
Cosas a tener en cuenta al principio

Cuando configuré el mío por primera vez, conecté accidentalmente el servo al pin de señal incorrecto, por lo que los peces no fueron alimentados durante varios días hasta que me di cuenta del error (los había estado alimentando manualmente por la noche en respuesta al siguiente error). Intente establecer los tiempos de alimentación en el momento en que es más probable que esté cerca para confirmar que sus peces fueron alimentados.

Otro error a tener en cuenta es el reinicio. Si, por ejemplo, llega a casa después de la puesta del sol y su tanque todavía está iluminado durante el día, es probable que la función de reinicio haya fallado y el arduino nunca haya obtenido la hora del ESP8266. Esto también significa que sus peces no fueron alimentados desde el tiempo de reinicio, por lo que probablemente debería alimentarlos usted mismo mientras presiona el botón de reinicio en el arduino. Estoy 99% seguro de que eliminé esto, pero la codificación no es mi profesión, así que asegúrate de tener cuidado con ella.

También asegúrese de revisar la comida en la tolva cada semana o dos, rellénela según sea necesario y asegúrese de que nada salga mal.

Si se va de vacaciones, asegúrese de hacer un cambio de agua y otro mantenimiento básico del tanque antes de partir. El alimentador solo asegura que la comida y la iluminación no serán el final de su pez si se ausenta por mucho tiempo. ¡Nunca más debería tener que usar alimentadores de vacaciones!

Recomendado: