'Готовим подключенный продукт'

Обновление: 9 декабря 2023 г.

'Готовим подключенный продукт'

'Готовим подключенный продукт'

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

 

Подключенные устройства, как правило, находятся в более сложном конце спектра встроенных систем, независимо от того, собирают ли они данные датчиков сами по себе или взаимодействуют с уже существующим оборудованием.

Их сложность возникает из-за взаимодействия между их тремя составными частями: локальной частью, которая генерирует данные или требует некоторого контроля; удаленная система, которая записывает данные и / или предоставляет инструкции; и связь между ними, которая обычно действует на большом расстоянии и часто может быть обнаружена (и даже прервана) ненадежными третьими сторонами.

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

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

Один из подходов - разбить процесс разработки IoT на несколько конкретных, но фундаментально связанных вариантов. Но не всегда легко решить, какие решения принять в первую очередь, и всегда существует риск того, что раннее решение может ограничить ваш дальнейший выбор и привести к неоптимальной работе всей системы.

Мы аллитеративно сгруппировали эти варианты по шести различным областям, которые следует учитывать при планировании идеального «праздника» для Интернета вещей.

Возможности подключения - это, вероятно, лучшее место для начала, поскольку это фундаментальный компонент, на котором сосредоточено все остальное предложение. Главное блюдо, если хотите.

Курс подключения

Ключевые возможности подключения technology Требования к продуктам определяются стоимостью, потребляемой мощностью, диапазоном, скоростью передачи данных и задержкой. Но в конечном итоге они связаны между собой законами физики и экономики. И все современные технологии существуют в своем собственном золотом уголке в этом многомерном пространстве.

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

Каким бы путем вы ни пошли, почти всегда лучше полагаться на существующие стандарты подключения, пользующиеся широким признанием рынка, чем разрабатывать что-то с нуля.

Курс набора микросхем

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

Если вам нужна сотовая связь с низким энергопотреблением, будь то LTE-M или NB-IoT, такое устройство, как Nordic nRF9160, представляет собой убедительный пакет из ЦП, ОЗУ, флэш-памяти, GPS и модема. Но если вы можете позволить себе печатная плата пространстве, вы можете предпочесть гибкость «стандартного» Микроконтроллер и отдельный LTE модуль. Похожая история применима к беспроводным стандартам, таким как Wi-Fi и Bluetooth, где доступны микроконтроллеры со встроенным радиомодулем, а также автономные модемные модули.

Конечно, устройства IoT работают не только на базовых микроконтроллерах. Существует множество примеров, когда мощность и технические возможности полноценной системы на основе ядра Linux были правильным выбором, даже с учетом негативного влияния на энергопотребление, пространство и нагрузку на поддержку программного обеспечения.

Основной курс

На этом этапе используется уже существующее программное обеспечение (по существу, «сторонний IP-адрес»), включая: ядро ​​операционной системы (или операционной системы реального времени); драйверы чипсета; и пакет поддержки платы (BSP), который настраивает эти драйверы для вашей конкретной конструкции печатной платы.

Поставщики наборов микросхем часто предоставляют бесплатный комплект разработчика программного обеспечения (SDK), содержащий все это. Но стоит помнить, что этот SDK может не работать с чьими-либо микросхемами, что ограничивает вашу возможность сменить поставщика в будущем. Если это имеет значение, возможно, рассмотрите предложение, не зависящее от поставщика, такое как Amazon FreeRTOS или ThreadX от Microsoft.

В системах на базе Linux тоже есть аналогичные возможности - часто с бесплатным «дистрибутивом» для начала. Но вы можете предпочесть самостоятельное развертывание или использовать более общий готовый дистрибутив Linux, такой как Ubuntu Smart Start или Fedora IoT. Все зависит от ваших требований к безопасности, сроков разработки и любых системных ограничений по энергопотреблению и пространству для хранения.

Кодовый курс

Конечно, вы не можете просто установить встроенный Linux на свое устройство или прошить RTOS и прекратить работу. Вам нужно будет добавить «секретный соус»

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

Язык программирования C используется по умолчанию уже почти 40 лет, но, возможно, есть смысл попробовать безопасный для памяти системный язык, такой как Rust или даже что-то вроде MicroPython. Но если вы обнаружите, что ваш набор микросхем или ядро ​​не может справиться с вашим предпочтительным выбором здесь, вам, возможно, придется вернуться и переосмыслить.

Облачный курс

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

Какую бы облачную платформу вы ни выбрали, вам необходимо сбалансировать первоначальные затраты на интеграцию с постоянной поддержкой и обслуживанием. И помните, вам понадобится поддержка со стороны поставщиков облачных услуг, наборов микросхем и средств подключения на протяжении всего срока службы вашего продукта в полевых условиях.

И наконец… Курс связи.

Протокол связи по умолчанию, который ваш код будет использовать для общения с вашим облачным провайдером, обычно будет текстовым (например, JSON или XML), работающим по зашифрованной HTTP-ссылке с установлением соединения.

Несмотря на то, что этот вид стека распространен повсеместно (именно так строятся большинство современных веб-сайтов), его простой текстовый характер увеличивает требования к пропускной способности для ваших подключений и ресурсов набора микросхем, а природа, ориентированная на подключение, может плохо взаимодействовать с некоторыми беспроводными сервисами с высокой задержкой. Например, если вы разрабатываете систему мониторинга сверхнизкого энергопотребления с использованием NB-IoT, вам может быть лучше использовать протокол без двоичного соединения, такой как CoAP.

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

Стоит помнить

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