Innholdsfortegnelse:

The Ultimate DIY Automatic Fish Feeder: Tier 2: 10 Steps (med bilder)
The Ultimate DIY Automatic Fish Feeder: Tier 2: 10 Steps (med bilder)

Video: The Ultimate DIY Automatic Fish Feeder: Tier 2: 10 Steps (med bilder)

Video: The Ultimate DIY Automatic Fish Feeder: Tier 2: 10 Steps (med bilder)
Video: How Do You Feed 100 Fish? 🍕 2024, November
Anonim
Den ultimate DIY automatiske fiskemateren: nivå 2
Den ultimate DIY automatiske fiskemateren: nivå 2

Tier 2 -materen er et stort skritt opp fra nivå 1. Denne versjonen bruker en ESP8266 wifi -modul for å synkronisere arduino -klokken for å kontrollere fôringsplanen og tankens belysning.

Trinn 1: Det du trenger:

Alt i nivå 1 bortsett fra lyttetimeren

  • ESP8266-01
  • FTDI programmerer (for å programmere ESP8266)
  • Loddejern
  • 5V RGBW LED -stripe (SK6812 IP 65, dagslys hvit, jeg brukte denne)
  • Lyslisten må være vanntett, siden vann vil fordampe fra tanken og kondensere på tanklokket og lyser selv.
  • 5V strømforsyning (jeg brukte denne, arduinoen KAN IKKE drive alle lysene alene.).
  • Bruk gjerne hvilken som helst 5V strømforsyning du vil ha. Bare vær sikker på at den gir nok strøm til å forsyne alle lysene.
  • 3.3V spenningsregulator
  • ESP8266 går på 3.3V, derfor er alt annet 5V, det er lettere å gå ned 5 til 3.3 enn å gå ned 12 til 3.3
  • Motstander (1 kOhm x2, 2 kOhm x2 (eller 1 kOhm x4), 10 kOhm x1)
  • superlim
  • Hot Lim
  • 3D -trykte deler x8 (STL -filer følger med)
  • Wire strippere (jeg anbefaler disse nyttige tingene)
  • Brødbrett (for prototyping av ting)
  • Protoboard/Project board (for sluttmontering)
  • Standard strømkabel for 3-delt datamaskin.
  • (valgfritt) Mobiltelefonvibrasjonsmotor (for å røre beholderen) (jeg brukte en av disse)
  • Installer disse arduino -bibliotekene:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Tålmodighet.

Trinn 2: Slik fungerer det

ESP8266 får Unix -tiden fra en NIST -server og sender den videre til arduinoen. Arduino bruker deretter den tiden til å bestemme lokal soloppgang og solnedgang og synkronisere den interne klokken for å bestemme hvor mange minutter som har gått siden midnatt. Ved å bruke denne tiden som gikk siden midnatt, angir arduinoen fargen på lysene og vet når den skal aktiveres materen, som er den samme mekanismen som Tier 1 -freeder. Standardinnstillingene i arduino -koden jeg skrev har lysene satt til en dag/natt -syklus som kan kontrolleres ned til den andre for jevne fades og synkroniseres med posisjonens soloppgang og solnedgang. Arduinoen tilbakestiller seg også en gang om dagen for å synkronisere seg selv med NIST-serveren igjen og sikre at det ikke er noen timeroverløp

Trinn 3: Programmering av ESP8266

Programmering av ESP8266
Programmering av ESP8266

OK, så ESP8266 er en jævel å programmere.

Det er ikke brødbrettvennlig, og hvis du har kvinnelige jumper -ledninger, anbefaler jeg å bruke dem. Hvis ESP8266 kom uten at fastvare var installert som min gjorde, må du blinke fastvaren. Bruk FTDI -programmereren til å gjøre dette, det er mange instruksjoner om hvordan du gjør dette andre steder, men jeg ga et koblingsskjema for enkelhets skyld. Sørg for at FTDI -programmereren leverer 3.3V! 5V vil steke ESP8266. I diagrammet mitt bør den oransje som er koblet mellom GPI01 og GND bare lages når ESP8266s fastvare blinker. GPI01 bør forbli uten tilkobling når du laster opp faktisk arduino -kode til modulen.

Deretter må du laste opp ESP8266s faktiske kode. Bruk FTDI -programmereren denne gangen sammen med arduino IDE. Du må også laste ned og installere alle bibliotekene som brukes. Innstillingene som brukes til å laste opp koden med arduino 1.8 er i kommenterte delen i begynnelsen. Sørg for å oppdatere koden med ditt wifi -nettverk og passord.

Trinn 4: Koble ESP8266 til Arduino

Koble ESP8266 til Arduino
Koble ESP8266 til Arduino
Koble ESP8266 til Arduino
Koble ESP8266 til Arduino

Når koden er lastet opp, kan du koble fra FTDI -programmereren og koble til ESP8266 som vist i diagrammet. Motstandene brukes som spenningsdelere for å sikre at arduinoen ikke pumper 5V inn i ESP8266s kommunikasjons- og tilbakestillingsstift. Gjør dette trinnet på et brødbrett for feilsøking, vi legger det på prototavlen senere.

Når ESP8266 er koblet til, bør du se et blått lys blinke når den er koblet til strøm. Etter noen sekunder senere bør den få Unix -tiden fra internett og sende den til arduinoen, så har den en tom hulromsløyfe () som den sitter i til den blir tilbakestilt, akkurat som Tier 1 -materen.

For å sikre at ESP8266 fungerer, må du laste opp koden fra neste trinn til arduinoen og åpne den serielle skjermen.

Trinn 5: Last opp Arduino -koden og feilsøking

Laster opp Arduino -koden og feilsøking
Laster opp Arduino -koden og feilsøking

Last nå opp koden til arduino nano, åpne den serielle skjermen, du bør se noe som eksempelet ovenfor. Arduinoen tilbakestilles når du åpner den serielle skjermen, så ESP8266 blir tilbakestilt samtidig. seriell skjerm begynner å telle sekundene fra midnatt 1. januar 1970, til ESP8266 sender den gjeldende Unix -tiden. Når det skjer, bør du se dette:

Det kan ta 3-15 sekunder før dette fungerer, så vær tålmodig. Jeg har sjelden sett det ta lengre tid enn 10 sekunder, men gi det 15 før du starter feilsøking.

Hvis ESP8266 ikke sender tiden til arduinoen, kan du prøve disse trinnene:

· Sørg for at alt er koblet NØYAKTIG som det skal

· Dobbeltsjekk at du har satt inn riktig wifi -SSID og passord i ESP8266. Hvis ikke må du koble den til FTDI -programmereren for å laste opp riktig informasjon, og deretter koble den til arduinoen. (en super lang SSID eller passord kan forårsake noen problemer, men wifi -nettverket mitt har over 20 tegn i begge feltene, så de fleste hjemmenettverk bør være fine)

· Se på ruterens admin -side (hvis du kan) for en tilkoblet enhet som bare vises når ESP8266 er på. For å sikre at den forblir på mens du sjekker dette (arduinoen deaktiverer den) kobler du igjen ledningen til ESP8266s tilbakestillingsstift direkte til 3,3V, og holder den HØY vil holde ESP8266 på. Sørg for å angre dette etter at du har sjekket.

Trinn 6: Tilpasse Arduino -koden

Når ESP8266 er koblet til og sender tid til arduinoen, vil den programmerte arduinoen bare telle tiden og vise noen andre biter med feilsøkingsinformasjon, som soloppgang og solnedgang. Vi kan tilpasse noen av disse verdiene i arduino -koden, resten er rett og slett der, så jeg kan feilsøke hele systemet.

For å bedre forstå hvordan arduinoen beregner soloppgang og solnedgang, les dokumentasjonen på Dusk2Dawn Library. Du må angi breddegrad og lengdegrad (hvis du endrer navnet på posisjonen din, må du sørge for at den endres overalt i koden!) Dusk2Dawn bruker GPS -koordinatene dine (som du finner på google maps) og lokal tid, for å avgjøre når solen går opp og går ned i minutter fra midnatt. MinfromMid -variabelen er det nåværende minuttet siden midnatt, og sammenlignes med soloppgang, solnedgang, fôringstider og skumringstid for å fortelle arduinoen når man skal gjøre hva. Sørg for å oppdatere tidssonen din også, standard er EST.

Når posisjonen din er angitt, angir du skumringstid for å fortelle arduinoen hvor lang du vil at skumringen skal være. Dette styrer hvor lenge perioden mellom dagtid og nattetid varer, og er gitt i minutter. Standard er 90 minutter, så RGBW -lysene vil falme fra dagtid til nattetid eller den andre måten i så lang tid.

Still deretter inn fôringstidene du ønsker. De faktiske fôringstidene er angitt i getTime () -metoden for å holde fôringene synkronisert med dag/natt. Hvis du vil at fisken din skal mates på samme tid hver dag i stedet, kan du kommentere de relative innstillingene og bruke de opprinnelige innstillingene i begynnelsen av koden. Husk at disse tidspunktene er i minutter fra midnatt. Bruk av innledende, hardkodede fôringstider kan forstyrre belysningen hvis fôringstiden lander under fade mellom skumring og dagslys (ved soloppgang og solnedgang). Standard for koden er henholdsvis 15 minutter før og etter solnedgang og soloppgang. Ekstra fôringstider kan legges til hvis du ønsker det.

Still deretter inn tiden du vil at arduinoen skal tilbakestilles. Dette sikrer at ingen av timingen flyter over og synkroniserer klokken på nytt. Jeg anbefaler å få dette til å skje midt på dagen, når du er borte, siden tilbakestillingsprosessen får lysene til å gå i full lysstyrke. På dagtid vil dette ikke være et problem for fisken, men om natten eller om morgenen/kvelden kan lysglimt forstyrre fisken din eller ødelegge tankens utseende i noen sekunder mens du nyter den.

Til slutt, sjekk antall lysdioder i stripen du har. Min stripe har 60, men du bør oppdatere denne verdien i oppsettskoden for så mange lysdioder du bruker.

Trinn 7: Belysningen

Belysningen
Belysningen

Koble til LED -stripen hvis du ikke allerede har gjort det.

Strøm (rød) til 5V, bakken (hvit) til bakken, signal (grønn) til pinne 6 (eller hva du stiller den til). Når arduinoen er tilbakestilt, vil lysene være i full lysstyrke til ESP8266 sender tiden til arduinoen og den bestemmer hvor den er i lyssyklusen. Det er best å sette opp dette på kvelden eller natten, siden lysendringen vil være mer drastisk. Hvis lysene ikke endres innen 30 sekunder, tilbakestill arduinoen. Tilbakestillingskoden min skal fungere, men jeg er ikke programmerer av fag, så det kan fortsatt være et par feil her eller der. Du kan teste at tilbakestillingen fungerer ved å sette tilbakestillingstiden til et minutt etter at du har lastet opp koden på nytt og venter (tilbakestillingssekundet er randomisert, så det kan ta 1-2 minutter å faktisk tilbakestille) Du kan gjøre det samme trikset senere på for å sikre at servoen fungerer ved å endre foringstiden. Bare vær sikker på å endre disse tidene tilbake før du lar den gå.

Standard belysningsplan er ganske enkelt:

Om natten er alle lysene slukket bortsett fra blått, som er på den laveste innstillingen (2/255). Når tiden nærmer seg soloppgang, øker den blå til full intensitet (255), som den når i begynnelsen av skumringen. I skumringen øker rødt og grønt fra av til 255. Ved soloppgang er rødt, blått og grønt alle på 255, men dagslyset er hvitt, så i løpet av de neste 2 minuttene forsvinner rødt, blått og grønt og hvitt forsvinner in. Resten av dagen er hvit på full intensitet, til 2 minutter før solnedgang, når den forsvinner og erstattes av rødt, blått og grønt igjen. Ved solnedgang går belysningen inn igjen i skumringen, bortsett fra at denne gangen begynner rødt og grønt med full intensitet og forsvinner, og etterlater blått med full intensitet når natten kommer. Herfra blekner det blå sakte tilbake til den laveste verdien, som den når ved midnatt.

Annen kode finnes på slutten av arduino -skissen for andre belysningsmoduser, så spill gjerne med matematikken for å få belysningen til å falme annerledes eller for å endre fargene i forskjellige perioder av dagen. Husk at regnestykket gjøres i flyteformat, men fargeverdiene må være ints, så konvertering er nødvendig mellom de to med enhver ny belysningsmatematikk du implementerer.

Trinn 8: Skrive ut delene

Hvis du ikke har skrevet ut delene til dette nivået ennå, gjør det. Huset er omtrent like stort som en mellomstor filterenhet, og det tok hele natten for meg å skrive ut. Rydd opp delene, sett inn skilleveggen med sporet opp og den avrundede kanten vendt ut. Servoen er installert på samme måte som i Tier 1, og hvis du bytter ut et Tier 1 -system, er beholderen, lokket og fôringshjulet identiske, så du trenger ikke å skrive dem ut på nytt hvis de fungerer.

. Zip -mappen inneholder to sett med STL -filer, en for den originale SM22 -servomotoren som jeg brukte og en for den langt mer vanlige SG90 -servoen. Begge inneholder Fusion 360 -filene hvis du vil/trenger å endre noen av delene. SM22 STL -ene passer definitivt sammen, siden det er de jeg har brukt. Jeg har ikke skrevet ut eller testet SG90 -delene.

For materialer anbefaler jeg å bruke en matsikker plast. Jeg brukte Raptor PLA fra makergeeks, som kommer i massevis av farger og er supersterk etter at du har glødd den i 10 minutter. Det kan gjøres ved å koke delene, som jeg anbefaler at du gjør for bare hjulet hvis det ikke passer helt siden gløding vil krympe delene med omtrent 0,3%.

Jeg skrev ut huset på siden (med toppen vendt mot siden og den åpne siden opp) Dette bruker mye mindre støttemateriale enn andre retninger. Beholderen kan skrives ut opp ned for å unngå alt støttemateriale på den. Tankens lokk skal også skrives ut opp ned, men det store lokket skal skrives ut med høyre side opp.

Det er også et "endstop" -stykke for å gi støtte til bunnen av huset. Etter å ha forlatt materen på plass i et par uker, la jeg merke til at den hadde begynt å bøye og bøye seg fra vekten av strømforsyningen, og det påvirket beholderens evne til å mate mat inn i hjulet. Bare lim lim 1-2 endestopper til bunnen av huset for å holde alt i vater.

Trinn 9: Montering

montering
montering
montering
montering
montering
montering
montering
montering

Bruk et protoboard for å koble til alt. Jeg brukte jumperwires så jeg slapp å lodde så mye, men det er her du skal lodde mest. Så lenge tilkoblingene er de samme, vil systemet fungere som det gjorde på brødbrettet. Jeg loddet sammen toppstifter for å lage "skinner" for bakken, 5V, 3.3V, samt signalportene servo og ikke-strøm 3.3V signaler til ESP8266 (RX, CH_PD og RST). Jeg orienterte alle pinnene mot undersiden av protoboardet, med komponentene på toppen.

Når du har protoboardet ferdig, setter du det inn i det øvre hulrommet på huset og kobler til servomotoren. Belysningskablene går ut i hakk i lokket på kabinettet, og strømforsyningen passer i bunnhulen. Bunnhulen er avrundet og har en liten skråning for å tømme alt vann som på en eller annen måte klarer å komme inn i kabinettet vekk fra elektronikken. Koble de positive og negative polene på strømforsyningen til systemet og legg til sidedekselet.

Hvis du ikke allerede har gjort dette for strømforsyningen, kutter du enden av strømkabelen som ikke kobles til veggen, og fjerner ledningene nok til at du kan sette dem i de riktige terminalene på strømforsyningen. Hvis du har krympeender som du kan sette på endene, foreslår jeg at du bruker dem. Hvis ikke er det bare kobber bra, bare vær sikker på at ingenting mangler! HUSK at dette vil bli koblet til strømmen i hjemmet ditt, VÆR SIKKER OG ALDRI ARBEID MED SYSTEMET PLUGET INN.

Deretter må lyslisten legges til tanken. Fjern tankens lokk og tørk det helt av. Sørg for at lokket er rent og tørt før du legger til lysene. Stripen jeg har har en selvklebende bakside, dette vil ikke fungere for å feste lyslisten, men det vil fungere å plassere dem langs kanten av lokket (eller hvor du plasserer dem) Tanklokket mitt var tilfeldigvis riktig størrelse for stripen min, så jeg trengte ikke å forlenge noen ledninger. Bare vær sikker på at alle synlige ledninger er dekket med vanntette materialer før du legger lokket på tanken. Jeg brukte varmt lim for å dekke endene, men det fungerer kanskje ikke på lang sikt. Når lysene er ordnet slik du liker dem, lim dem på plass. Jeg måtte bruke ekstra lim i hjørnene siden LED -stripen løftet seg der oppe. La limet tørke i noen minutter før du legger lokket tilbake på tanken, bare for å være sikker på at det ikke drypper noe. Når lokket er på igjen, kobler du bare ledningene til arduinoen.

Materenheten er nøyaktig den samme som Tier 1 -materen. Servoen passer i hulrommet med matingshjulet limt til det. Materhjulets lomme skal peke opp til beholderen når servoen er i 0 -posisjon (og rotere mot tanken i 180 -stillingen). Hvis du bruker den valgfrie vibrasjonsmotoren, lodder du noen ledninger til den og setter den inn i beholderen. Det er et hulrom i servohulen for den. Send motorens ledningskabler gjennom samme bane som servotrådene og koble dem til bakken og motorens pinne på arduinoen. Varm limbeholderen til basen.

Når alt er koblet til, kan du koble strømforsyningen til veggen. Arduinoen bør gå igjennom oppstartsekvensen, og lysene endres når det er tid. Hvis ikke, tilbakestill brettet til det får tid. Jeg varmlimte lokket på plass, men lot sidedekselet være ulimt slik at jeg kunne få tilgang til arduinoen for å tilbakestille eller omprogrammere det.

Gratulerer! Din Tier 2 fiskemater er ferdig! Beundre den vakre belysningen og dens evne til å mate fisken din når du er borte! Sørg for å overvåke systemet i løpet av de neste dagene for å sikre at alt fungerer som det skal, og at fisken din faktisk blir matet.

Trinn 10: Ting du bør se etter i begynnelsen:

Ting å se på først
Ting å se på først
Ting å se på først
Ting å se på først
Ting å se på først
Ting å se på først

Da jeg først satte opp min, koblet jeg ved et uhell servoen til feil signalpinne, så fisken ble ikke matet på flere dager før jeg skjønte feilen (jeg hadde matet dem manuelt om natten som svar på neste feil). Prøv å angi fôringstidene til når du mest sannsynlig vil være i nærheten for å bekrefte at fisken din ble matet.

En annen feil å se etter er tilbakestillingen. Hvis du for eksempel kommer hjem etter solnedgang og tanken din fortsatt er på dagbelysning, er sjansen stor for at tilbakestillingsfunksjonen mislyktes, og arduinoen fikk aldri tid fra ESP8266. Dette betyr også at fisken din ikke ble matet siden tilbakestillingstiden, så du bør sannsynligvis mate dem selv mens du trykker på tilbakestillingsknappen på arduinoen. Jeg er 99% sikker på at jeg eliminerte dette, men koding er ikke mitt yrke, så pass på.

Sørg også for å sjekke maten i beholderen hver uke eller to, fylle den etter behov og sørg for at ingenting går dårlig.

Hvis du skal reise på ferie, må du bytte vann og annet grunnleggende tankvedlikehold før du drar. Materen sørger bare for at mat og belysning ikke blir slutten på fisken din hvis du er borte for lenge. Du trenger aldri mer å bruke feriematere!

Anbefalt: