Kazalo:

Vrhunski samodejni podajalnik rib DIY: korak 2: 10 (s slikami)
Vrhunski samodejni podajalnik rib DIY: korak 2: 10 (s slikami)

Video: Vrhunski samodejni podajalnik rib DIY: korak 2: 10 (s slikami)

Video: Vrhunski samodejni podajalnik rib DIY: korak 2: 10 (s slikami)
Video: How to BATTLE the SUMMER HEAT with an Aquarium in 2023? 2024, November
Anonim
Ultimate DIY samodejni podajalnik rib: 2. stopnja
Ultimate DIY samodejni podajalnik rib: 2. stopnja

Napajalnik stopnje 2 je velik korak naprej od stopnje 1. Ta različica uporablja modul WiFi ESP8266 za sinhronizacijo ure arduino za nadzor urnika hranjenja in osvetlitve rezervoarja.

1. korak: Kaj boste potrebovali:

Vse na prvem nivoju, razen časovnika svetlobe

  • ESP8266-01
  • Programer FTDI (za programiranje ESP8266)
  • Spajkalnik
  • 5V RGBW LED trak (SK6812 IP 65, bela svetloba, jaz sem uporabil tega)
  • Svetlobni trak mora biti vodotesen, saj voda izhlapi iz rezervoarja in se kondenzira na pokrovu rezervoarja in samih lučh.
  • 5V napajalnik (jaz sem uporabil tega, arduino NE MOŽE sam napajati vseh luči.).
  • Uporabite kateri koli 5V napajalnik, ki ga želite, samo poskrbite, da bo dovolj energije za napajanje vseh luči.
  • 3.3V regulator napetosti
  • ESP8266 deluje pri 3.3V, zato je vse ostalo 5V, lažje je stopiti 5 na 3.3 kot znižati 12 na 3.3
  • Upori (1kOhm x2, 2kOhm x2 (ali 1kOhm x4), 10kOhm x1)
  • super lepilo
  • Vroče lepilo
  • 3D natisnjeni deli x8 (priložene datoteke STL)
  • Odstranjevalci žic (priporočam te uporabne stvari)
  • Ogledna plošča (za izdelavo prototipov)
  • Protoboard/Project board (za končno montažo)
  • Standardni napajalni kabel za 3 računalnike.
  • (neobvezno) vibracijski motor mobilnega telefona (za mešanje lijaka) (uporabil sem enega od teh)
  • Namestite te knjižnice arduino:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Potrpežljivost.

2. korak: Kako deluje

ESP8266 dobi čas Unixa od strežnika NIST in ga posreduje arduinu. Arduino nato uporabi ta čas za določitev lokalnega sončnega vzhoda in zahoda ter sinhronizira svojo notranjo uro, da ugotovi, koliko minut je minilo od polnoči. Z uporabo tega pretečenega časa od polnoči arduino nastavi barvo luči in ve, kdaj naj vklopi podajalnik, ki je enak mehanizem kot osvoboditelj prve stopnje. Privzete nastavitve v kodi arduino, ki sem jo napisal, imajo luči nastavljene na cikel dan/noč, ki jih je mogoče nadzorovati do sekunde za nemoteno bledenje in se sinhronizirajo z vzhodom in zahodom vaše lokacije. Arduino se ponastavi tudi enkrat na dan, da se znova sinhronizira s strežnikom NIST in zagotovi, da ni prelivov časovnika

3. korak: Programiranje ESP8266

Programiranje ESP8266
Programiranje ESP8266

V redu, zato je ESP8266 baraba za programiranje.

Ni prijazen do plošč in če imate ženske mostične žice, priporočam, da jih uporabite. Če je bil vaš ESP8266 brez nameščene vdelane programske opreme, tako kot moja, boste morali vdelano programsko opremo utripati. Za to uporabite programer FTDI, obstaja veliko navodil, kako to storiti drugje, vendar sem za udobje predložil shemo ožičenja. Prepričajte se, da programer FTDI napaja 3,3 V! 5V bo ocvrlo vaš ESP8266. V mojem diagramu je treba oranžno povezavo med GPI01 in GND prikazati le, ko utripa vdelana programska oprema ESP8266. Pri nalaganju dejanske arduino kode v modul mora GPI01 ostati nepovezan.

Nato morate naložiti dejansko kodo ESP8266. Tokrat uporabite programer FTDI skupaj z arduino IDE. Prav tako boste morali prenesti in namestiti vse uporabljene knjižnice. Nastavitve, uporabljene za nalaganje kode z arduinom 1.8, so na začetku v komentiranem delu. Kodo obvezno posodobite z omrežjem WiFi in geslom.

4. korak: ESP8266 priključite na Arduino

ESP8266 priključite na Arduino
ESP8266 priključite na Arduino
ESP8266 priključite na Arduino
ESP8266 priključite na Arduino

Ko je koda naložena, lahko odklopite programer FTDI in priključite ESP8266, kot je prikazano na diagramu. Upori se uporabljajo kot delilniki napetosti, da se zagotovi, da arduino ne črpa 5V v komunikacijske in ponastavitvene zatiče ESP8266. Naredite ta korak na plošči za kruh za odpravljanje napak, kasneje jo bomo dali na proto ploščo.

Ko je ESP8266 vse priključeno, bi morali videti, ko utripa modra lučka, ko je priključen na napajanje, čez nekaj sekund naj bi dobil čas Unixa iz interneta in ga poslal arduinu, potem ima prazno zanko void (), da sedi, dokler se ne ponastavi, tako kot podajalnik prve stopnje.

Če želite zagotoviti, da ESP8266 deluje, morate kodo iz naslednjega koraka naložiti v arduino in odpreti serijski monitor.

5. korak: Nalaganje kode Arduino in odpravljanje težav

Nalaganje kode Arduino in odpravljanje težav
Nalaganje kode Arduino in odpravljanje težav

Zdaj naložite kodo na arduino nano, odprite serijski monitor, videti bi morali nekaj podobnega zgornjemu primeru. Ko odprete serijski monitor, se arduino ponastavi, zato se bo ESP8266 istočasno ponastavil. serijski monitor bo začel šteti sekunde od polnoči 1. januarja 1970, dokler mu ESP8266 ne pošlje trenutnega časa Unixa. Ko se to zgodi, bi morali videti tole:

To lahko traja 3-15 sekund, zato bodite potrpežljivi. Redko sem videl, da traja dlje kot 10 sekund, vendar dajte 15, preden začnete odpravljati težave.

Če vaš ESP8266 ne pošilja časa arduinu, poskusite te korake:

· Prepričajte se, da je vse ožičeno TAKO, kot bi moralo biti

· Dvakrat preverite, ali ste v ESP8266 vnesli pravilen SSID in geslo za wifi. (zelo dolg SSID ali geslo lahko povzročita težave, vendar ima moje omrežje wifi več kot 20 znakov na obeh poljih, zato bi morala biti večina domačih omrežij v redu)

· Preverite na skrbniški strani usmerjevalnika (če lahko) povezano napravo, ki se prikaže samo, ko je ESP8266 vklopljen. Če želite preveriti, ali ostane vklopljen, medtem ko to preverite (arduino ga onemogoči), znova priključite žico, ki vodi do ponastavitvenega zatiča ESP8266, neposredno na 3,3 V, pri čemer bo vrednost HIGH ostala ESP8266 vklopljena. Po preverjanju tega razveljavite.

6. korak: Prilagodite kodo Arduino

Ko je vaš ESP8266 povezan in pošilja čas na arduino, bo programirani arduino preprosto odšteval čas in prikazal nekaj drugih kosov podatkov za odpravljanje napak, na primer sončni vzhod in zahod. Nekatere od teh vrednosti lahko prilagodimo v kodi arduina, ostale so preprosto tam, da lahko odpravim napake v celotnem sistemu.

Če želite bolje razumeti, kako arduino izračuna sončni vzhod in zahod, preberite dokumentacijo v knjižnici Dusk2Dawn. Vnesti morate svojo zemljepisno širino in dolžino (če spremenite ime svoje lokacije, se prepričajte, da je spremenjeno povsod v kodi!) Dusk2Dawn uporablja vaše koordinate GPS (ki jih najdete na google maps) in lokalni čas, da določiti, kdaj sonce vzide in zaide v nekaj minutah od polnoči. Spremenljivka minfromMid je trenutna minuta od polnoči in se primerja s sončnim vzhodom, sončnim zahodom, časom hranjenja in mrakom, da arduinu pove, kdaj naj kaj naredi. Poskrbite tudi za časovni pas, privzeto je EST.

