Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Интернет вещей

Эффективная технология веб-сервера для микроконтроллеров с ограниченными ресурсами

Некоторое время назад мы опубликовали статью под названием «Новый взгляд на встраивание веб-сервера», в которой предложили использовать WebSockets вместо HTTP с его традиционными командами GET и POST. Один из комментаторов раскритиковал статью за то, что она не подходит для широкой категории встраиваемых систем на основе небольших микроконтроллеров.

Протокол WebSocket при правильном использовании использует меньше ресурсов, чем традиционный веб-сервер. Фактически, мы считаем, что WebSockets - единственный жизнеспособный вариант, если вы когда-либо планируете включить TLS для встроенного веб-сервера. Возможно, вы уже используете встроенный веб-сервер на своем устройстве, но включение TLS на стандартном веб-сервере для устройства с ограниченными ресурсами обычно заканчивается катастрофой. Чтобы понять, почему TLS создает такую ​​проблему для стандартной технологии веб-серверов, см. Наше руководство, когда не следует встраивать веб-сервер в устройство.

Эталонный дизайн современного веб-приложения для микроконтроллеров

Недавно мы передали наш встроенный HTTP и WebSocket Server в GitHub. Встроенный сервер HTTP и WebSocket, называемый Minnow Server, был специально разработан для крошечных микроконтроллеров с ограниченными ресурсами.

Что еще более важно, мы также включили справочный пример, который показывает, как создать современный веб-интерфейс пользователя в реальном времени для управления устройствами. Веб-приложение представляет собой так называемое одностраничное приложение (SPA), которое использует исключительно протокол WebSocket для управления устройством. Протокол HTTP используется только для загрузки SPA. Другими словами, HTTP изначально используется браузером при загрузке приложения с устройства по запросу.

Эталонный пример включает в себя обновления светодиодов и датчика термостата в реальном времени, а также показывает, как выполнять загрузку микропрограмм через WebSockets. Для полного SPA требуется всего 41 Кбайт дискового пространства во флеш-памяти. Кроме того, серверу WebSocket требуется очень мало оперативной памяти для связи.

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

Начало работы с сервером Minnow

Перейдите на GitHub, загрузите Minnow Server и начните писать свой собственный SPA для своего собственного дизайна микроконтроллера. Эталонный пример разработан таким образом, чтобы его можно было легко повторно использовать для вашего собственного приложения для управления встроенными устройствами. Строительные блоки CSS и HTML5 в этом приложении были разработаны для повторного использования. Кроме того, включенная в пример библиотека JavaScript для связи WebSocket разработана как универсальная и может быть легко повторно использована в других приложениях.

Примечание.

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

Хотя Minnow Server можно настроить для управления несколькими подключениями, в эталонном примере настраивается управление одним подключением за раз. Попытка подключить новое окно браузера, когда другое окно браузера использует одно-единственное соединение WebSocket, не будет работать.

Если вам не хватает необходимого опыта работы с HTML / CSS / JavaScript, подумайте о том, чтобы объединиться с интерфейсным веб-разработчиком. Лучший способ подумать о создании SPA - это сравнить процесс разработки с созданием настольного приложения или приложения для телефона, которое предназначено для связи с устройством с помощью TCP. Как правило, за настольное приложение и прошивку устройства отвечают разные разработчики, и это также лучший способ разработать SPA. Разработчикам прошивки и внешнего интерфейса необходимо согласовать API связи между браузером и сервером и наоборот. Другими словами, им нужно будет указать тип сообщений, отправляемых через соединение WebSocket.


Уилфред Нильсен , Основатель и технический директор Real Time Logic, имеет 28-летний опыт разработки встраиваемого программного обеспечения. Опираясь на видение подключенных встроенных систем, он разработал сервер приложений Barracuda, адаптировав его к небольшим потребностям встроенных микропроцессоров в реальном времени.


Интернет вещей

  1. Дышащий электронный текстиль для носимых радиочастотных приложений
  2. Тенденции в производстве на 2021 год
  3. Встроенная память для выборки ST с изменением фазы для автомобильных микроконтроллеров
  4. Три шага к внедрению Интернета вещей для страховых компаний
  5. Рабочее место идеально подходит для носимых устройств
  6. LoRaWAN временно заменит сети 5G для Интернета вещей
  7. Технология SQL; тест по причине
  8. 5 отраслей, обреченных на технологический сбой
  9. 3 причины использовать технологию IoT для управления активами
  10. Технология IoT для энергетического сектора:значительная трансформация