0,0
рейтинг
21 ноября 2013 в 15:23

Беспроводные коммуникации «умного дома». Часть вторая, практическая tutorial

После написания пары больших постов про «радиофицированный» умный дом, было достаточно много желающих получить код, который помог бы разобраться с этой темой более детально.
Свой исходный вариант кода по некоторым причинам выкладывать не хотелось — подготовил «облегченный» вариант, который позволит объяснить мои основные задумки.

Для того, чтобы пост получился наиболее зрелищным и полезным, сегодня реализуем домашнюю мини-систему (часы, календарь, погода, контроль уровня заряда батареек в датчиках и т.п.), состоящую из одного «главного» модуля (с большой светодиодной матрицей в качестве индикатора), двух автономных датчиков (будут измерять температуру) и модуля синхронизации времени через NTP.

Сначала кратко расскажу о составляющих проекта:

Shield MaTrix

Плата расширения для Arduino Mega (о процессе ее создания будет отдельный пост, но чуть позже). Это расширение позволяет управлять выводом информации на четыре биколорных светодиодных матрицы 8х8, образующих единое поле 32х8 (разрешение невелико, зато надписи получаются достаточно крупными).

Дополнительно на плате имеется:
  • Встроенный модуль часов (RTC) — на базе DS1307 с резервной батарейкой питания (CR1220 или CR1226)
  • Интерфейс для подключения RF-модуля nRF24L01+
  • Тактовая кнопка (например, для выключения звука будильника)
  • ИК-приемник на 38кГц (для удаленного управления)
  • Разводка для подключения RGB-светодиода с общим катодом или анодом (выбор осуществляется джампером)
  • Датчик освещенности (например, для автоматической регулировки яркости)
  • Пьезо-излучатель «пищалка»
  • I2C-интерфейс
  • xBee-интерфейс
  • Интерфейс для подключения Arduino-шилдов.


Модуль разрабатывался «из того, что было» и делался максимально простым для пользователей. Блок индикации построен на хорошо известных сдвиговых регистрах (74HD595D — управление светодиодами «в столбцах») и демультиплексоре (74HD138D — управление «строками»). Естественно, используется динамическая индикация.

Для того, чтобы было еще проще использовать — была написана библиотека с основными примитивами («вывести строку», «бегущая строка», регулировка яркости, есть несколько эффектов).

Сам шилд не содержит МК, к нему нужно подключать «Arduino Mega» или совместимый клон (я использовал такой).

Схема Shield MaTrix доступна по ссылке.

Sensor Node

Это ардуино-совместимый модуль, построенный на базе Атмега328, питающийся от одной литиевой батарейки CR2032, имеющий «на борту» датчик температуры (MCP9700), кнопку, светодиод и три разъема для подключения возможных «расширений» (датчиков и т.п.).

Из особенностей датчика:
  • Размер платы — 3х4 см.
  • Два варианта питания nRF24L01+: питание на модуль подается постоянно или берется с одного из цифровых пинов (выбор осуществляется джампером).
  • Программирование через ISP или программатор на базе FT232 (или подобном) из среды Arduino.
  • Имеется делитель напряжения (для измерения напряжения питания)
  • Два цифровых пина выведены на разъем «Digital» (в разъеме так же присутствует питание).
  • Два аналоговых пина — на разъем «Analog» (питание тоже есть).
  • Шина I2C — отдельный соответствующий разъем (тоже с питанием).
  • Тактирование МК возможно как с помощью кварцевого резонатора 16МГц, установленного на плате, так и с помощью встроенного осциллятора (это, конечно, не «фишка» конкретного модуля, а просто возможности atmega328).


Про разработку этого модуля тоже напишу статью, если будет интерес у читателей.

В нашем случае, для экономии батарейки будем использовать МК с тактированием от внутреннего осциллятора на частоте 8МГц и «попросим» МК продолжать работать на пониженном напряжении (от 1.8В). Для этого надо в файле boards.txt добавить следующие строчки:
s328o8.name=Sensor328 (int8MHz, 1.8V)

s328o8.upload.protocol=arduino
s328o8.upload.maximum_size=30720
s328o8.upload.speed=19200

s328o8.bootloader.low_fuses=0xe2
s328o8.bootloader.high_fuses=0xda
s328o8.bootloader.extended_fuses=0x06
s328o8.bootloader.path=atmega

s328o8.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex

s328o8.bootloader.unlock_bits=0x3F
s328o8.bootloader.lock_bits=0x0F

s328o8.build.mcu=atmega328p
s328o8.build.f_cpu=8000000L
s328o8.build.core=arduino
s328o8.build.variant=standard


UPD: при параметрах выше модуль стартует с напряжением питания от 2.4В. Чтобы добиться старта от 1.8В нужно понизить рабочую частоту МК до 1МГц. Делается это следующим образом:

s328o1.name=Sensor328p (int1MHz, 1.8V)

s328o1.upload.protocol=arduino
s328o1.upload.maximum_size=30720
s328o1.upload.speed=19200

s328o1.bootloader.low_fuses=0x62
s328o1.bootloader.high_fuses=0xda
s328o1.bootloader.extended_fuses=0x06
s328o1.bootloader.path=atmega

s328o1.bootloader.file=ATmegaBOOT_168_atmega328_pro_8MHz.hex

s328o1.bootloader.unlock_bits=0x3F
s328o1.bootloader.lock_bits=0x0F

s328o1.build.mcu=atmega328p
s328o1.build.f_cpu=1000000L
s328o1.build.core=arduino
s328o1.build.variant=standard


Самое интересное в этом фрагменте — значения фьюзов, которые определяют режим работы МК. Помните, что фьюзы в среде Arduino прошиваются в момент записи загрузчика. Так же для установки фьюзов можно воспользоваться avrdude в командной строке (или avrdude GUI — кому как удобнее).

О батарейном питании датчика
К сожалению, я пока еще не успел провести полные натурные исследования на тему «сколько же модуль Sensor Node (SN) сможет работать от одной батарейки» — эксперимент еще продолжается.
Условия следующие:
  • Используется «энергосберегающий» код, который я привожу в данной статье
  • МК работает на частоте 8МГц от внутреннего осциллятора
  • SN «просыпается» 1 раз в 8 секунд, измеряет температуру и напряжение питания, отправляет данные в эфир (для индикации используется встроенный светодиод — просто чтобы видеть, что модуль еще «живой»)

На текущий момент (прошло уже более 20 дней) уровень заряда батареи упал до 2.83В.

Таким образом, можно предположить, что если опрашивать модуль реже, к примеру, один раз в 4 минуты и не зажигать светодиод, получим месяцы работы от одного элемента питания, что, согласитесь, очень неплохой результат.

Схема модуля доступна по ссылке.

iBoard

Эту плату я уже упоминал ранее. Отличительные особенности этой платы: атмега328, LAN на базе Wiznet W5100, интерфейс для nrf24l01+, SD, кучка аналоговых пинов и проч.
Поскольку эту плату я не разрабатывал (в отличие от двух предыдущих) — на ней останавливаться особо не буду.

nRF24l01+

Популярный RF-трансивер, работающий на 2.4ГГц. Каждый из наших модулей в этом проекте оснастим таким трансивером.
Для работы с этим модулем будем использовать библиотеку RF24 (и ее форк iBoardRF24).

Общая идея


Создадим систему, которая будет выполнять следующие функции:
  • Отображение текущего времени, дня недели, даты.
  • Вывод информации с двух беспроводных датчиков (температура «дома» и «на улице»).
  • Индикация состояния литиевых батареек в беспроводных модулях.
  • Контроль разряда батареи (с выдачей предупреждающего сообщения о необходимости замены элемента питания).
  • Получение времени от NTP-сервера и синхронизация даты/времени по нему.

Задача в целом достаточно понятная (особенно если разделить ее на маленькие простые подзадачки), но все-таки опишем, как мы это реализуем, делая упор именно на беспроводные коммуникации между нашими модулями.

Назначим каждому из наших модулей следующие функции:
  1. Shield MaTrix: прием данных от всех беспроводных датчиков (iBoard — тоже будет «датчиком даты/времени»), отображение данных, обработка информации о состоянии элементов питания, часы реального времени (с резервной батарейкой), авторегулировка яркости «дисплея» в зависимости от освещенности.
  2. Sensor Node: получение данных с датчика температуры, получение информации об уровне заряда элемента питания и передача этих данных. Дополнительно реализуем в скетче все, что необходимо для экономии батарейки (задействуем режим «сна» МК).
  3. iBoard: получение адреса с помощью DHCP, формирование запроса к NTP-серверу, получение и парсинг ответа от сервера, формирование значения даты/времени и отправка этих данных в эфир.


В общем и целом, думаю, все понятно и логично.
Ссылка на архив со всеми скетчами приведена в конце статьи.


Приступим


Поскольку мы используем для передачи данных модуль nRF24l01+ — необходимо сразу ознакомиться с его возможностями, для чего лучше всего (хотя бы бегло) изучить его даташит.

Особое внимание обратим на то, что «за раз» можно передать до 32 байт данных.
Таким образом — мы должны придумать, как же удобно и «единообразно» передавать наши данные.
Предлагаю использовать следующую структуру:
// создаём структуру для передачи значений
typedef struct{         
  int SensorID;        // идентификатор датчика
  int ParamID;         // идентификатор параметра 
  float ParamValue;    // значение параметра
  char Comment[16];    // комментарий
}
Message;


Очевидно, что в 32 байта эта структура замечательно умещается.

Всем модулям назначим свои идентификаторы (SensorID): Shield MaTrix — 100, Sensor Node 1 (SN1 — «домашний») — 200, SN2 («уличный») — 300, iBoard — 900.

Делаем это для того, чтобы когда устройство сообщало о своем состоянии — нам было бы понятно, о каком конкретно датчике идет речь.

В этом месте следует вспомнить о том, что у нас каждый «датчик» передает не один, а более параметров (к примеру, «домашний» датчик будет передавать как минимум 2 параметра — домашнюю температуру и напряжение на элементе питания (реально будем передавать три — дополнительно еще будем передавать флаг о необходимости замены батарейки)).

Чтобы это сделать, в скетче каждого «датчика» введем вот такую структуру:
/// создаем структуру для описания параметров
typedef struct{
  float Value;         // значение 
  char Note[16];       // комментарий
} 
Parameter;


Все передаваемые значения (Value) будем передавать как float (для единообразия, хотя во многих случаях (к примеру, при передаче флага о необходимости замены батарейки) — это избыточно).
Параметр Note будем использовать для «человекопонятного комментария» (к примеру «TempIN, C» — для внутренней температуры).

Очевидно, что эта структура (Parameter) является «частью» структуры для передачи сообщений (Message).

Теперь перейдем к конкретике.

Модули SN1 м SN2. Алгоритм работы этих модулей следующий:
  1. В функции setup() — инициализация
  2. В основном цикле loop():
    • Проснуться по таймеру
    • Проверить, не настала ли «пора»
    • Если время пришло — получить данные о температуре и напряжении элемента питания
    • Включить RF-трансивер
    • В цикле отправить сообщения о значении всех полученных параметров
    • Выключить трансивер
    • Уснуть

Для экономии батарейки будем использовать пробуждение по таймеру (будем использовать интервал в 8 секунд), но для изменения температуры (в домашних условиях) 8 секунд — это слишком часто, введем дополнительный счетчик, с помощью которого будем считать нужное количество таких 8-секундных интервалов. Предлагаю отправлять данные один раз в 4 минуты, таким образом, нужно, чтобы таймер сработал 30 раз до того момента, как данные будут измерены и отправлены.
Дополнительно для экономии — будем использовать режим энергосбережения и RF-трансивера (функция powerDown() соответствующего объекта).

Надеюсь, что пока еще не скучно и все понятно…

Итак, «домашний» датчик будет характеризоваться следующей структурой:

Parameter MySensors[NumSensors+1] = {    // описание датчиков (и первичная инициализация)
  NumSensors, "SN1 (in)",            // в поле "комментарий" указываем пояснительную информацию о датчике и количество сенсоров
  0, "TempIN, C",                        // температура со встроенного датчика
  0, "VCC, V",                           // напряжение питания (по внутренним данным МК)
  0, "BATT"                              // статус того, что батарейка в порядке (0 - батарейка "мертвая", 1 - "живая")
};

Message sensor; 


А «уличный»:

Parameter MySensors[NumSensors+1] = {    // описание датчиков (и первичная инициализация)
  NumSensors, "SN1 (in&out)",        // в поле "комментарий" указываем пояснительную информацию о датчике и количество сенсоров
  0, "TempIN, C",                        // температура со встроенного датчика
  0, "VCC, V",                           // напряжение питания (по внутренним данным МК)
  0, "BATT",                             // статус того, что батарейка в порядке (0 - батарейка "мертвая", 1 - "живая")
  0, "TempOUT, C"                        // температура со внешнего датчика
};

Message sensor;


«Уличный» датчик будет передавать как температуру с внутреннего датчика (TempIN), так и температуру с внешнего датчика (TempOUT), но использовать в данном проекте мы будем только последнюю.

Еще хотелось бы сказать немного об отличиях «домашнего» и «уличного» датчика. К «уличному» датчику дополнительно подключен (проводом) еще один сенсор на базе MCP9700 (чтобы его можно было «выбросить на улицу» и не морозить литиевую батарейку — сам модуль остается внутри помещения и не подвергается воздействию низких температур, пагубно влияющих на элементы питания.

Уличный сенсор — это маленькая платка, на которой размещен MCP9700 и блокировочный конденсатор по питанию. К плате подходит кабель (три проводка — общий, питание, сигнал). Саму платку я оградил от воздействия внешней среды с помощью нескольких слоев термоусадки. Кабель (со стороны беспроводного модуля) оснастил разъемчиком и подключил к гнезду «Analog»).

Теперь вернемся непосредственно к процессу измерения.

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

Чтобы реально оценить напряжения питания, воспользуемся возможностью МК (хотя мы можем так же воспользоваться имеющимся на SN делителем напряжения, подключенного к одному из аналологовых пинов атмега328).
Ничего придумывать сами не будем (все уже придумано до нас, к примеру, тут).
Универсальная функция для определения напряжения питания имеет следующий вид:
long readVcc() {
  // Read 1.1V reference against AVcc
  // set the reference to Vcc and the measurement to the internal 1.1V reference
  #if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif  

  delay(75); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Start conversion
  while (bit_is_set(ADCSRA,ADSC)); // measuring

  uint8_t low  = ADCL; // must read ADCL first - it then locks ADCH  
  uint8_t high = ADCH; // unlocks both

  long result = (high<<8) | low;

  result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
  return result; // Vcc in millivolts
}


Функция возвращает напряжение питания МК в миливольтах.

Теперь можно приступать к измерению всех остальных параметров, на примере датчика SN1 — 200:
// функция вычисления всех значений датчиков
void calculateValue(){
  // код для получения данных
  // напряжение питания
  MySensors[2].Value = ((float) readVcc())/1000.0;
  
  // температура встроенного датчика (подключен на А3)
  MySensors[1].Value = (((float)analogRead(A3) * MySensors[2].Value / 1024.0) - 0.5)/0.01;
  
  // если напряжение больше 2.4В - батарейка "живая" (1)
  // если меньше - "скоро помрет" (0)
  MySensors[3].Value = (MySensors[2].Value > 2.4) ? 1 : 0; 
  
  return;
}


По аналогии сделана функция и для датчика SN2 («уличный» — 300):
// функция вычисления всех значений датчиков
void calculateValue(){
  // код для получения данных
  // напряжение питания
  MySensors[2].Value = ((float) readVcc())/1000.0;
  
  // температура встроенного датчика (подлючен на А3)
  MySensors[1].Value = (((float)analogRead(A3) * MySensors[2].Value / 1024.0) - 0.5)/0.01;
  
  // если напряжение больше 2.4В - батарейка "живая" (1)
  // если меньше - "скоро помрет" (0)
  MySensors[3].Value = (MySensors[2].Value > 2.4) ? 1 : 0; 
  
  // температура внешнего датчика (подключен на А1 через разъем "Analog")
  MySensors[4].Value = (((float)analogRead(A1) * MySensors[2].Value / 1024.0) - 0.5)/0.01;
  
  return;
}


Видно, что отличие только в том, что добавилось измерение температуры «внешнего» датчика.

Чтобы как-то видеть, что наши датчики работают (и чтобы при первом включении не ждать 4 минуты до появления первых данных) сделал два режима работы датчика — «тестовый» (mode = 1) и «боевой» (mode = 2).
В «тестовом» режиме, данные отправляются один раз в 8 секунд и для индикации отправки используется встроенный на модуле светодиод.
В «боевом» режиме никакой индикации нет, данные отправляются один раз в 4 минуты (не расходуем батарейку понапрасну).
«Тестовый» режим включается сразу после установки элемента питания и работает 10 циклов (т.е. первые 10 отправок данных «визуально» идентифицируются — удобно при отладке). Можно было задействовать кнопку, имеющуюся на модуле для переключения режимов, но это я оставлю вам для самостоятельного изучения.

Собственно, с «погодными» датчиками закончили.

Теперь нужно что-то придумать с «датчиком даты/времени» (на базе iBoard).
Сам процесс получения даты/времени описывать не буду — есть соответствующие примеры.

Опишу только то, каким образом будем передавать эти данные.
Чтобы не нарушать «единообразие» нужно как-то втиснуть данные о дате/времени в переменную типа float.

Сделаем это следующим образом: дату будем передавать в виде «yymm.dd», а время — «hhmm.ss». При таком подходе сможем передать нужные нам значения и использовать float.

Собственно, это и отражено в структуре, описывающей наш «датчик даты/времени»:
Parameter MySensors[NumSensors+1] = {    // описание датчиков (и первичная инициализация)
  NumSensors, "iBoard NTP",              // в поле "комментарий" указываем пояснительную информацию о датчике и количество сенсоров
  0, "Date (yymm.dd)",                   // дата
  0, "Time (hhmm.ss)"                    // время
};

Message sensor; 


Получение и передачу значений о дате/времени вы можете сделать как угодно часто, я для теста сделал один раз в минуту (вообще, это, конечно, избыточно — имхо, достаточно раз в 10 минут это делать, чтобы иметь часы с хорошей точностью (как у Шелдона из ТВВТ)).

Чтобы код сделать достаточно универсальным — в начале скетча есть определение, указывающее на текущий часовой пояс (вы должны исправить его на правильное для вас значение):
#define TimeOffset 4  // часовой пояс - GMT +4 (МОСКВА)


Собственно, работа модуля iBoard практически идентична работе модулей SN, за единственным исключением — не используется режим энергосбережения МК и RF24 (iBoard питаем от внешнего БП и экономить «батарейку» нет смысла).

На этом, пожалуй, уже все — описана работа датчиков («проснулся — измерил — отправил — уснул»), дальше уже «рутина» — программирование модуля Shield MaTrix — получение соответствующих данных от датчиков, формирование необходимых строк и вывод их в нужном порядке.

Из «особенностей»: поскольку я программировал в основном в темное время суток, сразу добавил функцию авторегулировки яркости «дисплея» (чтобы ночью светодиоды не «выжигали» сетчатку глаза), для этого воспользовался данными, полученными с датчика освещенности, имеющегося на Shield MaTrix.

Алгоритм очень прост: измеряем текущую освещенность, если она больше, чем зафиксированный максимум — получили новый «максимум». Если же освещенность в пределах [0,«максимум»] — используем функцию map(...), чтобы задать значение яркости «дисплея» (от 20 до 255, первое значение выбрал опытным путем).

В нормальном режиме работы данные выводятся на «дисплей» в цикле в следующем порядке:
  1. Время (шрифт digit6x8future, зеленым цветом)
  2. День недели (шрифт font6x8, красным цветом)
  3. Дата (шрифт font6x8, оранжевым цветом (красный+зеленый)
  4. Температура дома (тот же шрифт, зеленый цвет). Дополнительно выводим значок с изображением батарейки и уровнем ее заряда.
  5. Температура на улице (тот же шрифт, оранжевым цветом).

Если же от какого-либо датчика пришли данные о том, что батарейка «на последнем издыхании» (соответствующий флаг) — добавляется еще один шаг — отображение предупреждающего сообщения (красным цветом, разумеется), типа: «Замените батарейку (CR2032) в уличном датчике!» с упоминанием того датчика, где эту батарейку следует заменить.

Результат


Собственно, на видео все видно:


Что дальше?


  1. Каждый из модулей при таком подходе может быть «датчиком» (к примеру, модуль MaTrix можно сделать «беспроводным датчиком освещенности»).
  2. К каждому датчику SN можно подключить дополнительные сенсоры (влажность, давление и т.п.).
  3. Из датчиков SN можно создать сеть (измерение всех «интересных» параметров и передача их значений в эфир).
  4. Каждый из модулей работает как по своей собственной «программе» и выполняет свои «изолированные» функции, так и быть «управляемым извне» по командам от остальных датчиков.
  5. В систему легко добавить логирование параметров (к примеру, на уже имеющемся в проекте iBoard: достаточно дописать кусок кода, чтобы он «слушал» эфир и записывал данные на SD-карту (напомню, на iBoard есть слот для microSD) или постил данные куда-нибудь в веб, например на проект "Народный мониторинг" или куда-нибудь на собственный сервер, где они бы складывались в БД для дальнейшего использования).
  6. Можно чуть расширить структуру и добавить адресные команды (например, от уличного датчика на MaTrix (300 -> 100) исполнить какое-нибудь действие при наступлении какого-нибудь условия).

В общем, проявите свою фантазию.

Полезные ссылки


Список покупок:


P.S. конечно, можно использовать то оборудование, что у вас есть с соответствующими корректировками кода (постарался дать максимум комментариев — разобраться должно быть не очень сложно).
Алексей Степанов @avstepanov
карма
64,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

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

  • +6
    Извините, если не по теме, но:
    Я видел уже наверное более сотни проектов «умного дома», причем 90% проектов это опять же моргание светодиодом управление светом да пару датчиков температуры. И каждый раз все заново придумывают свой велосипед. Подобные вещи, я думаю, баловство — можно купить готовые девайсы с данным функционалом очень дешево, а температуру на улице можно и со смартфона посмотреть.
    Кроме критики, есть еще и предложение. Может стоит задуматься над единой открытой платформой для умного дома? Где то собираться, обсуждать и пр. Не придумывать каждый раз свой велосипед, а строить все из готовых проверенных сообществом схем и протоколов? Один напишет программу для управления под смартфон, второй хорошо разбирается в беспроводных технологиях и спроектирует беспроводную сеть, третий напишет протокол, которым будут все пользоваться и пр.
    • +1
      некоторые этим и занимаются
      Примеры:
      www.ab-log.ru
      smartliving.ru
      • +1
        Уже что то похожее )
        Я удивляюсь, почему производители техники все никак не могут договориться хотя бы о едином протоколе (я не говорю уже о банальной часовой батарейки в микроволновке).
        Зимой собираюсь делать свой проект, хочется максимальной гибкости, чтоб сценарии использования были максимально разнообразными. Банально, выходя из дома чтоб выключался везде свет, телевизор и пр (с кнопки, со смартфона, по rfid метки и пр). Когда полуденное солнце ярко светит прямо в окна — опускались жалюзи. Чтоб при входящем звонке выключался везде звук.
        Все это по мелочи не так уж и сложно, а вот в целом спроектировать уже сложнее.
        • +2
          Они о едином зарядном коннекторе до сих пор договориться не могут, а вы про беспроводные сети…
          • 0
            Ну на зарядники раньше никакого стандарта не было. Договариваться о microusb начали сравнительно недавно, сейчас этот стандарт используют большинство.
            И не нужно сюда впутывать жажду наживы, когда производитель хочет заработать нехилый профит на аксессуарах.
            В своё время произошла революция в мире персональных компьютеров, когда таки договорились о стандартах. Сети проводные и беспроводные, интернет, html и пр. Тут думаю не нужно рассказывать, что бывает если кто то с кем то не может договориться.
        • 0
          Я занимаюсь подобным проектом для себя, причем помимо всего что вы перечислили, зарабатываю голосовой интерфейс управления, сейчас достаточно неплохо могу управлять телевизором, Hi-Fi системой, подсветкой. В планах ещё много всего, включая свой внутренний домашний портал и тд. Если интересно пишите в личку.
          • 0
            распознование голоса от гугла?
            • +1
              Из on-line у меня есть два движка один от гугла другой от яндекса, пока тестирую оба для выявления лучшего. Также используется Microsoft Speech Platform — она поддерживает русский язык если скачать нужные language pack, причём распознаёт неплохо, но требует чётко построенный словарь распознавания, т.е. распознавания свободной формы нет и не предвидеться в ближайшее время во всяком случае на русском языке. Думаю может написать на Хабр статью по этой тематике.
              • 0
                Напишите пост про сравнение движков. До недавнего момента полагал, что кроме гугла хороших не существует. Интересно слышать про Яндекс.
              • 0
                Было бы интересно почитать про то что уже пользовали, и в каких конфигах чего добились, желательно с видео.
                Из хабровчан примерно каждый десятый свой уютный домик обогащает хитрыми интерфейсами. Но в общем и целом проблема с синтезом и распознаванием голоса оффлайн так и не решена.
                Заранее спасибо! =)
                • +1
                  Соберусь с силами и обязательно напишу, но это всё ещё на этапе различных прототипов, т.е. всё работает и действует но пока на макетных платах скрутках и т.д.
                  • 0
                    Кмк не сильно критично. Лично для меня важнее идея. Т.е. нужно просто подсмотреть лучшую реализацию, что нужно запилю сам. Я сейчас на стадии так сказать «проектирования». Девайсы похоронены идут почтой.
          • 0
            Делаю что-то похожее — можно посмотреть тут — github.com/Neuronix2/IRISv2
    • +6
      Это только на размер велосипеда повлияет)
      image

      Люди часто делают именно тот блок (велосипед), который их интересует. Как раз общая платформа, чаще всего, оказывается баловством — если человек ставит себе задачу напихать как можно больше датчиков, сделать Великий Единый Центр Управления и тому подобное, не задумываясь о том, что из этого будет реально использоваться и что реально требуется. В итоге получается очередная брошенная «единая платформа для умного дома».

      А когда человек делает конкретный блок, то ориентируется на получение результата, это быстрее, чем встраиваться в систему костылей и подпорок тех самых единых систем.

      Кстати сказать,
      > можно купить готовые девайсы с данным функционалом очень дешево
      Я бы не был так уверен. Вы, например, можете сходу назвать девайс, который мне позволит управлять моей люстрой по вайфай, из любого браузера. Чтобы работало «из коробки» — повесил, вбил адрес и забыл?
      И ценой до 1000р?
      • –1
        Но те же самые блоки можно проектировать с заделом под будущее.
        Управление люстрой из браузера по wifi сама по себе не очень то нужная штука в отрыве от остальных сценарий использования.
        Можно сделать дешевле каждый конкретный модуль, снабдив, например, их RF приемниками за пару баксов. Центральный блок управления же, можно оснастить более дорогим wifi модулем, а дальше из центра управления (будь то браузер, смартфон), всем этим управлять и делать автоматизацию.
        Предполагается это делать все не самому, а сообществом, проектирую открытую систему и протоколы.
        Тот же самый датчик температуры дома можно использовать не только для того чтобы смотреть на экране дома, но и для удаленного мониторинга и упралвения климатом.
        • 0
          Да вот в том-то и дело, что это оказалось самой нужной функцией из всех.
          Красивые картинки с температурой в разных частях комнаты это, конечно, здорово, но на деле — больше маркетинг. Либо, в случае изготовления для себя — способ сказать «смотрите, у меня умный дом».

          В реальности чаще всего требуется включить/выключить свет, валяясь на диване (или сидя за компом), открыть/закрыть шторы или окно.
          Еще ни разу не возникало ни у меня, ни у других людей, с которыми я общался на эту тему острого желания узнать температуру на кухне, сидючи в комнате.
          Или, еще страшнее — узнать температуру на кухне с работы.

          Да и климат-контроль, в подавляющем большинстве случаев, отлично выполняется кондиционером в режиме «авто».

          Если делать штучный товар, то проще брать готовые вай-фай модули или китайские роутеры, все равно изготовление кастомных модулей выйдет дольше и дороже. Если массово, как мне тут разъяснили, выигрыш от использования кастомных модулей будет очень незначительным, т.к. китайцы с удовольствием сделают шестислойные платы на 32-битном арме с линуксом и вайфаем за пару десятков баксов при достаточно больших партиях.
          • 0
            Температуру я привел в качестве примера — мне тоже ни разу это не было интересно.
            Смысл в том чтоб собирать себе умный дом «по кирпичикам», не боясь что следующий понадобившийся кирпичек не состыкуется с остальной системой. Понадобился термометр — купил за десяток баксов датчик, контроллер и передатчик, спаял (подсоединил) по готовой схеме, включил в конфиг центра управления и все — можешь использовать в сценариях.
            • 0
              Нет, я вас понял. Просто первым вопросом нужно все-таки уяснить, а что же все-таки нужно? Потому что иначе начинается вот эта вот погоня за Великой Единой Платформой, без понимания того, что же от нее требуется. Бежать все делать в самом общем, абстрактном виде, только ради эфемерного «не боясь, что следующий кирпичик не состыкуется» это не совсем правильно.

              Поэтому люди и делают себе модуль управления люстрой или жалюзи и успокаиваются — т.к. потребности нет. А городить огород чисто ради слов «умный дом» не все хотят.
              • 0
                Ну как раз таки для начала и нужна «великая и единая платформа» )
                Каждому захочется свое и благодаря модульности системы каждый и сможет получить то что хочет.
                В качестве примера можно привести Plug&Play или модульные смартфоны про которые в последнее время любят говорить.
                • +1
                  Единой платформы не будет, она всеравно расколется. Кто-то захочет универсальности а кому-то подавай экономичность. Или зададут слишком высокую минимальную планку — например поддержка TCP/IP протокола конечными устройствами и «приехали».

                  Хочется единой платформы? Они уже давно готовы… WiFi, Ethernet и вашу фантазию ограничат только ваши возможности — готовых устройств на базе которых можно построить сколь угодно сложную систему просто море.

                  Но тех кто хочет сделать «единую платформу» не устраивает в существующем только одно — стоимость готового решения, да и те… каждый тянет одеяло на себя.
                  • 0
                    Но Ардуино выстрелило же! И пусть что раскололось всё потом. Цель достигнута — микроконтроллеры в массы за дешево.
                    • 0
                      Да не совсем раскололось. Да, кучу не оригинальных плат, не оригинальных шилдов, но все работает.
                      Другие производители выпускают свои дев борды, но предназначение в основном несколько другое — подсадить разработчиков на свои чипы.
                    • 0
                      С ардуиной скорее не раскол а аналоги с другим расположением выводов, ведь основа остается одна и та же, а совместимость по физическим характеристикам между аналогами слабая. Редко какой шилд от аналога подходит к ардуине, как и наоборот. Т.е. Ардуино и аналоги представляют собой сейчас то же самое что происходит с «умным домом».
                      • 0
                        В пределах экосистемы ардуины все там хорошо, ни разу не встречал чтоб что то к чему то не подходило. Причем разницы нет, оригинал это, либо дешевый китайский клон — все работает одинаково!
                  • 0
                    WiFi или ethernet это не совсем подходящая платформа, да и не платформа вовсе. По какому протоколу будут общаться датчики по wifi? Если бы не было бы стандартов, то вы не смогли бы подключить ваш смартфон производителя А к роутеру производителя Б.
                    Каких готовых устройств для умного дома море? Худо бедно кто то сделал люстру, управляемую по WiFi, что еще? Да и избыточен он для маломощных устройств, которые желательно еще должны мало потреблять.

                    Да и стандарт может быть построен независимо от транспортного уровня, как это например сделано в TCP/IP (тем же интернетом вы пользуетесь и по wifi и по витой паре и через сотовую сеть).
                    • 0
                      ZigBee?
                      • 0
                        Как транспорт — вполне, но все равно остается много проблем, типа протокола обмена, управляющий софт и пр. Подключили мы датчик, надо как то дать всей системе понять какой именно это датчик. Примерно как это делается в USB.
                    • 0
                      Готовые устройства — промышленные. Сейчас имеется масса домашней автоматики производимой промышленно, но вся она теряется из виду из-за своей высокой стоимости. Сколько уже существует довольно проработанных экосистем? не одна и не две… много. Всех их объединяет одно — высокая стоимость решения.

                      Вот и остается мастерить и выдумывать самому кто во что горазд.

                      Придумывать протокол для датчика температуры? А если захочется в домашней автоматике иметь видеокамеры, надо корректировать протокол для датчика температуры так чтобы он не сильно отличался от протокола видеокамеры, иначе… какой смысл в «единой платформе» если каждый датчик фактически использует свой протокол.
                      А если в будущем захочется дома заиметь анализатор спектра излучений(видимый свет, ультрафиолет, спектр радиоактивных излучений) в сети ему тоже надо придумать свой протокол или заложить это на этапе проектирования «единой платформы»?
                      • +1
                        придумать свой протокол или заложить это на этапе проектирования «единой платформы»?

                        Ну смотрите: у нас есть протокол TCP/IP, в нем ничего не сказано про все эти браузеры, аськи, торренты и пр. Захотели почитать хабр — открыли браузер, захотелось скачать торрент — ставите торрент клиент. Или взять тот же протокол USB, которому грубо говоря пофиг что делает устройство, главное чтоб оно соответствовало стандартам. Благодаря этим стандартам уже операционная система понимает что тут воткнули флешку, а там воткнули wifi донгл.

                        Нужна хотя бы минимальная организация зоопарка устройств:
                        -Привет, я кнопка #5, я нажата
                        -Ок, спасибо.
                        -Привет я датчик температуры #2, дальше пойдут мои показания
                        -Ок, спасибо
                        -Привет, я датчик погоды на марсе, дальше идут мои показания
                        -Я тебя пока не знаю, спрошу как я у пользователя кто ты, дабы он установил нужный к тебе плагин.
          • 0
            В реальности чаще всего требуется включить/выключить свет, валяясь на диване (или сидя за компом), открыть/закрыть шторы или окно.

            Вот тут не соглашусь. Мне совершенно не влом встать и включить/выключить свет. Поэтому буду делать только поэтажное отключение линий освещения на случай если свет забыли погасить.

            Да и климат-контроль, в подавляющем большинстве случаев, отлично выполняется кондиционером в режиме «авто».

            В умной квартире может быть. В умном доме врядли. Примеры:
            1. Температура за бортом ниже -5, переходим на отопление теплым полом и конвекторами.
            2. Сигналка включена, дома никого нет, поддерживаем +5. За час до выезда с работы переходим на поддержание +20.
            3. Хозяина, алярма! Температура на одном из датчиков упала ниже критической отметки, еще немного и начнут мерзнуть трубы водопровода.
            Плюс еще тысяча вариантов для загородного дома, которые абсолютно неактуальны в квартире. Например поддержание минимальной температуры в комнате где сейчас никто не живет (гостевая, например).
            Так что идеальная платформа врядли появится, как не появится и идеальный автомобиль, который устроит сразу всех.
            • 0
              Да, разумеется, то что я говорил, относилось к квартирам. Все же, из людей, имеющих загородный дом и положительно относящихся к идее его автоматизации (то есть не тех, кто знать не знает не то что о смарт-хаусах, но и об интернете) меньше, чем желающих заиметь себе какую-нибудь автоматизацию в квартиру.

              >Мне совершенно не влом встать и включить/выключить свет.

              Вероятно, вы никогда не читали в постели / не лежали с планшетом до поздней ночи, когда уже начинаешь проваливаться в сон. В этом состоянии встать, дойти до выключателя, лечь обратно убивает настрой) Если тыкнуть одну иконку в планшете, то сразу отрубаешься после этого.
              • 0
                В загородном доме оно все же актуальнее. Особенно если в доме нет газа — надо максимально экономить электроэнергию :( В квартире, честно говоря, даже мысли не возникало умный дом городить.

                Вероятно, вы никогда не читали в постели / не лежали с планшетом до поздней ночи

                Постоянно или читаю или смотрю кино на планшете/телефоне до поздней ночи. Но один ньюанс — сплю в одной комнате с женой и ребенком, поэтому смотрю/читаю в одной комнате, а спать иду в другую. Мимо выключателя все равно прохожу :)
                Так что требования у всех разные — то без чего не может жить один, другому не нужно совершенно.

                А проблему с выключением света можно решить проходными выключателями — один в удобной точке, а второй около кровати. Либо беспроводные выключатели — mysku.ru/blog/taobao/20538.html. То есть опять же — смысла не вижу их в умный дом включать.
                • 0
                  Беспроводные бессмысленно. Мне может потребоваться зажечь/погасить свет когда я сижу за компьютером, когда лежу в кровати, когда вхожу в комнату, когда нахожусь за другим компьютером.
                  3-4 выключателя вешать — совершенно бессмысленное решение. Я за ту же цену, что эти ваши беспроводные китайские выключатели собрал вай-фай выключатель, задал ему статический адрес, занес в закладки на всех мобильных устройствах. Не нужно ни специальной программы управления, ни единой панели, просто с любого устройства браузером перехожу по адресу выключателя, нажимаю на картинку с лампочкой и все.
                  • 0
                    Ну что я тут могу сказать — каждому свое :)
    • 0
      Согласен, например у меня дома всё вышеперечисленное в топике делает погодная станция (+ еще ловит сигналы точного времени и настраивается на них) за 900 р. А вот если бы устройство выше хотя бы управляло микроклиматом в доме — включить/выключить обогрев пола, закрутить вентиль системы отопления, приотркрыть окошко, вот тогда это был бы хоть немного, но умный дом.
      Другой вопрос, как все данные передать и запрограммировать поведение. Но чтобы это сделать, надо быть семи пядей во лбу, более-менее готовые «из коробки» решения стоят немыслимых денег.
      Edit: Еще вспомнил, дома погодная станция запоминает максимальную и минимальную температуру за сутки, можно, например, утром глянуть до скольки градусов ночью заморозки были.
      • 0
        Если нет теплых полов, но есть кондиционер, то он и управляет микроклиматом — во всех кондиционерах есть слежение за температурой, он сам ее поддерживает.
        • 0
          А если есть теплые полы? А если внезапно включили центральное отопление на полную ради тестирования? Чтобы охлаждение кондиционера не боролось с отоплением, надо чтобы центральный компьютер (контроллер) координировал всех их вместе, встроиться просто так в мозги кондиционера уже не получится. Беда вобщем с умным домом для бедных. =)
      • 0
        Другой вопрос, как все данные передать и запрограммировать поведение. Но чтобы это сделать, надо быть семи пядей во лбу, более-менее готовые «из коробки» решения стоят немыслимых денег.

        Вот здесь как раз таки может помочь сила open source и open hardware. У одного человека уйдет много времени на реализацию всей системы, но много людей могут сделать все это по кирпичикам.
        • 0
          Да, но только эта система должна быть как Ардуино для микроконтроллеров, с низким порогом входа и дружелюбным программированием (конфигурированием). Я уверен, что большинство наработок так или иначе уже сейчас находятся в виде opensource, осталось дело за малым — собрать всё в одном месте и производитель железа/софта должен начать производство различных модулей (как шилды в ардуине) для низкобюджетного умного дома, может быть с помощью краудфандинга. А дальше китайцы подтянутся с различными модификациями и улучшениями.
          • 0
            Китайцам не нужно к нам подтягиваться, это нам до них добираться и добираться. С их производственными мощностями им можно вообще не думать о левых модулях.
            Раз не делают массово, значит, нет спроса на эту Великую Единую Систему. А вот на одиночные радио-выключатели, выходит, есть, потому что их они наплодили великое множество.
          • 0
            Да хоть готовые модули, хоть схемы для сборки, это не важно. Я, например, не очень люблю делать окончательные устройства на arduino, дешевле и интересней взять простой контроллер или датчик, чем покупать шилды (сколько писали о наценке на обычную тактовую кнопку, если она стала шилдом для ардуины).
            • 0
              Должно быть КАК ардуино. Наращиваемость, совместимость, удобство. Купил датчик протекания — подключил (ввел уникальный ключ Великой Единой Системы, добавил в главный конфиг регулярность проверки, действия на срабатывание, сохранил, забыл о нем). С открытыми исходниками, захотел изменить что-то — купил контроллеры и датчики самостоятельно и подключил по opensorce протоколу.
              Задача по созданию Великой Единой Системы как мне кажется больше организационная. Сначала надо собраться и выбрать место где весь будущий проект будет описан. На какой платформе разрабатывать будем, товарищи? =)
            • +1
              Пофантазирую немного. Суть Ардуинки — это правильно прошитый МК.

              Теперь представьте, есть борда, из нее торчит в одну сторону nRF-ка, в другую — ISP/UART для программирования, в третью — GPIO штук 10, есть простейшие модули типа ШИМ на симисторе, релюха, термодатчик и т.д., которые к этим GPIO штатно подключаются, и программируется эта балалайка из среды Arduino.

              Красота же, не? Ну теряем пару килобайт на бутлоадер, зато порог вхожения минимален, плата униварсальна, мелка, в люстру запихевательна, на балкон высувательна. Бери и строй.

              Если еще немного подумать, то можно и программировать по воздуху. Если не ошибаюсь, есть тут товарищ ClusterM, нечто похожее делал.
              • 0
                А с чего вдруг плата будет «мелка и в люстру запихивательна»?
                Как раз с повышением универсальности запихиваемость резко падает, вместо одной конкретной платы получаете убогие ардуинские этажерки.
                • 0
                  Это уже зависит от техпроцесса. Я говорю про нечто подобное:

                  image

                  Только nRF-ка вместо XBee. И разъемы можно сделать меньше. Да и трансивер на обратной стороне ардуины-мини-про уместить. В общем, было бы желание, и «бутерброд» можно сделать весьма компактным.
                  • 0
                    То, что на фотографии — совсем не компактное. Чем больше «универсальность», тем больше будет «шилдов», тем менее компактной будет система.
                    • 0
                      Похоже, вы не поняли мою идею. =(
                      • 0
                        >Теперь представьте, есть борда, из нее торчит в одну сторону nRF-ка, в другую — ISP/UART для программирования, в третью — GPIO штук 10, есть простейшие модули типа ШИМ на симисторе, релюха, термодатчик и т.д., которые к этим GPIO штатно подключаются

                        Вот ваша идея. Чем больше будет дробление на модули, тем габаритнее итоговая система по сравнению с единым блоком.
                        • 0
                          Модулей надо, по сути, три. Питание, процессорный модуль, силовой модуль. Это чрезмерное дробление (учитывая, что во многих обсуждаемых тут решениях как-то упускают вопросы питания и управления силовыми устройствами)? Мри грамотном модулировании, это будет платка 4 на 4 см, в 2 «слоя» шилдов.
                          • 0
                            Зачем питание отделять от процессорного модуля?

                            >простейшие модули типа ШИМ на симисторе, релюха, термодатчик
                            >Модулей надо, по сути, три.

                            То есть, если считать по вашему разделению, то к питанию и процессорному модулю можно будет подключить либо ШИМ на симисторе, либо реле, либо термодатчик. Иначе уже не три. Если я захочу в модуле сразу термодатчик и шим, то это уже 4 этажа, включая процессорный модуль и питание.
                            • 0
                              Именно так. Но это частный случай. Большинство юзкейсов — это три модуля. Питание, управление, силовой/измерительный.

                              • 0
                                Тогда накой черт городить ардуинчатую структуру, если вы сами видите, что большинство юзкейсов — это три модуля, причем процессорный и питания — обязательны?
                                Это не три модуля, это один — плата с радиоинтерфейсом, блоком питания и контроллером.
                                • 0
                                  Сделали мы такой модуль. Он красиво питается от 220 вольт, имеет атмелку на борту, передатчик, все дела. Ставить в машину или на объект с автономным или низковольтным питанием и… ой.

                                  Напомню, что ветка дискуссии началась с идеи «простой инфраструктуры с низким уровнем вхождения для новичков.» Можно и десяток бордов под все случаи жизни налепить, одни с питанием, другие с релюхой, третьи с сенсорами, но где ж тогда низкий порог вхождения?
                                  • 0
                                    В науке нет царских путей! =))
                                  • 0
                                    Мне кажется, что вы смешиваете два разных продукта — для потребителя именно модулей для смарт-хауса важно чтобы все начало работать с наименьшими затратами. Достал, тыкнул пару кнопок, заработало, забыл.

                                    А «низкий уровень вхождения для новичков» — это скорее про начинающих любителей покопаться в железках, покомбинировать разные модули, пописать конфиги…

                                    Это разные вещи, если пытаться всем угодить, будет и не для тех и не для этих)
                                    • 0
                                      Для воткнул-включил есть z-wave и Mi Casa Verde Vera. Вот там вообще все просто — модулей нужных набрал, воткнул, две кнопки и все пашет.
    • 0
      • +1
        Всем хорош. Только дорого :(
        • 0
          • 0
            Да софт то как-бы не критичен совершенно. Majordomo тоже умеет с z-wave работать, да и еще куча софта. Проблема в том, что несчастный свисток со всеми доставками под сотню баксов встает и модули минимум по полтиннику на потребителя. И чем сложнее модуль — тем дороже. У меня же вся система встает от силы в цену 2-3 модулей.
        • 0
          del
    • +1
      Если вам не нравится «велосипеды» не смотрите в их сторону. Устраивают стандартные часы — термометры — покупайте. Нравятся стандарты — разработайте. А я, например, до этой статьи не знал о существовании такого замечательного шилда (MaTrix) Так что «пусть цветут все цветы».
  • 0
    Подскажите насколько реально подключить к ардуине фотомодуль, даже самый позорный на 0.3 Мп?
    • 0
      Подключить-то можно, а что с ним дальше делать? Зависит от задачи.
      «Фотомодуль на 0.3 мп» — это, я так понимаю, имеется в виду cmos-камера.
    • 0
      Можно, но у ардуины не хватит ресурсов молотить картинку.
      • 0
        Ну если задача не реал-тайм, то для определенного круга задач может и хватить, только зачем оно нужно…
        • 0
          нет далеко не реал-тайм. нужно получить картинку доброго-вечного, очень редко меняющегося. чтоб это было «дёшево» (10-15 $), просто в реализации и достаточно миниатюрное ( 2 спичечных коробка, сигаретная пачка максимум)
          • 0
            Ардуина это уже не дешево)
            Дешевле СТМка и цмос-камера, у старших дспшных СТМок есть интерфейс к ней.
            Для ардуины пойдет любой модуль камеры с ебея со встроенным контроллером. А что за задача?
            • 0
              ардуино микро стоит 3$ если камера 10$ то вот и бюджет + с ардуино хоть как-то возился… К сожалению вот так не могу сказать, может в кулуарах. общие требования уже озвучил маленькое, питается от батарейки, просыпается не часто, делает небольшой снимок, отсылает по BT, комплект рассыпухи ~500р.
              • 0
                С такими запросами вам не уложиться в 10$-15$.

                Да и я не сильно приветствую всяческий геморрой с рассыпухой только ради экономии в 100-200 рублей.

                Проще поднакопить до 45$ и купить самую простую IP камеру. Но это цена новой, на барохолках можно и за 20$-30$ найти.
                С нее можно будет забирать картинку скриптовым запросом по крону. Всё элементарно.

                А пытаясь в данном случае смастерить собственный велосипед ради экономии… Вы не получите ни нормального решения, ни этой самой экономии.
                • +1
                  Нормальное решение можно получить, от задачи зависит. Даже с экономией можно.
                  Но надо хорошо знать что требуется и как это реализовывать, а не хватать ардуинчатые этажерки и шилды сразу)
                  • 0
                    Да, меня забавляет эта истерия с ардуиной)

                    Пока все решения что я видел — сплошные траты, уход от стандартов и непонятная перспектива наращивания новых функций. А если решение не имеет оправданий ни по качеству, ни по стоимости, но люди все равно его хотят и выбирают… Леонид Аркадьевич очень расстраивается…
                    • +1
                      Я тоже не вижу смысла с *дуинами морочиться. Одноплатник на арме, на него линупс и все дела. Это веселее, чем на *дуинах свои велосипеды программать. Хотя кому что нравится. Мне интереснее платы cape'а и исполнительных модулей развести, а потом все это в majordomo или подобной системе запрограммать. Кому-то в кайф под дуинки прошивки писать.
                      • 0
                        Дороговато-с. Если знаете примеры одноплатников на арме скромных размеров с пучком GPIO — буду рад примерам. Пока приходить в голову только легендарный WR703N. Только вот там все не слава богу…
                        • 0
                          BeagleBone Black. Немного больше чем wr703n, gpio — до 69 штук. Ценник — чуть больше полтинника с доставкой.
                        • +1
                          Да полно процессорных модулей.
                          Carambola-2
                          Aria G25
                          SOM2416

                          «Пучок GPIO», вообще говоря, не обязателен, если есть стандартный интерфейс типа USB, сделать на любом мелком контроллере или на ФТДИшке USB->GPIO — элементарно.
                          • 0
                            Вот это замечательно, спасибо.
                        • 0
                          Только что зашел на Али и нашел миниатюрные роутеры с USB в пределах 15 с доставкой.
                          Совсем не дороговато для задач автоматизаци и прочих шалостей =)
                          • 0
                            Ага, только осторожнее — некоторые настолько сильно урезаны, что даже как роутер не очень-то способны работать, молчу вообще про установку чего-то линуксообразного.
                        • 0
                          А как же Малинка?
                          • 0
                            Великовата-с…
                    • 0
                      бог с ней с ардуиной, нужна железка в половину сигаретной пачки, с камерой, wifi, долгой жизнью от батарейки при редком обращении. «Sensor Node Это ардуино-совместимый модуль» меня возбудили т.к. увидел знакомое слово и достаточное количество уже реализованных параметров, осталось дело за «малым» — выпаять ненужные сенсоры и припаять фотомодуль (в кавычках потому, что понятно что ещё нужно что-то вроде дров для модуля, да и просто ничего не бывает)
                      • –2
                        Раз!
                        www.aliexpress.com/item/Mini-pocket-Travel-USB-7in1-802-11-b-g-n-AP-Client-150Mbps-Wireless-WiFi-Router/1349686779.html

                        Два!
                        www.aliexpress.com/item/Crystal-clip-computer-camera-HD-free-drive-camera-with-night-lamp-bar-clip-camera/1378015481.html

                        Закатываем на все это дело Openwrt и наслаждаемся.
                        Идем, так сказать, проложенной дорогой, а не через бурелом.
                        • +1
                          Ага, только не стоит забывать еще и о

                          — разбираем (1) и (2), матерясь на китайский дерьмовый текстолит отпаиваем максимум лишнего, чтобы это все хоть как-то приблизилось к габаритам, оговоренным в ТЗ
                          — проектируем схему питания и заряда, заодно с хабом, если вдруг требуется не только камеру подключить
                          — в очередной раз материм китайцев за потребление всей этой бандуры, которая жрет всеми своими блоками — хабом, камерой и прочим, без возможности быстро увести в слип и вывести обратно.

                          • –2
                            За лирику — 5
                            За понимание сути и логику — 2

                            1) Если вы внимательно посмотрите параметры, то увидите что роутер меньше пачки сигарет.
                            Текстолит нынче у китайцев нормальный. Он же единственный, больше почти никто не делает.

                            2) Ну, возьмите уже с готовой батарейкой.
                            www.aliexpress.com/item/Portable-5in1-150Mbps-Mobile-Wireless-USB-3G-Wifi-Router-1800mAh-Power-Charger/1416611301.html
                            Хабов миниатюрных на том же Али завались!

                            3) Вам шашечки или ехать? Зачем постоянно уводить устройство в режим сна?

                            Вот вы уже и говорите что вам нужен хаб, так как вы собираетесь не только камеру туда подключать.
                            А еще нужна батарейка, а еще камера, питание, и все это в два спичечных коробка, ну максимум пачка сигарет. и потреблять это все должно мизер, да еще и уводиться в слип… Вы серьезно?

                            Вам тут выдали практически готовое решение, а вы как-то не особо прониклись.
                            Или вы так, чисто потрындеть?
                            • +1
                              Не вам мне тут ставить оценки.
                              Текстолит вместе с припоем в подобных устройствах очень часто дерьмовый. Если вам такого не попадалось, не значит что этого нет. Попробуйте отпаять разъем типа HDMI не повредив устройство, поймете о чем я.

                              Пачка сигарет — 85х55х25. В ТЗ говорилось о
                              >железка в половину сигаретной пачки.

                              Габариты роутера — 82x32x15 mm — сам по себе по тз с натяжкой подходит, но это без учета камеры, соеденителей, питания.

                              Постоянно уводить в слип — по ТЗ, иначе вы не выполните со своим подходом «в лоб» условие
                              >долгой жизнью от батарейки при редком обращении.

                              То что вы тут выдали (вам — это кому, кстати? Не я запрашивал это устройство, может, вы перепутали с тем, кто задал вопрос изначально?) — кривое лобовое решение, которое не может обеспечить всех требований.
                              Я потрудился вам указать, каких именно требований оно не обеспечит и с какими проблемами предстоит столкнуться, так как уже достаточно китайщины пересобирал под новые задачи.

                              И — да, я серьезно. При проектировании с нуля можно сделать устройство габаритами в пол пачки сигарет, с камерой и аккумуляторами, которое в режиме сна будет потреблять меньше миллиампера.
                              • –2
                                И — да, я серьезно. При проектировании с нуля можно сделать устройство габаритами в пол пачки сигарет, с камерой и аккумуляторами, которое в режиме сна будет потреблять меньше миллиампера.

                                За 20 баксов?
                                • +1
                                  При массовом производстве — даже дешевле.
                                  При единичном — можно уложиться, в принципе. В 20 трудно, в 30 можно. Если не платить за производство платы, а сделать ее самому. Модуль камеры — порядка 3 баксов из китая. Аккумулятор порядка 7 баксов, ДСПшная СТМка — тоже порядка 7, микросхема конвертера с расссыпухой+микросхема заряда — еще 10. При желании можно вместо контроллера заряда использовать саму СТМку.

                                  Как бы то ни было, я указал вам на реальные недостатки предложенного решения, нечего вскидываться и бросаться защищать китайскую промышленность, они и без вас справятся.
                              • –4
                                Если есть задача и ее можно решить лобовым способом с перспективой расширения — нужно идти этим путем. А садиться и проектировать «то, чего не белом свете отродясь не может быть» под специфичную узкую задачу… Это еще хуже ардуиноманьяков. Там хоть какая-то худо-бедно, но стандартизация.
                                • +3
                                  >Это еще хуже ардуиноманьяков

                                  Это называется «инженер». Моя работа, большей частью, садиться и проектировать «то, чего не белом свете отродясь не может быть». Потому что такие вещи, как правило, ценятся намного больше, чем хренотень из обломков китайской электроники, которую на коленке может собрать школьник.
                                  • 0
                                    была бы возможность плюсанул.
                                  • 0
                                    А мы тут пиписьками меряемся или задачу решаем?

                                    Тратить уйму времени на разработку, травление платы, припаивание всего этого дела.
                                    А если в процессе что-то из рассыпухи запороть?

                                    Если задачу можно решить за меньшие деньги, с меньшими затратами по времени, используя стандартные компоненты и уложиться в ТЗ, но человек выбирает вариант дороже, дольше по времени, да еще и при этом называет себя инженером…
                                    Я вас разочарую, у этого феномена очень много названий, но никак не инженер.
                                    • 0
                                      Ничем не меримся.
                                      Я примерно понял, что вы предлагаете: взять минироутер (раз), подключить к нему камеру (два), написать/изменить прошивку.
                                      Но нужно законченное устройство, без возможности расширения бантиками, партией в 500 штук.
                                      Поэтому меня и заинтересовал модуль «Sensor Node», в моём случае нет нужды ни в доп выводах, ни в термодатчике, нужен только фотомодуль.
                                      • 0
                                        Про партию, наверное, нужно было в самом начале упомянуть, да?
                                        Как и про отсутствие возможного расширения.
                                      • +1
                                        Если партия 500 штук, вам можно забыть об ардуинах и выбирать удобную для вас платформу, при таком объеме вы уже сможете произвести устройство существенно дешевле.
                                        • –2
                                          Ардуина не отменяет возможность делать партию устройств. Проверяем идею на ардуине, после того как сработало — разводим свою платку удобным способом и пускаем в производство. Схемотехнически — та же самая ардуина, но гораздо компактней.
                                          • +2
                                            Это не ардуина называется) Народ почему-то начал забывать название контроллеров, AVR)
                                            В партию-то все равно пойдет не ардуина (плата-этажерка), а АВРка.
                                            • 0
                                              Неудачно выразился, да… схемотехнический эквивалент.
                                              • 0
                                                Ну так против АВР я ничего не имею, они сейчас сильно понизили потребление, благодаря чему несколько разошлись с кортекс-Мх — не то чтобы совсем перестали конкурировать, но получили отличные ниши, куда кортексу влезть сильно труднее — у них в активном режиме потребление как у кортекса-М3 во сне)
                                          • 0
                                            Так и есть, Sensor Node как раз так и создавался — сначала были проверены некоторые основные гипотезы с помощью ардуинки и беспаечной макетки. Потом взял и развел компактную плату (выкинув все лишнее, но добавив то, что нужно).

                                            Этот модуль можно использовать как просто «АВРку», но для того, чтобы было проще — в него залит бутлоадер от ардуино и после этого нехитрого действия — используем для программирования среду Ардуино.

                                            Тем самым, понижаем стоимость «входа».
                                            • 0
                                              Вот именно это я пытался предлагать в одном из тредов где-то тут рядом =) Спасибо за воплощение идеи!
                                    • +2
                                      Еще раз: вы предложили «решение», которое не проходит ни по потреблению, ни по габаритам.
                                      И, очевидно, непригодно для серии, но это ладно — про серию не упомянули. А вот про потребление упомянули.
                                      В ряде случаев это решение в самом деле будет работать, в ряде — даже будет оптимальным. Но у него есть существенные ограничения и недостатки, на которые я указал, особенно с учетом требований.
                                      Вы же начали рьяно его отстаивать как Единственное И Самое Верное Решение Проблемы, пытаться выставлять оценки, бить себя пяткой в грудь и считать остальных по умолчанию идиотами, которым не приходит в голову забить болт а требования и наваять систему костылей и подпорок из китайских обломков.

                                      Ну нравится вам считать, что у вас самое лучше, всем подходящее решение без недостатков — продолжайте, я вам все аргументы привел, все до вас попытался донести. Не хотите воспринимать — не надо, меня этот спор утомил, продолжать его смысла не вижу.
                                      • 0
                                        Свои фантазии на тему того что я думал оставьте при себе.

                                        Я не доказывал что мое решение лишено недостатков или единственно правильное.
                                        Оно полностью соответствует ТЗ, весьма дешего стоит и имеет свои недостатки.

                                        При слове «Партия устройств», конечно, я бы не стал предлагать такое решение, но и ни в коем случае не предлагал бы ардуино. И нечего минусовать, коль при отсутствии нормального ТЗ потом вдруг всплывают особенности. Я не телепат.
                      • –1
                        Старенький мобильный телефон… отключить радиомодуль, включение по расписанию…
                        Не так давно тут была история с треком посылки, в которую положили старенькую нокию выходящую на связь 2 раза в сутки и отслеживали её координаты. То же самое можно ведь сделать и с камерой…
                  • 0
                    С экономией — это если кто-то уже разработал такое устройство а тебе остается только 2 вечера на то чтобы повторить один в один. Вы в «экономию» не учитываете потерю времени, сил и средств на разработку решения. Одна еда потраченная на время разработки может обойтись больше чем купленное готовое решение с лучшими характеристиками.
  • 0
    Индикатор, чтобы не создавать с нуля есть на Ebay продаются готовые панели из матриц с геометрией 24x16 точек с 4-мя уровнями градаций яркости. Управляется по SPI и можно повесить до 4-х модулей на одну шину с выбором по индивидуальному сигналу. Обновляет картинку он самостоятельно, аппаратно — контроллеру достаточно записывать в него данные только в моменты необходимого обновления картинки.
  • 0
    А что это за зверушка такая, 74HD138D? Информации почти никакой.
    • 0
      • 0
        Спасибо.
      • 0
        Оу… для таких же как и я(чтобы не лезть в даташит) — это двоичный дешифратор 3 в 8 с 3-мя разрешающими входами(один прямой и два инверсных).
        • 0
          Да, так и есть. В моей схеме разрешающие входы используются для гашения и регулировки яркости, а сам дешифратор — для того, чтобы вместо 8 пинов меги использовать всего три.
          • 0
            Просто из ссылки на даташит это явно не вытекает, чтобы узнать надо окунуться в даташит. Даташит может найти любой, поэтому правильней было бы описать функциональное назначение элемента, а если человека заинтересуют подробности он обратится к даташиту найденному через гугл, а если даташит не ищется на первой странице выдачи тогда можно привести и ссылку на него.

            Кстати есть специальные 16-битные(и 8-битные тоже) регистры сдвига с интегрированными источниками тока с регулировкой тока одним выводом для всех выходов(приемлем как ШИМ так и аналоговое регулирование). Что позволяет строить светодиодные матрицы со скважностью 1:8 и средним током через каждый светодиод 10мА.
            В качестве источника импульсов для общих строк/столбцов можно использовать аналог нашей 561ИЕ8 — 2 вывода для управления, или достаточно 1 если есть уверенность в строгой синхронизации на 1-й строке(например схема сбрасывающая счетчик на 0-ю строку если появилась пауза в тактовых импульсах).
  • +3
    У меня двоякое ощущение.
    С одной стороны, делать все на шилдах, без каких-то перспектив на трансформирование портотипа во что-то серийное не тру. Вот попросят тебя это где-то реализовать — не будешь же ты весь этот конструктор покупать и собирать.
    С другой стороны, это вероятно как раз то что я искал. В частности вот этот шилд Shield MaTrix. Я неспешно вынашивал идею реализовать что-то похожее, но конкретно момент с LED-матрицами меня останавливал ибо пихать в макетку сами матрицы это тупо а травить под них плату как-то лениво, вероятно в итоге разорюсь на такую штуку.
  • +1
    Вот, люди всегда, как мне кажется, перегибают палку с мобильностью и минимизацией всего и вся.
    Да, решения получатся красивые. Питаются чуть ли не от ионистора, заряжаемого солнечной батареей.
    И умещаются в спичечный коробок. Но как только заходят мысли от том что неплохо было бы не просто команды передавать, а еще снимки с камеры, или звук. А потом захочется еще и распознавание голоса прикрутить, а потом и OpenCV. Но у нас ардуина микро и придется ее выкинуть, заменив чем-то еще. Мне лично такой подход не нравится. Это все равно что строить дорогу в другой город, но только для мотоциклов/велосипедистов.
    Да, очень дешего, результат достигнут, ресурсов потрачено мизер, но почти сразу встает вопрос о том что нужно расширяться.
    Есть же старый добрый WiFi. У любого роутера есть UART. Есть даже возможность другие шины использовать через переходник или GPIO, минимально помахав паяльником.
    Не понимаю я всей этой ардуиномании. Игрушечка для того чтобы покрутить сервоприводами или поморгать светодиодами/вывести надпись на табло. А потом? Модули от ардуины колхозить к другому узлу? Колхозить переходник?

    Не понимаю я этого всего минимализма…
    • 0
      Если колхозить вместо вас будут квалифицированные инженеры, которые подумают про архитектуру устройства, то почему бы и нет?
      • 0
        Они не телепаты.
        Откуда им знать?
    • 0
      На самом деле для начала на поиграться хватит и wr703n. Порог вхождения 20 баксов. А дальше можно, сохранив полностью весь код, менять ядро системы на более мощное.
      • 0
        Мне сегодня приехал Raspberry Pi за целых 32 бакса. Однако, умеет он куда как больше 703-го. Есть и такой в хозяйстве, бестолковая, в целом, штука. Так что если уж начинать, то в качестве ядра системы брать малинку.
        • 0
          Малинка очень хорошо для таких задач подходит. Одна беда, беспроводку к ней надо докупать.
          А тут все в комплекте.

          Да и роутеры сейчас пошли вполне себе производительные.
          • 0
            Для 703-го нужно докупать всего-то флешку, хаб, USB-UART, и, внезапно, что-то ардуино-подобное, если нужно больше одного GPIO. Немного поупражнявшись в прошивке девайса, можно отказаться от USB-UART.

            Давайте по минимуму. Хаб — 3 бакса, флешка, пусть 4 бакса, переходник — 2 бакса, итого: 22 + 9 = 31 бакс. Малинка 34 (если с картой заказывать сразу) + 4 за свисток = 38. Разница в 7 уе и пропасть в производительности, надежности и удобстве.

            Я за малинку =) Роутер, по моему скромному мнению, по серьезному, не годен ни на что, кроме датчика уличной температуры.
            • 0
              http://habrahabr.ru/post/159745/ — Устройство, собранное только из роутера и твердотельного реле. Позволяет управлять нагрузкой по Wi-Fi через встроенный веб-сервер, никаких флешек, переходников, хабов. Собрал год назад, работает без нареканий.
              • 0
                Да, читал. Но это ограниченный юзкейс, согласитесь. 703-й — 1 шт. GPIO, 3020-й — 3 шт. GPIO. После правильной прошивки — встроенный УАРТ в ущерб дебаг-консоли. Куцый он, вобщем. Вон вверху Carambola-2 предложили. Вот на это стоит посмотреть, если стоят задачи «веб-сервер в каждую люстру».
                • 0
                  Карамболу я и предложил.
                  Да, ограниченный, но тем не менее — роутер явно годен не только на датчик уличной температуры. Во многих ситуациях он отлично сработает.

                  Карамбола всяко приятнее — это без вопросов. Но она, к сожалению, несколько подороже, и, главное — роутер можно взять в любом магазине, а карамболу придется заказывать, платить за доставку и ждать пока приедет.
                  Если бы не это, переделал бы свою люстру на нее)
                  • 0
                    Простите великодушно, не уследил =)

                    Окей, какие таски у вас выполнял роутер? Давайте делиться опытом. Я, например, делал на нем только 3 вещи: температура, видеонаблюдение, моргалка лампочками через уарт и техасский лончпад. И ни с одной задачей он не справился. Посмотрите график, даже температуру посылает через пень-колоду. Почему — загадка. Молчу уже про постоянно отваливающуюся камеру, непонятные подвисания и пропадающий время от времени вай-фай на устройстве. Прошивки менял, БП менял, хабы менял, все без толку. Может это мой экземпляр неудачный, однако, он был куплен «в любом магазине», и где гарантия, что другой такой будет работать как надо?
                    • 0
                      Ну основной таск — в течение года контроллит люстру по вай-фай)
                      Был еще таск по сбору информации об окружающих вай-фай точках. В последствие решение было перенесено на другую аппаратную платформу, но в целом он справлялся.

                      Просто та же карамбола — тоже довольно хилая платформа. Для люстр и датчиков пойдет, но при нагрузке, думаю, будет вести себя примерно как роутер — железо у них схожее.

                      Хороши китайские мини-компы на Allwinner A10(S), от них если лишнее поотпаять, получается компактная платка-проц.модуль габаритами примерно 80х25 мм, которая намного производительнее и карамболы и роутеров.
                      • 0
                        Люстрой управлять и погоду собирать — задачи почти схожие. Что то, что то — адов оверкилл. Если бы роутер у вас управлял лампочками по всей квартире, собирал бы показания погоды, следил бы за стоянкой авто, хостил бы картинки и погоду питоновым скриптом и реализовывал управление светом в квартире по сценарию, не забывая включать кофеварку по утрам, при этом не падая и не зависая, тогда бы я удивился =)
                        • 0
                          Это не оверкилл, стояла вполне определенная задача — с минимальными затратами получить надежное решение, позволяющее мне из любой точки комнаты включать-выключать люстру с мобильных устройств либо стационарных компьютеров. Одну, конкретную люстру.

                          При любом проектировании устройств на кастомных радиомодулях, с кастомными протоколами, 24/7 поднятым сервером управления и прочим я бы проиграл по всем, вообще по всем статьям.
                          Кроме весьма эфемерного «может когда-то мне захочется еще и смотреть за температурой в туалете, не вставая с кровати».
                          • 0
                            И вот честно, оно работает? Хорошо и стабильно? У меня вот такая бабалайка на выходе:

                            image
                            • 0
                              Абсолютно честно — я же говорю, ровно год как внедрил это решение.
                              За год только раза три была недоступность роутера — и то, решалось перезапуском моей вай-фай точки (той, к которой он коннектился) — полагаю, если бы я не поленился и добавил пинг и авто ifdown-ifup, то этого бы вообще не было.
                              • 0
                                … что лишний раз заставляет меня думать про ненадежность китайских роутеров в частности и бренность бытия в общем.

                                Малинка у меня работает как часы. Да, собственно, часами интересными и работает =) (может рожу статью на хабр), и хоть бы раз упала.

                                Вобщем, я снова за Малинку и против роутеров для всего, что сложнее валенка.
                                • 0
                                  Ну в малине-то проц помощнее, памяти побольше и т.п.
                                  Посмотрите на китайские мини-компьютеры на A10, пока более чем стабильно работают.
                                  • 0
                                    Да, как только появится под него задача — посмотрю обязательно.

                                    Малинка чем хороша… да простят мне святотатство, но это ардуина среди одноплатников с армом. Огромное комьюнити, тысячи юзкейсов, сотни плат расширения, и тот самый низкий порог вхождения. Ибо разжевано. осталось проглотить.
                                • 0
                                  … НЕ сложнее валенка…
                                  • 0
                                    Нет, я не опечатался. Если задача атомарная, вроде погода, моргалка лампой, микрохостинг статической странички с результатами той же погоды, да, катит роутер. Если нужно что-то сложнее — то малинка.
        • 0
          Не, лучше 20 докинуть и взять BBB. Пи тормозная, выходов мало, жрет много, управления питанием нормального нет, выглядит по схеме и по исполнению как дипломная работа студента. У меня 2 штуки есть — наигрался уже с ними.
          • 0
            Окей, если мы говорим про одноплатник на арме в каждой люстре, то не круто ли будет по 50 баксов платить, не считая силовой обвязки?
            • 0
              А на фига он в каждой люстре? Его в центр системы, на него вешаем всю логику, а в люстры уже чисто исполнительные модули. Модули же уже не принципиально на чем делать — от копеечного 1-wire до z-wave для богатых :)
              • 0
                Значит, я где-то потерял нить дискуссии =) По моему, был разговор про универсальный модуль экосистемы на одноплатнике с армом, к которому можно подключать от холодильника до веб-камеры и датчика температуры. Имея подобные высокоуровневые модули, остальное можно реализовать программно.
                • 0
                  А тут уже параллельно пошло обсуждение, что умные модули как-то особо и не нужны, хватит тупых и мозга в центре. Или я тоже не совсем правильно все понял :)
  • 0
    Да, как-то непонятно. С одной стороны, простые специализированные устройства «на местах» помогут сделать универсальные, простые, экономичные, и, самое главное, дешевые конечные устройства. С другой стороны, проблема универсальности протоколов имеет место быть. Уйдя в «линукс в люстре», мы сможет абстрагироваться от самодельных протоколов и использовать что-то высокоуровневое. Даешь веб-сервер в каждой люстре, короче =)

    С удовольствием продолжил бы дискуссию ан профильном ресурсе.

    edit: не в ту ветку, пардон.
    • 0
      Ту просто два разных подхода к решению задачи схлестнулись :)
      Одни хотят в оконечные устройства микроконтроллер поставить. Другие — в центре поставить мощное ядро (одноплатник, роутер, комп на атоме), а в оконечники самый минимум, чтобы можно было термодатчик опросить или симистор/реле дернуть. Камеры и прочие сложные вещи использовать готовые с подключением через рабочие протоколы типа ethernet или wi-fi.
      Как-то так я это понимаю.
    • 0
      Это вы про какой ресурс? =))
      • 0
        Вот знал бы, уже был бы там =) Понадеялся, что общественность поймет намек и накидает полезных ссылок на тематические форумы. =)
        • 0
          Ну, тогда подождем, может кто и напишет)
  • 0
    Дополнительно на плате имеется:

    Пьезо-излучатель «пищалка»
    ...

    Насколько я могу судить по фото, там не пьезоизлучатель, а электродинамический зуммер.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.