Innehållsförteckning:

Den ultimata DIY automatiska fiskmataren: nivå 2: 10 steg (med bilder)
Den ultimata DIY automatiska fiskmataren: nivå 2: 10 steg (med bilder)

Video: Den ultimata DIY automatiska fiskmataren: nivå 2: 10 steg (med bilder)

Video: Den ultimata DIY automatiska fiskmataren: nivå 2: 10 steg (med bilder)
Video: 199 Amazing Fastest Big Wood Sawmill Machines Working At Another Level ►2 2024, Juli
Anonim
Den ultimata DIY automatiska fiskmataren: nivå 2
Den ultimata DIY automatiska fiskmataren: nivå 2

Tier 2 -mataren är ett stort steg upp från nivå 1. Denna version använder en ESP8266 wifi -modul för att synkronisera arduinoklockan för att styra matningsschemat och tankens belysning.

Steg 1: Vad du behöver:

Allt i nivå 1 förutom ljustimern

  • ESP8266-01
  • FTDI programmerare (för att programmera ESP8266)
  • Lödkolv
  • 5V RGBW LED -remsa (SK6812 IP 65, dagsljusvit, jag använde den här)
  • Ljusremsan måste vara vattentät, eftersom vatten kommer att avdunsta från tanken och kondensera på tanklocket och tändas själv.
  • 5V strömförsörjning (jag använde den här, arduino KAN inte driva alla lampor på egen hand.).
  • Använd gärna vilken 5V strömförsörjning du vill, var noga med att den ger tillräckligt med ström för att förse alla lampor.
  • 3.3V spänningsregulator
  • ESP8266 körs på 3.3V, det är därför allt annat är 5V, det är lättare att steg 5 ner till 3.3 än att stiga 12 till 3.3
  • Motstånd (1kOhm x2, 2kOhm x2 (eller 1kOhm x4), 10kOhm x1)
  • superlim
  • Hot Lim
  • 3D -tryckta delar x8 (STL -filer tillhandahålls)
  • Wire strippers (jag rekommenderar dessa användbara saker)
  • Brödbräda (för protoyping saker)
  • Protoboard/Project board (för slutmontering)
  • Standard strömkabel med tre delar.
  • (valfritt) Mobiltelefonvibrationsmotor (för att omröra behållaren) (jag använde en av dessa)
  • Installera dessa arduino -bibliotek:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Tålamod.

Steg 2: Hur det fungerar

ESP8266 får Unix -tiden från en NIST -server och skickar den till arduino. Arduino använder sedan den tiden för att bestämma lokal soluppgång och solnedgång och synkronisera sin interna klocka för att avgöra hur många minuter som har gått sedan midnatt. Med denna förflutna tid sedan midnatt ställer arduino in färg på lamporna och vet när mataren ska aktiveras, vilket är samma mekanism som Tier 1 -freeder. Standardinställningarna i arduino -koden jag skrev har lamporna inställda på en dag/natt -cykel som kan styras ner till den andra för mjuka blekningar och synkroniseras med din plats soluppgång och solnedgång. Arduino återställer sig också en gång om dagen för att synkronisera sig själv med NIST-servern och se till att det inte finns några timeröverflöden

Steg 3: Programmering av ESP8266

Programmering av ESP8266
Programmering av ESP8266

Okej, så ESP8266 är en jävel att programmera.

Det är inte brödbräda vänligt och om du har kvinnliga bygelkablar rekommenderar jag att du använder dem. Om din ESP8266 kom utan någon fast programvara installerad som min gjorde, måste du blinka firmware. Använd FTDI -programmeraren för att göra detta, det finns gott om instruktioner om hur du gör detta någon annanstans, men jag gav ett kopplingsschema för enkelhets skull. KONTROLLERA att FTDI -programmeraren tillhandahåller 3.3V! 5V steker din ESP8266. I mitt diagram ska den orange som är ansluten mellan GPI01 och GND endast göras när ESP8266s fasta program blinkar. GPI01 bör inte vara ansluten när du laddar upp den faktiska arduino -koden till modulen.

Därefter måste du ladda upp ESP8266: s faktiska kod. Använd FTDI -programmeraren den här gången tillsammans med arduino IDE. Du måste också ladda ner och installera alla bibliotek som används. Inställningarna som används för att ladda upp koden med arduino 1.8 finns i kommenterade delen i början. Var noga med att uppdatera koden med ditt wifi -nätverk och lösenord.

Steg 4: Anslut ESP8266 till Arduino

Anslut ESP8266 till Arduino
Anslut ESP8266 till Arduino
Anslut ESP8266 till Arduino
Anslut ESP8266 till Arduino

När koden har laddats upp kan du koppla bort FTDI -programmeraren och ansluta ESP8266 enligt diagrammet. Motstånden används som spänningsdelare för att se till att arduinoen inte pumpar 5V in i ESP8266: s kommunikations- och återställningsstift. Gör detta steg på ett brödbräda för felsökning, vi lägger det på proto-kortet senare.

När ESP8266 är inkopplad bör du se ett blått ljus blinka när den är ansluten till strömmen, efter några sekunder senare bör den få Unix -tiden från internet och skicka den till arduinoen, då har den en tom hålslinga () att den sitter i tills den återställs, precis som Tier 1 -mataren.

För att säkerställa att ESP8266 fungerar måste du ladda upp koden från nästa steg till arduino och öppna den seriella bildskärmen.

Steg 5: Ladda upp Arduino -koden och felsökning

Ladda upp Arduino -koden och felsökning
Ladda upp Arduino -koden och felsökning

Ladda nu upp koden till arduino nano, öppna den seriella bildskärmen, du borde se något liknande exemplet ovan. Arduino återställs när du öppnar den seriella bildskärmen, så ESP8266 återställs samtidigt. seriemonitorn börjar räkna sekunderna från midnatt den 1 januari 1970 tills ESP8266 skickar den nuvarande Unix -tiden. När det händer bör du se detta:

Det kan ta 3-15 sekunder för detta att fungera, så ha tålamod. Jag har sällan sett det ta längre tid än 10 sekunder men ge det 15 innan du börjar felsöka.

Om din ESP8266 inte skickar tiden till arduino, försök med dessa steg:

· Se till att allt är anslutet EXAKT som det ska

· Dubbelkolla att du lägger in rätt wifi -SSID och lösenord i ESP8266, om inte måste du koppla tillbaka det till FTDI -programmeraren för att ladda upp rätt information och sedan koppla om det till arduino. (ett superlångt SSID eller lösenord kan orsaka vissa problem, men mitt wifi -nätverk har över 20 tecken i båda fälten så de flesta hemnätverk borde vara bra)

· Kontrollera routerns administratörssida (om du kan) efter en ansluten enhet som bara visas när ESP8266 är på. För att vara säker på att den förblir på medan du kontrollerar detta (arduino inaktiverar den) återanslut kabeln som leder till ESP8266s återställningsstift direkt till 3,3V, och håll den HÖG för att hålla ESP8266 på. Var säker på att ångra detta när du har kontrollerat.

Steg 6: Anpassa Arduino -koden

När din ESP8266 är ansluten och skickar tid till arduino, kommer den programmerade arduino helt enkelt att räkna tiden och visa några andra bitar av felsökningsinformation, som soluppgång och solnedgång. Vi kan anpassa några av dessa värden i arduino -koden, resten är helt enkelt där så att jag kunde felsöka hela systemet.

För att bättre förstå hur arduino beräknar soluppgång och solnedgång, läs dokumentationen på Dusk2Dawn Library. Du måste ange din latitud och longitud (om du ändrar namnet på din plats, se till att den ändras överallt i koden!) Dusk2Dawn använder dina gps -koordinater (som du kan hitta på google maps) och den lokala tiden, för att avgöra när solen går upp och går ner på några minuter från midnatt. MinfromMid -variabeln är den aktuella minuten sedan midnatt och jämförs med soluppgång, solnedgång, matningstider och skymningstid för att berätta för arduino när man ska göra vad. Var noga med att uppdatera din tidszon också, standard är EST.

När din plats är inställd ställer du in skymningstid för att berätta för arduino hur lång du vill att skymningen ska vara. Detta styr hur länge perioden mellan dagtid och nattetid varar och anges i minuter. Standard är 90 minuter, så RGBW -lamporna kommer att blekna från dagtid till nattetid eller på andra sätt under den tiden.

Ställ sedan in de matningstider du vill ha. De faktiska matningstiderna är inställda i metoden getTime () för att hålla matningarna synkroniserade med dag/natt. Om du vill att din fisk ska matas på samma tid varje dag istället, kommentera de relativa inställningarna och använd de ursprungliga inställningarna i början av koden. Kom ihåg att dessa tider är i minuter från midnatt. Att använda initiala, hårdkodade matningstider kan störa belysningen om matningstiden landar under blekning mellan skymning och dagsljus (vid soluppgång och solnedgång). Standard för koden är 15 minuter före respektive efter solnedgång respektive soluppgång. Ytterligare utfodringstider kan läggas till om du vill.

Ställ sedan in den tid du vill att arduino ska återställas. Detta säkerställer att ingen av timingen flyter över och synkroniserar klockan igen. Jag rekommenderar att detta sker mitt på dagen, när du är borta, eftersom återställningsprocessen gör att lamporna blir fulla ljusstyrka. På dagen kommer detta inte att vara ett problem för fisken, men på natten eller på morgonen/kvällen kan ljusblixten störa din fisk eller förstöra tankens utseende i några sekunder medan du njuter av den.

Slutligen, kontrollera antalet lysdioder i remsan du har, Min remsa har 60, men du bör uppdatera detta värde i installationskoden för hur många lysdioder du än använder.

Steg 7: Belysningen

Blixten
Blixten

Anslut din LED -remsa om du inte redan har gjort det.

Ström (röd) till 5V, jord (vit) till jord, signal (grön) till stift 6 (eller vad du än ställer in det). När arduino har återställts kommer lamporna att ha full ljusstyrka tills ESP8266 skickar tiden till arduinoen och den avgör var den är i belysningscykeln. Det är bäst att ställa in detta på kvällen eller natten, eftersom ljusförändringen kommer att bli mer drastisk. Om lamporna inte ändras inom 30 sekunder, återställ arduino. Min återställningskod borde fungera, men jag är ingen programmerare av handel så det kan fortfarande finnas ett par buggar här eller där. Du kan testa att återställningen fungerar genom att ställa in återställningstiden till en minut efter att du har laddat upp koden igen och väntat (återställningen sekund är randomiserad, så det kan ta 1-2 minuter att faktiskt återställa) Du kan göra samma trick senare på för att se till att servon fungerar genom att ändra matningstiden. Var noga med att ändra dessa tider innan du lämnar den igång.

Standardbelysningsschemat är ganska enkelt:

På natten är alla lampor släckta utom blått, vilket är på den lägsta inställningen (2/255). När tiden närmar sig soluppgången ökar det blå till sin fulla intensitet (255), som det når i början av skymningen. Under skymningen stiger rött och grönt från från upp till 255. Vid soluppgången är rött, blått och grönt alla vid 255, men dagsljuset är vitt, så under de närmaste 2 minutarna bleknar rött, blått och grönt och vit bleknar in. Under resten av dagen är vitt med full intensitet, tills 2 minuter före solnedgången, när det bleknar och ersätts med rött, blått och grönt igen. Vid solnedgången går belysningen in igen i skymningen, förutom att den här gången börjar rött och grönt med full intensitet och bleknar och lämnar blått vid full intensitet när natten kommer. Härifrån bleknar det blå långsamt tillbaka till det lägsta värdet, som det når vid midnatt.