Ko je vaša lokacija nastavljena, nastavite čas somraka, da arduinu sporočite, kako dolgo naj traja somrak. Ta nadzoruje, kako dolgo traja obdobje med dnevom in nočjo, in je podano v minutah. Privzeto je 90 minut, zato bodo luči RGBW v tem času zbledele od dneva do noči ali drugače.

Nato nastavite želene čase hranjenja. Dejanski časi hranjenja so nastavljeni v metodi getTime (), da se hranjenje sinhronizira z dnevom/nočjo. Če želite, da se vaše ribe hranijo vsak dan ob istem času, komentirajte relativne nastavitve in uporabite začetne nastavitve na začetku kode. Ne pozabite, da so ti časi v nekaj minutah od polnoči. Uporaba začetnih, strogo kodiranih časov hranjenja bi lahko vplivala na osvetlitev, če čas hranjenja pade med bledenjem med mrakom in dnevno svetlobo (ob sončnem vzhodu in sončnem zahodu). Privzeto za kodo je 15 minut pred in po sončnem zahodu oziroma po sončnem vzhodu. Če želite, lahko dodate dodatne čase hranjenja.

Nato nastavite čas, ko želite, da se arduino ponastavi. To zagotavlja, da noben čas ne preplavi in ne sinhronizira ure. Priporočam, da se to zgodi sredi dneva, ko vas ni, saj postopek ponastavitve povzroči, da luči zasvetijo polno. Čez dan to ne bo problem za ribe, a ponoči ali zjutraj/zvečer bi lahko utripanje svetlobe motilo vaše ribe ali pa za nekaj sekund pokvarilo izgled rezervoarja, medtem ko uživate.

Na koncu preverite število LED na traku, ki ga imate, Moj trak ima 60, vendar morate to vrednost posodobiti v nastavitveni kodi za toliko LED, ki jih uporabljate.

7. korak: Osvetlitev

Razsvetljava
Razsvetljava

Priključite LED trak, če tega še niste storili.

Napajanje (rdeče) do 5V, ozemljitev (belo) na maso, signal (zeleno) na pin 6 (ali karkoli že nastavite). Ko se arduino ponastavi, bodo luči svetle, dokler ESP8266 ne pošlje časa arduinu in ne določi, kje je v ciklu osvetlitve. To je najbolje nastaviti zvečer ali ponoči, saj bo sprememba svetlobe bolj drastična. Če se luči ne spremenijo v 30 sekundah, ponastavite arduino. Moja koda za ponastavitev bi morala delovati, vendar po poklicu nisem programer, zato je tu ali tam morda še nekaj hroščev. Lahko ponastavite, da ponastavitev deluje tako, da nastavite čas ponastavitve na minuto po ponovnem nalaganju kode in čakanju (sekunda ponastavitve je naključno izbrana, zato lahko traja 1-2 minuti, da se dejansko ponastavi) Kasneje lahko naredite isti trik vklopite, da se prepričate, da servo deluje s spreminjanjem časa podajanja. Ne pozabite spremeniti teh časov nazaj, preden jih pustite teči.

Privzeti urnik osvetlitve je precej preprost:

Ponoči so ugasnjene vse luči, razen modre, ki je na najnižji nastavitvi (2/255). Ko se približuje čas sončnega vzhoda, se modrina poveča do polne intenzivnosti (255), ki jo doseže na začetku mraka. V mraku rdeča in zelena naraščata od 255 do 255. Ob sončnem vzhodu sta rdeča, modra in zelena pri 255, vendar je dnevna svetloba bela, zato v naslednjih 2 minutah rdeča, modra in zelena zbledijo, bela pa zbledi. in. Ves preostanek dneva je bela v polni intenzivnosti, vse do 2 minuti pred sončnim zahodom, ko zbledi in jo znova zamenja rdeča, modra in zelena. Ob sončnem zahodu osvetlitev ponovno vstopi v mrak, le da se tokrat rdeča in zelena začneta s polno intenzivnostjo in pogasita, modra pa s polno intenzivnostjo, ko pride noč. Od tu modrina počasi zbledi nazaj na najnižjo vrednost, ki jo doseže ob polnoči.

Druga koda obstaja na koncu skice arduino za druge načine osvetlitve, zato se poigrajte z matematiko, da osvetlitev drugače zbledi ali da v različnih obdobjih dneva spremenite barve. Ne pozabite, da je matematika izvedena v plavajočem formatu, vendar morajo biti barvne vrednosti črte, zato je med obema potrebno pretvoriti katero koli novo matematiko razsvetljave, ki jo implementirate.

8. korak: Tiskanje delov

Če delov te stopnje še niste natisnili, to storite. Ohišje je približno enake velikosti kot srednje velika filtrirna enota in tiskanje je trajalo celo noč. Očistite dele, vstavite pregradni razdelilnik z žlebom navzgor in zaobljenim robom navzven. Servo je nameščen na enak način kot na prvem nivoju, in če zamenjate sistem prve stopnje, so lijak, pokrov in dovodno kolo enaki, zato vam jih ne bo treba ponovno natisniti, če delujejo.

Mapa.zip vsebuje dva niza datotek STL, enega za originalni servo motor SM22, ki sem ga uporabil, in drugega za precej pogostejši servo SG90. Oba vsebujeta datoteki Fusion 360, če želite/morate spremeniti katerega koli dela. SM22 STL se vsekakor prilegajo skupaj, saj sem jih uporabljal jaz. Nisem natisnil ali preizkusil delov SG90.

Za materiale priporočam uporabo plastike, varne za hrano. Uporabil sem Raptor PLA iz makergeeksa, ki je v tonah barv in je super močan, potem ko ga žarite 10 minut. To lahko storite z vrenjem delov, kar vam priporočam, da naredite samo za kolo, če se ne prilega, saj bo žarjenje skrčilo dele za približno 0,3%.

Ohišje sem natisnil na njegovo stran (z vrhom obrnjenim na stran in odprto stranjo navzgor). To porabi veliko manj podpornega materiala kot druge usmeritve. Posodo lahko natisnete na glavo, da se izognete vsemu podpornemu materialu. Pokrov lijaka je treba natisniti tudi z glavo navzdol, velik pokrov pa na desni strani navzgor.

Obstaja tudi "endstop" kos, ki podpira spodnji del ohišja. Potem ko sem napajalnik nekaj tednov pustil na mestu, sem opazil, da se je zaradi teže napajalnika povešal in upognil, kar je vplivalo na sposobnost lijaka, da dovaja hrano v kolo. Samo vroče prilepite 1-2 končni konici na dno ohišja, da bo vse ravno.

9. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Za povezavo vse uporabite protoboard. Uporabil sem mostične žice, zato mi ni bilo treba toliko spajkati, toda tu boste najbolj spajkali. Dokler so povezave vse enake, bo sistem deloval tako, kot je deloval na plošči. Spajal sem zatiče glave, da ustvarim napajalne tirnice za ozemljitev, 5V, 3.3V, pa tudi signalna vrata servo in 3.3V napetosti brez napajanja na ESP8266 (RX, CH_PD in RST). Vse zatiče sem usmeril proti spodnji strani protoboard -a, s komponentami na vrhu.

Ko končate protoboard, ga vstavite v zgornjo votlino ohišja in priključite servo motor. Svetlobni kabli gredo skozi zarezo na pokrovu ohišja, napajalnik pa se prilega spodnji votlini. Spodnja votlina je zaobljena in ima rahel naklon za odvajanje vode, ki nekako uspe priti v ohišje stran od elektronike. Pozitivne in negativne priključke napajalnika priključite na sistem in dodajte stranski pokrov.

Če tega še niste storili za oskrbo z električno energijo, odrežite konec napajalnega kabla, ki se ne priklopi v steno, in žice odstranite dovolj, da jih lahko vstavite v ustrezne sponke napajalnika. Če imate zarezane konce, ki jih lahko položite na konce, predlagam, da jih uporabite. Če ne, bo gol baker v redu, samo se prepričajte, da nič ne kratka! Spomnite se, da bo to priključeno na zidno napeljavo vašega doma, Bodite VARNI IN NIKOLI NE DELUJTE S SISTEMOM, KI JE VKLOPLJEN.

Nato je treba svetlobni trak dodati v rezervoar. Odstranite pokrov rezervoarja in ga popolnoma posušite. Preden dodate luči, se prepričajte, da je površina pokrova čista in suha. Trak, ki sem ga dobil, ima lepilno podlago, to ne bo pomagalo pritrditi svetlobnega traku, ampak ga bom namestil ob rob pokrova (ali kamorkoli ga postavite) Pokrov rezervoarja je bil prave velikosti za moj trak, zato mi ni bilo treba podaljšati žic. Prepričajte se, da so vse izpostavljene žice pokrite z vodotesnimi materiali, preden postavite pokrov nazaj na rezervoar. Za pokrivanje koncev sem uporabil vroče lepilo, vendar to morda ne bo delovalo dolgoročno. Ko so luči razporejene po vaših željah, jih lepite na svoje mesto. V vogalih sem moral uporabiti dodatno lepilo, saj se je LED trak dvignil navzgor. Pustite, da se lepilo posuši nekaj minut, preden znova postavite pokrov na rezervoar, da se prepričate, da nič ne kaplja. Ko se pokrov spet namesti, preprosto priključite žice na arduino.

Podajalni sklop je popolnoma enak podajalniku prve stopnje. Servo se prilega v votlino, na katero je prilepljeno napajalno kolo. Žep podajalnega kolesa mora biti usmerjen proti lijaku, ko je servo v položaju 0 (in se obrniti proti rezervoarju v položaju 180). Če uporabljate izbirni vibracijski motor, vanj prilepite nekaj svinčenih žic in jih vstavite v koš, zanj je v votlini servo votlina. Vodilne žice motorja pošljite po isti poti kot servo žice in jih povežite z maso in zatičem motorja na arduinu. Vroče prilepite lijak na dno.

Ko je vse povezano, lahko napajalnik priključite v steno. Arduino bi moral iti skozi zagonsko zaporedje in lučke se bodo spremenile, ko bo čas. Če ne, ponastavite ploščo, dokler ne dobi časa. Vroče sem zlepil pokrov ohišja, stranski pokrov pa pustil neslepljen, da sem lahko dostopal do arduina, da ga ponastavim ali ponovno programiram.

Čestitamo! Vaš napajalnik rib 2. stopnje je končan! Čudite se lepi svetlobi in njeni sposobnosti, da nahranite svoje ribe, ko vas ni! V naslednjih nekaj dneh spremljajte sistem, da zagotovite, da vse deluje pravilno in da se vaše ribe dejansko hranijo.

10. korak: Na kaj morate biti pozorni najprej:

Na kaj morate biti pozorni najprej
Na kaj morate biti pozorni najprej
Na kaj morate biti pozorni najprej
Na kaj morate biti pozorni najprej
Na kaj morate biti pozorni najprej
Na kaj morate biti pozorni najprej

Ko sem prvič nastavil svoj, sem pomotoma priključil servo na napačen signalni zatič, zato ribe niso bile hranjene nekaj dni, dokler nisem odkril napake (ponoči sem jih hranil ročno kot odgovor na naslednjo napako). Poskusite nastaviti čas hranjenja, ko boste najverjetneje v bližini, da potrdite, da so bile vaše ribe nahranjene.

Druga napaka, na katero morate biti pozorni, je ponastavitev. Če na primer prispete domov po sončnem zahodu in vaš rezervoar še vedno sveti pri dnevni svetlobi, obstaja možnost, da funkcija ponastavitve ni uspela in arduino nikoli ni dobil časa od ESP8266. To tudi pomeni, da vaše ribe niso bile hranjene od časa ponastavitve, zato bi jih verjetno morali hraniti sami, medtem ko pritisnete gumb za ponastavitev na arduinu. 99% sem prepričan, da sem to odpravil, vendar kodiranje ni moj poklic, zato bodite pozorni na to.

Vsak teden ali dva preverite hrano v posodi, jo po potrebi napolnite in se prepričajte, da ni nič narobe.

Če se odpravljate na dopust, pred odhodom poskrbite za menjavo vode in drugo osnovno vzdrževanje rezervoarja. Hranilnik zagotavlja le, da s hrano in razsvetljavo ne bo konec vaših rib, če vas predolgo ni. Nikoli več ne bi smeli uporabljati hranilnikov za počitnice!

Priporočena: