Hilsen alle elskere af mikrokontroller DIY. Hvis du er en lykkelig ejer af et hjemmekvarium, vil denne artikel måske være af interesse for dig. I det vil jeg i detaljer beskrive hele processen med at skabe en enkel, men meget nyttig hjemmelavet - akvakontroller, designet til at gøre det lettere for ejeren af en lille undervandsverden at leve.
Som bekendt begynder ethvert vellykket projekt med udarbejdelse af tekniske specifikationer. Følgende er de grundlæggende krav og funktioner, som jeg ønskede at få fra akvakontrolleren:
- lave omkostninger og tilgængelighed af komponenter
- tid, der kan tilpasses, til at tænde og slukke for lyset i akvariet;
- fodertilstand (filteret slukkes og starter automatisk efter 15 minutter);
- medtagelse af en fodringsplan
- måling af temperatur og fugtighed i den omgivende luft (som supplement);
- visning af den aktuelle dato, tid og andre parametre på LCD-displayet;
- styring og parameterindstillinger gennem menuen ved hjælp af 4 knapper (Op, Ned, Ok, Annuller);
- tid, der kan tilpasses, til at tænde og slukke for lyset i akvariet;
- fodertilstand (filteret slukkes og starter automatisk efter 15 minutter);
- medtagelse af en fodringsplan
- måling af temperatur og fugtighed i den omgivende luft (som supplement);
- visning af den aktuelle dato, tid og andre parametre på LCD-displayet;
- styring og parameterindstillinger gennem menuen ved hjælp af 4 knapper (Op, Ned, Ok, Annuller);
Baseret på ovenstående blev kredsløbet vist i figur 1 født.
Hovedelementet er tavlen Arduino ProMinierhvervet i Kina. Som det viste sig senere, blev der installeret en controller på det ATMega168 i stedet for ATMega328. Dette fik mig til at tænke over optimeringen af programmet, da det viste sig at være for tungt for denne controller på grund af halv størrelse af flash-hukommelsen.
Et velkendt 2-linjers 16-tegn LCD-display blev valgt til visning af information. I projektet er det forbundet til Arduino på en 4-leder databus.
En digital sensor er ansvarlig for måling af temperatur og fugtighed. DTH11. For indenlandske behov er det nok. Faktisk har det ikke et specifikt formål og tilføjes rent som en tilføjelse til det samlede billede.
For at kontrollere lysstofrøret og filteret brugte jeg to simistor-kanaler, lavet på en masse optosimistor MOC3063 og kraftsimistor BT137-600E. Dette gjorde det muligt for os at slippe af kredsløbet med mekaniske relæer, som jeg af en eller anden grund ikke føler sympati for.
Knapper til styring - sædvanligt ur uden fastgørelse.
Nå, da alle indstillinger er knyttet til en bestemt tidsperiode, skal enheden nødvendigvis indeholde et realtidsur.I dette tilfælde brugte jeg modulet TinyRTC baseret på mikrokredsløb DS1703. Modulet styres af protokol i2c og indeholder et stik til installation af et batteri, som giver dig mulighed for at gemme dato og klokkeslæt, når strømmen er slukket. Den eksterne modultilførsel vises på foto nr. 2
Foto nr. 2 - ur-modul i realtid
Så kravene er defineret, skemaet er udarbejdet - du kan gå til designstadiet på printkortet. EasyEda-onlinetjenesten hjalp mig med at klare denne opgave. For ikke at bryde med at bore huller, besluttede jeg at placere alle strømførende spor og komponenter i det øverste lag. Efter at have vred detaljerne lidt i redaktøren fik jeg et PCB-design med kun tre jumpere. Boardets udseende kan ses i figur 3.
Figur 3 - Udseendet af akvakontrolkredsløbet
De, der vil gentage projektet, kan downloade PCB-filen fra dette link:
Se online fil:
Se online fil:
Så hvilke punkter skal du være opmærksom på. modstand R4 og R8 - tvilling, resten er lavet i SMD boliger 1206. Urknapper har størrelse 12x12. Brættet har også en kinesisk spændingsomformer 220V / 5V, hvis udseende er vist på foto nr. 4.
Foto nr. 4 - spændingskonverter 220V / 5V.
LCD-skærmen og realtidsurmodulet er planlagt monteret på tavlestativer, som jeg med succes har udført af klippede plastikhugger.
På dette er alle funktionerne i installationen defineret, og det gjenstår kun at overføre brættet fra skærmen til vores fysiske verden. En velkendt metode blev valgt til dette. LUT, hvilket antyder tilstedeværelsen af en laserprinter og jern. For dem, der ikke kender fremtidens teknologi, beskrives processen med at oprette et kredsløbskort i mit badeværelse nedenfor.
Så for det første skal du kigge efter ethvert magasin med blanke sider eller et ark fotopapir. Vi udskriver tavlemønsteret på laserprinteren uden at glemme at vende det. Vi tilbereder et stykke foliebelagt glas-texalit i henhold til størrelsen på emnet og sliber kobberoverfladen med finkornet sandpapir til en glans. Det skulle være noget lignende (foto nummer 5).
Dernæst vender vi udskriften til folien og anvender den på PCB. Derefter kører vi papiret med et varmt strygejern i ca. 3 minutter. Opvarmningstiden her kan variere afhængigt af temperaturen på jernet og oplevelsen af udøveren af dette hemmelige ritual. Dette ser visuelt sådan ud (foto nr. 6):
Når papiret er klæbet fast til printpladen, skal du slukke for jernet og lade kredsløbskortet afkøle. Nu skal du fjerne papirlaget omhyggeligt og samtidig ikke beskadige den klistrede toner. For at sagen skal lykkes, skal papiret fugtes og fjernes ved at rulle med fingerspidserne. Denne proces vises tydeligere på foto nr. 7.
Nogle gange sker det, at toner nogle steder simpelthen ikke klæber. I dette tilfælde kan disse områder udfyldes med en permanent markør. Foto nr. 8 viser tavlen efter fjernelse af papiret. Bemærk, at der i den øverste venstre del ikke er nogen del af figuren, som derefter gendannes ved ovenstående metode.
Når alle de ubehagelige øjeblikke fjernes, kan du begynde at ætses. Til dette brugte jeg en opløsning af jernchlorid som en af de mest overkommelige og sikre muligheder. Efter ætsning af brættet, skyl det grundigt med et opløsningsmiddel for at fjerne toner fra sporene. Derefter renser vi igen med et fint sandpapir, affedtning og tin. Resultatet vises på foto nr. 9.
Et af de vigtigste faser er afsluttet. Den næste fase er installation og lodning af radiokomponenter. Dette er en kreativ og rent individuel proces. Hvis du har spørgsmål, er jeg klar til at besvare dem i kommentarerne, men nu vil jeg bare vise dig, hvad jeg har (foto 10):
Som jeg skrev ovenfor hæves displayet og urmodulet over tavlen med plastikstativer lavet af dybler til hurtig installation, og deres kontakter loddes til tavlen med tynde ledninger.Temperatur- og fugtighedsføleren vises separat øverst på enheden. Efter min mening vil aflæsningerne med denne ordning være mere nøjagtige. For belysningskanaler og filter vises to eksterne stikkontakter i bunden af tavlen. Højden på knapperne var også utilstrækkelig, så jeg planlægger at øge dem med plastikbøsninger. Efter nogle manipulationer får enheden næsten færdigt udseende, vist på foto nr. 11.
Før du forsegler toppen af sagen, skal du skrive firmwaren ind Arduino ProMini. For at gøre dette, satte jeg stifter på tavlen, der er forbundet med kontakterne VCC, GND, RX og TX. At programmere Arduino ProMini nemmest at bruge USB-programmør, men dette var ikke tilgængeligt. Hans rolle blev med succes udført af et andet bestyrelse Arduino uno med controlleren fjernet. Jeg vil ikke gå nærmere ind på denne proces, da der er mange artikler om dette emne på Internettet. Jeg giver kun foto nr. 12 for klarhed.
Lad os nu tale om selve programmet. Når du tænder for strømmen, vises hovedskærmen. Det viser information om den aktuelle dato, tid, temperatur og fugtighed. Der vises også flere specialtegn afhængigt af systemets aktuelle tilstand, nemlig: lyset er tændt - solikonet; lys slukket - månens ikon; filter på - filterikon; fodring pågår - fiskikon. Når du klikker på OK, går brugeren ind i en menu, hvor det er muligt at konfigurere parametre som:
- lysstyringstilstand. I dette afsnit kan du tænde og slukke lyset manuelt ved at vælge det tilsvarende menupunkt og også indstille tiden for at tænde og slukke i henhold til skemaet.
- filterkontroltilstand. Giver dig mulighed for at tænde og slukke filteret manuelt, vælg funktionen "fodring" (fedding), og indstil fodringsplanen. I fodertilstand stopper filteret og gendannes automatisk efter 15 minutter.
- indstilling af den aktuelle dato.
- indstilling af det aktuelle klokkeslæt. Dato- og tidsdata registreres i urmodulet, og når strømmen er slukket, nulstilles de ikke, hvis der er installeret et batteri på det.
For en bedre forståelse viser figur 13 menustrukturen.
- lysstyringstilstand. I dette afsnit kan du tænde og slukke lyset manuelt ved at vælge det tilsvarende menupunkt og også indstille tiden for at tænde og slukke i henhold til skemaet.
- filterkontroltilstand. Giver dig mulighed for at tænde og slukke filteret manuelt, vælg funktionen "fodring" (fedding), og indstil fodringsplanen. I fodertilstand stopper filteret og gendannes automatisk efter 15 minutter.
- indstilling af den aktuelle dato.
- indstilling af det aktuelle klokkeslæt. Dato- og tidsdata registreres i urmodulet, og når strømmen er slukket, nulstilles de ikke, hvis der er installeret et batteri på det.
For en bedre forståelse viser figur 13 menustrukturen.
Download firmware til Arduino Pro Mini og alle de nødvendige biblioteker kan være dette link
Når du har skrevet programmet til mikrokontrolleren, kan du lukke sagen og gå videre til testene under reelle forhold. Cirka en uges drift gik, før denne artikel blev skrevet. Akvakontrolleren fungerede perfekt uden nogen funktionsfejl, hvilket reddede mig fra konstant at trække gaflerne om nødvendigt for at fodre fiskene eller slukke lysene. Resultatet af min indsats er vist på foto nr. 16.