Annan kod finns i slutet av arduino -skissen för andra belysningslägen, så lek gärna med matematiken för att få belysningen att blekna annorlunda eller för att ändra färgerna under olika perioder av dagen. Kom ihåg att matematiken görs i flottörformat, men färgvärdena måste vara ints, så omvandling är nödvändig mellan de två med någon ny belysningsmatte som du implementerar.

Steg 8: Skriva ut delarna

Om du inte har skrivit ut delarna till denna nivå ännu, gör det. Huset är ungefär lika stort som en medelstor filterenhet, och det tog hela natten för mig att skriva ut. Rensa delarna, sätt in skottavdelaren med spåret uppåt och den rundade kanten utåt. Servon installeras på samma sätt som i Tier 1, och om du byter ut ett Tier 1 -system är behållaren, locket och matningsratten identiska, så du behöver inte skriva ut dem igen om de fungerar.

. Zip -mappen innehåller två uppsättningar STL -filer, en för den ursprungliga SM22 -servomotorn som jag använde och en annan för den mycket vanligare SG90 -servon. Båda innehåller Fusion 360 -filerna om du vill/behöver ändra någon av delarna. SM22 STL passar definitivt ihop, eftersom det är de jag har använt. Jag har inte skrivit ut eller testat SG90 -delarna.

För material rekommenderar jag att du använder en livsmedelssäker plast. Jag använde Raptor PLA från makergeeks, som finns i massor av färger och är superstark efter att du har glödgat den i 10 minuter. Det kan göras genom att koka delarna, vilket jag rekommenderar att du gör för bara hjulet om det inte passar riktigt eftersom glödgning kommer att krympa delarna med cirka 0,3%.

Jag skrev ut huset på sidan (med toppen vänd åt sidan och den öppna sidan uppåt) Detta använder mycket mindre stödmaterial än andra riktningar. Behållaren kan skrivas ut upp och ner för att undvika allt stödmaterial på den. Behållarens lock ska också tryckas upp och ner, men det stora locket ska tryckas med höger sida uppåt.

Det finns också en "ändstopp" för att ge stöd till husets botten. Efter att ha lämnat mataren på plats i ett par veckor märkte jag att den hade börjat hänga och böjas av vikten på strömförsörjningen, och det påverkade behållarens förmåga att mata in mat i hjulet. Bara limma 1-2 ändstoppar till husets botten för att hålla allt plant.

Steg 9: Montering

hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning
hopsättning

Använd ett protoboard för att ansluta allt. Jag använde bygelkablar så jag behövde inte lödda så mycket, men det är här du kommer att löda mest. Så länge anslutningarna är desamma kommer systemet att fungera som det gjorde på panelen. Jag lödde ihop rubrikstift för att skapa kraft "rails" för mark, 5V, 3.3V, samt signalportar servo och icke-power 3.3V signaler till ESP8266 (RX, CH_PD och RST). Jag riktade alla stiften mot undersidan av protoboardet, med komponenterna på toppen.

När du har protoboardet komplett, sätt in det i det övre hålrummet på huset och anslut servomotorn. Belysningskablarna går ut ur skåpet i höljet, och strömförsörjningen passar i bottenhålan. Bottenhålan är rundad och har en liten lutning för att tömma vatten som på något sätt lyckas komma in i höljet bort från elektroniken. Anslut strömförsörjningens positiva och negativa terminaler till systemet och lägg till sidoluckan.

Om du inte redan har gjort detta för din strömförsörjning, klipp av änden på strömkabeln som inte ansluts till väggen och ta bort kablarna tillräckligt så att du kan sätta dem i rätt uttag på strömförsörjningen. Om du har krympändar som du kan sätta på ändarna, föreslår jag att du använder dem, om inte den rena kopparen kommer att bli bra, var bara säker på att inget brister! KOM ihåg att detta kommer att anslutas till ditt hems vägguttag, VAR SÄKER OCH ARbeta ALDRIG MED SYSTEMET INSLUTET.

Därefter måste ljusremsan läggas till tanken. Ta bort tankens lock och torka av det helt. Se till att lockets yta är ren och torr innan du lägger till lamporna. Remsan jag fick har en självhäftande baksida, detta fungerar inte för att säkra den ljusa remsan men det kommer att fungera att placera dem längs kanten på locket (eller var du än placerar dem) Mitt tanklock råkade ha rätt storlek för min remsa, så jag behövde inte förlänga några ledningar. Var bara säker på att alla exponerade ledningar är täckta med vattentäta material innan du sätter tillbaka locket på tanken. Jag använde varmt lim för att täcka ändarna, men det kanske inte fungerar långsiktigt. När lamporna är ordnade hur du gillar dem, limma dem på plats. Jag var tvungen att använda extra lim i hörnen sedan LED -remsan lyfte där uppe. Låt limmet torka i några minuter innan du sätter tillbaka locket på tanken, bara för att vara säker på att inget droppar i. När locket är på igen ansluter du bara trådarna till arduinoen.

Matarenheten är exakt densamma som nivå 1 -mataren. Servon passar i sitt hålrum med matningshjulet limmat på det. Matarhjulets ficka ska peka upp till behållaren när servon är i 0 -läge (och rotera mot tanken i 180 -läge). Om du använder den valfria vibrationsmotorn, löd några ledningar till den och sätt in den i behållaren, det finns ett hålrum i servokaviteten för den. Skicka motorns ledningstrådar genom samma bana som servotrådarna och anslut dem till jord och motorns stift på arduino. Varm limbehållaren på basen.

När allt är anslutet kan du ansluta strömförsörjningen till väggen. Arduino ska gå igenom sin startsekvens och lamporna kommer att ändras när det får tid. Om inte, återställ kortet tills det får tid. Jag varmlimmade kåpan på plats men lämnade sidoluckan oluktad så att jag kunde komma åt arduino för att återställa eller omprogrammera den.

Grattis! Din Tier 2 -fiskmatare är klar! Förundras över den vackra belysningen och dess förmåga att mata din fisk när du är borta! Var noga med att övervaka systemet under de närmaste dagarna för att se till att allt fungerar som det ska och att din fisk faktiskt matas.

Steg 10: Saker att titta på först:

Saker att titta på först
Saker att titta på först
Saker att titta på först
Saker att titta på först
Saker att titta på först
Saker att titta på först

När jag först satte upp min kopplade jag av misstag servon till fel signalstift, så fisken matades inte på flera dagar tills jag insåg felet (jag hade matat dem manuellt på natten som svar på nästa fel). Försök att ställa in utfodringstiderna till när du är mest sannolik att vara i närheten för att bekräfta att din fisk matades.

Ett annat fel att se efter är återställningen. Om du till exempel kommer hem efter solnedgången och din tank fortfarande är på dagbelysning, är chansen stor att återställningsfunktionen misslyckades och arduino fick aldrig tid från ESP8266. Detta betyder också att dina fiskar inte matades sedan återställningstiden, så du bör nog mata dem själv medan du trycker på återställningsknappen på arduinoen. Jag är 99% säker på att jag eliminerade detta, men kodning är inte mitt yrke så var noga med att se upp för det.

Var noga med att kontrollera maten i behållaren varje vecka eller två, fyll på den efter behov och se till att ingenting går illa.

Om du ska iväg på semester, se till att du byter vatten och annat grundläggande tankunderhåll innan du lämnar. Mataren ser bara till att mat och belysning inte kommer att vara slutet på din fisk om du är borta för länge. Du ska aldrig behöva använda semestermatare någonsin igen!

Rekommenderad: