Хабрахабр

[Из песочницы] Становление термостата: как это получилось

После нескольких лет плодотворной работы, было принято решение вынести на суд общественности наш первый продукт для управления климатом в умном доме — умный термостат для управления теплым полом.

Что это за устройство?

Это – умный термостат для любого электрического теплого пола до 3кв. Управляется через приложение, web-страницу, HTTP, MQTT, поэтому легко интегрируется во все системы умного дома. Для самых популярных мы разработаем плагины.

Также при помощи nrf термостат сможет коммуницировать с различными датчиками. Можно управлять не только электрическим теплым полом, но и термоголовкой у водяного теплого пола, котлом или электросауной. Так как устройство основано на ESP, мы решили, что отбирать у пользователей возможности кастомизации будет неуместно. Сейчас в разработке почти все датчики, связанные с климатом. Поэтому мы сделаем так, чтобы пользователь мог перевести устройство в режим разработчика и установить другую прошивку, например, с поддержкой HomeKit или сторонних проектов.

*после установки сторонних прошивок с поддержкой HomeKit или других популярных проектов, возврат на оригинальную невозможен через ОТА (Over-the-Air).

Сложности, которые нам встретились

Сказать, что их не было, было бы глупо. Я постараюсь описать наиболее сложные появившиеся проблемы и то, как мы их решили.

И по затратам ресурсов, и по затратам времени (разрабатывали около года). Корпус для устройства был сложной задачей.

И самый популярный – это 3D печать. Вариантов на рынке была масса. Качество оставляет желать лучшего, скорость производства тоже. Давайте прикинем:
Классическая 3D печать. Мы использовали 3D печать для прототипов, но для производства это не годилось.

Тут качество в разы лучше, но вступает эффект цены. Фотополимерный 3D принтер. Можно купить свой принтер, что снизит цену, но все равно цена будет космической, а скорость неудовлетворительной. Прототипы, распечатанные на подобном принтере, встали порядка 4000₽, и это одна часть корпуса из двух.

Мы считали это оптимальным вариантом. Литье в силикон. Даже была заказана первая партия в 20 корпусов для полевых испытаний. Качество было на уровне, цена высокая, но не критично.

В один из вечеров, я случайно во внутреннем чате для разработчиков опубликовал, что с корпусами косяк, цена высоковата. Но все изменил случай. И можно на первом этапе изготовить пресс форму для него. И на следующий день коллега написал в личку, что есть у друга его друга ТПА (термопласт автомат). Это сообщение изменило всё!

Меня останавливала цена пресс формы. Я и до этого рассматривал использование ТПА, но меня останавливало даже не необходимость заказать партию в 5000 шт минимум (хотя если постараться можно и меньше найти через китайцев). Эту сумму я не готов был выложить разом. Около $5000. К тому же, он пошел нам на встречу и мы договорились, что оплата будет в рассрочку. Сумма же за пресс форму через нашего новоиспеченного коллеги была не космической, варьировалась в районе $2000-$2500. Так проблема с корпусами была решена.

Вторая и не менее важная сложность с которой мы столкнулись — это железо.

По скромным подсчетам представленный вариант – это седьмой, не считая промежуточных. Не счесть количество ревизий железа. В нём мы постарались решить все недостатки, выявленные в процессе испытаний.

Сейчас без него устройство не пойдет в серию: по причине капризности выбранной нами платформы.
Ещё аналоговый вход на ESP. Так, ранее я считал, что в аппаратном «watchdog» нет необходимости. Но у ESP аналоговый пин только один. Ранее думал, что каждый пин ESP является универсальным. Узнать это довелось на практике, что привело к переделке и перезаказу печатных плат.

Первая версия печатных плат

Вторая версия печатных плат

Предпоследняя версия печатных плат, где пришлось экстренно решать проблемы с аналоговым пином

Что касается ПО, то тут также была куча подводных камней.

При том, что пинг до нее идет, страница не открывается. Например, периодическое отваливание ESP. Возможно, есть и другие, но все нами перепробованые не дали результата. Решение одно – переписывание библиотеки.

Используя GET или ajax, мы столкнулись с тем, что количество запросов становилось неприлично большим. Второй значимая проблема, как ни странно, количество запросов к ESP при открытии страницы. Решением стало перейти на web сокеты. Из-за этого ESP вела себя непредсказуемо, могла просто перезагрузиться или обрабатывать запрос несколько секунд. После этого количество запросов снизилось в разы.

Больше информации о нем будет в отдельной статье, что будет опубликована позже. Третья проблема – это web интерфейс.

JS. Пока лишь скажу, что самый оптимальный вариант на данный момент использовать VUE.

Данный фреймворк самый подходящий из всех, что нами были опробованы.

Варианты интерфейса можно посмотреть по ссылкам ниже

adaptive.lytko.com
mobile.lytko.com

Становление термостата

Преодолев все сложности, мы пришли вот к какому результату:

Конструкция

Термостат состоит из трех плат (модулей):

  1. Управляющая;
  2. Управляемая;
  3. Плата дисплея.

Управляющая – плата, на которой расположены ESP12, Аппаратный «watchdog» и nRF24 для работы с будущими сенсорами. На старте устройство поддерживает цифровой сенсор DS18B20. Но нами была предусмотрена возможность подключения аналоговых сенсоров сторонних производителей. И в одном из будущих обновлений ПО устройства мы добавим возможность использовать сенсоры которые поставляются с термостатами сторонних производителей.

Там расположили БП на 750мА, терминалы для подключения датчиков температуры и реле на 16А для управления нагрузкой. Управляемая – плата питания и управления нагрузкой.

4 дюйма. Дисплей – на этапе разработки мы выбрали дисплей Nextion 2.

От себя добавлю, что он удобен почти всем, кроме цены. Про него можно легко найти информацию в интернете. 4 дюйма обходится в районе 1200₽, что не лучшим образом сказывается на конечной цене. Дисплей размером 2.

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

4 дюйма с тачскрином и плата с STM32 на борту для управления им и снижения нагрузки на ESP12. Аналогом будет служить матрица 2. Все управление будет аналогично Nextion по UART, так же память на 32мб и полноценная флеш карта для записи логов.

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

Например, уже есть варианты “платы 2” в нескольких исполнениях:

  • Вариант 1 – для теплого пола. Питание от 220в. Реле управляет любой нагрузкой после себя.
  • Вариант 2 – для водяного теплого пола или клапана батареи. Питание от 24в переменного тока. Управление клапаном на 24в.
  • Вариант 3 – питание от 220в. Управление отдельной линией, например котлом или электро сауной.

Послесловие

Я – не профессиональный разработчик. Мне удалось объединить людей одной целью. По большей части, все работают за идею; ради того, что бы сделать что-то действительно стоящее; то, что будет полезно конечному пользователю.

Это ваше право! Я уверен, что кому-то не понравится дизайн корпуса; кому-то – внешний вид страницы. Если нет таких вопросов, как выше по тексту, будем рады пообщаться в комментариях. Но мы прошли весь этот путь сами, сквозь постоянную критику того, что мы делаем, и самое главное — зачем.

Конструктивная критика – это хорошо, и мы за неё благодарны.
История возникновения идеи здесь
Для заинтересовавшихся:

  1. По всем вопросам: группа в Telegram LytkoG
  2. Следить за новостями: информационный канал Telegram Lytko News

И да, мы кайфуем от того, что мы делаем.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть