Salutări tuturor iubitorilor de microcontroler DIY. Dacă sunteți un fericit proprietar al unui acvariu acasă, atunci acest articol vă va interesa. În ea, voi descrie în detaliu întregul proces de creare a unui acvontroller simplu, dar foarte util - conceput pentru a facilita viața proprietarului unei lumi mici subacvatice.
După cum știți, orice proiect de succes începe cu pregătirea specificațiilor tehnice. Următoarele sunt cerințele de bază și funcțiile pe care am vrut să le primesc de la acvontroller:
- costuri reduse și disponibilitatea componentelor;
- timp personalizabil pentru aprinderea și oprirea luminii din acvariu;
- modul de alimentare (filtrul se oprește și pornește automat după 15 minute);
- includerea unui program de hrănire;
- măsurarea temperaturii și umidității aerului ambiental (ca adaos);
- afișarea datei, ora și alți parametri curenti pe afișajul LCD;
- setări de gestionare și parametri din meniu folosind 4 butoane (sus, jos, ok, anulare);
- timp personalizabil pentru aprinderea și oprirea luminii din acvariu;
- modul de alimentare (filtrul se oprește și pornește automat după 15 minute);
- includerea unui program de hrănire;
- măsurarea temperaturii și umidității aerului ambiental (ca adaos);
- afișarea datei, ora și alți parametri curenti pe afișajul LCD;
- setări de gestionare și parametri din meniu folosind 4 butoane (sus, jos, ok, anulare);
Pe baza celor de mai sus, s-a născut circuitul prezentat în figura 1.
Elementul principal este placa Arduino ProMinidobândite în China. După cum s-a dovedit mai târziu, pe el a fost instalat un controler ATMega168 în loc de ATMega328. Acest lucru m-a însuflețit de optimizarea programului, deoarece s-a dovedit a fi insuportabil pentru acest controlor, datorită jumătății dimensiunii memoriei flash.
Pentru afișarea informațiilor, a fost ales un bine-cunoscut afișaj LCD cu 16 linii de 16 caractere. În proiect este conectat la Arduino pe un magistrala de date cu 4 fire.
Un senzor digital este responsabil pentru măsurarea temperaturii și umidității. DTH11. Pentru nevoile interne este suficient. De fapt, nu are un scop specific și este adăugat doar ca o completare a imaginii de ansamblu.
Pentru a controla lampa fluorescentă și filtrul, am folosit două canale simistor, realizate pe o grămadă de opto-simistor MOC3063 și simistor de putere BT137-600E. Acest lucru ne-a permis să eliminăm circuitul releelor mecanice, pentru care din anumite motive nu simt simpatie.
Butoane de gestiune - ceas obișnuit, fără fixare.
Ei bine, din moment ce toate setările sunt legate de o anumită perioadă de timp, dispozitivul trebuie să conțină în mod necesar un ceas în timp real.În acest caz, am folosit modulul TinyRTC bazat pe microcircuit DS1703. Modulul este controlat prin protocol I2C și conține un conector pentru instalarea unei baterii, care vă permite să economisiți data și ora la care alimentarea este oprită. Feedul modulului extern este prezentat în fotografia nr. 2
Foto nr. 2 - modul de ceas în timp real
Deci, cerințele sunt definite, schema este întocmită - puteți merge la stadiul de proiectare a plăcii de circuit imprimat. Serviciul online EasyEda m-a ajutat să fac față acestei sarcini. Pentru a nu deranja găurile de foraj, am decis să așez toate șinele și componentele care transportă curent în stratul superior. După ce am răsucit puțin detaliile în editor, am obținut un design PCB cu doar trei jumpers. Aspectul plăcii poate fi văzut în figura 3.
Figura 3 - Aspectul plăcii de circuit a acvontrolului
Cei care doresc să repete proiectul pot descărca fișierul PCB de pe acest link:
Vizualizați fișierul online:
Vizualizați fișierul online:
Deci, la ce puncte ar trebui să fiți atenți. rezistență R4 și R8 - gemene, toate celelalte sunt făcute înăuntru SMD carcasă 1206. Butoanele ceasului au dimensiunea 12x12. Placa are și un convertor de tensiune chinezesc 220V / 5V, a cărui apariție este prezentată în fotografia nr. 4.
Foto nr. 4 - convertor de tensiune 220V / 5V.
Ecranul LCD și modulul de ceas în timp real sunt planificate să fie montate pe rafturi de bord, rolul pe care l-am îndeplinit cu succes de dibluri de plastic tăiate.
În acest sens, toate caracteristicile instalării sunt definite și rămâne doar să transferați placa de pe ecranul monitorului în lumea noastră fizică. Pentru aceasta s-a ales o metodă binecunoscută. LUT, implicând prezența unei imprimante cu laser și fier. Pentru cei care nu sunt familiarizați cu această tehnologie a viitorului, va fi descris mai jos procesul de creare a unei plăci de circuit în baia mea.
Așadar, pentru început, căutați orice revistă cu pagini lucioase sau o foaie de hârtie foto. Tipărim modelul plăcii pe imprimanta cu laser, fără să uităm să-l rotiți. Pregătim o bucată de textalită din sticlă acoperită cu folie, în funcție de dimensiunea semifabricatului și mărunțim suprafața de cupru cu șmirghel cu granulație fină până la o strălucire. Ar trebui să fie așa ceva (foto numărul 5).
În continuare, întoarcem imprimarea pe folie și o aplicăm pe PCB. După aceea, conducem hârtia cu un fierbinte fierbinte timp de aproximativ 3 minute. Timpul de încălzire poate varia în funcție de temperatura fierului și de experiența interpretului acestui ritual secret. Acest lucru arată vizual în felul acesta (foto nr. 6):
După ce hârtia a fost bine aderentă la PCB, opriți fierul și lăsați circuitul să se răcească. Acum trebuie să îndepărtați cu atenție stratul de hârtie și, în același timp, să nu deteriorați tonerul lipicios. Pentru ca cazul să aibă succes, hârtia trebuie umezită și îndepărtată prin rostogolire cu vârful degetelor. Acest proces este prezentat mai clar în fotografia nr. 7.
Uneori se întâmplă ca în unele locuri tonerul pur și simplu să nu se lipească. În acest caz, aceste zone pot fi completate cu un marker permanent. Fotografia nr. 8 arată tabla după îndepărtarea hârtiei. Vă rugăm să rețineți că în partea stângă sus nu există nicio parte a figurii, care va fi apoi restabilită prin metoda de mai sus.
Când toate momentele neplăcute sunt eliminate, puteți începe gravarea. Pentru aceasta, am folosit o soluție de clorură ferică, ca una dintre cele mai accesibile și mai sigure opțiuni. După gravarea plăcii, clătiți-l bine cu un solvent pentru a îndepărta tonerul din piste. Apoi din nou curățăm cu o șmirghel fină, degresăm și staniu. Rezultatul este prezentat în fotografia nr. 9.
Una dintre etapele principale este finalizată. Următoarea etapă este instalarea și lipirea componentelor radio. Acesta este un proces creativ și pur individual. Dacă aveți întrebări, sunt gata să le răspund în comentarii, dar acum vă voi arăta doar ce am primit (foto 10):
După cum am scris mai sus, afișajul și modulul de ceas sunt ridicate deasupra plăcii cu rafturi din plastic realizate din dibluri pentru instalare rapidă, iar contactele lor sunt lipite pe placă cu fire subțiri.Senzorul de temperatură și umiditate este afișat separat în partea de sus a dispozitivului. În opinia mea, cu acest aranjament, citirile vor fi mai precise. Pentru canalele de iluminat și filtru, în partea inferioară a plăcii sunt afișate două prize externe. De asemenea, înălțimea butoanelor a fost insuficientă, așa că intenționez să le măresc cu bucși din plastic. După câteva manipulări, dispozitivul ia un aspect aproape finalizat, prezentat în fotografia nr. 11.
Înainte de a sigila partea de sus a cazului, trebuie să scrieți firmware-ul în Arduino ProMini. Pentru a face acest lucru, am pus pini pe placa conectată la contacte VCC, GND, RX și TX. Pentru a programa Arduino ProMini cel mai ușor de utilizat Programator USB, dar acest lucru nu a fost disponibil. Rolul său a fost îndeplinit cu succes de un alt consiliu Arduino uno cu regulatorul scos. Nu voi intra în detaliile acestui proces, deoarece există multe articole pe acest subiect pe Internet. Voi da doar fotografia nr. 12 pentru claritate.
Acum să vorbim despre programul în sine. Când porniți alimentarea, este afișat ecranul principal. Afișează informații despre data, ora, temperatura și umiditatea curente. De asemenea, mai multe caractere speciale sunt afișate în funcție de starea curentă a sistemului, și anume: lumina este aprinsă - pictograma soarelui; light off - pictograma lunii; filter on - pictograma filtrului; hrănirea este în curs - pictograma peștilor. Când faceți clic pe OK, utilizatorul intră într-un meniu în care este posibil să configurați parametri precum:
- modul de control al iluminatului. În această secțiune, puteți aprinde și opri manual lumina selectând elementul de meniu corespunzător și, de asemenea, puteți seta orele de pornire și oprire programate.
- modul de control al filtrului. Vă permite să porniți și să dezactivați manual filtrul, selectați funcția „alimentare” (Fedding) și setați programul de hrănire. În modul de alimentare, filtrul se oprește și se reface automat după 15 minute.
- setarea datei curente.
- setarea orei curente. Datele de dată și oră sunt înregistrate în modulul de ceas, iar la oprirea alimentării, acestea nu sunt resetate dacă este instalată o baterie.
Pentru o mai bună înțelegere, figura 13 prezintă structura meniului.
- modul de control al iluminatului. În această secțiune, puteți aprinde și opri manual lumina selectând elementul de meniu corespunzător și, de asemenea, puteți seta orele de pornire și oprire programate.
- modul de control al filtrului. Vă permite să porniți și să dezactivați manual filtrul, selectați funcția „alimentare” (Fedding) și setați programul de hrănire. În modul de alimentare, filtrul se oprește și se reface automat după 15 minute.
- setarea datei curente.
- setarea orei curente. Datele de dată și oră sunt înregistrate în modulul de ceas, iar la oprirea alimentării, acestea nu sunt resetate dacă este instalată o baterie.
Pentru o mai bună înțelegere, figura 13 prezintă structura meniului.
Descărcați firmware-ul pentru Arduino Pro Mini și toate bibliotecile necesare pot fi acest link
După scrierea programului la microcontroler, puteți închide cazul și trece la teste în condiții reale. A trecut aproximativ o săptămână de operare înainte de a scrie acest articol. Aquacontrolerul a funcționat perfect, fără să funcționeze defectuos, salvându-mă să trag în mod constant furculițele, dacă este necesar, pentru a alimenta peștele sau a stinge luminile. Rezultatul eforturilor mele este prezentat în fotografia nr. 16.