Поздрави за всички любители на микроконтролера Направи си сам, Ако сте щастлив собственик на домашен аквариум, тогава може би тази статия ще ви представлява интерес. В него ще опиша подробно целия процес на създаване на прост, но много полезен домашен - акваконтролер, предназначен да улесни живота на собственика на малък подводен свят.
Както знаете, всеки успешен проект започва с подготовката на технически спецификации. По-долу са основните изисквания и функции, които исках да получа от акваконтролера:
- ниска цена и наличност на компоненти;
- персонализирано време за включване и изключване на светлината в аквариума;
- режим на подаване (филтърът се изключва и стартира автоматично след 15 минути);
- включване на схема на хранене;
- измерване на температура и влажност на околния въздух (като допълнение);
- показване на текущата дата, час и други параметри на LCD дисплея;
- настройки и управление на параметри през менюто с помощта на 4 бутона (Up, Down, Ok, Cancel);
- персонализирано време за включване и изключване на светлината в аквариума;
- режим на подаване (филтърът се изключва и стартира автоматично след 15 минути);
- включване на схема на хранене;
- измерване на температура и влажност на околния въздух (като допълнение);
- показване на текущата дата, час и други параметри на LCD дисплея;
- настройки и управление на параметри през менюто с помощта на 4 бутона (Up, Down, Ok, Cancel);
Въз основа на горното се роди веригата, показана на фигура 1.
Основният елемент е дъската Arduino ProMiniпридобита в Китай. Както се оказа по-късно, върху него беше инсталиран контролер ATmega168 вместо ATMega328, Това ме накара да се занимавам с оптимизирането на програмата, тъй като се оказа непоносимо за този контролер поради половината от размера на флаш паметта.
Избран е добре известният двуредов 16-знаков LCD дисплей за показване на информация. В проекта той е свързан с Arduino на 4-жична шина за данни.
Цифров сензор отговаря за измерването на температурата и влажността. DTH11, За домашни нужди е достатъчно. Всъщност тя няма конкретна цел и се добавя чисто като допълнение към цялостната картина.
За да управлявам флуоресцентната лампа и филтъра, използвах два симисторски канала, направени върху куп opto-simistor MOC3063 и мощност simistor BT137-600E, Това ни позволи да се отървем от веригата на механичните релета, към които по някаква причина не изпитвам съчувствие.
Бутони за управление - обикновен часовник, без фиксиране.
Е, тъй като всички настройки са обвързани с определен период от време, устройството задължително трябва да съдържа часовник в реално време.В този случай използвах модула TinyRTC на базата на микросхема DS1703, Модулът се управлява по протокол i2c и съдържа конектор за инсталиране на батерия, който ви позволява да запазите датата и часа, когато захранването е изключено. Външното захранване на модула е показано на снимка №2
Снимка № 2 - часовник модул в реално време
И така, изискванията са дефинирани, схемата е съставена - можете да преминете към етапа на проектиране на печатната платка. Онлайн услугата EasyEda успешно ми помогна да се справя с тази задача. За да не се занимавам с пробиване на дупки, реших да поставя всички носещи токове коловози и компоненти в горния слой. След като усуках детайлите малко в редактора, получих дизайн на печатни платки само с три джъмпера. Външният вид на дъската може да се види на фигура 3.
Фигура 3 - Появата на платката акваконтрол
Тези, които искат да повторят проекта, могат да изтеглят PCB файла от тази връзка:
Вижте онлайн файла:
Вижте онлайн файла:
И така, какви точки трябва да обърнете внимание. съпротивление R4 и R8 - близнак, всички останали са направени SMD жилище 1206, Бутоните на часовника имат размер 12x12, Платката има и китайски преобразувател на напрежение 220V / 5V, чийто вид е показан на снимка № 4.
Снимка № 4 - преобразувател на напрежение 220V / 5V.
Планира се, че LCD екранът и модулът на часовника в реално време ще бъдат монтирани на бордови стелажи, ролята на които успешно изпълнявам чрез нарязани пластмасови дюбели.
По този начин всички характеристики на инсталацията са дефинирани и остава само да прехвърлим платката от екрана на монитора в нашия физически свят. За това беше избран добре известен метод. LUT, което предполага наличието на лазерен принтер и ютия. За тези, които не са запознати с тази технология на бъдещето, процесът на създаване на платка в моята баня ще бъде описан по-долу.
Затова за начало потърсете всяко списание с лъскави страници или лист фотохартия. Ние отпечатваме шаблона на дъската на лазерния принтер, без да забравяме да го обърнем. Приготвяме парче фолиран стъкло-тексалит според размера на заготовката и шлайфаме медната повърхност с финозърнеста мека хартия, за да заблести. Трябва да е нещо подобно (снимка номер 5).
След това обръщаме разпечатката върху фолиото и я прилагаме към печатни платки. След това задвижваме хартията с гореща ютия за около 3 минути. Времето за загряване тук може да варира в зависимост от температурата на желязото и опита на изпълнителя на този таен ритуал. Това визуално изглежда нещо подобно (снимка № 6):
След като хартията е здраво залепена към печатни платки, изключете ютията и оставете платката да се охлади. Сега трябва внимателно да премахнете слоя хартия и в същото време да не повредите лепкавия тонер. За да успее случаят, хартията трябва да бъде навлажнена и отстранена чрез навиване с върховете на пръстите. Този процес е показан по-ясно на снимка № 7.
Понякога се случва, че на някои места тонерът просто не залепва. В този случай тези области могат да бъдат завършени с постоянен маркер. Снимка № 8 показва таблото след отстраняване на хартията. Моля, обърнете внимание, че в горната лява част няма част от фигурата, която впоследствие ще бъде възстановена по горния метод.
Когато всички неприятни моменти са елиминирани, можете да започнете офорт. За това използвах разтвор на железен хлорид, като един от най-достъпните и безопасни варианти. След ецване на дъската старателно я изплакнете с разтворител, за да премахнете тонера от пистите. След това отново почистваме с фина шкурка, обезмасляваме и калай. Резултатът е показан на снимка № 9.
Един от основните етапи е завършен. Следващият етап е инсталирането и запояването на радио компоненти. Това е творчески и чисто индивидуален процес. Ако имате въпроси, готов съм да отговоря на тях в коментарите, но сега просто ще ви покажа какво имам (снимка 10):
Както писах по-горе, дисплеят и модулът на часовника са повдигнати над дъската с пластмасови стелажи, изработени от дюбели за бърз монтаж, а контактите им са споени към платката с тънки проводници.Сензорът за температура и влажност се показва отделно отгоре на устройството. Според мен при тази подредба показанията ще бъдат по-точни. За осветителните канали и филтъра са показани два външни изхода в долната част на платката. Също така височината на бутоните беше недостатъчна, затова смятам да ги увелича с пластмасови втулки. След някои манипулации устройството придобива почти завършен вид, показан на снимка № 11.
Преди да запечатате горната част на кутията, трябва да напишете фърмуера Arduino ProMini, За да направя това, слагам щифтове на дъската, свързани с контактите VCC, GND, RX и TX, За да програмирам Arduino ProMini най-лесното използване USB програмист, но това не беше налично. Ролята му беше успешно изпълнена от друг съвет Arduino uno с отстранен контролер. Няма да навлизам в подробностите на този процес, тъй като в интернет има много статии по този въпрос. Ще дам само снимка №12 за яснота.
Сега нека поговорим за самата програма. Когато включите захранването, се показва основният екран. Показва информация за текущата дата, час, температура и влажност. Също така се показват няколко специални знака в зависимост от текущото състояние на системата, а именно: светлината е включена - иконата на слънцето; светлина изключена - икона на луната; филтър включен - икона на филтър; захранването е в ход - риба икона. Когато щракнете върху OK, потребителят влиза в меню, където е възможно да конфигурирате параметри като:
- режим на управление на осветлението В този раздел можете да включите и изключите светлината ръчно, като изберете съответния елемент от менюто, както и да зададете времето за включване и изключване в съответствие с графика.
- режим на управление на филтъра. Позволява ви да включите и изключите филтъра ръчно, изберете функцията "хранене" (fedding) и задайте графика на хранене. В режим на хранене филтърът спира и се възстановява автоматично след 15 минути.
- определяне на текущата дата.
- настройка на текущото време. Данните за дата и час се записват в модула на часовника и когато захранването е изключено, те не се нулират, ако на него е инсталирана батерия.
За по-добро разбиране, фигура 13 показва структурата на менюто.
- режим на управление на осветлението В този раздел можете да включите и изключите светлината ръчно, като изберете съответния елемент от менюто, както и да зададете времето за включване и изключване в съответствие с графика.
- режим на управление на филтъра. Позволява ви да включите и изключите филтъра ръчно, изберете функцията "хранене" (fedding) и задайте графика на хранене. В режим на хранене филтърът спира и се възстановява автоматично след 15 минути.
- определяне на текущата дата.
- настройка на текущото време. Данните за дата и час се записват в модула на часовника и когато захранването е изключено, те не се нулират, ако на него е инсталирана батерия.
За по-добро разбиране, фигура 13 показва структурата на менюто.
Изтеглете фърмуера за Arduino Pro Mini и всички необходими библиотеки могат да бъдат тази връзка
След като напишете програмата към микроконтролера, можете да затворите случая и да пристъпите към тестовете в реални условия. Измина около седмица на работа, преди да напиша тази статия. Акваконтролерът работеше перфектно без никакви неизправности, спестявайки ми постоянно да дърпам вилиците, ако е необходимо, за да захранвам рибата или да изключвам светлините. Резултатът от моите усилия е показан на снимка №16.