Turinys:

Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa: 10 žingsnių (su nuotraukomis)
Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa: 10 žingsnių (su nuotraukomis)

Video: Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa: 10 žingsnių (su nuotraukomis)

Video: Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa: 10 žingsnių (su nuotraukomis)
Video: Savaime išsilyginantis mišinys grindims SAKRET BOS. SAKRET – tikram darbui! 2024, Liepa
Anonim
Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa
Galutinis „pasidaryk pats“automatinis žuvų tiektuvas: 2 pakopa

„Tier 2 Feeder“yra didelis žingsnis aukštyn nuo „Tier 1“. Šioje versijoje naudojamas „ESP8266“„WiFi“modulis, skirtas sinchronizuoti „arduino“laikrodį, kad būtų galima valdyti maitinimo grafiką ir bako apšvietimą.

1 žingsnis: ko jums reikės:

Viskas 1 pakopoje, išskyrus šviesos laikmatį

  • ESP8266-01
  • FTDI programuotojas (programuoti ESP8266)
  • Lituoklis
  • 5V RGBW LED juostelė (SK6812 IP 65, dienos šviesa balta, aš naudoju šią)
  • Šviesos juostelė turi būti atspari vandeniui, nes vanduo išgaruos iš bako ir kondensuosis ant bako dangčio ir užsidegs.
  • 5 V maitinimo šaltinis (aš naudoju šį, arduino NEGALI maitinti visų žibintų atskirai.).
  • Nesivaržykite naudoti bet kokį norimą 5 V maitinimo šaltinį, tik įsitikinkite, kad jis tiekia pakankamai energijos visiems žibintams tiekti.
  • 3.3V įtampos reguliatorius
  • ESP8266 veikia esant 3,3 V įtampai, todėl visa kita yra 5 V, todėl lengviau sumažinti 5 iki 3,3, nei 12–3,3
  • Rezistoriai (1kOhm x2, 2kOhm x2 (arba 1kOhm x4), 10kOhm x1)
  • Super klijai
  • Karštas klijai
  • 3D spausdintos dalys x8 (pateikiami STL failai)
  • Vielos nuėmikliai (rekomenduoju šiuos naudingus dalykus)
  • Duonos lenta (daiktų rašymui)
  • Protoboard/projekto lenta (galutiniam surinkimui)
  • Standartinis 3 kontaktų kompiuterio maitinimo kabelis.
  • (pasirinktinai) Mobiliojo telefono vibracinis variklis (maišant bunkerį) (aš naudoju vieną iš šių)
  • Įdiekite šias „arduino“bibliotekas:
  • ESP8266WiFi.h
  • „WiFiUdp.h“
  • LaikasLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Kantrybės.

2 žingsnis: kaip tai veikia

ESP8266 gauna Unix laiką iš NIST serverio ir perduoda jį arduino. Tada „arduino“naudoja tą laiką, kad nustatytų vietinį saulėtekį ir saulėlydį ir sinchronizuotų vidinį laikrodį, kad nustatytų, kiek minučių praėjo nuo vidurnakčio. Naudodamas šį laiką nuo vidurnakčio, arduino nustato žibintų spalvą ir žino, kada įjungti tiektuvą, kuris yra tas pats mechanizmas, kaip ir 1 pakopos freederis. Pagal numatytuosius mano parašyto arduino kodo nustatymus žibintai yra nustatyti dienos/nakties ciklu, kurį galima valdyti iki sekundės, kad sklandžiai išbluktų, ir jie sinchronizuojami su jūsų vietos saulėtekio ir saulėlydžio sąlygomis. „Arduino“taip pat atsistato vieną kartą per dieną, kad vėl sinchronizuotųsi su NIST serveriu ir užtikrintų, kad nebūtų laikmačio perpildymo

3 žingsnis: ESP8266 programavimas

ESP8266 programavimas
ESP8266 programavimas

Gerai, todėl ESP8266 yra programuojamas niekšas.

Tai nėra draugiška duonai, ir jei turite moteriškus trumpiklius, rekomenduoju juos naudoti. Jei jūsų ESP8266 buvo įdiegta be jokios programinės įrangos, įdiegtos kaip mano, turėsite atnaujinti programinę -aparatinę įrangą. Norėdami tai padaryti, naudokite FTDI programuotoją, yra daug instrukcijų, kaip tai padaryti kitur, tačiau patogumui pateikiau prijungimo schemą. ĮSITIKINKITE, kad FTDI programuotojas tiekia 3.3V! 5V keps jūsų ESP8266. Mano diagramoje oranžinė spalva, sujungta tarp GPI01 ir GND, turėtų būti tik tada, kai mirksi ESP8266 programinė įranga. Įkeliant faktinį „arduino“kodą į modulį, GPI01 turėtų likti nesusietas.

Tada turėsite įkelti tikrąjį ESP8266 kodą. Šį kartą naudokite FTDI programuotoją kartu su arduino IDE. Taip pat turėsite atsisiųsti ir įdiegti visas naudojamas bibliotekas. Parametrai, naudojami kodui įkelti naudojant „arduino 1.8“, pradžioje yra komentuojamoje dalyje. BŪTINAI atnaujinkite kodą naudodami „Wi -Fi“tinklą ir slaptažodį.

4 veiksmas: prijunkite ESP8266 prie „Arduino“

Prijunkite ESP8266 prie „Arduino“
Prijunkite ESP8266 prie „Arduino“
Prijunkite ESP8266 prie „Arduino“
Prijunkite ESP8266 prie „Arduino“

Įkėlę kodą, galite atjungti FTDI programuotoją ir prijungti ESP8266, kaip parodyta diagramoje. Rezistoriai naudojami kaip įtampos skirstytuvai, siekiant užtikrinti, kad „arduino“nepumpuotų 5 V į ESP8266 ryšį ir iš naujo nustatytų kaiščius. Atlikite šį žingsnį ant duonos lentos derinimui, vėliau įdėsime jį į prototipą.

Kai ESP8266 yra prijungtas prie maitinimo šaltinio, jis turėtų būti mirksintis, kai jis prijungtas prie maitinimo šaltinio, o po kelių sekundžių jis turėtų gauti „Unix“laiką iš interneto ir nusiųsti jį į „arduino“, tada jo tuščia tuštumos kilpa (), kad jis sėdėtų tol, kol bus iš naujo nustatytas, kaip ir 1 pakopos tiektuvas.

Norėdami įsitikinti, kad ESP8266 veikia, turėsite įkelti kodą iš kito veiksmo į arduino ir atidaryti serijinį monitorių.

5 veiksmas: „Arduino“kodo įkėlimas ir trikčių šalinimas

„Arduino“kodo įkėlimas ir trikčių šalinimas
„Arduino“kodo įkėlimas ir trikčių šalinimas

Dabar įkelkite kodą į arduino nano, atidarykite serijinį monitorių, turėtumėte pamatyti kažką panašaus į aukščiau pateiktą pavyzdį. „Arduino“atsistato, kai atidarote nuoseklųjį monitorių, todėl ESP8266 bus atstatytas tuo pačiu metu. serijinis monitorius pradės skaičiuoti sekundes nuo 1970 m. sausio 1 d. vidurnakčio, kol ESP8266 jam atsiųs dabartinį „Unix“laiką. Kai tai atsitiks, turėtumėte pamatyti tai:

Tai gali užtrukti 3-15 sekundžių, kol tai veiks, todėl būkite kantrūs. Aš retai mačiau, kad tai užtruks ilgiau nei 10 sekundžių, tačiau prieš pradėdami trikčių šalinimą duokite 15.

Jei jūsų ESP8266 nesiunčia laiko arduino, išbandykite šiuos veiksmus:

· Įsitikinkite, kad viskas yra prijungta tiksliai taip, kaip turėtų

· Dar kartą patikrinkite, ar į ESP8266 įvedėte teisingą „Wi -Fi“SSID ir slaptažodį, jei ne, turėsite prijungti jį prie FTDI programuotojo, kad įkeltumėte teisingą informaciją, tada perjunkite jį į „arduino“. (labai ilgas SSID arba slaptažodis gali sukelti tam tikrų problemų, tačiau mano „Wi -Fi“tinkle yra daugiau nei 20 simbolių abiejuose laukuose, todėl dauguma namų tinklų turėtų būti tinkami)

· Patikrinkite maršrutizatoriaus administratoriaus puslapį (jei galite), ar nėra prijungto įrenginio, kuris rodomas tik įjungus ESP8266. Norėdami įsitikinti, kad jis lieka įjungtas, kol tai patikrinsite („arduino“jį išjungia), iš naujo prijunkite laidą, vedantį prie ESP8266 atstatymo kaiščio, tiesiai prie 3,3 V, išlaikant AUKŠTĄ, ESP8266 bus įjungtas. Patikrinę būtinai anuliuokite.

6 veiksmas: „Arduino“kodo pritaikymas

Kai jūsų ESP8266 bus prijungtas ir siunčiamas laikas arduino, užprogramuotas arduino tiesiog suskaičiuos laiką ir parodys keletą kitų derinimo informacijos bitų, pvz., Saulėtekio ir saulėlydžio. Mes galime pritaikyti kai kurias iš šių arduino kodo verčių, likusios yra tiesiog ten, kad galėčiau derinti visą sistemą.

Norėdami geriau suprasti, kaip „arduino“skaičiuoja saulėtekį ir saulėlydį, perskaitykite „Dusk2Dawn“bibliotekos dokumentus. Turėsite įvesti savo platumą ir ilgumą (jei pakeisite savo vietovės pavadinimą, įsitikinkite, kad jis yra pakeistas visur kode!) „Dusk2Dawn“naudoja jūsų GPS koordinates (kurias galite rasti „Google“žemėlapiuose) ir vietinį laiką nustatyti, kada saulė teka ir leidžiasi per kelias minutes nuo vidurnakčio. Kintamasis minfromMid yra dabartinė minutė nuo vidurnakčio ir yra lyginama su saulėtekio, saulėlydžio, maitinimo laiko ir prieblandos laiku, kad arduino nurodytų, kada ką daryti. Būtinai atnaujinkite ir savo laiko juostą, numatytoji yra EST.

Nustatę savo buvimo vietą, nustatykite prieblandos laiką ir nurodykite arduino, kiek laiko norite sutemti. Tai kontroliuoja, kiek laiko trunka tarp dienos ir nakties, ir pateikiamas minutėmis. Numatytoji reikšmė yra 90 minučių, todėl RGBW lemputės išnyks nuo dienos iki nakties arba kitu laiku.

Tada nustatykite norimą šėrimo laiką. Faktinis šėrimo laikas nustatytas „getTime“() metodu, kad maitinimas būtų sinchronizuotas su diena/naktimi. Jei norite, kad žuvys būtų šeriamos kiekvieną dieną tuo pačiu laiku, pakomentuokite santykinius nustatymus ir naudokite pradinius nustatymus kodo pradžioje. Atminkite, kad šie laikai yra minutėmis nuo vidurnakčio. Naudojant pradinį, užkoduotą šėrimo laiką, gali sutrikti apšvietimas, jei maitinimo laikas nusileidžia tarp sutemų ir dienos šviesos (saulėtekio ir saulėlydžio metu). Numatytasis kodas yra atitinkamai 15 minučių prieš ir po saulėlydžio bei saulėtekio. Jei pageidaujate, galima pridėti papildomo maitinimo laiko.

Tada nustatykite laiką, kada norite, kad arduino būtų iš naujo nustatytas. Tai užtikrina, kad nė vienas laikas nepersipildys ir nesinchronizuos laikrodžio. Rekomenduoju tai padaryti dienos viduryje, kai esate išvykę, nes iš naujo nustatę lemputės šviečia visu ryškumu. Dieną tai nebus problema žuvims, tačiau naktį ar ryte/vakare šviesos blyksnis gali sutrikdyti jūsų žuvį arba sugadinti bako išvaizdą kelioms sekundėms, kol ja mėgaujatės.

Galiausiai patikrinkite šviesos diodų skaičių juostoje, kurią turite, Mano juostelėje yra 60, tačiau turėtumėte atnaujinti šią vertę sąrankos kode, kad ir kiek LED naudojate.

7 žingsnis: apšvietimas

Apšvietimas
Apšvietimas

