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


Посетитель




132 4
Пятигорск
5 дн. назад
Простенький акваконтроллер на ARDUINO
Всем привет вот за пару дней наваял контроллер.

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

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

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




2011-06-16 добавлено 16/06/2011 11:21:27#1443198
Нравится KoRvin

Свой на Aqa.ru




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

P.S. с навесным монтажом бороться всеми силами, либо все провода на макетку, либо делать поэтапно функциональными модулями и их подключать несколькими проводами. Я предпочел последнее, ЛУТа для этого хватает с избытком.
2011-06-16 добавлено 16/06/2011 12:10:41#1443225

Посетитель




106 3
Москва
5 г. назад
Paradox860

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

Код на С++


Изменено 16.6.11 автор fc Антон
2011-06-16 добавлено 16/06/2011 12:16:36#1443230

Посетитель




132 4
Пятигорск
5 дн. назад
cz0


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

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

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

Посетитель




132 4
Пятигорск
5 дн. назад
fc Антон


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

С удо еще не придумал впринципе можно делать как душа пожелает.
2011-06-16 добавлено 16/06/2011 12:47:01#1443250

Посетитель




132 4
Пятигорск
5 дн. назад
Кстате как лучше замутить датчик протечки кто подскажет?
2011-06-16 добавлено 16/06/2011 12:49:44#1443253

Новичок




44
Шахты
3 г. назад
сообщение Paradox860
Кстате как лучше замутить датчик протечки кто подскажет?


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

Посетитель




132 4
Пятигорск
5 дн. назад
vlad61

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

Посетитель




132 4
Пятигорск
5 дн. назад
Силовая часть схемы.

2011-06-16 добавлено 16/06/2011 13:54:50#1443296

Посетитель




106 3
Москва
5 г. назад
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-16 добавлено 16/06/2011 14:04:58#1443302

Посетитель




132 4
Пятигорск
5 дн. назад
сообщение 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-16 добавлено 16/06/2011 14:51:13#1443331

Свой на Aqa.ru




522 11
Химки
2 мес. назад
В первую очередь я бы рекомендовал бы заткнуть обработку часов во внешнее прерывание от RTC. От циклов избавиться, загоняться контроллер в IDLE, просыпаться по прерыванию от таймера (хоть внутреннего пустого) пускай 10 раз в секунду по пустому прерыванию что бы управление передалось в main или откуда было прервано (скорее всего от предыдущего слипа в конце мейна). В мейне пройтись про процедуркам (с) на предмет опроса времени, выявления сделать операцию по таймеру (сравнить установленное время по расписанию с текущим) и снова уснуть. Это чуть сложнее сделать, но бесконечный цикл - это кладезь багов и глюков в долгосрочной перспективе. Все будет работать на коленке в тестовом режиме, неделю-две-три, но потом обязательно заглючит. Не выключить свет из-за зависшего контроллера - пол беды, а вот не выключить клапан CO2 или заклинить в момент работы перистальтического насоса, подающего макро/микро (особенно нитраты с фосфатами) - результат не заставит себя долго ждать.
2011-06-16 добавлено 16/06/2011 15:00:28#1443335

Свой на Aqa.ru




997 68
Санкт-Петербург
5 час. назад
Paradox860

есть же готовые недорогие решения, или хотелось немного ручками?
2011-06-16 добавлено 16/06/2011 15:38:30#1443356

Свой на Aqa.ru




522 11
Химки
2 мес. назад
Paradox860

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

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

Посетитель




132 4
Пятигорск
5 дн. назад
сообщение Kiraso
Paradox860

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


Ручки чешутся))))
2011-06-16 добавлено 16/06/2011 19:36:32#1443527

Посетитель




132 4
Пятигорск
5 дн. назад
Прикрутил выключение света при критическом перегреве.Оч кстате клевая штука.
2011-06-16 добавлено 16/06/2011 19:37:54#1443528

Свой на Aqa.ru




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

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

Посетитель




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

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

Ага ,спасибо, это уже сделанно))
2011-06-16 добавлено 16/06/2011 19:55:58#1443546

Посетитель




132 4
Пятигорск
5 дн. назад
Кто подскажет по Ph датчикам есть ли принципиальна разница между ними?Или можно любой брать?
2011-06-16 добавлено 16/06/2011 20:01:04#1443551

Свой на Aqa.ru




522 11
Химки
2 мес. назад
Paradox860

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

Изменено 16.6.11 автор cz0
2011-06-16 добавлено 16/06/2011 20:40:13#1443585

Свой на Aqa.ru




522 11
Химки
2 мес. назад
Paradox860

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

Посетитель




132 4
Пятигорск
5 дн. назад
сообщение cz0
Paradox860

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

Да на Arduine впринципе любая программа это цикл voide loop{}.
2011-06-17 добавлено 17/06/2011 20:21:54#1444092

Посетитель




132 4
Пятигорск
5 дн. назад
сообщение cz0
Paradox860

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

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

Спасибо за развернутый ответ!!!!!
2011-06-17 добавлено 17/06/2011 20:22:32#1444093

Свой на Aqa.ru




997 68
Санкт-Петербург
5 час. назад
сообщение Paradox860
Да на Arduine впринципе любая программа это цикл voide loop{}.


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

Изменено 20.6.11 автор Kiraso
2011-06-20 добавлено 20/06/2011 10:46:56#1445159

Свой на Aqa.ru




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

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

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

<< 1234567 >> Создать новую темуБыстрый ответ