Die uiteindelike DIY outomatiese visvoerder: vlak 2: 10 stappe (met foto's)
Die uiteindelike DIY outomatiese visvoerder: vlak 2: 10 stappe (met foto's)

Video: Die uiteindelike DIY outomatiese visvoerder: vlak 2: 10 stappe (met foto's)

Video: Die uiteindelike DIY outomatiese visvoerder: vlak 2: 10 stappe (met foto's)
Video: SCP-093 Красное море Объект (Все тесты и вторичного сырья Журналы) 2025, Januarie
Anonim
Die uiteindelike DIY outomatiese visvoerder: vlak 2
Die uiteindelike DIY outomatiese visvoerder: vlak 2

Die Tier 2 -voerder is 'n groot stap bo die vlak 1. Hierdie weergawe gebruik 'n ESP8266 wifi -module om die arduino se horlosie te sinchroniseer om die voedingskedule en die tenk se beligting te beheer.

Stap 1: Wat u benodig:

Alles in vlak 1 behalwe die lig timer

  • ESP8266-01
  • FTDI programmeerder (om die ESP8266 te programmeer)
  • Soldeerbout
  • 5V RGBW LED -strook (SK6812 IP 65, daglig wit, ek het hierdie een gebruik)
  • Die ligstrook moet waterdig wees, want water verdamp uit die tenk en kondenseer op die deksel van die tenk en brand self.
  • 5V -kragtoevoer (ek het hierdie een gebruik; die arduino kan nie al die ligte alleen aanskakel nie.).
  • Gebruik gerus enige 5V -kragtoevoer wat u wil hê; maak seker dat dit genoeg krag bied om al die ligte te voorsien.
  • 3.3V spanningsreguleerder
  • Die ESP8266 loop op 3.3V, daarom is al die ander 5V, dit is makliker om 5 na 3.3 te verlaag as om 12 tot 3.3 te verlaag
  • Weerstande (1kOhm x2, 2kOhm x2 (of 1kOhm x4), 10kOhm x1)
  • wondergom
  • Warm gom
  • 3D -gedrukte dele x8 (STL -lêers verskaf)
  • Draadstroppers (ek beveel hierdie nuttige dinge aan)
  • Broodbord (vir voorwerp tik)
  • Protoboard/Projekbord (vir finale montering)
  • Standaard drie-punt rekenaarkragkabel.
  • (opsioneel) Selfoonvibrasiemotor (om die houer te roer) (ek het een hiervan gebruik)
  • Installeer hierdie arduino -biblioteke:
  • ESP8266WiFi.h
  • WiFiUdp.h
  • TimeLib.h
  • Dusk2Dawn.h
  • Adafruit_NeoPixel.h
  • Geduld.

Stap 2: Hoe dit werk

Die ESP8266 kry die Unix -tyd van 'n NIST -bediener en stuur dit na die arduino. Die arduino gebruik dan die tyd om die plaaslike sonsopkoms en sonsondergang te bepaal en sy interne klok te sinchroniseer om te bepaal hoeveel minute sedert middernag verloop het. Deur die verloop van tyd sedert middernag te gebruik, stel die arduino die kleur van die ligte in en weet hy wanneer hy die toevoer moet aktiveer, wat dieselfde meganisme is as die Tier 1 -vragmotor. By die standaardinstellings in die arduino -kode wat ek geskryf het, is die ligte ingestel op 'n dag/nag -siklus wat tot 'n tweede reguleer kan word vir gladde vervaag en gesinkroniseer word met die sonsopkoms en sonsondergang van u ligging. Die arduino stel homself ook een keer per dag in om homself weer met die NIST-bediener te sinchroniseer en te verseker dat daar geen timer oorloop nie

Stap 3: Programmering van die ESP8266

Die programmering van die ESP8266
Die programmering van die ESP8266

Goed, so die ESP8266 is 'n bastard om te programmeer.

Dit is nie broodbordvriendelik nie, en as u vroulike springdrade het, raai ek u aan om dit te gebruik. As u ESP8266 kom sonder dat enige firmware soos myne geïnstalleer is, moet u die firmware flits. Gebruik die FTDI -programmeerder om dit te doen; daar is baie instruksies oor hoe u dit elders moet doen, maar ek het 'n bedradingsdiagram verskaf. MAAK SEKER dat die FTDI -programmeerder 3.3V lewer! 5V sal u ESP8266 braai. In my diagram moet die oranje wat tussen GPI01 en GND gekoppel is, slegs gemaak word as die ESP8266 se firmware flits. GPI01 moet nie verbind bly as die werklike arduino -kode na die module opgelaai word nie.

Vervolgens moet u die werklike kode van die ESP8266 oplaai. Gebruik hierdie keer die FTDI -programmeerder saam met die arduino IDE. U moet ook al die gebruikte biblioteke aflaai en installeer. Die instellings wat gebruik word om die kode met arduino 1.8 op te laai, is aan die begin in die kommentaar gedeelte. Sorg dat u die kode opdateer met u wifi -netwerk en wagwoord.

Stap 4: Koppel die ESP8266 aan die Arduino

Koppel die ESP8266 aan die Arduino
Koppel die ESP8266 aan die Arduino
Koppel die ESP8266 aan die Arduino
Koppel die ESP8266 aan die Arduino

Sodra die kode opgelaai is, kan u die FTDI -programmeerder ontkoppel en die ESP8266 koppel soos in die diagram getoon. Die weerstande word gebruik as spanningsverdelers om seker te maak dat die arduino nie 5V in die ESP8266 se kommunikasie- en resetpenne pomp nie. Doen hierdie stap op 'n broodbord vir ontfouting; ons plaas dit later op die voorbord.

As die ESP8266 eers ingeprop is, behoort u 'n blou lig te sien flits wanneer dit aan die krag gekoppel is; na 'n paar sekondes later behoort dit die Unix -tyd van die internet af te haal en dit na die arduino te stuur, dan het dit 'n leë leegte -lus () waarin dit sit totdat dit herstel word, net soos die Tier 1 -invoerder.

Om seker te maak dat die ESP8266 werk, moet u die kode vanaf die volgende stap na die arduino laai en die seriële monitor oopmaak.

Stap 5: Laai die Arduino -kode op en los probleme op

Laai die Arduino -kode op en los probleme op
Laai die Arduino -kode op en los probleme op

Laai nou die kode op na die arduino nano, maak die seriële monitor oop; u moet iets soos die voorbeeld hierbo sien. Die arduino word teruggestel as u die seriële monitor oopmaak, sodat die ESP8266 terselfdertyd herstel sal word. die seriële monitor sal die sekondes begin tel vanaf middernag op 1 Januarie 1970, totdat die ESP8266 die huidige Unix -tyd stuur. As dit gebeur, moet u dit sien:

Dit kan 3-15 sekondes neem voordat dit werk, dus wees geduldig. Ek het selde gesien dat dit langer as 10 sekondes neem, maar gee dit 15 voordat u met die oplos van probleme begin.

Probeer hierdie stappe as u ESP8266 nie die tyd na die arduino stuur nie:

· Maak seker dat alles presies bedraad is soos dit veronderstel is

· Kontroleer of u die korrekte wifi se SSID en wagwoord in die ESP8266 geplaas het; indien nie, moet u dit weer aan die FTDI -programmeerder koppel om die korrekte inligting op te laai, en dan weer na die arduino te koppel. ('n Super lang SSID of wagwoord kan probleme veroorsaak, maar my wifi -netwerk het meer as 20 karakters in albei velde, so die meeste tuisnetwerke behoort goed te wees)

· Kyk na die admin -bladsy van u router (as u kan) vir 'n gekoppelde toestel wat slegs verskyn as die ESP8266 aan is. Om seker te maak dat dit aanhou terwyl u dit kontroleer (die arduino deaktiveer dit), koppel die draad weer na die ESP8266 se resetpen direk na 3.3V, terwyl dit HOOG bly, hou die ESP8266 aan. Maak dit ongedaan nadat u gekontroleer het.

Stap 6: Pas die Arduino -kode aan

Sodra u ESP8266 gekoppel is en tyd na die arduino gestuur is, sal die geprogrammeerde arduino eenvoudig die tyd tel en 'n paar ander stukkies ontfoutingsinligting vertoon, soos sonsopkoms en sonsondergang. Ons kan sommige van hierdie waardes in die arduino -kode aanpas, die res is eenvoudig daar sodat ek die hele stelsel kan ontfout.

Lees die dokumentasie in die Dusk2Dawn -biblioteek om beter te verstaan hoe die arduino sonsopkoms en sonsondergang bereken. U moet u breedtegraad en lengtegraad invoer (as u die naam van u ligging verander, maak seker dat dit oral in die kode verander word!) Dusk2Dawn gebruik u GPS -koördinate (wat u op Google maps kan vind) en die plaaslike tyd, om bepaal wanneer die son opkom en ondergaan in minute vanaf middernag. Die minfromMid -veranderlike is die huidige minuut sedert middernag en word vergelyk met sonsopkoms, sonsondergang, die voedingstye en skemer om die arduino te vertel wanneer om te doen. Maak ook seker dat u u tydsone opdateer; die standaard is EST.

Sodra u ligging ingestel is, stel die skemertyd in om die arduino te vertel hoe lank u wil hê dat die skemer moet wees. Dit bepaal hoe lank die tydperk tussen dag en nag duur, en word in minute gegee. Die standaard is 90 minute, so die RGBW -ligte verdwyn van dag tot nag of andersom in die tyd.

Stel dan die gewenste voedingstye in. Die werklike voedingstye word bepaal in die getTime () -metode om die voedings gesinchroniseer te hou met dag/nag. As u eerder wil hê dat u vis elke dag op dieselfde tyd gevoer moet word, kan u die relatiewe instellings kommentaar lewer en die aanvanklike instellings aan die begin van die kode gebruik. Onthou dat hierdie tye in minute vanaf middernag is. Die gebruik van aanvanklike, hardgekodeerde voedingstye kan beligting belemmer as die voedingstyd beland tydens die vervaag tussen skemer en daglig (met sonsopkoms en sonsondergang). Die standaard vir die kode is onderskeidelik 15 minute voor en na sonsondergang en sonsopkoms. Bykomende voedingstye kan bygevoeg word as u wil.

Stel dan die tyd in waarop u die arduino wil herstel. Dit verseker dat geen van die tydsberekening oorloop nie en dat die klok nie weer sinchroniseer nie. Ek beveel aan dat u dit gedurende die dag, as u weg is, laat gebeur, aangesien die herstelproses veroorsaak dat die ligte helder word. In die dag sal dit nie 'n probleem vir die vis wees nie, maar snags of in die oggend/aand kan die ligflits u vis versteur of die tenk se voorkoms vir 'n paar sekondes verwoes terwyl u dit geniet.

Kontroleer ten slotte die aantal LED's in die strook wat u het, My strook het 60, maar u moet hierdie waarde in die opstellingskode opdateer vir hoeveel LED's u ook al gebruik.

Stap 7: Die beligting

Die Beligting
Die Beligting

Sluit u LED -strook aan as u dit nog nie gedoen het nie.

Krag (rooi) na 5V, grond (wit) na grond, sein (groen) na pen 6 (of wat u ook al stel). Sodra die arduino herstel is, is die ligte op volle helderheid totdat die ESP8266 die tyd na die arduino stuur en dit bepaal waar dit in die beligtingsiklus is. Dit is beter om dit in die aand of in die nag op te stel, aangesien die ligverandering drastieser sal wees. Stel die arduino terug as die ligte nie binne 30 sekondes verander nie. My reset -kode behoort te werk, maar ek is nie 'n programmeerder nie, so daar kan nog steeds hier en daar 'n paar foute wees. U kan toets of die reset werk deur die hersteltyd in te stel op 'n minuut nadat u die kode herlaai het en wag (die tweede sekonde is ewekansig, dus dit kan 1-2 minute neem om werklik terug te stel) U kan later dieselfde truuk doen om seker te maak dat die servo werk deur die voedingstyd te verander. Maak seker dat u hierdie tye terug verander voordat u dit laat loop.

Die standaard beligtingskedule is redelik eenvoudig:

In die nag is al die ligte af, behalwe blou, wat die laagste is (2/255). As die tyd die sonsopkoms nader, neem die blou toe tot sy volle intensiteit (255), wat dit bereik aan die begin van die skemer. Tydens skemering styg rooi en groen van af tot 255. By sonsopkoms is rooi, blou en groen almal op 255, maar daglig is wit, so in die volgende 2 minute vervaag rooi, blou en groen en wit vervaag in. Gedurende die res van die dag is wit op volle intensiteit, tot 2 minute voor sononder, wanneer dit vervaag en weer vervang word deur rooi, blou en groen. By sonsondergang gaan die beligting weer in die skemer, behalwe dat hierdie keer rooi en groen begin met volle intensiteit en vervaag, en blou op volle intensiteit laat wanneer die nag aanbreek. Van hier af verdwyn die blou stadig terug na die laagste waarde, wat dit om middernag bereik.

Ander kode bestaan aan die einde van die arduino -skets vir ander beligtingsmetodes, dus speel gerus met die wiskunde om die beligting anders te laat vervaag of om die kleure gedurende verskillende periodes van die dag te verander. Onthou dat die wiskunde in 'n vlotformaat gedoen word, maar die kleurwaardes moet ints wees, dus is die omskakeling tussen die twee nodig met enige nuwe beligting wiskunde wat u implementeer.

Stap 8: Druk die onderdele af

As u nog nie die onderdele vir hierdie vlak gedruk het nie, doen dit. Die behuising is ongeveer dieselfde grootte as 'n mediumgrootte filtereenheid, en dit het die hele nag geneem om dit te druk. Maak die dele skoon, steek die skottelverdeler in, met die groef na bo en die afgeronde rand na buite. Die servo word op dieselfde manier geïnstalleer as in Tier 1, en as u 'n Tier 1 -stelsel vervang, is die bak, deksel en voerwiel identies, sodat u dit nie hoef te herdruk as dit werk nie.

Die.zip -lêergids bevat twee stelle STL -lêers, een vir die oorspronklike SM22 servomotor wat ek gebruik het en 'n ander vir die veel meer algemene SG90 servo. Beide bevat die Fusion 360 -lêers as u een van die dele wil/wil verander. Die SM22 STL's pas beslis bymekaar, want dit is diegene wat ek gebruik het. Ek het die SG90 -onderdele nie gedruk of getoets nie.

Vir materiaal raai ek aan om 'n voedselveilige plastiek te gebruik. Ek gebruik Raptor PLA van makergeeks, wat in baie kleure beskikbaar is en supersterk is nadat jy dit vir 10 minute uitgegloei het. Dit kan gedoen word deur die dele te kook, wat ek aanbeveel dat u dit net vir die wiel doen as dit nie heeltemal pas nie, aangesien gloei die dele met ongeveer.3%sal krimp.

Ek het die behuizing aan die sykant gedruk (met die bokant na die kant en die oop kant na bo) Dit gebruik baie minder ondersteuningsmateriaal as ander rigtings. Die houer kan onderstebo gedruk word om al die ondersteuningsmateriaal daarop te vermy. Die deksel van die bak moet ook onderstebo gedruk word, maar die groot deksel moet regs na bo gedruk word.

Daar is ook 'n 'eindstop' om die onderkant van die behuizing te ondersteun. Nadat ek die toevoer 'n paar weke op sy plek gelaat het, het ek opgemerk dat dit begin sak en buig van die gewig van die kragtoevoer, en dit beïnvloed die bak se vermoë om voedsel in die wiel te voer. Gom net 1-2 eindpunte aan die onderkant van die behuizing vas om alles gelyk te hou.

Stap 9: Montering

Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering
Vergadering

Gebruik 'n protobord om alles aan te sluit. Ek het springdrade gebruik, so ek hoef nie soveel te soldeer nie, maar dit is waar u die meeste sal soldeer. Solank die verbindings dieselfde is, werk die stelsel soos op die broodbord. Ek het kopstukke vasgesoldeer om 'relings' vir die grond, 5V, 3.3V, sowel as seinpoort die servo- en nie-krag 3.3V seine na die ESP8266 (RX, CH_PD en RST) te maak. Ek het al die penne na die onderkant van die protobord gerig, met die komponente bo -op.

Sodra u die protobord voltooi het, steek dit in die boonste holte van die behuizing en sluit u die servomotor aan. Die beligtingskabels gaan uit die kerf in die deksel van die omhulsel, en die kragtoevoer pas in die onderste holte. Die onderste holte is afgerond en het 'n effense helling om water te dreineer wat op een of ander manier in die omhulsel kan kom, weg van die elektronika. Koppel die positiewe en negatiewe aansluitings van die kragtoevoer aan die stelsel en voeg die sydeksel by.

As u dit nog nie vir u kragtoevoer gedoen het nie, sny die uiteinde van die kragkabel wat nie in die muur aansluit nie, en sny die drade genoeg sodat u dit in die korrekte aansluitings van die kragtoevoer kan plaas. As u krimppunte het wat u aan die kante kan sit, stel ek voor dat u dit gebruik, indien nie, sal die koper goed wees, maar maak seker dat niks kortkom nie! ONTHOU dat dit by u huis se muurkrag ingeprop sal wees, wees veilig en werk nooit met die stelsel ingeprop nie.

Vervolgens moet die ligstrook by die tenk gevoeg word. Verwyder die deksel van u tenk en droog dit heeltemal af. Maak seker dat die oppervlak van die deksel skoon en droog is voordat die ligte bygevoeg word. Die strook wat ek gekry het, het 'n kleeflaag, dit werk nie om die ligte strook vas te maak nie, maar dit sal werk om dit langs die rand van die deksel te plaas (of waar u dit ook al plaas) My tenkdeksel was toevallig die regte grootte vir my strook, so ek hoef geen drade te verleng nie. Maak net seker dat alle blootgestelde drade bedek is met waterdigte materiale voordat u die deksel weer op die tenk sit. Ek het warm gom gebruik om die punte te bedek, maar dit werk dalk nie op lang termyn nie. Sodra die ligte gerangskik is hoe u daarvan hou, plak dit op hul plek. Ek moes ekstra gom in die hoeke gebruik, aangesien die LED -strook daar opgelig het. Laat die gom 'n paar minute droog word voordat u die deksel weer op die tenk sit, net om seker te maak dat daar niks drup nie. Sluit die drade aan op die arduino nadat die deksel weer aangeskakel is.

Die toevoersamestelling is presies dieselfde as die Tier 1 -invoerder. Die servo pas in sy holte met die toevoerwiel daaraan vasgeplak. Die sak van die toevoerwiel moet na die houer wys wanneer die servo op sy 0 -posisie is (en in die 180 -posisie na die tenk draai). As u die opsionele vibrasiemotor gebruik, soldeer 'n paar looddrade daaraan en steek dit in die houer, daar is 'n holte in die servoholte daarvoor. Stuur die looddrade van die motor deur dieselfde pad as die servodrade en verbind dit met die grond en die motor se pen op die arduino. Maak die houer warm aan die basis vas.

Sodra alles gekoppel is, kan u die kragtoevoer in die muur aansluit. Die arduino moet deur die opstartvolgorde gaan, en die ligte sal verander wanneer dit tyd is. Indien nie, stel die bord terug totdat dit tyd kry. Ek het die omhulsel se deksel warm vasgeplak, maar die sydeksel het dit nie vasgemaak nie, sodat ek toegang tot die arduino kon kry om dit te herstel of te herprogrammeer.

Baie geluk! U Tier 2 -visvoerder is klaar! Bewonder die mooi beligting en die vermoë om u vis te voed as u weg is! Hou die stelsel dop vir die volgende paar dae om te verseker dat alles behoorlik werk en dat u vis in werklikheid gevoer word.

Stap 10: Waaraan u eers moet let:

Dinge om eers op te let
Dinge om eers op te let
Dinge om eers op te let
Dinge om eers op te let
Dinge om eers op te let
Dinge om eers op te let

Toe ek myne vir die eerste keer opstel, het ek die servo per ongeluk aan die verkeerde seinpen gekoppel, sodat die vis nie etlike dae gevoer is totdat ek die fout besef het nie (ek het hulle snags met die hand gevoer in reaksie op die volgende fout). Probeer om die voedingstye in te stel op wanneer u die meeste waarskynlik sal wees om te bevestig dat u vis gevoer is.

'N Ander fout om na te kyk, is die herstel. As u byvoorbeeld na sononder by die huis aankom en u tenk steeds bedags beligting het, is die kans dat die herstelfunksie misluk het en die arduino nooit die tyd by die ESP8266 gekry het nie. Dit beteken ook dat u vis sedert die hersteltyd nie gevoer is nie, dus moet u dit waarskynlik self voer terwyl u op die reset -knoppie op die arduino druk. Ek is 99% seker dat ek dit uitgeskakel het, maar kodering is nie my beroep nie, dus let op.

Maak ook seker dat u elke week of twee die kos in die vullisbak nagaan, as dit nodig is, en maak seker dat niks sleg gaan nie.

As u met vakansie gaan, maak seker dat u 'n waterverandering en ander basiese tenkonderhoud doen voordat u vertrek. Die voerder verseker slegs dat kos en beligting nie die einde van u vis sal wees as u te lank weg is nie. U hoef nooit weer vakansievoerders te gebruik nie!