Выбор МК для умного дома на ENC28J60

Здравствуйте.
Тут вот надумал собрать устройство на дачу, что-то типа контроллера умного дома…
Соответственно есть пара вопросов у знающих людей

Вот функции, которые планирую поддерживать:
1. Контроль 8 охранных шлейфов(на основе АЦП).
2. Мониторинг 8 аналоговых входов.
3. Мониторинг 8 цифровых входов.
4. Контроль 8 цифровых выходов.
5. Сбор и отправка данных через сеть RS485 (контроллер котла, термостат, контроллер полива, и т.д.)
6. Веб-морда на ENC28J60 (генерирование пары страничек, с авторизацией, через которые будем получать и отправлять все данные, описанные выше).
7. Работа с SIM900d (получение и отправка смс, дозвон).
8. Возможно еще понадобится пара мелких функций.

Устройство собирает данные с контроллеров, и датчиков, представляет их в виде странички. Через веб-морду также производится управление системами дома(задание температуры в доме, задание температуры батарей, управление кондиционерами). Но управление само по себе происходит через контроллеры каждой системы(контроллер котла, термостат, контроллер кондиционеров). Суть устройства — общаться с контроллерами через шину RS485, собирать данные, передавать их между контроллерами, и интерпретировать в виде веб странички, и при необходимости отправлять в виде СМС. Короче выступать мастером шины с веб интерфейсом и СМС шлюзом.

Теперь по вопросам. Выбрал Atmega64. Знаю, что тут лучше STM32, но браться за такое серьезное устройство с новым для меня контроллером не рискну. В общем, вопрос, хватит ли ресурсов данного контроллера для выполнения поставленных задач (учитывая мой быдлокод, запас)? Дело в том что ни с ENC28J60, ни с Езернетом до этого не работал, и сколько на это дело нужно ресурсов не знаю.

З.Ы.: Извините, если что не ясно объяснил — голова уже совсем не варит…

Комментарии (50)

RSS свернуть / развернуть
Лучше бери запас флеша побольше. Мега128 лучше подойдет.
С SIM900 работал. Там особо ничего сложного нет. Для смс и gprs кода током и не нужно.

Еще операционку какю нибудь притули. С ней будет проект легче разработать.
0
  • avatar
  • a9d
  • 29 марта 2012, 22:55
Еще не забудь резервное питание. SIM900 нужно выключать корректно.
0
Ну Мега64 у меня валяется свободная, если что, перепаяю на 128, насколько я помню, они пин ту пин совместимые?
0
неа
0
но браться за такое серьезное устройство с новым для меня контроллером не рискну
а вот это — сильно напрасно. в боевой задаче разборки с новым контроллером идут на порядки быстрее.
ну и в свете предыдущего предложения — стм с сетью на борту, или еще любопытны кортексы от техаса с PHY в чипе.
0
Да вот дело в том что боевая задачу будет освоить езернет, и что все работало без глюков, а если еще и кортекс осваивать, так боюсь совсем уж плохо будет.
А что имеется в виду «с сетью на борту»?
0
У STM32 некоторых серий есть Ethernet на борту, к нему достаточно добавить PHY и magjack (то есть сокет с встроенными трансами). На вскидку такое есть у STM32F107/207/217/407/417.
0
Где-то слышал, что их еще и через езернет прошивать можно? ну и цены на них…
0
Можно (как минимум F4), во всяком случае есть соответствующий аппноут. Что до цен, то они вполне сравнимы с атмегами (во всяком случае, если сравнивать сравнимые по объему памяти модели).

P.S. имеет смысл присмотреться к STM32F4Discovery. За весьма умеренные деньги получится F407 + программатор/отладчик (пригодный и для работы с другими платами и контроллерами). Прицепить сверху свою платку с Ethernet PHY (например, RTL8201) и, скажем, популярным HanRun HR911105A и будет полный комплект за разумные деньги и с функциональностью несравнимо выше, чем у атмег.
+2
интересная политика у ST: сам кристалл стоит 157 грн., а дискавери с ним — 200 с копейками.
0
ну ведь очевидно, что разница между реальной и продажной стоимостью отладки покрывается из рекламного бюджета.
0
Да, но не все производители придерживаются такой политики. это и удивило.
0
По енке от Lifelover 'а есть цикл статей. там разбираться нечего, всё разжовано и рабочее.
Касательно стм32 подумайте всё же.
я про 10рублевый проц постил, как вариант было использовать в качестве датчиков дома.
0
Да именно эти статьи меня и с подвигли к устройству этому. Спасибо Lifelover!
А вот стм32… ну не знаю, с меня такой кодер… с трудом освоил код вижн…
0
Я бы без дополнительной памяти мутить TCP на atmega не стал. Использовал enc28j60 c atxmega128a3. Эрланговый udp сервер идёт на конртоллер, получает данные, передаёт команды, занимается веб-мордой и т.д. Т.е. ни каких dns, буферов для tcp пакетов на приборе делать не пришлось, только один arp запрос используемый для связи mac и ip адреса и свой примитивный протокол поверх udp. К тому же таким образом прибор легче изолировать от агрессивной окружающей среды имхо.
udp_service.h — если нужно тут лежит моё поделие, с подёрганым по мере необходимости кодом из avr-uip, не самая последняя вресия, хотя и в ней был жуткий замес, однако, на мой взгляд на почитать выглядит более адекватно, чем тот не вменяемый шлак из примерав web сервера tuxgraphics всяких с какими-то дикими прохардкоженными массивами. В таком обрезаном виде работало лучьше чем нужно =]
0
А можно детальней о данном устройстве? что оно еще делает? зачем целая atxmega128a3?
0
У STM32 есть два очень веских плюса:
1) Много памяти. Во первых, облегчает кодинг, а во вторых — для хранения данных вебморды (картинки, шаблоны и т.д.) нужно место во флеше. Ну и для реализации TCP/IP и HTTP нужна оперативка, и желательно побольше (есть конечно пример HTTP на тини2313, но там используется внешняя память — 8кб ОЗУ в ENC28J60).
2) Быстрая и удобная отладка через SWD/JTAG. Из-за нее мне уже не хочется связываться с AVR, хотя с STM я только чутка потыкал дискавери. А выяснять «что за хрень творится?» придется неоднократно. Хотя у выбранного тобой контроллера JTAG тоже вроде есть, но он страшно медленный, да и работает только с AVRStudio 4 (если, конечно, ты не раззорился на AVR JTAG ICE mk3 или дракона).

Ну и кроме того, есть STM32 с встроенным эзернетом, только PHY добавить (говорят, у Realtek можно найти PHY от бакса ценой), да и для них есть все готовое — тут были статьи про то, как сделать на основе библиотек в составе кейла вебморду без напряга.
0
  • avatar
  • Vga
  • 30 марта 2012, 01:50
Заинтриговали с STM32!
Вот только буду в первые с ними работать… как-то стремно)
Кстати, насколько я понимаю, у них нету встроенной еепром?
0
Вообще, кстати, кроме STM32 можно и LPC юзать. Упомянутые мной статьи, например, сделаны на демоплате с LPC1768. У него тоже аппаратный Ethernet и прочие плюшки.
Кстати, насколько я понимаю, у них нету встроенной еепром?
AFAIK нет, они предлагают использовать флеш. Конечно, там требуются дополнительные телодвижения (чтобы линкер туда ничего нужного не положил, борьба с износом и прочее), зато его много и дешево. На крайняк AT24Cxx недороги (правда у STM32 зато I2C богатый на грабли, но они в принципе уже найдены и разжеваны, в том числе и на русском).
0
Тогда имеет смысл подцепить microSD'шку. По цене приемлемо, зато сразу можно и для данных вебморды и для логов и ещё чего-нибудь использовать. Хоть для аудиозаписей, чтобы модем звонил и голосом сообщал о проблемах :)
0
У 24С 100к записей, а у mSD — 3к. Почувствуйте разницу)
Правда, учитывая что у mSD дохрена свободной памяти и умный контроллер с WL — может еще и дольше протянет.
0
Да вон сейчас производители указывают от 10К до 1М перезаписей. Думаю на наш век хватит :)
Марсоходовцы как-то пытались цикличными перезаписями Max II убить, по даташиту там указано 100 циклов. Так и не дождались смерти :)
0
То для микросхем EEPROM и МК. А в mSD — дешевый и емкий MLC флеш, ресурс которого по мере развития только падает.
Впрочем, у него зато дохрена места и Wear Leveling, так что вполне можно рассчитывать как минимум на 3к*количество_свободных_секторов перезаписей.
0
Нет, я как раз про mSD и говорю. Пруф.
0
Это страшно древний документ. Современные дохренагиговые менее долговечны.
Алсо, не совсем понятно, 100к циклов оно выдерживает с учетом WL или нет.
Впрочем, я еще не видел ни одной изношенной mSD. Да и флешку только одну, и та не моя была.
Марсоходовцы как-то пытались цикличными перезаписями Max II убить, по даташиту там указано 100 циклов. Так и не дождались смерти :)
А сохраняемость и прочие фишки они контролировали?
0
Ну древний может и древний, а как раз 1-2 Гб флешки сейчас самые дешевые, не думаю что они с тех пор стали хуже. Да и для них пишут не меньшие циклы, только официальных документов не нашёл.
Думаю, под циклом подразумевается полная запись всего объёма, хотя, конечно, кто их знает.
А сохраняемость и прочие фишки они контролировали?
Делали erase-write-verify циклы, считая ошибки.
За 38 часов работы было выполнено 13940 ( тринадцать тысяч девятьсот сорок ) циклов программирования. После этого в нашего «мученика науки» мы зашили и протестировали несколько других проектов — все успешно заработали.
0
а как раз 1-2 Гб флешки сейчас самые дешевые, не думаю что они с тех пор стали хуже.
Стали. Дешевеют они в первую очередь за счет сокращения размера кристалла. Так что там все те же фишки, сокращающие размер и долговечность кристалла.
0
усб флешки дохнут пачками от нагрузки. ставили в реальное оборудование несколько неполных перезаписей в день. сервер/флешка/линукс и регулярно обновляются конфиги из внешней базы данных. срок жизни в таком режиме меньше года. плюнули, заменили на SSD. пока полёт нормальный.
0
Добавлю, что бывает и SPI-ные внешние флешки.
0
Ну да ладно, память то не критичная, можно и внешнюю заюзать.
0
А еще, кстати, у ARM'ов несколько UART'ов (2-3 обычно). Вполне можно выделить по уарту на RS485, на GSM-модуль, на 1-Wire шину.
0
Харе уже труситься. Смело в бой, и проблем не будет.

P.S.: а еепром это не главное, её и внешнюю можно повесить. или флеш использовать в качестве еепки (есть аппноут).
0
8 шлейфов + 8 аналоговых входов? На Атмеге64 вроде всего 8 аналоговых входов. Тогда как на stm их может быть дофига. Внешние АЦП использовать? Есть ли смысл?

Кстати, может пригодится. Есть такое устройство от мастеркита, GSM сигнализация Гардиан. Очень удобный блок, когда нужно по быстрому приколхозить куда-нибудь удалённый (через SMS-ки) мониторинг. Есть и аналоговые входы и 1-wire датчики. В общем, почти то что вы хотите, кроме сети и RS-485. Сделано на ATMega32. Можно прикинуть, на что её там хватает. На странице по ссылке есть схемы девайса. Исходников прошивки, к сожалению, нету.
0
  • avatar
  • ACE
  • 30 марта 2012, 02:18
Мультиплекоры никто не отменял. Они стоят копейки.
0
во во!
0
ну самое же главное — нет езернета. Ну и интересно самому сделать…
0
тут лучше lpc1768. eзернет на борту, по нему куча примеров, как в ртоси так и отдельно. 100мгц хватит за глаза на все. для кикстарта тут есть статьи по введению в кортекс nxp от <lsuser=«angel5a» />
0
Рекомендую Xmega А4, а по памяти там уже сам смотри какую надо… ядро все тоже avr 8 бит, ток частота выше и периферия богаче чем у обычной меги + кодить проще на ней. Для не сложных задач типо твоей само то, если надо побыстрей и без всяких проблем. Если хочешь подешевле то бери D4, там кое чего нету из периферии, но не рекомендую.
0
я просто оставлю это здесь
starterkit.ru/html/index.php?name=shop&op=view&id=53
0
Я канеш параноик, но советую вам сделать отдельно Мастер-устройство, для руления шиной и к нему отдельно прилеплять устройство со свисто-перделками (смс и веб-морда). На мой взгляд, если какие проблемы случатся с веб-мордой (например за`DoS`илась), то остальная система не пострадает. На мой взгляд охрана, полив и котел уже серьезно и надо думать об отказоустойчивости. А зачем вам 8 шлейфов охранки? На мой взгляд за глаза хватит 3: периметр/территория дачи, дом/сарай/туалет, особо важное помещение (например с золотыми гирями :D ). А если все датчики вы будете делать самостоятельно, так и вообще можно адресуемыми из сделать и гнать данные хоть по 1-wire, RS-485, или же закостылить собственный протокол.
8 аналоговых входов, на мой взгляд тоже излишне. даже температуру можно мерить с помошью DS18b20.

P.S.: а вообще задумка интересная. Сил Вам и запала чтобы прекрасную идею воплотить в жизнь! В сообществе кстати была тема про открытую платформу для умного дома. Заглохло ли?
0
А про платформу — не знаю… тему видел, а вот чем закончилось — хз.
0
Ну охранка уже розведена, на данный момент используется 5 шлейфов(зона при входе с пультом, первый этаж, второй этаж, подвал, пожарка)… ну а 3 про запас пусть остаются… да и почему бы не сделать их, если просто.
0
Еще вопрос для знающих по ОСям. Есть ли смысл ставить какой-то мелкий *никс на STM32?
0
нет
0
а вообще, я предпочитаю следующий вариант. периферия (шлейфы, кнопочки и прочая требуха) живут отдельной системой. для вифи, сети и обслуживания берем линух-роутер за полтинник (асус — мой однозначный фаворит! ;) до длинк тоже пойдет), под который в почти десктопном стиле пишем свистелки-перделки типа веб-интерфейсов, логов, продвинутых планировщиков. он-же работает мостом между нашим доморощенным (или не очень) протоколом и эзернетом-вифи-дописать_свое. таким образом система живет своей практически отдельной жизнью от юзверь-интерфейса и высокоуровневых функций.
0
Не шарю я, как под девайсы типа роутеров писать. Думал уже об этом, валяется дохлий DIR-400 без дела. Но все таки хотел бы с STM32 разобраться.
0
Да практически так же, как под любой линукс. И вообще, сливаешь сорцы прошивки и получаешь тонну примеров)
Но все таки хотел бы с STM32 разобраться.
А он все равно потребуется, как мастер шины. Роутер — тока веб-морда. Соединить мастер шины с ним мона через Ethernet, RS232 или USB.
0
Не уж то так сложно реализовать веб морду на одном STM32?
0
Да нет, тащемта, но у роутера больше возможностей и плюс вебморда не будет отжирать ресурсы и более критичных к времени задач. Хотя если у тебя там только мастер, без которого все остальное будет работать — то без особой разницы.
0
По поводу умной хаты — один из вариантов это owfs.org/
Умна хата — подразумевает написание правил поведений и реакции на событие, что требует частого редактиравания этих самых правил.
Люди Вам правильно говорят что нада разделить периметры (охрана/гсм/внутрений) на разные устройства — немало случаев когда для отключения домофона/периметра используют электрошокер. Добавьте сюда грозы и статику (сухой снег например + длиный провод). Поэтому на первом плане надежность и безопасность. А «свистелки-перделки» это наверно самое легкое что у Вас будет ).
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.