go to bottom
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Простенький акваконтроллер на ARDUINO

Всем привет вот за пару дней наваял контроллер.

Что умеет:
1. Включать выключать свет по таймеру
2. Включать выключать Co2 по таймеру
3. Ну и включать кулеры в крышке или обогреватель - термоконтроллер
4. Показывать время и температуру))).

Что еще хотелось бы прикрутить:
1. измерение PH.
2. Добавление удо 1 раз в X минут или часов.
Проект пока не доделан. Может кто поможет оптимизировать код ну или поправить если что не красиво зделанно.
Корпуса пока нет))).

Щас жду некоторые запчастюльки для силовой части схемы потом продолжу если кому интересно.

Акваконтроллер

для форума

для форума

для форума
2011-06-1616/06/2011 11:21:27
#1443198
Нравится Volcan0, KoRvin
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Доброго дня (тяжелый вдох..).
Сразу вопросы:
1. на чем написан код?
2. как обрабатываются RTC, забираешь время по TWI (I2C, ага-ага) или прерывание от ноги в счетчик внутри меги?
3. не вижу резервного питания для основного контроллера - нужно обязательно, с этого надо начать
4. не вижу кнопков
5. работает ли вотчдог, как часто пинаешь?

P.S. с навесным монтажом бороться всеми силами, либо все провода на макетку, либо делать поэтапно функциональными модулями и их подключать несколькими проводами. Я предпочел последнее, ЛУТа для этого хватает с избытком.

2011-06-1616/06/2011 12:10:41
#1443225
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

106 3
Москва
7 года

Paradox860

Предлагаю добавить(замутить) датчик протечек с отправкой емайла или смс, или вот - все показатели в твиттер!(как чайник который по закипанию отдавал твит о закипании). Чем будешь мерить кислотность? Как будешь выставлять во внешний мир?. Как будешь добавлять удо?(мотор и счетчик оборотов/концевой/...)

cz0

Код на С++


Изменено 16.6.11 автор fc Антон
2011-06-1616/06/2011 12:16:36
#1443230
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

cz0


А что такой тяжелый вздох?

Ответы:
1.С++
2.I2C
3.Все настройки сохраняются в ПЗУ. Зачем ему резервное питание?Вырубится свет вырубится весь аквас(хотя у меня для этого ИБП).
4. Кнопков 3 .
5. Все в цикле (канечно не правильно но просто не знаю как по другому).

PS. Навесного ничего не будет, это пока только макет. Как все отлажу сделаю плату ЛУТом и заменю контроллер на Мегу8 с загрузчиком Ардуино.
2011-06-1616/06/2011 12:42:10
#1443245
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

fc Антон


Отправка смс очень дорого выйдет если по GSM делать но возможно...(нужно будет шилд купить).А вот по интернету дешевле шилд всего 20$ стоит прикрутить очень легко будет)))
На счет PH надеялся ктото подскажет как замутить . Есть мысль купить на ибэе мерилку за 13$ раскурочить ее и прикрутить сюда , но это пока только мысли.....

С удо еще не придумал впринципе можно делать как душа пожелает.
2011-06-1616/06/2011 12:47:01
#1443250
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Кстате как лучше замутить датчик протечки кто подскажет?

2011-06-1616/06/2011 12:49:44
#1443253
Малёк
Аквафорум рыбка
Аватар пользователя

44
Шахты
11 года

сообщение Paradox860
Кстате как лучше замутить датчик протечки кто подскажет?


Я использовал HIH4000-001, но нужно ацп он чисто аналоговый. При намокании на выходе мгновенно появляется +5в.
http://www.gaw.ru/ht...
2011-06-1616/06/2011 13:26:32
#1443280
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

vlad61

АЦП имеетса...
Хм а сколько ты за него отдал?Хорошая тема.
Но хотелось бы что нибудь из подручных материалов зделать.
2011-06-1616/06/2011 13:35:56
#1443287
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Силовая часть схемы.

для форума
2011-06-1616/06/2011 13:54:50
#1443296
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

106 3
Москва
7 года

Paradox860

Ну нагуглил - надо разбираться Смайлик :)
http://code.google.c... - собственно измерение ПШ
http://www.arduino.c... - форум где у парня контроллер измеряетTemp (heater, fan, kills lights if too hot) Water level (uses float switch) Power heads (kills pumps for 5 min for feeding) Displays pH
Собственно покурив проект(и форум), нашел как делается PH метр http://reefprojects....

А датчик протечки/перелива http://www.arduino.c... с кодом Смайлик :)


Изменено 16.6.11 автор fc Антон
2011-06-1616/06/2011 14:04:58
#1443302
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение fc Антон

Paradox860

Ну нагуглил - надо разбираться Смайлик :)
http://code.google.c... - собственно измерение ПШ
http://www.arduino.c... - форум где у парня контроллер измеряетTemp (heater, fan, kills lights if too hot) Water level (uses float switch) Power heads (kills pumps for 5 min for feeding) Displays pH
Собственно покурив проект(и форум), нашел как делается PH метр http://reefprojects....

А датчик протечки/перелива http://www.arduino.c... с кодом Смайлик :)


Изменено 16.6.11 автор fc Антон


Спасибо будим курить....
2011-06-1616/06/2011 14:51:13
#1443331
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

В первую очередь я бы рекомендовал бы заткнуть обработку часов во внешнее прерывание от RTC. От циклов избавиться, загоняться контроллер в IDLE, просыпаться по прерыванию от таймера (хоть внутреннего пустого) пускай 10 раз в секунду по пустому прерыванию что бы управление передалось в main или откуда было прервано (скорее всего от предыдущего слипа в конце мейна). В мейне пройтись про процедуркам (с) на предмет опроса времени, выявления сделать операцию по таймеру (сравнить установленное время по расписанию с текущим) и снова уснуть. Это чуть сложнее сделать, но бесконечный цикл - это кладезь багов и глюков в долгосрочной перспективе. Все будет работать на коленке в тестовом режиме, неделю-две-три, но потом обязательно заглючит. Не выключить свет из-за зависшего контроллера - пол беды, а вот не выключить клапан CO2 или заклинить в момент работы перистальтического насоса, подающего макро/микро (особенно нитраты с фосфатами) - результат не заставит себя долго ждать.

2011-06-1616/06/2011 15:00:28
#1443335
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

Paradox860

есть же готовые недорогие решения, или хотелось немного ручками? Смайлик :)
2011-06-1616/06/2011 15:38:30
#1443356
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года


Paradox860

есть же готовые недорогие решения, или хотелось немного ручками? Смайлик :)

Ручками:
1. функциональней, потому что железяка будет решать именно данную конкретную задачу в окружении автора
2. интереснее, потому что развивает
Это я за себя ответил Смайлик :)
2011-06-1616/06/2011 15:41:36
#1443359
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение Kiraso

Paradox860

есть же готовые недорогие решения, или хотелось немного ручками? Смайлик :)


Ручки чешутся))))
2011-06-1616/06/2011 19:36:32
#1443527
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Прикрутил выключение света при критическом перегреве.Оч кстате клевая штука.

2011-06-1616/06/2011 19:37:54
#1443528
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

сообщение Paradox860
Прикрутил выключение света при критическом перегреве.Оч кстате клевая штука.

Не забудьте прикрутить отключение подачи CO2 сразу при выключении света, если подаете свыше 20 мг/л.
2011-06-1616/06/2011 19:49:38
#1443536
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

сообщение Paradox860
Прикрутил выключение света при критическом перегреве.Оч кстате клевая штука.

Не забудьте прикрутить отключение подачи CO2 сразу при выключении света, если подаете свыше 20 мг/л.

Ага , спасибо, это уже сделанно))
2011-06-1616/06/2011 19:55:58
#1443546
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

Кто подскажет по Ph датчикам есть ли принципиальна разница между ними?Или можно любой брать?

2011-06-1616/06/2011 20:01:04
#1443551
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Paradox860

Они в общем и целом взаимозаменяемы. Бывают "твердотельными" и с раствором. Первые имеют срок годности, и чаще нуждаются в калибровке, во вторых надо менять раствор, но само тело вечное, по крайней мере когда я задал вопрос о ресурсе зав. лабой одного из научных институтов РФ, на что получил ответ "не задумывалась об этом". Либо они их чаще бьют (Ph электрод в лабах - расходник), либо действительно вечные. Еще бывают термокомпенсированные, бывают со встроенным термодатчиком, бывают на разные диапазоны температур.
От себя могу добавить, что у научников в лабах наиболее котируются электроды от Hana и Meter. Очень много годных электродов выпускает наша в вами необъятная в силу немалого количества различных хим. процессов и производств.

Изменено 16.6.11 автор cz0
2011-06-1616/06/2011 20:40:13
#1443585
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Paradox860

Избавьтесь от циклов, мой Вам совет. Посмотрите треды в HOWTO на avrfreaks, там нет ничего сложного.
2011-06-1717/06/2011 12:39:57
#1443885
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

Paradox860

Избавьтесь от циклов, мой Вам совет. Посмотрите треды в HOWTO на avrfreaks, там нет ничего сложного.

Да на Arduine впринципе любая программа это цикл voide loop{}.
2011-06-1717/06/2011 20:21:54
#1444092
Посетитель
Аквафорум рыбкаАквафорум рыбка
Аватар пользователя

161 14
Ессентуки
3 года

сообщение cz0

Paradox860

Они в общем и целом взаимозаменяемы. Бывают "твердотельными" и с раствором. Первые имеют срок годности, и чаще нуждаются в калибровке, во вторых надо менять раствор, но само тело вечное, по крайней мере когда я задал вопрос о ресурсе зав. лабой одного из научных институтов РФ, на что получил ответ "не задумывалась об этом". Либо они их чаще бьют (Ph электрод в лабах - расходник), либо действительно вечные. Еще бывают термокомпенсированные, бывают со встроенным термодатчиком, бывают на разные диапазоны температур.
От себя могу добавить, что у научников в лабах наиболее котируются электроды от Hana и Meter. Очень много годных электродов выпускает наша в вами необъятная в силу немалого количества различных хим. процессов и производств.

Изменено 16.6.11 автор cz0

Спасибо за развернутый ответ!!!!!
2011-06-1717/06/2011 20:22:32
#1444093
Завсегдатай
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

1007 73
Санкт-Петербург
3 года

сообщение Paradox860
Да на Arduine впринципе любая программа это цикл voide loop{}.


Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым.
Да на счет eeprom, обязательно почитайте, если еще не сделали, аппноуты атмеловские на эту тему, да и на другие, там много полезного есть.

Изменено 20.6.11 автор Kiraso
2011-06-2020/06/2011 10:46:56
#1445159
Постоянный посетитель
Аквафорум рыбкаАквафорум рыбкаАквафорум рыбка
Аватар пользователя

521 12
Химки
4 года

Думаю cz0 имеет в виду все делать через прерывания, а основной цикл программы должен быть пустым.
Да на счет eeprom, обязательно почитайте, если еще не сделали, аппноуты атмеловские на эту тему, да и на другие, там много полезного есть.

Именно так. Впрочем, у меня основной цикл не пустой, как правило, а содержит вызовы процедур, которые обрабатывают события, что-то типа:
int main(void)
{
for(;Смайлик ;)
{
проверить_клавиатуру();
проверить_буфер_usart();
проверить_что-то_еще();
установить_режим_сна(режим);
заснуть();
}
return(0);
}
Контроллер, получив пинка от прерывания проснется, обработает прерывание (засунет что-то в буфер клавиатуры, добавит в буфер USART'а, ...), а затем вернется туда, откуда заснул - на начало цикла for, где ему будет предоставлена чудесная возможность разгрести все то, что он получил в прерываниях, после чего благополучно заснет до очередного пинка. Полезненько бывает сделать счетчик-таймер, который будет будить контроллер по переполнению даже если событий не было.

Насчет EEPROM'а - таки да, там есть задержка при записи, которую нужно _обязательно_ выдержать, иначе получится импровизация на тему генератора случайных чисел Смайлик :).
2011-06-2020/06/2011 11:05:35
#1445171



Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Польвователь
Top