Taula de continguts:

L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2: 10 passos (amb imatges)
L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2: 10 passos (amb imatges)

Vídeo: L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2: 10 passos (amb imatges)

Vídeo: L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2: 10 passos (amb imatges)
Vídeo: Рекомендуемая автоматическая кормушка для собак и кошек и easy DIY 2024, Desembre
Anonim
L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2
L’alimentador automàtic de peixos de bricolatge definitiu: nivell 2

L’alimentador de nivell 2 suposa un gran pas respecte al nivell 1. Aquesta versió utilitza un mòdul wifi ESP8266 per sincronitzar el rellotge de l’arduino per controlar l’horari d’alimentació i la il·luminació del tanc.

Pas 1: què necessiteu:

Tot al nivell 1, excepte el temporitzador de llum

  • ESP8266-01
  • Programador FTDI (per programar l'ESP8266)
  • Soldador
  • Tira LED 5V RGBW (SK6812 IP 65, blanc clar, l'he utilitzat)
  • La tira de llum ha de ser impermeable, ja que l’aigua s’evapora del tanc i es condensarà a la tapa del tanc i s’encén.
  • Font d'alimentació de 5V (l'he utilitzat, l'arduino NO PODEIX alimentar totes les llums per si soles).
  • No dubteu a utilitzar la font d'alimentació de 5V que vulgueu, només assegureu-vos que proporciona prou energia per subministrar totes les llums.
  • Regulador de voltatge de 3,3 V.
  • L'ESP8266 funciona a 3,3 V, per això la resta és de 5 V, és més fàcil baixar de 5 a 3,3 que baixar de 12 a 3,3
  • Resistències (1kOhm x2, 2kOhm x2 (o 1kOhm x4), 10kOhm x1)
  • Super cola
  • Cola calenta
  • Parts impreses en 3D x8 (es proporcionen fitxers STL)
  • Decapants (recomano aquestes coses útils)
  • Taula de pa (per protoyping)
  • Protoboard / Tauler de projectes (per al muntatge final)
  • Cable d'alimentació estàndard de 3 puntes per a ordinador.
  • (opcional) Motor de vibració del mòbil (per agitar la tremuja) (he utilitzat un d'aquests)
  • Instal·leu aquestes biblioteques arduino:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Paciència.

Pas 2: Com funciona

L'ESP8266 obté el temps Unix d'un servidor NIST i el passa a l'arduino. A continuació, l’arduino utilitza aquest temps per determinar la sortida i la posta de sol locals i sincronitza el rellotge intern per determinar quants minuts han transcorregut des de mitjanit. Utilitzant aquest temps transcorregut des de mitjanit, l’arduino defineix el color de les llums i sap quan activar l’alimentador, que és el mateix mecanisme que l’alimentador de nivell 1. La configuració predeterminada del codi arduino que vaig escriure té els llums configurats en un cicle dia / nit que es pot controlar fins al segon per a una decoloració suau i se sincronitzen amb la sortida i posta de sol de la vostra ubicació. L'arduino també es reinicia un cop al dia per tornar a sincronitzar-se amb el servidor NIST i garantir que no hi hagi desbordaments de temporitzador

Pas 3: Programació de l'ESP8266

Programació de l’ESP8266
Programació de l’ESP8266

D’acord, per tant, l’ESP8266 és un bastard de programar.

No és adequat per a taulers de pa i, si teniu cables de pont femení, us recomano utilitzar-los. Si el vostre ESP8266 va venir sense instal·lar cap microprogramari com el meu, haureu de parpellejar el microprogramari. Utilitzeu el programador FTDI per fer-ho, hi ha moltes instruccions sobre com fer-ho en altres llocs, però he proporcionat un diagrama de cablejat per comoditat. ASsegureu-vos que el programador FTDI proporciona 3.3V. 5V fregirà el vostre ESP8266. Al meu diagrama, el color taronja connectat entre GPI01 i GND només s’hauria de fer quan parpellejés el firmware de l’ESP8266. GPI01 hauria de romandre desconnectat quan es carregui el codi arduino real al mòdul.

A continuació, haureu de penjar el codi real de l’ESP8266. Utilitzeu el programador FTDI aquesta vegada juntament amb l’IDE arduino. També haureu de descarregar i instal·lar totes les biblioteques utilitzades. La configuració que s’utilitza per carregar el codi amb arduino 1.8 es troba a la part comentada al principi. ASsegureu-vos d'actualitzar el codi amb la vostra xarxa wifi i contrasenya.

Pas 4: connecteu l'ESP8266 a l'Arduino

Connecteu l'ESP8266 a l'Arduino
Connecteu l'ESP8266 a l'Arduino
Connecteu l'ESP8266 a l'Arduino
Connecteu l'ESP8266 a l'Arduino

Un cop carregat el codi, podeu desconnectar el programador FTDI i connectar l’ESP8266 tal com es mostra al diagrama. Les resistències s’utilitzen com a divisors de tensió per assegurar-se que l’arduino no bombi 5V als pins de comunicació i restabliment de l’ESP8266. Feu aquest pas en una tauleta de pa per depurar-la, després la posarem al tauler proto.

Una vegada que l’ESP8266 estigui tot endollat, hauríeu de veure un flaix blau quan estigui connectat a l’alimentació, després d’uns segons després hauria d’obtenir el temps Unix d’Internet i enviar-lo a l’arduino, aleshores tindrà un bucle buit buit () que s'asseu fins que es restableix, igual que l'alimentador de nivell 1.

Per assegurar-vos que l’ESP8266 funciona, haureu de penjar el codi del pas següent a l’arduino i obrir el monitor sèrie.

Pas 5: càrrega del codi Arduino i resolució de problemes

Càrrega del codi Arduino i resolució de problemes
Càrrega del codi Arduino i resolució de problemes

Ara pengeu el codi a l'arduino nano, obriu el monitor sèrie, hauríeu de veure alguna cosa com l'exemple anterior. L’arduino es reinicia quan obriu el monitor sèrie, de manera que l’ESP8266 es restablirà al mateix temps. el monitor sèrie començarà a comptar els segons des de la mitjanit de l'1 de gener de 1970, fins que l'ESP8266 li enviï l'hora Unix actual. Quan això passi, hauríeu de veure això:

Pot trigar entre 3 i 15 segons a funcionar, així que tingueu paciència. Poques vegades he vist que triguen més de 10 segons, però en dono 15 abans de començar a resoldre problemes.

Si el vostre ESP8266 no envia l'hora a l'arduino, proveu aquests passos:

· Assegureu-vos que tot estigui cablejat EXACTAMENT com se suposa

· Comproveu que poseu l'SSID i la contrasenya del wifi correctes a l'ESP8266, si no, l'haureu de connectar al programador FTDI per penjar la informació correcta i, a continuació, torneu a connectar-la a l'arduino. (Un SSID o una contrasenya super llargs poden causar problemes, però la meva xarxa wifi té més de 20 caràcters en tots dos camps, de manera que la majoria de xarxes domèstiques haurien d'estar bé)

· Comproveu la pàgina d’administració del vostre enrutador (si podeu) si hi ha cap dispositiu connectat que només aparegui quan l’ESP8266 està engegat. Per assegurar-vos que es manté encès mentre ho comproveu (l'arduino el desactiva), torneu a connectar el cable que condueix al pin de restabliment de l'ESP8266 directament a 3,3 V, mantenint-lo ALT i mantindrà l'ES8266 engegat. Assegureu-vos de desfer-ho després de comprovar-ho.

Pas 6: personalització del codi Arduino

Una vegada que el vostre ESP8266 estigui connectat i enviï l'hora a l'arduino, l'arduino programat simplement comptarà el temps i mostrarà alguns altres bits d'informació de depuració, com la sortida i la posta de sol. Podem personalitzar alguns d'aquests valors al codi de l'arduino, la resta simplement hi és, de manera que podria depurar tot el sistema.

Per entendre millor com l'Arduino calcula la sortida i la posta de sol, llegiu la documentació de la Biblioteca Dusk2Dawn. Haureu d’introduir la latitud i la longitud (si canvieu el nom de la vostra ubicació, assegureu-vos que es canviï a tot arreu del codi!) Dusk2Dawn utilitza les coordenades GPS (que podeu trobar a Google Maps) i l’hora local, per determinar quan surt i es pon el sol en qüestió de minuts a partir de mitjanit. La variable minfromMid és el minut actual des de mitjanit i es compara amb la sortida del sol, la posta de sol, els horaris d'alimentació i el crepuscle per dir a l'arduino quan fer què. Assegureu-vos d'actualitzar també la vostra zona horària, el valor per defecte és EST.

Un cop configurada la vostra ubicació, configureu l'hora del crepuscle per dir-li a l'arduino quant de temps voleu que passi el crepuscle. Això controla la durada del període entre el dia i la nit i es dóna en minuts. El valor predeterminat és de 90 minuts, de manera que els llums RGBW s’esvaeixen del dia a la nit o d’una altra manera en aquest temps.

A continuació, configureu els temps d’alimentació que vulgueu. Els horaris reals d’alimentació s’estableixen amb el mètode getTime () per mantenir sincronitzats els aliments amb el dia / nit. Si voleu que els peixos s’alimentin cada dia a la mateixa hora, comenteu la configuració relativa i utilitzeu la configuració inicial al principi del codi. Recordeu que aquests horaris són en minuts a partir de mitjanit. L’ús d’uns temps d’alimentació inicials i codificats durament podria interferir amb la il·luminació si el temps d’alimentació aterra durant la difusió entre el crepuscle i la llum del dia (a la sortida i al capvespre). El valor predeterminat del codi és 15 minuts abans i després de la posta de sol i de la sortida del sol, respectivament. Si ho desitgeu, podeu afegir temps d’alimentació addicionals.

A continuació, configureu l'hora en què voleu que es restableixi l'arduino. Això garanteix que cap de les temporitzacions es desbordi i no sincronitzi de nou el rellotge. Us recomano que això passi a mig dia, quan esteu fora, ja que el procés de restabliment fa que els llums tinguin una brillantor total. Durant el dia, això no serà un problema per als peixos, però a la nit o al matí / vespre, el flaix de llum pot molestar els peixos o arruïnar l’aspecte del tanc durant uns segons mentre el gaudiu.

Finalment, comproveu el nombre de LEDs de la tira que teniu, My strip té 60, però hauríeu d’actualitzar aquest valor al codi de configuració per a la quantitat de LEDs que feu servir.

Pas 7: la il·luminació

La il·luminació
La il·luminació

Connecteu la tira LED si encara no ho heu fet.

Alimentació (vermella) a 5V, terra (blanca) a terra, senyal (verda) al pin 6 (o el que hàgiu establert). Un cop restablert l’arduino, els llums estaran a la màxima brillantor fins que l’ESP8266 enviï l’hora a l’arduino i determini on es troba en el cicle d’il·luminació. El millor és configurar-lo al vespre o a la nit, ja que el canvi de llum serà més dràstic. Si els llums no canvien en 30 segons, restableix l’arduino. El meu codi de restabliment hauria de funcionar, però no sóc programador d'ofici, de manera que pot ser que hi hagi un parell d'errors aquí o allà. Podeu provar que el restabliment està funcionant configurant el temps de restabliment a un minut després de tornar a penjar el codi i d’esperar (el segon de restabliment és aleatori, de manera que pot trigar 1-2 minuts a restablir-se realment) Podeu fer el mateix truc més tard per assegurar-vos que el servo funciona canviant el temps d'alimentació. Assegureu-vos de canviar aquests temps abans de deixar-lo en funcionament.

L'horari d'il·luminació predeterminat és bastant senzill:

A la nit, tots els llums estan apagats excepte el blau, que es troba a la configuració més baixa (2/255). A mesura que s’acosta el temps a la sortida del sol, el blau augmenta fins a la màxima intensitat (255), a la qual arriba al començament del crepuscle. Durant el crepuscle, el vermell i el verd augmenten des de fins a 255. A la sortida del sol, el vermell, el blau i el verd són a 255, però la llum del dia és blanca, de manera que durant els propers 2 minuts el vermell, el blau i el verd s’esvaeixen i el blanc s’esvaeix. pols. Durant la resta del dia, el blanc és a plena intensitat, fins a 2 minuts abans de la posta de sol, quan desapareix i es torna a substituir per vermell, blau i verd. A la posta de sol, la il·luminació torna a entrar al crepuscle, excepte que aquesta vegada el vermell i el verd comencen a tota intensitat i s’esvaeixen, deixant el blau a plena intensitat quan arriba la nit. A partir d’aquí, el blau es desapareix lentament fins al seu valor més baix, que arriba a mitjanit.

Al final de l’esbós arduino hi ha un altre codi per a altres modes d’il·luminació, així que no dubteu a jugar amb les matemàtiques per aconseguir que la il·luminació s’esvaeixi de manera diferent o per canviar els colors durant els diferents períodes del dia. Recordeu que les matemàtiques es fan en format flotant, però els valors de color han de ser ints, de manera que és necessària la conversió entre tots dos amb qualsevol nova matemàtica d’il·luminació que implementeu.

Pas 8: Impressió de les peces

Si encara no heu imprès les parts d’aquest nivell, feu-ho. La carcassa té aproximadament la mateixa mida que una unitat de filtre de mida mitjana i vaig trigar tota la nit a imprimir. Netegeu les peces, introduïu el divisor del mampat, amb la ranura cap amunt i la vora arrodonida cap a fora. El servo s’instal·la de la mateixa manera que al nivell 1 i, si esteu substituint un sistema de nivell 1, la tremuja, la tapa i la roda d’alimentació són idèntics, de manera que no els haureu de tornar a imprimir si funcionen.

La carpeta.zip conté dos conjunts de fitxers STL, un per al servo motor SM22 original que he utilitzat i un altre per al servo SG90 molt més comú. Tots dos contenen els fitxers Fusion 360 si voleu / necessiteu modificar alguna de les parts. Els SM22 STL s’adapten definitivament, ja que són els que he utilitzat. No he imprès ni provat les peces SG90.

Per als materials, recomano utilitzar un plàstic apte per a aliments. He utilitzat Raptor PLA de makergeeks, que ve en una tonelada de colors i és súper fort després de fer-ho durant 10 minuts. Això es pot fer bullint les peces, cosa que us recomano fer només per a la roda si no s’adapta del tot, ja que el recuit reduirà les parts aproximadament un 3,3%.

Vaig imprimir la carcassa al seu costat (amb la part superior cap al lateral i la cara oberta cap amunt). Utilitza molt menys material de suport que altres orientacions. La tremuja es pot imprimir cap per avall per evitar tot el material de suport que hi ha. La tapa de la tremuja també s’hauria d’imprimir cap per avall, però la tapa gran s’hauria d’imprimir amb la dreta cap amunt.

També hi ha una peça "endstop" per proporcionar suport a la part inferior de la carcassa. Després de deixar l'alimentador al seu lloc durant un parell de setmanes, vaig notar que havia començat a caure i doblegar-se pel pes de la font d'alimentació, i això afectava la capacitat de la tremuja d'alimentar els aliments a la roda. Només cal enganxar 1-2 puntes finals a la part inferior de la carcassa per mantenir-lo tot al nivell.

Pas 9: Muntatge

muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge
muntatge

Utilitzeu una protoborda per connectar-ho tot. He utilitzat cables de pont, de manera que no he hagut de soldar tant, però aquí és on més soldaràs. Sempre que les connexions siguin iguals, el sistema funcionarà com ho feia a la taula de treball. He soldat junts els pins de capçalera per crear "rails" de potència per a terra, 5 V, 3,3 V, així com els ports de senyal dels senyals servo i no alimentats de 3,3 V a l'ESP8266 (RX, CH_PD i RST). He orientat tots els passadors cap a la part inferior de la protoborda, amb els components a la part superior.

Un cop hàgiu completat el protoboard, inseriu-lo a la cavitat superior de la carcassa i connecteu el servomotor. Els cables d’il·luminació surten de la ranura de la tapa del recinte i la font d’alimentació s’adapta a la cavitat inferior. La cavitat inferior és arrodonida i té un lleuger pendent per drenar qualsevol aigua que d'alguna manera aconsegueixi entrar al recinte lluny de l'electrònica. Connecteu els terminals positius i negatius de la font d'alimentació al sistema i afegiu-hi la tapa lateral.

Si encara no ho heu fet per a la vostra font d'alimentació, talleu l'extrem del cable d'alimentació que no es connecti a la paret i retireu els cables suficientment per poder posar-los als terminals correctes de la font d'alimentació. Si teniu puntes arrugades que podeu posar a les puntes, us suggereixo utilitzar-les, si no, el coure nu estarà bé, assegureu-vos que no hi ha res a curt. RECORDEU que estarà endollat a la paret de la vostra llar. ESTEU SEGUR I MAI TREBALLEU AMB EL SISTEMA CONNECTAT.

A continuació, cal afegir la tira de llum al tanc. Traieu la tapa del dipòsit i eixugueu-la completament. Assegureu-vos que la superfície de la tapa estigui neta i seca abans d’afegir els llums. La tira que tinc té un suport adhesiu, això no funcionarà per assegurar la tira lleugera, però funcionarà per col·locar-les al llarg de la vora de la tapa (o allà on les col·loqueu) La meva tapa del dipòsit va tenir la mida adequada per a la meva tira, de manera que no vaig haver d’estendre cap cable. Assegureu-vos que tots els cables exposats estiguin coberts amb materials impermeables abans de tornar a posar la tapa al dipòsit. Vaig utilitzar cola calenta per cobrir els extrems, però pot ser que això no funcionés a llarg termini. Quan els llums estiguin disposats com vulgueu, col·loqueu-los al lloc. Vaig haver d’utilitzar cola addicional a les cantonades ja que la tira LED es va aixecar allà dalt. Deixeu que la cola s’assequi uns minuts abans de tornar a posar la tapa al dipòsit, només per assegurar-vos que no hi escorri res. Un cop la tapa estigui tornada a connectar, simplement connecteu els cables a l’arduino.

El conjunt de l’alimentador és exactament el mateix que l’alimentador de nivell 1. El servo s'adapta a la seva cavitat amb la roda d'alimentació enganxada. La butxaca de la roda d’alimentació ha d’orientar cap a la tremuja quan el servo estigui a la seva posició 0 (i giri cap al tanc en la posició 180). Si utilitzeu el motor de vibració opcional, soldeu-hi alguns cables de plom i introduïu-lo a la tremuja, hi ha una cavitat a la servocavitat. Envieu els cables de conducció del motor pel mateix camí que els servocables i connecteu-los a terra i al pin del motor a l’arduino. Enganxeu en calent la tremuja a la base.

Un cop tot estigui connectat, podeu endollar la font d'alimentació a la paret. L'arduino hauria de passar per la seqüència d'inici i els llums canviaran quan arribi el temps. En cas contrari, restableix el tauler fins que aconsegueixi el temps. Vaig enganxar la tapa del recinte al seu lloc, però vaig deixar la coberta lateral sense enganxar perquè pogués accedir a l’arduino per restablir-lo o reprogramar-lo.

Enhorabona! El vostre alimentador de peix de nivell 2 ja està acabat. Sorprèn la bonica il·luminació i és capaç d’alimentar els peixos quan ets fora. Assegureu-vos de supervisar el sistema durant els propers dies per assegurar-vos que tot funciona correctament i que, de fet, els vostres peixos s’alimenten.

Pas 10: coses que cal tenir en compte al principi:

Coses que cal tenir en compte al principi
Coses que cal tenir en compte al principi
Coses que cal tenir en compte al principi
Coses que cal tenir en compte al principi
Coses que cal tenir en compte al principi
Coses que cal tenir en compte al principi

La primera vegada que vaig configurar la meva, vaig connectar accidentalment el servo al pin de senyal incorrecte, de manera que els peixos no van ser alimentats durant uns quants dies fins que em vaig adonar de l’error (els havia estat alimentant manualment a la nit en resposta al següent error). Proveu d’establir els temps d’alimentació en els que és més probable que estigueu aquí per confirmar que els vostres peixos han estat alimentats.

Un altre error a tenir en compte és el restabliment. Si, per exemple, arribeu a casa després de la posta de sol i el dipòsit encara està il·luminat durant el dia, és probable que la funció de restabliment falli i l'arduino no obtingui l'hora de l'ESP8266. Això també significa que els peixos no s’han alimentat des del temps de reinici, de manera que probablement els haureu d’alimentar vosaltres mateixos mentre premeu el botó de reinici de l’arduino. Estic segur del 99% que he eliminat això, però la codificació no és la meva professió, així que assegureu-vos de vigilar-ho.

Assegureu-vos també de revisar el menjar a la tremuja cada dues setmanes, omplir-lo segons sigui necessari i assegurar-vos que res no vagi malament.

Si marxeu de vacances, assegureu-vos que feu un canvi d’aigua i un altre manteniment bàsic del dipòsit abans de marxar. L'alimentador només garanteix que el menjar i la il·luminació no acabin amb el vostre peix si us hi aneu massa temps. Mai no hauríeu de fer servir mai menjadors de vacances.

Recomanat: