Спасибо большое! Советы, полученные из практики особенно ценны.
Возможностям отладки, действительно, надо уделить больше внимания.
Задумался над организацией работы с большим количеством модулей. И такая мысль пришла.
К безадресному сигналу:
Signal("SENSOR", data);
Добавить еще один тип сигналов, где можно использовать метку (alias) модуля.
В одном модуле объявляем что-то вроде:
SetAlias("Kitchen");
А в другом отправляем ему и другим кухонным модулям:
Signal("SENSOR", "Kitchen", data);
И все модули, которые помечены SetAlias в скрипте как «Kitchen», обработают сигнал «SENSOR», если они его слушают.
А модули с меткой, например, «Bedroom», проигнорируют данный сигнал.
Кажется, это должно немного облегчить жизнь, назначил модулям метки: эти на кухне, эти в спальне, а эти еще где-то и все, пусть система сама разруливает, кому какие сигналы пришли.
Почитал о Home PNA. По-своему хороша, но все-таки провода. Плюс дополнительный чип — тоже деньги. Поддерживать две сетевых технологии сложнее, от беспроводных-то сетей не откажешься — они дают большую свободу.
Схемы, со временем, думаю, имеет смысл опубликовать. И интерфейсы детально описать.
Проект этот для творческих людей, возможно, кто-то захочет сделать свои собственные сенсорные или другие платы.
Да и повторить устройство самостоятельно будет не сложно и интересно — схема достаточно проста, плата двухслойная.
Препроцессор в этом случае не задействован.
@ — при трансляции обрабатывается как токен, обозначающий функцию скрипта доступную из Си-кода, т. е. «публичную». Эти имена потом передаются в таблице вместе с байт-кодом. Соответственно по её имени можно получить её условный адрес в основной Си-программе и передать виртуальной машине обработку байт-кода с этого «адреса». Так, собственно, обработчики всех событий в скрипте пользователя и работают.
Есть друзья, к которым иногда обращаюсь по электронике и веб-технологиям, обсуждаем концепции. Получается — «Мы», но друзья, в силу различных причин, к сожалению, всерьез к проекту подключиться не могут, так что постоянный участник и «двигатель» проекта пока в одном лице. Надеюсь, ситуация изменится в лучшую сторону.
По себе знаю, за 1 час в день такое не провернуть.
Примерно 1,5 года пошло с момента, когда первые наброски были сделаны.
По датчикам — взял на заметку, мысли правильные, благодарю.
Как заряжается аккумулятор на Interface #3?
Внешнее питание — USB-разъем, сам аккумулятор можно подключить к стандартному игольчатому разъему 2,54 мм или к винтовому клемнику.
Схема контроля заряда — на самом Interface #3, дополнительные зарядники не нужны, нужен только блок питания 5 Вольт, от мобильника, например.
Будет ли графический интерфейс?
Поясните, пожалуйста, что имеется ввиду? Графический интерфейс для визуального программирования системы или модуль с экранчиком?
Будет ли код Open Source?
Исходники Веб-приложений интерфейсов, включая редактор кода, API модулей и «облачной» части должны быть доступны.
Часть внутреннего ПО модулей, думаю, тоже можно будет со временем открыть, закрытой точно останется система шифрования и сетевого обмена с целью безопасности.
Есть желание продавать много, соответственно, цены постараемся сделать привлекательные.
Стремлюсь, что бы розничная цена базового модуля была не более 20-25 долл., доп. блоки — разные, в среднем 10-15 долл. Но будут и дорогие, поскольку некоторые датчики, например CO2, десятки долларов стоят.
Итого, условный модуль, состоящий из базовой и сенсорной части, в корпусе из хорошего поликарбоната, с залитой прошивкой, протестированный, упакованный и готовый к отправке: 30-40 USD в розницу. Эта стоимость, конечно, предположительная.
Платы китайцы сделают, быстро, дешево и качественно. Корпуса — у них же. Монтаж скорее всего своими силами сделаем.
Количество планирую исходя из свободного бюджета.
Думаю, первую партию 2-3 тысячи базовых модулей и по тысяче различных дополнительных. Если будут пред-заказы или взять кредит, реально сделать и 20 тысяч, и более.
Сроки: доводка некоторых моментов и подготовка к производству: три-четыре месяца займет, плюс производство около месяца-двух. Опять же многое упирается в деньги. Можно все сделать быстрее.
Да, тоже всегда думал, почему Умные Дома тяготеют к централизации? Ведь распределенная система просто «сама просится».
Планируете выходить на «промышленные» масштабы?
О производстве думаем, масштабы, конечно, определит спрос.
Думаете оставить разработку для среды гиков и программистов или в планах есть user-friendly конфигуратор
Есть кое-что интересное в разработке для «программирования без программирования», в статье не писал, поскольку пока еще на очень ранней стадии.
Сначала будет вариант для гиков. По мере появления свободных рук и ресурсов, будем реализовывать он-лайновый визуальный редактор или скорее конструктор, для программирования системы в графическом виде. Максимально, как Вы правильно сказали, user-friendly. Не так, как в Скрэтч-редакторе, на более высоком уровне абстракций. Концепция взаимодействия между модулями на основе «сигналов» позволяет легко проектировать итоговую систему подобно тому, как это выглядит в он-лайновом конструкторе ВЕБ-страниц. Удобно манипулировать модулями, «электронными кубиками» и «отношениями» между ними. Более-менее типичные решения можно получать простыми манипуляциями мышки, а сгенерированный готовый код дополнять, при желании, вручную, или не касаться программы вообще. В можно реально облегчить рутинные операции и дать возможность не-программисту работать с системой.
Если заглядывать много дальше, в мечтах — довести систему до такого уровня простоты и удобства (и цены), чтобы на самом деле, домохозяйкам в супермаркетах продавать.
Благодарю за теплые слова, действительно, труда вложено много, хотя и удовольствие от разработки весьма велико. Проект оказался настолько увлекательным, что не задумываясь трачу и выходные, и свободное время, да и деньги, конечно. Проще немного тем, что фрилансер, могу сам время распределять. А так да, семья моя уже с грустью смотрит: «Когда на море поедем-то?»
Из готовых аналогов могу подсказать посмотреть на SPARK Core.
SPARK Core — очень хорош, и имеет схожие концептуальные моменты. Но есть пара минусов, на мой взгляд:
— даже «гиковское» устройство должно иметь красивый корпус с продуманным дизайном, чтобы могло украсить любой интерьер.
— WIFI — загруженность частотного диапазона 2,4ГГц, на сегодняшний день, большая и будет расти, поэтому сразу ориентировался на 868МГц, за-то можно смело ставить в доме несколько сотен модулей.
Датчик шума — полностью согласен, хорошее дополнение к модулю безопасности.
как насчет проводов — Ethernet'а в идеале с POE?
Проводов решил по возможности избегать, поскольку умным домом озадачился как раз после ремонта. В перспективе можно сделать интерфейсный доп. модуль с Ethernet.
Если продаете, то глянуть хоть одним глазком уже можно где-нибудь?
На данный момент все существует в виде прототипов, многое еще надо обкатать, но о производстве думаем. Хотим сразу устройства в хороших корпусах делать, а не в виде плат.
Большое спасибо за высокую оценку проекта. Идея на счет Ардуино-среды разработки просто отличная. Изначально в этом направлении не думал, но сейчас, когда объем работы осознается лучше, действительно, адаптировать существующую продуманную систему с готовыми библиотеками выглядит мудрым решением.
Возможностям отладки, действительно, надо уделить больше внимания.
Задумался над организацией работы с большим количеством модулей. И такая мысль пришла.
К безадресному сигналу:
Добавить еще один тип сигналов, где можно использовать метку (alias) модуля.
В одном модуле объявляем что-то вроде:
А в другом отправляем ему и другим кухонным модулям:
И все модули, которые помечены SetAlias в скрипте как «Kitchen», обработают сигнал «SENSOR», если они его слушают.
А модули с меткой, например, «Bedroom», проигнорируют данный сигнал.
Кажется, это должно немного облегчить жизнь, назначил модулям метки: эти на кухне, эти в спальне, а эти еще где-то и все, пусть система сама разруливает, кому какие сигналы пришли.
Проект этот для творческих людей, возможно, кто-то захочет сделать свои собственные сенсорные или другие платы.
Да и повторить устройство самостоятельно будет не сложно и интересно — схема достаточно проста, плата двухслойная.
@ — при трансляции обрабатывается как токен, обозначающий функцию скрипта доступную из Си-кода, т. е. «публичную». Эти имена потом передаются в таблице вместе с байт-кодом. Соответственно по её имени можно получить её условный адрес в основной Си-программе и передать виртуальной машине обработку байт-кода с этого «адреса». Так, собственно, обработчики всех событий в скрипте пользователя и работают.
Примерно 1,5 года пошло с момента, когда первые наброски были сделаны.
По датчикам — взял на заметку, мысли правильные, благодарю.
Внешнее питание — USB-разъем, сам аккумулятор можно подключить к стандартному игольчатому разъему 2,54 мм или к винтовому клемнику.
Схема контроля заряда — на самом Interface #3, дополнительные зарядники не нужны, нужен только блок питания 5 Вольт, от мобильника, например.
Поясните, пожалуйста, что имеется ввиду? Графический интерфейс для визуального программирования системы или модуль с экранчиком?
Исходники Веб-приложений интерфейсов, включая редактор кода, API модулей и «облачной» части должны быть доступны.
Часть внутреннего ПО модулей, думаю, тоже можно будет со временем открыть, закрытой точно останется система шифрования и сетевого обмена с целью безопасности.
Стремлюсь, что бы розничная цена базового модуля была не более 20-25 долл., доп. блоки — разные, в среднем 10-15 долл. Но будут и дорогие, поскольку некоторые датчики, например CO2, десятки долларов стоят.
Итого, условный модуль, состоящий из базовой и сенсорной части, в корпусе из хорошего поликарбоната, с залитой прошивкой, протестированный, упакованный и готовый к отправке: 30-40 USD в розницу. Эта стоимость, конечно, предположительная.
Платы китайцы сделают, быстро, дешево и качественно. Корпуса — у них же. Монтаж скорее всего своими силами сделаем.
Количество планирую исходя из свободного бюджета.
Думаю, первую партию 2-3 тысячи базовых модулей и по тысяче различных дополнительных. Если будут пред-заказы или взять кредит, реально сделать и 20 тысяч, и более.
Сроки: доводка некоторых моментов и подготовка к производству: три-четыре месяца займет, плюс производство около месяца-двух. Опять же многое упирается в деньги. Можно все сделать быстрее.
О производстве думаем, масштабы, конечно, определит спрос.
Есть кое-что интересное в разработке для «программирования без программирования», в статье не писал, поскольку пока еще на очень ранней стадии.
Сначала будет вариант для гиков. По мере появления свободных рук и ресурсов, будем реализовывать он-лайновый визуальный редактор или скорее конструктор, для программирования системы в графическом виде. Максимально, как Вы правильно сказали, user-friendly. Не так, как в Скрэтч-редакторе, на более высоком уровне абстракций. Концепция взаимодействия между модулями на основе «сигналов» позволяет легко проектировать итоговую систему подобно тому, как это выглядит в он-лайновом конструкторе ВЕБ-страниц. Удобно манипулировать модулями, «электронными кубиками» и «отношениями» между ними. Более-менее типичные решения можно получать простыми манипуляциями мышки, а сгенерированный готовый код дополнять, при желании, вручную, или не касаться программы вообще. В можно реально облегчить рутинные операции и дать возможность не-программисту работать с системой.
Если заглядывать много дальше, в мечтах — довести систему до такого уровня простоты и удобства (и цены), чтобы на самом деле, домохозяйкам в супермаркетах продавать.
SPARK Core — очень хорош, и имеет схожие концептуальные моменты. Но есть пара минусов, на мой взгляд:
— даже «гиковское» устройство должно иметь красивый корпус с продуманным дизайном, чтобы могло украсить любой интерьер.
— WIFI — загруженность частотного диапазона 2,4ГГц, на сегодняшний день, большая и будет расти, поэтому сразу ориентировался на 868МГц, за-то можно смело ставить в доме несколько сотен модулей.
Проводов решил по возможности избегать, поскольку умным домом озадачился как раз после ремонта. В перспективе можно сделать интерфейсный доп. модуль с Ethernet.
На данный момент все существует в виде прототипов, многое еще надо обкатать, но о производстве думаем. Хотим сразу устройства в хороших корпусах делать, а не в виде плат.