Продолжаю рассказывать про разработку железа у нас. Итак, розетка. Умеет включаться и выключаться по команде, имеет датчик температуры.
Ситуация опять на первый взгляд достаточно простая: есть готовое устройство, в целом понятно, как оно работает — но на массовый рынок оно не вышло. Слишком сложное, непонятное и хлопотливое в обычном использовании для человека без IT-образования. Да и стоит довольно много. Хочется удобнее, проще, понятнее и дешевле.
Серийная модель в разборе. Основные вещи: корпус, сама розетка, плата контроля напряжения с конденсатором, плата с контроллером, радиомодуль с антенной, SIM-слот.
В отличие от трекера, где нам пришлось очень много работать с железом, розетки у нашего партнёра-производителя уже были «в форме» и, в целом, отлично себя показали. Основные проблемы крылись в ПО, причём как низкоуровневом, так и высокоуровневом.
Сеть розеток
Конечно, сразу захотелось избавиться от SMS-канала. Обычные розетки отправляют и принимают SMS сами. Это не очень надёжно и довольно дорого для владельца. Значит, мы совершенно со спокойной совестью удешевляем использование за счёт применения GPRS. Это уже режет затраты для владельца почти втрое.
Все команды розетке приходят с нашего сервера. Вся телеметрия уходит на наш сервер. Пользователь взаимодействует с этим сервером, хотя, для него он выступает чем-то вроде прозрачного прокси. Сервер же контролирует, что команда дошла. И он же отправляет SMS со статусом — абоненту не надо тратиться на каждое отдельное сообщение.
То есть введением промежуточного сервера-посредника мы добились сразу трёх важных эффектов:
- Розетка стала дешевле в эксплуатации (мы смогли обозначить фиксированные 99 рублей в месяц вместо непонятных затрат).
- Мы получили возможность «накручивать» любые скрипты поверх железа без модификации этого железа.
- И у нас появилось место, где можно легко и быстро настраивать и конфигурировать устройство без программатора и подключений к чему-либо. Дружелюбных интерфейсов на тот момент просто не было, а нам сразу хотелось сделать розетку понятной даже пенсионерам.
Важным фактором перехода с SMS-отправки с самой розетки до GPRS-связи с сервером стало ещё и то, что при использовании большого количества устройств в многолетней перспективе (года через три-четыре, когда их, возможно, будет сотни тысяч на район), мы создадим проблему перегрузки SMS-канала. На рынке был и вариант GPRS-розетки, но по стоимости покупки и эксплуатации получалось почти в два раза выше, чем хотели мы.
Функционал ПО
Итак, сама по себе розетка умела изначально обрабатывать SMS, отвечать на них другими SMS, отдавать данные датчика и замыкать-размыкать контакты по команде от чипа. Внутри самого устройства была реализована вся логика — это и функции расписания, и реакции на температуру и остальное. Фактически, всё это было захардкожено, и любое изменение алгоритма означало необходимость перепрошивки устройства. А мы очень мало верили в то, что кто-то на массовом рынке будет серьёзно перепрошивать розетку.
Итак, мы вынесли почти всю логику на сервер. Сервер умеет следующие вещи:
- Отдаёт команды розетке, убеждается, что розетка отработала. Аналогично — для других прямых команд.
- Реализован интерфейс создания расписания и реализация отправки команд по наступлению заданного времени.
- И там же может программироваться реакция на разного рода события, например, изменение температуры. Пользователь задаёт в очень простом интерфейсе нужные условия, а сервер выступает в роли программатора розетки, передавая это вниз по техническому стеку (как если бы пользователь впрямую записал новый конфигурационный файл на неё).
Интерфейс настройки расписания и скриптов
Лог температуры в нашем офисе.
Тесты
Что продукт станет востребован, мы с радостью поняли почти сразу. Дело в том, что первым пользователем устройства стал наш программист WEB-интерфейса, который не раздумывая воткнул одну перед своим сервером. Как он объяснил — это самый простой способ удалённо его перезагрузить.
Все бета-тестеры сразу вспоминали про свои дачи. После пары слов про то, что хорошо бы получить идеи использования, связанные с термодатчиком, в программу тестирования неожиданно ворвался сразу директор нашего филиала. «У меня в прошлом году на даче замёрзли трубы — давайте прототип» — и взял одно устройство. Он же стал самым активным бета-тестером, потому что трубы на даче его волновали довольно сильно. Постоянно писал примечания, объяснял, что именно хочется поменять в интерфейсе и так далее.
Ближе к зиме мы поставили прототипы у себя в офисе и настроили на включение обогревателей за 1 час до начала рабочего дня. Оказалось очень удобным — тепло, и никакого лишнего расхода энергии на ночь. Есть пара моментов — стиральная машина вряд ли включится по подаче питания, так как большая часть моделей имеет свой программатор и требует дополнительного ручного нажатия на кнопки для старта. Также, например, ведут себя интеллектуальные нагреватели (с пультом управления).
Смотрели и на краш-тесты — розетка должна переживать аварийные ситуации и сообщать об этом. Соответственно, в финал вошли следующие функции:
- Защита от короткого замыкания обеспечивается стабилитронами.
- При любой нештатной потенциально опасной ситуации розетка размыкает цепь (на входе питания).
- Энергии после отключения питания хватает на 15 секунд работы радиомодуля и платы. Поскольку GPRS-сессия открыта постоянно, этого времени вполне хватает на отправку аварийного сигнала на сервер, чтобы он уведомил владельца о проблеме.
Учитывая, что мы всё равно работаем с термодатчиком, пользователи попросили собирать график температуры в личном кабинете. Это было совсем просто, но очень интересно.
Итог
Стоимость устройства — 2700 рублей, абонплата — 99 рублей в месяц (туда входит неограниченное количество SMS-оповещений).
- Мощность подключаемых приборов: до 3 кВт.
- Нагрузка на выходе: до 16А – постоянная нагрузка, до 70А – кратковременная нагрузка.
- Собственное потребление: 110-180mA.
- Автономная работа на конденсаторе 15 секунд.
- Защита от короткого замыкания.
Вот что мы получили от юзабилистов:
В целом — продукт очень понятен и с технической стороны нареканий не имеет. Тем не менее, обычным пользователям освоить его с первой попытки затруднительно. Главные шаги – нужно дорабатывать web-интерфейс. Мы уже после этих результатов поправили инструкцию по установке, изменили немного интерфейс, реализовав пошаговую регистрацию, и свели всё управление на одну вкладку. Пользователям понравилось больше. Также мы решили не делать управление устройством через IVR, а планируем делать мобильные приложения вместо этого.
P.S. Розетка сейчас продаётся в Петербурге и Калинингаде, в ближайшее время — по всему Северо-Западному региону.
Автор: Beeline_spb_lab