Prijunkite savo LED juostą, jei to dar nepadarėte.

Maitinimas (raudona) iki 5 V, įžeminimas (baltas) prie žemės, signalas (žalias) - 6 kaiščiui (arba bet kokiam nustatymui). Kai „arduino“bus atstatytas, lemputės bus visiško ryškumo, kol ESP8266 nusiųs laiką „arduino“ir jis nustatys, kur jis yra apšvietimo cikle. Geriausia tai nustatyti vakare arba naktį, nes šviesos pasikeitimas bus drastiškesnis. Jei lemputės nepasikeičia per 30 sekundžių, iš naujo nustatykite arduino. Mano atstatymo kodas turėtų veikti, tačiau pagal profesiją nesu programuotojas, todėl vis tiek gali būti keletas klaidų. Galite patikrinti, ar atstatymas veikia, nustatę atstatymo laiką į minutę po to, kai iš naujo įkeliate kodą ir laukiate (iš naujo nustatoma sekundė atsitiktine tvarka, todėl gali užtrukti 1–2 minutes, kol iš naujo nustatysite) Vėliau tą patį triuką galite atlikti vėliau įjungtas, kad įsitikintumėte, jog servo sistema veikia, pakeisdami padavimo laiką. Tiesiog būtinai pakeiskite šiuos laikus prieš pradėdami veikti.

Numatytasis apšvietimo tvarkaraštis yra gana paprastas:

Naktį visos lemputės yra išjungtos, išskyrus mėlyną, kuri yra žemiausioje padėtyje (2/255). Artėjant saulei, mėlyna spalva padidėja iki viso intensyvumo (255), kurią pasiekia prieblandos pradžioje. Prieblandoje raudona ir žalia pakyla nuo 25 iki 255. Saulėtekio metu raudonos, mėlynos ir žalios spalvos yra 255, bet dienos šviesa yra balta, todėl per kitas 2 minutes raudona, mėlyna ir žalia spalvos išblėsta ir balta išnyksta. Likusiai dienos daliai balta spalva yra visiško intensyvumo, iki 2 minučių iki saulėlydžio, kai ji išnyksta ir vėl pakeičiama raudona, mėlyna ir žalia. Saulėlydžio metu apšvietimas vėl patenka į prieblandą, išskyrus tai, kad raudona ir žalia spalva pradeda intensyviai veikti ir išnyksta, o atėjus nakčiai, visiškai intensyviai lieka mėlyna. Iš čia mėlyna lėtai grįžta į žemiausią vertę, kurią pasiekia vidurnaktį.

Kitų apšvietimo režimų arduino eskizo pabaigoje yra kitas kodas, todėl galite laisvai žaisti su matematika, kad apšvietimas išbluktų kitaip arba pakeistų spalvas skirtingais dienos laikotarpiais. Atminkite, kad matematika atliekama plūdės formatu, tačiau spalvų reikšmės turi būti ints, todėl būtina atlikti konversiją tarp dviejų, naudojant bet kokią naują apšvietimo matematiką.

8 veiksmas: dalių spausdinimas

Jei dar nespausdinote šios pakopos dalių, padarykite tai. Korpusas yra maždaug tokio paties dydžio kaip vidutinio dydžio filtras, ir man prireikė visos nakties, kol atspausdinau. Išvalykite dalis, įstatykite pertvaros pertvarą taip, kad griovelis būtų nukreiptas į viršų, o užapvalintas kraštas - į išorę. Servo sistema sumontuota taip pat, kaip 1 pakopoje, o jei keičiate 1 pakopos sistemą, bunkeris, dangtis ir tiekimo ratas yra identiški, todėl jums nereikės jų perspausdinti, jei jie veikia.

. Zip aplanke yra du STL failų rinkiniai: vienas skirtas mano naudojamam originaliam SM22 servo varikliui, kitas - kur kas labiau paplitusioms SG90 servo sistemoms. Abiejuose yra „Fusion 360“failai, jei norite/reikia keisti bet kurią dalį. SM22 STL tikrai tinka kartu, nes aš juos naudoju. Nespausdinau ir neišbandžiau SG90 dalių.

Dėl medžiagų rekomenduoju naudoti maistui saugų plastiką. Aš naudojau „Raptor PLA“iš „makergeeks“, kuri yra tonų spalvų ir yra labai stipri po to, kai ją atkaitinate 10 minučių. Tai galima padaryti verdant dalis, o tai rekomenduoju padaryti tik ratui, jei jis netinka, nes atkaitinimas dalis sutrauks maždaug 0,3%.

Aš atspausdinau korpusą ant šono (viršutinė dalis nukreipta į šoną, o atvira pusė į viršų). Tam naudojama daug mažiau atraminės medžiagos nei kitoms kryptims. Bunkerį galima atspausdinti aukštyn kojomis, kad ant jo nebūtų visos atraminės medžiagos. Bunkerio dangtis taip pat turėtų būti atspausdintas aukštyn kojomis, tačiau didysis dangtelis turi būti atspausdintas dešine puse į viršų.

Taip pat yra „endstop“gabalas, palaikantis korpuso apačią. Po poros savaičių palikęs tiektuvą vietoje, pastebėjau, kad jis pradėjo nukristi ir sulenkti nuo maitinimo šaltinio svorio ir tai turėjo įtakos bunkerio gebėjimui tiekti maistą į ratą. Tiesiog karštai klijuokite 1-2 galus prie korpuso apačios, kad viskas būtų lygi.

9 žingsnis: Surinkimas

Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas
Surinkimas

Norėdami prijungti viską, naudokite protoboat. Aš naudoju trumpiklius, todėl man nereikėjo lituoti tiek daug, bet būtent čia lituosite daugiausiai. Kol jungtys bus vienodos, sistema veiks taip pat, kaip ir ant duonos lentos. Lituodavau antraštės kaiščius, kad sukurtų maitinimo „bėgelius“žemei, 5V, 3.3V, taip pat signalų prievadus, skirtus servo ir be maitinimo 3.3V signalams į ESP8266 (RX, CH_PD ir RST). Aš nukreipiau visus kaiščius į apatinę protoboard pusę, o komponentai buvo viršuje.

Užbaigus protoboard, įdėkite jį į viršutinę korpuso ertmę ir prijunkite servo variklį. Apšvietimo kabeliai išeina iš įpjovos korpuso dangtelyje, o maitinimo šaltinis telpa į apatinę ertmę. Apatinė ertmė yra suapvalinta ir turi nedidelį nuolydį, kad nutekėtų vanduo, kuris kažkaip sugeba patekti į korpusą toliau nuo elektronikos. Prijunkite teigiamą ir neigiamą maitinimo šaltinio gnybtus prie sistemos ir uždėkite šoninį dangtelį.

Jei to dar nepadarėte savo maitinimo šaltiniui, nukirpkite maitinimo kabelio galą, kuris nėra įkištas į sieną, ir pakankamai nuimkite laidus, kad galėtumėte juos prijungti prie tinkamų maitinimo šaltinio gnybtų. Jei turite užspaudžiamus galus, kuriuos galite uždėti ant galų, siūlau juos naudoti, jei ne tik varis bus gerai, tiesiog įsitikinkite, kad nieko netrūksta! Atminkite, kad tai bus prijungta prie jūsų namų elektros tinklo, BŪKITE SAUGI IR NIEKADA DIRBKITE SU ĮJUNGTA SISTEMA.

Tada į baką reikia pridėti šviesos juostelę. Nuimkite bako dangtį ir visiškai išdžiovinkite. Prieš dėdami lemputes įsitikinkite, kad dangčio paviršius yra švarus ir sausas. Mano gauta juostelė turi lipnią atramą, kuri nepadės pritvirtinti šviesos juostelės, bet padės uždėti juos išilgai dangčio krašto (arba visur, kur juos įdėsite) Mano rezervuaro dangtelis buvo tinkamo dydžio mano juostai, todėl man nereikėjo ilginti jokių laidų. Prieš vėl uždėdami bako dangtį, įsitikinkite, kad visi atviri laidai yra uždengti vandeniui atspariomis medžiagomis. Aš naudoju karštus klijus, kad padengčiau galus, tačiau tai gali neveikti ilgą laiką. Kai žibintai bus išdėstyti taip, kaip jums patinka, superklijuokite juos. Turėjau naudoti papildomus klijus kampuose, nes LED juostelė ten pakilo. Prieš vėl uždėdami dangtelį ant rezervuaro, leiskite klijams išdžiūti kelias minutes, kad įsitikintumėte, jog niekas nelašės. Kai dangtelis vėl užsidės, tiesiog prijunkite laidus prie arduino.

Tiektuvo mazgas yra visiškai toks pat kaip 1 pakopos tiektuvas. Servo telpa savo ertmėje, prie jo priklijuotas tiekimo ratas. Tiektuvo rato kišenė turi būti nukreipta į bunkerį, kai servo padėtis yra 0 (ir sukasi link bako 180 padėtyje). Jei naudojate papildomą vibracinį variklį, prijunkite prie jo keletą laidų ir įkiškite į bunkerį, servo ertmėje yra ertmė. Siųskite variklio laidus tuo pačiu keliu, kaip ir servo laidai, ir prijunkite juos prie žemės ir variklio kaiščio ant arduino. Karštai klijuokite bunkerį prie pagrindo.

Kai viskas bus prijungta, galite prijungti maitinimo šaltinį prie sienos. „Arduino“turėtų pereiti savo paleidimo seką, o lemputės pasikeis, kai bus laikas. Jei ne, iš naujo nustatykite plokštę, kol gausite laiko. Aš karštai priklijavau gaubto dangtį, bet palikau nešlifuotą šoninį dangtelį, kad galėčiau pasiekti arduino, kad jį iš naujo nustatytumėte arba perprogramuotumėte.

Sveikinu! Jūsų 2 pakopos žuvų tiektuvas baigtas! Nustebinkite nuostabiu apšvietimu ir gebėjimu maitinti žuvis, kai esate išvykę! Per ateinančias kelias dienas būtinai stebėkite sistemą, kad įsitikintumėte, jog viskas veikia tinkamai ir ar jūsų žuvys iš tikrųjų yra šeriamos.

10 veiksmas: į ką pirmiausia reikia atkreipti dėmesį:

Į ką pirmiausia reikia atkreipti dėmesį
Į ką pirmiausia reikia atkreipti dėmesį
Į ką pirmiausia reikia atkreipti dėmesį
Į ką pirmiausia reikia atkreipti dėmesį
Į ką pirmiausia reikia atkreipti dėmesį
Į ką pirmiausia reikia atkreipti dėmesį

Kai pirmą kartą nustatiau kasyklą, netyčia prijungiau servo prie netinkamo signalinio kaiščio, todėl žuvys nebuvo šeriamos kelias dienas, kol supratau klaidą (reaguodamas į kitą klaidą, jas maitinau rankiniu būdu naktį). Pabandykite nustatyti šėrimo laiką, kai greičiausiai būsite šalia, kad patvirtintumėte, jog jūsų žuvys buvo šeriamos.

Kita klaida, į kurią reikia atkreipti dėmesį, yra atstatymas. Jei, pavyzdžiui, atvykstate namo po saulėlydžio, o jūsų bakas vis dar šviečia dienos metu, yra tikimybė, kad atstatymo funkcija nepavyko ir arduino niekada negavo laiko iš ESP8266. Tai taip pat reiškia, kad jūsų žuvys nebuvo šeriamos nuo atstatymo laiko, todėl greičiausiai turėtumėte jas maitinti patys, paspausdami arduino atstatymo mygtuką. Esu 99% tikras, kad tai pašalinau, tačiau kodavimas nėra mano profesija, todėl būtinai to saugokitės.

Taip pat būtinai kas savaitę ar dvi patikrinkite maisto produktus bunkeryje, prireikus papildykite ir įsitikinkite, kad nieko blogo nenutinka.

Jei išvykstate atostogauti, prieš išvykdami būtinai pakeiskite vandenį ir atlikite kitą pagrindinę bako priežiūrą. Tiektuvas tik užtikrina, kad maistas ir apšvietimas nebus jūsų žuvies galas, jei jūsų ilgai nebus. Jums niekada daugiau nereikės naudoti atostogų tiektuvų!

Rekomenduojamas: