Indholdsfortegnelse:

Den ultimative DIY automatiske fiskeføder: Niveau 2: 10 trin (med billeder)
Den ultimative DIY automatiske fiskeføder: Niveau 2: 10 trin (med billeder)

Video: Den ultimative DIY automatiske fiskeføder: Niveau 2: 10 trin (med billeder)

Video: Den ultimative DIY automatiske fiskeføder: Niveau 2: 10 trin (med billeder)
Video: 99 Biggest Heavy Equipment Machines Working At Another Level ►2 2024, November
Anonim
Den ultimative DIY automatiske fiskeføder: Niveau 2
Den ultimative DIY automatiske fiskeføder: Niveau 2

Tier 2 -føderen er et stort skridt op fra niveau 1. Denne version bruger et ESP8266 wifi -modul til at synkronisere arduinoens ur til at styre fodringsplanen og tankens belysning.

Trin 1: Hvad skal du bruge:

Alt i niveau 1 bortset fra lystimeren

  • ESP8266-01
  • FTDI programmerer (til at programmere ESP8266)
  • Loddekolbe
  • 5V RGBW LED -strip (SK6812 IP 65, dagslys hvid, jeg brugte denne)
  • Lysstrimlen skal være vandtæt, da vand fordamper fra tanken og kondenserer på tanklåget og lyser selv.
  • 5V strømforsyning (jeg brugte denne, arduinoen KAN IKKE tænde alle lysene alene).
  • Brug gerne en hvilken som helst 5V strømforsyning, du skal bare sørge for, at den giver nok strøm til at levere alle lysene.
  • 3.3V spændingsregulator
  • ESP8266 kører ved 3.3V, derfor er alt andet 5V, det er lettere at trin 5 ned til 3.3 end det er at træde ned 12 til 3.3
  • Modstande (1 kOhm x2, 2 kOhm x2 (eller 1 kOhm x4), 10 kOhm x1)
  • super lim
  • Varm lim
  • 3D -printede dele x8 (medfølger STL -filer)
  • Wire strippere (jeg anbefaler disse nyttige ting)
  • Brødbræt (til protoyping ting)
  • Protoboard/Project board (til slutmontering)
  • Standard strømforsyningskabel med 3 ben.
  • (valgfrit) Mobiltelefonvibrationsmotor (til omrøring af beholderen) (jeg brugte en af disse)
  • Installer disse arduino -biblioteker:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Tålmodighed.

Trin 2: Sådan fungerer det

ESP8266 får Unix -tiden fra en NIST -server og sender den videre til arduinoen. Arduinoen bruger derefter den tid til at bestemme lokal solopgang og solnedgang og synkronisere sit interne ur til at bestemme, hvor mange minutter der er gået siden midnat. Ved hjælp af denne forløbne tid siden midnat indstiller arduinoen lysets farve og ved, hvornår feederen skal aktiveres, hvilket er den samme mekanisme som Tier 1 -freeder. Standardindstillingerne i arduino -koden, jeg skrev, har lysene indstillet til en dag/nat -cyklus, der kan styres ned til den anden for glatte fades og synkroniseres med din placerings solopgang og solnedgang. Arduino nulstiller sig også en gang om dagen for at synkronisere sig selv med NIST-serveren igen og sikre, at der ikke er nogen timeroverløb

Trin 3: Programmering af ESP8266

Programmering af ESP8266
Programmering af ESP8266

Okay, så ESP8266 er en bastard at programmere.

Det er ikke brødbræt venligt, og hvis du har hunkabletråde, anbefaler jeg at bruge dem. Hvis din ESP8266 kom uden nogen firmware installeret som min gjorde, skal du blinke firmwaren. Brug FTDI -programmereren til at gøre dette, der er masser af instruktioner om, hvordan du gør dette andre steder, men jeg leverede et ledningsdiagram for nemheds skyld. Sørg for, at FTDI -programmereren leverer 3.3V! 5V vil stege din ESP8266. I mit diagram bør den orange, der er forbundet mellem GPI01 og GND, kun laves, når ESP8266s firmware blinker. GPI01 bør forblive uden forbindelse, når du uploader den faktiske arduino -kode til modulet.

Dernæst skal du uploade ESP8266's faktiske kode. Brug FTDI -programmereren denne gang sammen med arduino IDE. Du skal også downloade og installere alle de anvendte biblioteker. De indstillinger, der bruges til at uploade koden med arduino 1.8, er i den kommenterede del i starten. Vær sikker på at opdatere koden med dit wifi -netværk og adgangskode.

Trin 4: Tilslut ESP8266 til Arduino

Tilslut ESP8266 til Arduino
Tilslut ESP8266 til Arduino
Tilslut ESP8266 til Arduino
Tilslut ESP8266 til Arduino

Når koden er uploadet, kan du afbryde FTDI -programmereren og tilslutte ESP8266 som vist i diagrammet. Modstandene bruges som spændingsdelere for at sikre, at arduinoen ikke pumper 5V ind i ESP8266s kommunikations- og nulstillingsnåle. Gør dette trin på et brødbræt til fejlfinding, vi lægger det på proto-boardet senere.

Når ESP8266 er tilsluttet, skal du se et blåt lys blinke, når den er tilsluttet strøm, efter et par sekunder senere skulle den få Unix -tiden fra internettet og sende den til arduinoen, så har den en tom hulrumsløkke (), at den sidder i, indtil den nulstilles, ligesom Tier 1 -feeder.

For at sikre, at ESP8266 fungerer, skal du uploade koden fra det næste trin til arduinoen og åbne den serielle skærm.

Trin 5: Upload af Arduino -koden og fejlfinding

Upload af Arduino -koden og fejlfinding
Upload af Arduino -koden og fejlfinding

Upload nu koden til arduino nano, åbn den serielle skærm, du skulle se noget som eksemplet ovenfor. Arduino nulstilles, når du åbner den serielle skærm, så ESP8266 bliver nulstillet på samme tid. den serielle skærm begynder at tælle sekunderne fra midnat den 1. januar 1970, indtil ESP8266 sender den aktuelle Unix -tid. Når det sker, skal du se dette:

Det kan tage 3-15 sekunder, før dette virker, så vær tålmodig. Jeg har sjældent set det tage længere tid end 10 sekunder, men giv det 15, før du starter fejlfinding.

Hvis din ESP8266 ikke sender tiden til arduinoen, skal du prøve disse trin:

· Sørg for, at alt er forbundet nøjagtigt, som det skal

· Dobbelttjek, at du har sat den korrekte wifi's SSID og adgangskode i ESP8266, hvis ikke, skal du tilslutte den igen til FTDI -programmereren for at uploade de korrekte oplysninger, og derefter koble den til arduino igen. (en super lang SSID eller adgangskode kan forårsage nogle problemer, men mit wifi -netværk har over 20 tegn i begge felter, så de fleste hjemmenetværk skal være fine)

· Tjek din routers admin -side (hvis du kan) for at se en tilsluttet enhed, der kun vises, når ESP8266 er tændt. For at sikre, at den forbliver tændt, mens du tjekker dette (arduinoen deaktiverer den), tilsluttes igen ledningen til ESP8266s nulstillingsstift direkte til 3,3V, ved at holde den HØJ vil holde ESP8266 tændt. Sørg for at fortryde dette, når du har tjekket.

Trin 6: Tilpasning af Arduino -koden

Når din ESP8266 er tilsluttet og sender tid til arduinoen, vil den programmerede arduino simpelthen tælle tiden og vise et par andre bits med fejlfindingsinformation, som solopgang og solnedgang. Vi kan tilpasse nogle af disse værdier i arduino -koden, resten er simpelthen der, så jeg kunne fejlsøge hele systemet.

For bedre at forstå, hvordan arduinoen beregner solopgang og solnedgang, kan du læse dokumentationen på Dusk2Dawn Library. Du bliver nødt til at indtaste din breddegrad og længdegrad (hvis du ændrer navnet på din placering, skal du sørge for, at den ændres overalt i koden!) Dusk2Dawn bruger dine gps -koordinater (som du kan finde på google maps) og den lokale tid, til bestemme, hvornår solen går op og går ned i minutter fra midnat. MinfromMid -variablen er det aktuelle minut siden midnat og sammenlignes med solopgang, solnedgang, fodringstider og tusmørke for at fortælle arduinoen, hvornår man skal gøre hvad. Sørg også for at opdatere din tidszone, standard er EST.

Når din placering er indstillet, skal du indstille tusmørketid for at fortælle arduinoen, hvor lang du vil have tusmørket. Dette styrer, hvor længe perioden mellem dag og nat varer, og angives i minutter. Standard er 90 minutter, så RGBW -lysene vil falme fra dagtimerne til natten eller den anden vej i den mængde tid.

Indstil derefter de ønskede fodringstider. De faktiske fodringstider er indstillet i getTime () -metoden for at holde fodringerne synkroniseret med dag/nat. Hvis du vil have din fisk fodret på samme tid hver dag i stedet, skal du kommentere de relative indstillinger og bruge de oprindelige indstillinger i begyndelsen af koden. Husk, at disse tider er i minutter fra midnat. Brug af indledende, hårdt kodede fodringstider kan forstyrre belysningen, hvis fodringstiden lander under fade mellem tusmørke og dagslys (ved solopgang og solnedgang). Standard for koden er henholdsvis 15 minutter før og efter solnedgang og solopgang. Yderligere fodertider kan tilføjes, hvis du ønsker det.

Indstil derefter det tidspunkt, hvor arduinoen skal nulstilles. Dette sikrer, at ingen af timingen flyder over og synkroniserer uret igen. Jeg anbefaler at få dette til at ske midt på dagen, når du er væk, da nulstillingsprocessen får lysene til at gå fuld lysstyrke. Om dagen vil dette ikke være et problem for fisken, men om natten eller om morgenen/aftenen kan lysglimt forstyrre din fisk eller ødelægge tankens udseende i et par sekunder, mens du nyder den.

Kontroller endelig antallet af lysdioder i den strimmel, du har, Min strimmel har 60, men du bør opdatere denne værdi i opsætningskoden for så mange lysdioder, du bruger.

Trin 7: Belysningen

Belysningen
Belysningen

Tilslut din LED -strip, hvis du ikke allerede har gjort det.

Strøm (rød) til 5V, jord (hvid) til jord, signal (grøn) til pin 6 (eller hvad du end indstiller den til). Når arduinoen er nulstillet, vil lysene være i fuld lysstyrke, indtil ESP8266 sender tiden til arduinoen, og den bestemmer, hvor den er i belysningscyklussen. Det er bedst at konfigurere dette om aftenen eller natten, da lysændringen vil være mere drastisk. Hvis lyset ikke ændres inden for 30 sekunder, skal du nulstille arduinoen. Min nulstillingskode burde fungere, men jeg er ikke en programmerer af fag, så der kan stadig være et par fejl her eller der. Du kan teste nulstillingen virker ved at indstille nulstillingstiden til et minut, efter at du har uploadet koden igen og ventet (nulstillingens sekund er randomiseret, så det kan tage 1-2 minutter at faktisk nulstille) Du kan gøre det samme trick senere på for at sikre, at servoen fungerer ved at ændre fodringstiden. Bare sørg for at ændre disse tider tilbage, før du lader den køre.

Standardbelysningsplanen er ret enkel:

Om natten er alle lys slukket undtagen blå, som er på den laveste indstilling (2/255). Når tiden nærmer sig solopgang, stiger den blå til sin fulde intensitet (255), som den når i begyndelsen af tusmørket. I tusmørket stiger rød og grøn op fra off op til 255. Ved solopgang er rødt, blåt og grønt alle ved 255, men dagslyset er hvidt, så i løbet af de næste 2 minutter forsvinder rødt, blåt og grønt og hvidt falmer in. I løbet af resten af dagen er hvid ved fuld intensitet, indtil 2 minutter før solnedgang, når den forsvinder og erstattes af rød, blå og grøn igen. Ved solnedgang kommer belysningen igen ind i tusmørket, bortset fra denne gang starter rødt og grønt ved fuld intensitet og falmer ud, og efterlader blå ved fuld intensitet, når natten kommer. Herfra falmer det blå langsomt tilbage til dets laveste værdi, som det når ved midnat.

Der findes anden kode i slutningen af arduino -skitsen for andre belysningstilstande, så du er velkommen til at lege med matematikken for at få belysningen til at falme anderledes eller for at ændre farverne i forskellige perioder af dagen. Husk, at matematikken udføres i float -format, men farveværdierne skal være ints, så konvertering er nødvendig mellem de to med enhver ny belysningsmatematik, du implementerer.

Trin 8: Udskrivning af delene

Hvis du ikke har printet delene til dette niveau endnu, skal du gøre det. Huset er omtrent samme størrelse som en mellemstor filterenhed, og det tog hele natten for mig at udskrive. Rengør delene, indsæt skillevæggen med rillen opad og den afrundede kant udad. Servoen installeres på samme måde som i Tier 1, og hvis du udskifter et Tier 1 -system, er beholderen, låget og fodringshjulet identiske, så du behøver ikke at genoptrykke dem, hvis de fungerer.

. Zip -mappen indeholder to sæt STL -filer, en til den originale SM22 servomotor, som jeg brugte, og en anden til den langt mere almindelige SG90 servo. Begge indeholder Fusion 360 -filer, hvis du vil/skal ændre nogen af delene. SM22 STL'erne passer helt sikkert sammen, da det er dem, jeg har brugt. Jeg har ikke printet eller testet SG90 -delene.

For materialer anbefaler jeg at bruge en fødevaresikker plast. Jeg brugte Raptor PLA fra makergeeks, der kommer i masser af farver og er super stærk, efter at du har annealeret den i 10 minutter. Det kan gøres ved at koge delene, hvilket jeg anbefaler, at du gør for bare hjulet, hvis det ikke passer helt, da glødning vil krympe delene med ca. 0,3%.

Jeg printede huset på siden (med toppen vendt mod siden og den åbne side opad) Dette bruger meget mindre støttemateriale end andre retninger. Beholderen kan udskrives på hovedet for at undgå alt støttemateriale på den. Beholderens låg skal også udskrives på hovedet, men det store låg skal udskrives med højre side opad.

Der er også et 'endstop' -stykke til støtte for bunden af huset. Efter at have ladet føderen sidde på plads i et par uger, bemærkede jeg, at den var begyndt at hænge og bøje af vægten af strømforsyningen, og det påvirkede beholderens evne til at føre mad ind i hjulet. Bare varmlim 1-2 endestop til bunden af huset for at holde alt på niveau.

Trin 9: Montering

montage
montage
montage
montage
montage
montage
montage
montage

Brug et protoboard til at forbinde alt. Jeg brugte jumperwires, så jeg behøvede ikke at lodde så meget, men det er her, du vil lodde mest. Så længe forbindelserne er de samme, fungerer systemet, som det gjorde på brødbrættet. Jeg loddet sammen headerstifter for at skabe strøm "skinner" til jord, 5V, 3.3V, samt signalporte servo og ikke-strøm 3.3V signaler til ESP8266 (RX, CH_PD og RST). Jeg orienterede alle stifterne mod undersiden af protoboardet, med komponenterne på toppen.

Når du har protoboardet færdig, skal du indsætte det i husets øvre hulrum og tilslutte servomotoren. Belysningskablerne går ud i hakket i kabinettets låg, og strømforsyningen passer i det nederste hulrum. Bundhulen er afrundet og har en lille hældning for at dræne vand, der på en eller anden måde formår at komme ind i kabinettet væk fra elektronikken. Tilslut strømforsyningens positive og negative terminaler til systemet, og tilføj sidedækslet.

Hvis du ikke allerede har gjort dette for din strømforsyning, skal du skære enden af det strømkabel, der ikke er tilsluttet væggen, og fjerne ledningerne nok, så du kan sætte dem i de korrekte terminaler på strømforsyningen. Hvis du har krympeender, som du kan sætte på enderne, foreslår jeg, at du bruger dem, hvis ikke det bare kobber vil være fint, skal du bare være sikker på, at intet mangler! HUSK, at dette vil blive tilsluttet dit hjemmets vægstrøm, VÆR SIKKER OG ARBEJD ALDRIG MED SYSTEMET TILSLUTTET.

Dernæst skal lysstrimlen tilføjes til tanken. Fjern tankens låg og tør det helt af. Sørg for, at lågets overflade er ren og tør, før du tilføjer lysene. Strimlen jeg fik har en klæbende bagside, dette virker ikke for at sikre lysstrimlen, men det vil fungere at placere dem langs kanten af låget (eller hvor du end placerer dem) Mit tanklåg var tilfældigvis den rigtige størrelse til min strimmel, så jeg behøvede ikke at forlænge nogen ledninger. Bare sørg for at alle udsatte ledninger er dækket til med vandtætte materialer, før du lægger låget tilbage på tanken. Jeg brugte varm lim til at dække enderne, men det virker muligvis ikke på lang sigt. Når lysene er arrangeret, hvordan du kan lide dem, lim dem på plads. Jeg var nødt til at bruge ekstra lim i hjørnerne, siden LED -strimlen løftede deroppe. Lad limen tørre i et par minutter, før du sætter låget tilbage på tanken, bare for at være sikker på, at der ikke drypper noget i. Når låget er tændt igen, skal du blot slutte ledningerne til arduinoen.

Feeder -samlingen er nøjagtig den samme som Tier 1 -føderen. Servoen passer i hulrummet med fremføringshjulet limet til det. Fremføringshjulets lomme skal pege op til beholderen, når servoen er i 0 -position (og rotere mod tanken i 180 -stillingen). Hvis du bruger den valgfri vibrationsmotor, skal du lodde nogle blytråde til den og indsætte den i beholderen, der er et hulrum i servokaviteten til den. Send motorens ledningstråde gennem den samme vej som servotråde, og slut dem til jorden og motorens pin på arduinoen. Varm limbeholderen til bunden.

Når alt er tilsluttet, kan du tilslutte strømforsyningen til væggen. Arduinoen skal gennemgå sin startsekvens, og lysene ændres, når det får tid. Hvis ikke, nulstil kortet, indtil det får tid. Jeg varmlimede kabinetlåget på plads, men efterlod sidedækslet ulimt, så jeg kunne få adgang til arduinoen for at nulstille eller omprogrammere det.

Tillykke! Din Tier 2 fiskeføder er færdig! Lad dig betage af den smukke belysning, og dens evne til at fodre dine fisk, når du er væk! Sørg for at overvåge systemet i løbet af de næste par dage for at sikre, at alt fungerer korrekt, og at dine fisk faktisk fodres.

Trin 10: Ting at se til i starten:

Ting at se til i starten
Ting at se til i starten
Ting at se til i starten
Ting at se til i starten
Ting at se til i starten
Ting at se til i starten

Da jeg først satte min op, koblet jeg ved et uheld servoen til den forkerte signalnål, så fisken blev ikke fodret i flere dage, før jeg indså fejlen (jeg havde fodret dem manuelt om natten som reaktion på den næste fejl). Prøv at indstille fodringstiderne til, hvornår du sandsynligvis er i nærheden for at bekræfte, at dine fisk blev fodret.

En anden fejl at se efter er nulstillingen. Hvis du f.eks. Kommer hjem efter solnedgang, og din tank stadig er i belysning i dagtimerne, er chancerne for, at nulstillingsfunktionen mislykkedes, og arduinoen fik aldrig tiden fra ESP8266. Dette betyder også, at dine fisk ikke blev fodret siden nulstillingstiden, så du skal nok fodre dem selv, mens du trykker på reset -knappen på arduinoen. Jeg er 99% sikker på, at jeg eliminerede dette, men kodning er ikke mit erhverv, så sørg for at passe på det.

Sørg også for at kontrollere maden i beholderen hver uge eller to, påfyld den efter behov og sørg for, at intet går galt.

Hvis du skal væk på ferie, skal du sørge for at skifte vand og anden grundlæggende tankvedligeholdelse, inden du tager afsted. Foderet sikrer kun, at mad og belysning ikke bliver enden på din fisk, hvis du er væk for længe. Du skulle aldrig skulle bruge feriefoderautomater igen!

Anbefalede: