Після кількох років плідної роботи було ухвалено рішення винести на суд громадськості наш перший продукт для управління кліматом у розумному будинку — розумний термостат для управління теплою підлогою.
Що це за пристрій?
Це розумний термостат для будь-якої електричної теплої підлоги до 3кВт. Керується через програму, web-сторінку, HTTP, MQTT, тому легко інтегрується у всі системи розумного будинку. Для найпопулярніших ми розробимо плагіни.
Можна керувати не тільки електричною теплою підлогою, але й термоголовкою у водяної теплої підлоги, котлом або електросауною. Також за допомогою nrf термостат зможе спілкуватися з різними датчиками. Зараз у створенні майже всі датчики, пов'язані з кліматом. Оскільки пристрій заснований на ESP, ми вирішили, що відбирати у користувачів можливості кастомізації буде недоречним. Тому ми зробимо так, щоб користувач міг перевести пристрій у режим розробника та встановити іншу прошивку, наприклад, за допомогою HomeKit або сторонніх проектів.
*Після встановлення сторонніх прошивок з підтримкою HomeKit або інших популярних проектів, повернення на оригінальну неможливе через ОТА (Over-the-Air).
Труднощі, які нам зустрілися
Сказати, що їх не було, було б нерозумно. Я постараюся описати найбільш складні проблеми і те, як ми їх вирішили.
Корпус пристрою був складним завданням. І з витрат ресурсів, і з витрат часу (розробляли близько року).
Варіантів над ринком була маса. І найпопулярніший – це 3D друк. Давайте прикинемо:
Класичний 3D друк. Якість залишає бажати кращого, швидкість виробництва також. Ми використовували 3D друк для прототипів, але це не годилося для виробництва.
Фотополімерний принтер 3D. Тут якість у рази краща, але набуває ефекту ціни. Прототипи, роздруковані на подібному принтері, стали близько 4000₽, і це одна частина корпусу з двох. Можна купити свій принтер, що зменшить ціну, але все одно ціна буде космічною, а швидкість незадовільною.
Лиття в силікон. Ми вважали це оптимальним варіантом. Якість була на рівні, ціна висока, але не критична. Навіть було замовлено першу партію в 20 корпусів для польових випробувань.
Але все змінив випадок. Одного вечора, я випадково у внутрішньому чаті для розробників опублікував, що з корпусами косяк, ціна зависока. І наступного дня колега написав у особу, що має друг друга його ТПА (термопласт автомат). І можна першому етапі виготовити прес форму йому. Це повідомлення змінило все!
Я і до цього розглядав використання ТПА, але мене зупиняло навіть не необхідність замовити партію в 5000 шт. мінімум (хоча якщо постаратися можна і менше знайти через китайців). Мене зупиняла ціна прес-форми. Близько $5000. Цю суму я не був готовий викласти разом. Сума ж за прес-форму через нашого новоспеченого колеги була не космічною, варіювалася в районі $2000-$2500. До того ж він пішов нам на зустріч і ми домовилися, що оплата буде на виплат. Так проблему з корпусами було вирішено.
Друга і не менш важлива складність, з якою ми зіткнулися, — це залізо.
Не злічити кількість ревізій заліза. За скромними підрахунками представлений варіант – це сьомий, крім проміжних. У ньому ми постаралися вирішити всі недоліки, виявлені у процесі випробувань.
Так, раніше я вважав, що в апаратному watchdog немає необхідності. Зараз без нього пристрій не піде в серію: через вередливість обраної нами платформи.
Ще аналоговий вхід до ESP. Раніше думав, що кожен пін ESP є універсальним. Але у ESP аналоговий пін лише один. Дізнатися це довелося на практиці, що призвело до переробки та перезамовлення друкованих плат.
Перша версія друкованих плат
Друга версія друкованих плат
Передостання версія друкованих плат, де довелося негайно вирішувати проблеми з аналоговим піном
Що стосується ПЗ, то тут також була купа підводного каміння.
Наприклад, періодичне відвалення ESP. При тому що пінг до неї йде, сторінка не відкривається. Рішення одне – переписування бібліотеки. Можливо, є й інші, але всі перепробовані нами не дали результату.
Друга значуща проблема, як не дивно, кількість запитів до ESP при відкритті сторінки. Використовуючи GET або ajax, ми зіткнулися з тим, що кількість запитів ставала непристойно більшою. Через це ESP поводилася непередбачувано, могла просто перезавантажитись або обробляти запит кілька секунд. Рішенням стало перейти на веб-сокети. Після цього кількість запитів знизилася у рази.
Третя проблема – це веб-інтерфейс. Більше інформації про нього буде в окремій статті, що буде опубліковано пізніше.
Поки що скажу, що найоптимальніший варіант на даний момент використовувати VUE.JS.
Цей фреймворк найкращий з усіх, що нами були випробувані.
Варіанти інтерфейсу можна переглянути за посиланнями нижче
Подолавши всі складнощі, ми дійшли ось якого результату:
Конструкція
Термостат складається з трьох плат (модулів):
Керуюча;
Керована;
Плата монітора.
керуюча – плата, на якій розташовані ESP12, Апаратний watchdog і nRF24 для роботи з майбутніми сенсорами. На старті пристрій підтримує цифровий сенсор DS18B20. Але нами було передбачено можливість підключення аналогових сенсорів сторонніх виробників. І в одному з майбутніх оновлень ПЗ пристрою ми додамо можливість використовувати сенсори, які постачаються з термостатами сторонніх виробників.
Керована – плата харчування та управління навантаженням. Там розташували БП на 750мА, термінали для підключення датчиків температури та реле на 16А для керування навантаженням.
Дисплей – на етапі розробки ми вибрали дисплей Nextion 2.4 дюйми.
Про нього можна легко знайти інформацію в Інтернеті. Від себе додам, що він зручний майже всім, окрім ціни. Дисплей розміром 2.4 дюйма обходиться в районі 1200₽, що не найкраще позначається на кінцевій ціні.
Отже, було прийнято рішення зробити аналог під наші потреби, але з меншою ціною. Щоправда, програмувати його доведеться класичним способом, а не серед Nextion Editor. Це складніше, але ми готові до цього.
Аналогом буде служити матриця 2.4 дюйма з тачскрином та плата з STM32 на борту для управління ним та зниження навантаження на ESP12. Все управління буде аналогічно Nextion по UART, також пам'ять на 32мб і повноцінна флеш карта для запису логів.
Модульна конструкція дозволяє легко поміняти один із модулів і на виході виходить зовсім інший пристрій.
Наприклад, вже є варіанти "плати 2" у кількох виконаннях:
Варіант 1 – для теплої статі. Живлення від 220в. Реле керує будь-яким навантаженням після себе.
Варіант 2 – для водяної теплої підлоги чи клапана батареї. Живлення від 24в змінного струму. Управління клапаном на 24в.
Варіант 3 - Харчування від 220в. Управління окремою лінією, наприклад, котлом або електро сауною.
Післямова
Я – не професійний розробник. Мені вдалося поєднати людей однією метою. Здебільшого всі працюють за ідею; заради того, щоб зробити щось дійсно варте; те, що буде корисно кінцевому користувачеві.
Я впевнений, що комусь не сподобається дизайн корпусу; комусь – зовнішній вигляд сторінки. Це ваше право! Але ми пройшли весь цей шлях самі, крізь постійну критику того, що ми робимо, і найголовніше навіщо. Якщо немає таких питань, як вище за текстом, будемо раді поспілкуватись у коментарях.
Конструктивна критика – це добре, і ми за неї вдячні.
Історія виникнення ідеї тут. Для тих, хто зацікавився: