
Простой наглядный кейс - как мы решили собрать свое первое серийное электронное устройство.
Привет! Я Игорь. И я хочу выразить благодарность участникам Хабра за оценку и полезные комментарии к первой публикации | 1 | . Сегодняшняя статья - самая практичная, потому что расскажет о совершенных нами ошибках, которые, надеюсь, вы не повторите.
Итак, мы усердно работали целый год и собрали наш первый компактный датчик определения качества воздуха. Но я решил все радикально переделать. В процессе эксплуатации датчика мне пришла в голову идея сделать из датчика «для нас» гаджет «для всех».
Требования к такому продукту иные:
привлекательный дизайн;
простота в использовании;
польза в быту.
Как градусник, только круче
Мы полностью меняем всю концепцию, но я был уверен, что идея сделать «супер-градусник» того стоит.

Концепция такая: датчик крепится на окне, у него есть экран-индикатор, запуск и управление осуществляется через мобильно приложение, коннектится через домашнюю сеть Wi-Fi. Поехали.
Подбор компонентов
Делая свою плату с нуля, мы начали с подбора компонентов с учетом предыдущей разработки. Нам казалось — это будет быстро.
Основной момент, на котором мы затормозили – экран. Так как устройство располагается за окном, экран должен быть максимально устойчивым к внешним факторам (влажность, низкие температуры, нагрев на солнце), быть достаточно ярким и большим, чтобы в солнечную погоду можно было различать индикацию через окно в комнате на расстоянии.
LСD, TFT, IPS экраны мы даже не рассматривали, так как они не выдерживают испытания ��олодной погодой.
OLED казался идеальным выбором, но цена на необходимые размеры экранов начиналась от 60$.
Остался только LED. Так мы пришли к матрицам, используемым в медийных панелях. Яркость светодиода достаточно высокая, цена на размер приемлемая, модули изолированные, но разрешение очень небольшое.

Наш экран - это 6 модулей RGB 8х8 пикселей, из которых получился дисплей разрешением 16х24 с физическим размером 95х65 мм.

На первом датчике мы использовали модуль на чипе esp32. Форм-фактор самого модуля устраивал за счет встроенного Wi-Fi/Bluetooth передатчика и небольшой цены. Модуль ESP-WROOM-32 — самое простое и доступное решение. На этом мы и остановились, хотя сейчас последующие устройства будем разрабатывать на чипе STM32.

В остальном мы использовали для метеорологических данных модуль BME280 фирмы Bosch Sensortec и для оценки качества воздуха лазерный сенсор Plantower, который ранее смогли настроить до качественных значений и стабильной работы. За управление экранами отвечает контроллер Holtek ht1632c.

Поиск подрядчика
Уже после того как мы собрали элементную базу, стало понятно, что нам не хватит собственных знаний для проектирования платы, и мы решили найти для этого подрядчика. Во все найденные в сети фирмы, занимающиеся электроникой, я начал рассылать запрос на стоимость их услуг.
Не все ответили, многие письма пришли через пару недель, был даже звонок через год. Но все заявленные цены и разбег между ними, мягко говоря, шокировали:
1-5 млн рублей за проектирование.
Посмотрев в свой карман и не найдя соответствующей суммы, начал искать более дешевый вариант. Написал пост в Facebook (признана экстремистской организацией, ее деятельность в России запрещена ) с просьбой откликнутся электронщиков и получил приглашение приехать в гости от одного знакомого. Прихватив свой старый датчик как пример, мы конструктивно пообщались в офисе Константина (его имя будет упоминаться еще не раз), и он согласился нам помочь. С нас - схема подключения, от него - специалист, который создаст проект платы. Основное условие – максимально компактно расположить все элементы и на обратной стороне платы должен быть светодиодный экран.
Цена услуги 180 тысяч рублей.
Буквально через несколько недель я получил первый проект платы с ее габаритами: она была очень компактная! Вся разводка уложилась в 6 слоев.
Вот так выглядит плата в проекте:

Заказали несколько печатных плат в «Резоните». Для маленьких тестовых версий печатных плат — это отличный выбор в России. Печатные платы были изготовлены точно в срок, как и обещали.

Самая больная тема - отсутствие нужных электронных компонентов для финальной сборки! Реально в РФ нет даже половины нужных компонентов, а срок доставки из-за рубежа - от 2 месяцев.
Да, конечно, мы заказываем в Китае с более коротким сроком, но это все равно потерянное время. Если учитывать, что «словим косяки» и нужны будут новые элементы, срок отладки может занять и полгода. В Китае срок подобной отладки занимает считанные дни.
Вот так выглядит плата в готовом виде:

A few moments later
Все готово. Мы собрали наш первый прототип, залили прошивку и начали тестировать. На первом этапе выявили проблему работы сенсора Bosh BME 280 – работает нестабильно и выдает разные значения температуры и влажности. Мы решили заменить его на новую версию BME 680. Но этого сенсора тоже нет в наличии в РФ. Делаем заказ и ждем.
Three weeks later
Вот, наконец, мы собрали второй прототип. Тесты проводим на двух роутерах в офисе и дома. Экран светится, WI-FI коннектится, данные корректно попадают на сервер. И мы переходим к расчетам на мелкий заказ.
Изготовление печатных плат с основными элементами (200 шт.):
Россия $30/штука.
Китай $17/штука.
Сравнив варианты и прикинув экономику, мы приняли очевидное решение изготавливать платы в Китае. Примерно через 1 неделю все было готово.
Фэйл. Тесты и еще раз тесты
Но когда уже готовые платы были в пути, мы поймали баг – самопроизвольные «отвалы» от сети. Сначала этот баг воспроизводился редко, и мы думали на сырой код ПО. Но когда тесты перешли с 2 роутеров на 10, стало очевидно – проблема не решается сбором логов и правкой кода.

Проблема в железе. Беру датчик, еду вечером к Константину и прошу помощи. Мы ловим баг в офисе и начинаем проверять работу микроконтроллера esp32. Оказывается, что если отключить один элемент (датчик активации подогрева), то чип микроконтроллера esp32 начинает работать штатно. Роемся в документации и находим на одном далеком форуме, что при использовании наших контактов на ADC2 работа модуля Wi-Fi блокируется.


Перекидываем все пины ADC2, включаем – все работает! Посыпаем голову пеплом. А чтобы не выбрасывать новые печатные платы, делаем специальную плату-проставку, которая меняет разводку подключения к микроконтроллеру.
На видео тесты того, как датчик реагирует на дым от свечи и тестируются пиксели:
Сейчас плата работает идеально, но путь, по которому мы прошли мог быть не такой извилистый.
Мой вам совет:
Собирайте все на «макетках» и тестируйте, пока не устанете тестировать. А потом еще раз тестируйте.
Скорее всего, с первого раза не получится идеально, не завышайте свои ожидания.
Открыто делитесь своей идеей и не стесняйтесь просить помощи в сети. Наша команда сложилась именно так.
Так на собственных ошибках, долгих ожиданиях и в течение нескольких ночей работы мы создали сердце нашего NeboAir. И это еще не все.

Мы на столько с головой ушли в разработку, что забыли о самом главном – не придумали как рассказать миру про NeboAir и еще кучу всего необходимого для жизни. Поэтому мы ищем друга или партнера, открыты для общения и предложений.
Можно писать мне в Telegram: @igorshpeht
Возможно, что вам будет не только интересно, но и полезно услышать о других фэйлах (раз уже мы так откровенны) и узнать о процессах внутри нашей кухни, поэтому предлагаю проголосовать за тему следующей статьи:
