Hilsen alle elskere av mikrokontroller DIY. Hvis du er en lykkelig eier av et hjemmekvarium, vil kanskje denne artikkelen være av interesse for deg. I den vil jeg i detalj beskrive hele prosessen med å skape en enkel, men veldig nyttig hjemmelaget - akvakontroller, designet for å lette livet til eieren av en liten undervannsverden.
Som kjent begynner ethvert vellykket prosjekt med utarbeidelse av tekniske spesifikasjoner. Følgende er de grunnleggende kravene og funksjonene som jeg ønsket å få fra akvakontrolleren:
- lave kostnader og tilgjengelighet av komponenter;
- tilpassbar tid for å slå av og på lyset i akvariet;
- fôringsmodus (filteret slås av og starter automatisk etter 15 minutter);
- inkludering av en plan for fôring;
- måling av temperatur og luftfuktighet i luften (som tillegg);
- visning av gjeldende dato, tid og andre parametere på LCD-skjermen;
- styrings- og parameterinnstillinger gjennom menyen ved hjelp av 4 knapper (Opp, Ned, Ok, Avbryt);
- tilpassbar tid for å slå av og på lyset i akvariet;
- fôringsmodus (filteret slås av og starter automatisk etter 15 minutter);
- inkludering av en plan for fôring;
- måling av temperatur og luftfuktighet i luften (som tillegg);
- visning av gjeldende dato, tid og andre parametere på LCD-skjermen;
- styrings- og parameterinnstillinger gjennom menyen ved hjelp av 4 knapper (Opp, Ned, Ok, Avbryt);
Basert på det ovennevnte ble kretsen vist i figur 1 født.
Hovedelementet er styret Arduino ProMinikjøpt i Kina. Som det viste seg senere, ble en kontroller installert på den ATMega168 i stedet for ATMega328. Dette fikk meg til å tulle med optimaliseringen av programmet, siden det viste seg å være uutholdelig for denne kontrolleren på grunn av halvparten av størrelsen på flash-minne.
Et velkjent 2-linjers LCD-display på 16 tegn ble valgt for å vise informasjon. I prosjektet er det koblet til Arduino på en 4-leder databuss.
En digital sensor er ansvarlig for å måle temperatur og fuktighet. DTH11. For innenlandske behov er det nok. Faktisk har den ikke et spesifikt formål og legges rent som et tillegg til helhetsbildet.
For å kontrollere lysrør og filter brukte jeg to simistor-kanaler, laget på en haug med optosimistor MOC3063 og kraftsimistor BT137-600E. Dette tillot oss å kvitte oss med kretsen for mekaniske reléer, som jeg av en eller annen grunn ikke føler sympati for.
Styringsknapper - vanlig klokke, uten å fikse.
Vel, siden alle innstillingene er knyttet til en bestemt tidsperiode, må enheten nødvendigvis inneholde en sanntids klokke.I dette tilfellet brukte jeg modulen TinyRTC basert på mikrokrets DS1703. Modulen styres av protokoll i2c og inneholder en kontakt for å installere et batteri, som lar deg lagre dato og klokkeslett når strømmen er slått av. Den eksterne modulstrømmen vises på foto nr. 2
Foto nr. 2 - klokkemodul i sanntid
Så, kravene er definert, ordningen er trukket opp - du kan gå til designstadiet til kretskortet. EasyEda online-tjenesten hjalp meg med å takle denne oppgaven. For ikke å bry meg med å bore hull, bestemte jeg meg for å plassere alle strømførende spor og komponenter i det øvre laget. Etter å ha vridd detaljene litt i redaktøren, fikk jeg et PCB-design med bare tre hoppere. Utseendet til tavlen kan sees i figur 3.
Figur 3 - Utseendet til akvakontrollkortet
De som vil gjenta prosjektet kan laste ned PCB-filen fra denne lenken:
Vis online fil:
Vis online fil:
Så hvilke punkter du bør ta hensyn til. motstand R4 og R8 - tvilling, resten er laget i SMD bolig 1206. Klokkeknapper har størrelse 12x12. Brettet har også en kinesisk spenningsomformer 220V / 5Vhvis utseende er vist på foto nr. 4.
Bilde nr. 4 - spenningsomformer 220V / 5V.
LCD-skjermen og klokkemodulen i sanntid er planlagt montert på bord-stativer, og rollen som jeg har utført med vellykkede plastpinner.
På dette er alle funksjonene i installasjonen definert, og det gjenstår bare å overføre brettet fra skjermbildet til vår fysiske verden. En kjent metode ble valgt for dette. LUT, antyder tilstedeværelsen av en laserskriver og strykejern. For de som ikke er kjent med fremtidens teknologi, vil prosessen med å lage et kretskort på badet mitt bli beskrevet nedenfor.
Så, for å begynne med, se etter et hvilket som helst blad med blanke sider eller et ark med fotopapir. Vi skriver ut tavlemønsteret på laserskriveren, uten å glemme å snu det. Vi tilbereder et stykke foliebelagt glass-texalitt i henhold til størrelsen på emnet og sliper kobberoverflaten med finkornet sandpapir til en glans. Det skal være noe sånt som dette (foto nummer 5).
Deretter vender vi utskriften til folien og bruker den på PCB. Etter det kjører vi papiret med et varmt strykejern i omtrent 3 minutter. Oppvarmingstiden her kan variere avhengig av temperaturen på jernet og opplevelsen til utøveren av dette hemmelige ritualet. Dette ser visuelt ut noe slikt (bilde nr. 6):
Etter at papiret er festet fast til PCB, må du slå av strykejernet og la kretskortet avkjøles. Nå må du fjerne papirlaget forsiktig og samtidig ikke skade den klebrig toneren. For at saken skal lykkes, må papiret fuktes og fjernes ved å rulle med fingertuppene. Denne prosessen vises tydeligere på bilde 7.
Noen ganger hender det at noen steder bare toneren ikke fester seg. I dette tilfellet kan disse områdene fullføres med en permanent markør. Foto nr. 8 viser tavlen etter å ha fjernet papiret. Vær oppmerksom på at i øvre venstre del er det ingen del av figuren, som deretter vil bli gjenopprettet med metoden ovenfor.
Når alle de ubehagelige øyeblikkene er eliminert, kan du begynne å etse. For dette brukte jeg en løsning av jernklorid, som et av de rimeligste og trygge alternativene. Etter å ha etset brettet, skyll det grundig med et løsemiddel for å fjerne toner fra sporene. Så rengjør vi igjen med et fint sandpapir, avfett og tinn. Resultatet er vist på bilde nr. 9.
Et av hovedtrinnene er fullført. Neste trinn er installasjon og lodding av radiokomponenter. Dette er en kreativ og rent individuell prosess. Hvis du har noen spørsmål, er jeg klar til å svare på dem i kommentarene, men nå skal jeg bare vise deg hva jeg har (bilde 10):
Som jeg skrev ovenfor, blir displayet og klokkemodulen hevet over brettet med plastreoler laget av dybler for rask installasjon, og kontaktene deres er loddet til tavlen med tynne ledninger.Temperatur- og fuktighetssensoren vises separat på toppen av enheten. Etter min mening vil lesningene være mer nøyaktige med denne ordningen. For belysningskanalene og filteret vises to eksterne uttak nederst på tavlen. Høyden på knappene var også utilstrekkelig, så jeg planlegger å øke dem med gjennomføringer av plast. Etter noen manipulasjoner får enheten et nesten ferdig utseende, vist på bilde nr. 11.
Før du forsegler toppen av saken, må du skrive fastvaren inn Arduino ProMini. For å gjøre dette, satte jeg pinner på brettet som er koblet til kontaktene VCC, GND, RX og TX. Å programmere Arduino ProMini enklest å bruke USB-programmerer, men dette var ikke tilgjengelig. Hans rolle ble vellykket utført av et annet styre Arduino uno med kontrolleren fjernet. Jeg vil ikke gå inn på detaljene i denne prosessen, siden det er mange artikler om dette emnet på Internett. Jeg vil bare gi bilde nr. 12 for klarhet.
La oss snakke om selve programmet. Når du slår på strømmen, vises hovedskjermen. Den viser informasjon om gjeldende dato, tid, temperatur og fuktighet. Avhengig av gjeldende tilstand for systemet vises det flere spesialtegn, nemlig: lyset er på - solikonet; lys av - månens ikon; filter på - filterikon; fôring pågår - fiskeikon. Når du klikker OK, kommer brukeren inn i en meny der det er mulig å konfigurere parametere som:
- lysstyringsmodus. I denne delen kan du slå lyset av og på manuelt ved å velge det tilsvarende menypunktet, og også angi tidspunktet for å slå av og på i henhold til timeplanen.
- filterkontrollmodus. Lar deg slå filteret av og på manuelt, velg "fôrings" -funksjonen (fedding), og angi fôringsplanen. I matemodus stopper filteret og gjenopprettes automatisk etter 15 minutter.
- innstilling av gjeldende dato.
- innstille gjeldende tid. Dato og klokkedata registreres i klokkemodulen, og når strømmen er slått av, tilbakestilles de ikke hvis det er installert et batteri.
For en bedre forståelse viser figur 13 menystrukturen.
- lysstyringsmodus. I denne delen kan du slå lyset av og på manuelt ved å velge det tilsvarende menypunktet, og også angi tidspunktet for å slå av og på i henhold til timeplanen.
- filterkontrollmodus. Lar deg slå filteret av og på manuelt, velg "fôrings" -funksjonen (fedding), og angi fôringsplanen. I matemodus stopper filteret og gjenopprettes automatisk etter 15 minutter.
- innstilling av gjeldende dato.
- innstille gjeldende tid. Dato og klokkedata registreres i klokkemodulen, og når strømmen er slått av, tilbakestilles de ikke hvis det er installert et batteri.
For en bedre forståelse viser figur 13 menystrukturen.
Last ned firmware for Arduino Pro Mini og alle nødvendige biblioteker kan være denne lenken
Etter å ha skrevet programmet til mikrokontrolleren, kan du avslutte saken og fortsette til testene under reelle forhold. Det gikk omtrent en driftsuke før du skrev denne artikkelen. Akvakontrolleren fungerte perfekt uten funksjonsfeil, og reddet meg fra å stadig trekke gaflene om nødvendig for å mate fisken eller slå av lysene. Resultatet av min innsats er vist på bilde nr. 16.