0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>12 авг 2022</li>
2
<ul><li>12 авг 2022</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><h2>Разработка для "интернета вещей": языки программирования, операционки и каналы связи</h2>
4
</ul><h2>Разработка для "интернета вещей": языки программирования, операционки и каналы связи</h2>
5
<p>Разбираемся, на чём кодят IoT, как выбрать язык программирования для проекта и что популярнее - провода или эти ваши хипстерские вайфаи.</p>
5
<p>Разбираемся, на чём кодят IoT, как выбрать язык программирования для проекта и что популярнее - провода или эти ваши хипстерские вайфаи.</p>
6
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
7
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
7
<p>Журналист, коммерческий автор и редактор. Пишет про IT, цифровой маркетинг и бизнес. Сайт:<a>darovska.com</a>.</p>
8
<p>Интернет вещей (Internet of Things, IoT) - это когда вещи и предметы физического мира могут взаимодействовать между собой напрямую, не требуя вмешательства человека.</p>
8
<p>Интернет вещей (Internet of Things, IoT) - это когда вещи и предметы физического мира могут взаимодействовать между собой напрямую, не требуя вмешательства человека.</p>
9
<p>Простой пример - холодильник, который сам следит за количеством молока и других продуктов и делает заказ в интернет-магазине, когда они заканчиваются. Или умная колонка, которая связана с датчиками протечки, задымления и другими девайсами в вашем доме и способна управлять ими и снимать с них показания.</p>
9
<p>Простой пример - холодильник, который сам следит за количеством молока и других продуктов и делает заказ в интернет-магазине, когда они заканчиваются. Или умная колонка, которая связана с датчиками протечки, задымления и другими девайсами в вашем доме и способна управлять ими и снимать с них показания.</p>
10
<p>Архитектуру IoT-решений принято делить на четыре уровня:</p>
10
<p>Архитектуру IoT-решений принято делить на четыре уровня:</p>
11
<ul><li>датчики, которые собирают данные: например, датчики протечки, движения, освещения и тому подобные, подключённые к микроконтроллеру;</li>
11
<ul><li>датчики, которые собирают данные: например, датчики протечки, движения, освещения и тому подобные, подключённые к микроконтроллеру;</li>
12
<li>локальные шлюзы - устройства, которые передают и обеспечивают обмен данными;</li>
12
<li>локальные шлюзы - устройства, которые передают и обеспечивают обмен данными;</li>
13
<li>Edge Servers - граничные серверы, которые хранят, аккумулируют и обрабатывают данные непосредственно там, где информация производится (например, это могут быть производственные помещения);</li>
13
<li>Edge Servers - граничные серверы, которые хранят, аккумулируют и обрабатывают данные непосредственно там, где информация производится (например, это могут быть производственные помещения);</li>
14
<li>облачная инфраструктура.</li>
14
<li>облачная инфраструктура.</li>
15
</ul><p>Компании, которые занимаются разработкой IoT-устройств и решений, нередко разрабатывают как и сами устройства, так и всё ПО для всех четырёх уровней устройств. Исключение - компании, которые собирают отдельные датчики или девайсы для уже готовых экосистем и стандартов, поддерживаемых крупными вендорами. "Железо" и различные архитектуры мы почти не затронем - подробности об этой стороне IoT можно узнать<a>в выпуске нашего подкаста</a>"Люди и код", посвящённом микроконтроллерам.</p>
15
</ul><p>Компании, которые занимаются разработкой IoT-устройств и решений, нередко разрабатывают как и сами устройства, так и всё ПО для всех четырёх уровней устройств. Исключение - компании, которые собирают отдельные датчики или девайсы для уже готовых экосистем и стандартов, поддерживаемых крупными вендорами. "Железо" и различные архитектуры мы почти не затронем - подробности об этой стороне IoT можно узнать<a>в выпуске нашего подкаста</a>"Люди и код", посвящённом микроконтроллерам.</p>
16
<p>Так как архитектура интернета вещей состоит из четырёх уровней, для программирования под каждый из них разработчики выбирают свои технологии. Согласно<a>исследованию</a>Eclipse Foundation от декабря 2021 года, в IoT наибольшей популярностью пользуются такие языки:</p>
16
<p>Так как архитектура интернета вещей состоит из четырёх уровней, для программирования под каждый из них разработчики выбирают свои технологии. Согласно<a>исследованию</a>Eclipse Foundation от декабря 2021 года, в IoT наибольшей популярностью пользуются такие языки:</p>
17
Популярность языков программирования в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><ul><li>Лидеры на встраиваемых устройствах и микроконтроллерах - C, C++, Java и Python.</li>
17
Популярность языков программирования в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><ul><li>Лидеры на встраиваемых устройствах и микроконтроллерах - C, C++, Java и Python.</li>
18
<li>Для программирования шлюзов чаще всего выбирают Python, C++, C и Java.</li>
18
<li>Для программирования шлюзов чаще всего выбирают Python, C++, C и Java.</li>
19
<li>Для серверной разработки предпочтение отдают Python, Java, C++ и C.</li>
19
<li>Для серверной разработки предпочтение отдают Python, Java, C++ и C.</li>
20
<li>В облаках - Python, Java, JavaScript, C++.</li>
20
<li>В облаках - Python, Java, JavaScript, C++.</li>
21
</ul><p>"В разработке IoT-устройств всё делается с применением стандартных подходов - подводных камней нет, и всё более-менее предсказуемо. Выбор конкретного языка программирования чаще всего зависит от удобства и принятых стандартов, но на безопасность почти не влияет".</p>
21
</ul><p>"В разработке IoT-устройств всё делается с применением стандартных подходов - подводных камней нет, и всё более-менее предсказуемо. Выбор конкретного языка программирования чаще всего зависит от удобства и принятых стандартов, но на безопасность почти не влияет".</p>
22
<p><a><strong>Иван Юшков</strong></a><em>,</em><em></em>разработчик в сфере IoT</p>
22
<p><a><strong>Иван Юшков</strong></a><em>,</em><em></em>разработчик в сфере IoT</p>
23
<p>Примечательно, что по итогам 2021 года явным лидером стал Python - хотя за год до этого в топе был Java. Это, кстати, интересный тренд: в том же рейтинге популярности языков программирования TIOBE в 2021 году Python наконец-то сумел обойти Java и C - фактически бессменных лидеров последних десятилетий.</p>
23
<p>Примечательно, что по итогам 2021 года явным лидером стал Python - хотя за год до этого в топе был Java. Это, кстати, интересный тренд: в том же рейтинге популярности языков программирования TIOBE в 2021 году Python наконец-то сумел обойти Java и C - фактически бессменных лидеров последних десятилетий.</p>
24
<p>"Python прост в освоении и поддерживается большим отзывчивым сообществом. Его синтаксис чистый и простой, что привлекает большое количество программистов. Поэтому Python часто выбирают социологи и биологи - чтобы программировать лабораторные устройства. А ещё это предпочтительный язык для одного из самых популярных микроконтроллеров на рынке -<a>Raspberry Pi</a>".</p>
24
<p>"Python прост в освоении и поддерживается большим отзывчивым сообществом. Его синтаксис чистый и простой, что привлекает большое количество программистов. Поэтому Python часто выбирают социологи и биологи - чтобы программировать лабораторные устройства. А ещё это предпочтительный язык для одного из самых популярных микроконтроллеров на рынке -<a>Raspberry Pi</a>".</p>
25
<p><strong>Кинман Кови</strong>, разработчик микроконтроллеров</p>
25
<p><strong>Кинман Кови</strong>, разработчик микроконтроллеров</p>
26
<p>Рост популярности Python вполне понятен: это удобный и быстрый с точки зрения написания кода язык с кучей библиотек почти под каждую задачу (особенно силён в сфере машинного обучения и работы с данными), он прекрасно взаимодействует со многими языками программирования (недаром его часто называют "клеем" среди языков программирования). Кроме того, устройства с каждым годом становятся всё мощнее и вопрос оптимизации стоит уже не так остро, как вопрос скорости разработки и поставки ПО.</p>
26
<p>Рост популярности Python вполне понятен: это удобный и быстрый с точки зрения написания кода язык с кучей библиотек почти под каждую задачу (особенно силён в сфере машинного обучения и работы с данными), он прекрасно взаимодействует со многими языками программирования (недаром его часто называют "клеем" среди языков программирования). Кроме того, устройства с каждым годом становятся всё мощнее и вопрос оптимизации стоит уже не так остро, как вопрос скорости разработки и поставки ПО.</p>
27
<p>Если проект простой и не требует больших вычислительных мощностей, можно использовать стандартные библиотеки Python, а вот для микроконтроллеров стоит посмотреть на пакет<a>MicroPython</a> - он подходит для запуска Python на небольших платах с 256 КБ памяти и 16 КБ оперативки и площадью в пару квадратных сантиметров.</p>
27
<p>Если проект простой и не требует больших вычислительных мощностей, можно использовать стандартные библиотеки Python, а вот для микроконтроллеров стоит посмотреть на пакет<a>MicroPython</a> - он подходит для запуска Python на небольших платах с 256 КБ памяти и 16 КБ оперативки и площадью в пару квадратных сантиметров.</p>
28
<p>Хотя вполне очевидно, почему в нише микроконтроллеров и встроенных устройств позиции Python не так прочны - здесь гораздо выше требования к скорости исполнения, энергосбережению и экономному расходованию памяти. Конечно, в таких условиях Python и MicroPython уступают более скоростным C, C++ и Java.</p>
28
<p>Хотя вполне очевидно, почему в нише микроконтроллеров и встроенных устройств позиции Python не так прочны - здесь гораздо выше требования к скорости исполнения, энергосбережению и экономному расходованию памяти. Конечно, в таких условиях Python и MicroPython уступают более скоростным C, C++ и Java.</p>
29
<p>"В IoT существует свой набор ограничений - например, интернет-соединение в один килобит или ограничение частоты отправки сообщений. Такие ограничения возникают из-за повышенных требований к экономии ресурсов - например, может быть критично, чтобы ваше устройство было способно проработать условные 100 лет на одной батарейке".</p>
29
<p>"В IoT существует свой набор ограничений - например, интернет-соединение в один килобит или ограничение частоты отправки сообщений. Такие ограничения возникают из-за повышенных требований к экономии ресурсов - например, может быть критично, чтобы ваше устройство было способно проработать условные 100 лет на одной батарейке".</p>
30
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
30
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
31
<p>Второе место можно отдать "плюсам" - всё-таки ещё не перевелись любители пощекотать себе нервишки :) Его часто используют на одноплатных компьютерах типа Raspberry Pi - он быстрый, как C, но при этом разработка на нём, как правило, занимает меньше времени.</p>
31
<p>Второе место можно отдать "плюсам" - всё-таки ещё не перевелись любители пощекотать себе нервишки :) Его часто используют на одноплатных компьютерах типа Raspberry Pi - он быстрый, как C, но при этом разработка на нём, как правило, занимает меньше времени.</p>
32
<p>Сила Java - в переносимости и принципе write once, run anywhere. Если виртуальная Java-машина (<a>JVM</a>) поддерживает какую-то архитектуру, вы обычно можете быть уверены, что ваш код будет на ней работать так же, как и на других платформах.</p>
32
<p>Сила Java - в переносимости и принципе write once, run anywhere. Если виртуальная Java-машина (<a>JVM</a>) поддерживает какую-то архитектуру, вы обычно можете быть уверены, что ваш код будет на ней работать так же, как и на других платформах.</p>
33
<p>Кроме того, Java - это классический ООП-язык, удобный для энтерпрайз-решений, с большим набором библиотек и инструментами для работы с безопасностью, а байт-код и сама Java-машина за долгие годы были оптимизированы и могут исполняться с достаточно хорошей скоростью.</p>
33
<p>Кроме того, Java - это классический ООП-язык, удобный для энтерпрайз-решений, с большим набором библиотек и инструментами для работы с безопасностью, а байт-код и сама Java-машина за долгие годы были оптимизированы и могут исполняться с достаточно хорошей скоростью.</p>
34
<p>"Какой язык использовать в проекте, зависит от юзкейсов. Например, есть задача - определить заполняемость мусорных баков в городе. Для этого внутри них ставят датчики и следят за наполнением. Датчик в этом случае должен быть как можно менее энергозатратный, так как мы не можем подключить каждый мусорный бак к розетке или регулярно ездить и менять в них батарейки. Поэтому для таких задач используются языки более низкого уровня вроде C или предназначенного для встроенных систем<a>Java Embedded</a>".</p>
34
<p>"Какой язык использовать в проекте, зависит от юзкейсов. Например, есть задача - определить заполняемость мусорных баков в городе. Для этого внутри них ставят датчики и следят за наполнением. Датчик в этом случае должен быть как можно менее энергозатратный, так как мы не можем подключить каждый мусорный бак к розетке или регулярно ездить и менять в них батарейки. Поэтому для таких задач используются языки более низкого уровня вроде C или предназначенного для встроенных систем<a>Java Embedded</a>".</p>
35
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
35
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
36
<p>Да, этот старичок ещё очень популярен во встраиваемых системах и в качестве средства для системного программирования - где-то в силу традиций и накопленной большой кодовой базы на C, которую пока невозможно (да часто и не нужно) перевести на более современные языки, где-то в силу его скорости и других плюсов. К тому же благодаря C разработчик может напрямую взаимодействовать с памятью и любым "железом" - не зря C называют "переносимым ассемблером".</p>
36
<p>Да, этот старичок ещё очень популярен во встраиваемых системах и в качестве средства для системного программирования - где-то в силу традиций и накопленной большой кодовой базы на C, которую пока невозможно (да часто и не нужно) перевести на более современные языки, где-то в силу его скорости и других плюсов. К тому же благодаря C разработчик может напрямую взаимодействовать с памятью и любым "железом" - не зря C называют "переносимым ассемблером".</p>
37
<p>"У меня был проект промышленного IoT с "Роснефтью“ с системой предиктивной (предсказательной) аналитики. С помощью датчиков она определяла, сколько нефти проходит через весы, а сколько попадает в хранилища, а потом анализировала, сходятся ли эти данные, нет ли издержек. Датчики весов подключались к интернету и передавали данные на сервер. Софт для них был написан на C".</p>
37
<p>"У меня был проект промышленного IoT с "Роснефтью“ с системой предиктивной (предсказательной) аналитики. С помощью датчиков она определяла, сколько нефти проходит через весы, а сколько попадает в хранилища, а потом анализировала, сходятся ли эти данные, нет ли издержек. Датчики весов подключались к интернету и передавали данные на сервер. Софт для них был написан на C".</p>
38
<p><strong>Алексей Барышников</strong>, Java-/JS-разработчик</p>
38
<p><strong>Алексей Барышников</strong>, Java-/JS-разработчик</p>
39
<p>JavaScript тоже используют в IoT. Причём не только для веб-интерфейса приложений, но и для софта серверов. А в сочетании с фреймворком Node.js - ещё и для датчиков, серверов и шлюзов на ОС Linux. Например, построить софт на Node.js удалось в микроконтроллерах производителей<a>Espruino</a>и <a>Tessel</a>.</p>
39
<p>JavaScript тоже используют в IoT. Причём не только для веб-интерфейса приложений, но и для софта серверов. А в сочетании с фреймворком Node.js - ещё и для датчиков, серверов и шлюзов на ОС Linux. Например, построить софт на Node.js удалось в микроконтроллерах производителей<a>Espruino</a>и <a>Tessel</a>.</p>
40
<p>"Если объект можно запитать от солнечной панели или другого внешнего источника, то обычно в IoT используют Python,<a>MicroPython</a>, JavaScript и Node.js".</p>
40
<p>"Если объект можно запитать от солнечной панели или другого внешнего источника, то обычно в IoT используют Python,<a>MicroPython</a>, JavaScript и Node.js".</p>
41
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
41
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
42
<p>Этого языка (как и последующих) нет в топе исследования, однако он часто упоминается в связи с IoT. Фишка языка - он специально был разработан для поддержки средств описания данных, у него есть особый фреймворк Node.lua, то есть порт, или аналог, Node.js в LUA-мире, к тому же построенный на облегчённом интерпретаторе LUA.</p>
42
<p>Этого языка (как и последующих) нет в топе исследования, однако он часто упоминается в связи с IoT. Фишка языка - он специально был разработан для поддержки средств описания данных, у него есть особый фреймворк Node.lua, то есть порт, или аналог, Node.js в LUA-мире, к тому же построенный на облегчённом интерпретаторе LUA.</p>
43
<p>У Go богатая стандартная библиотека, отличная работа с параллелизмом из коробки, и его популярность в мире постоянно растёт.</p>
43
<p>У Go богатая стандартная библиотека, отличная работа с параллелизмом из коробки, и его популярность в мире постоянно растёт.</p>
44
<p>"Golang в основном заменяет JavaScript/Node.js для серверных HTTP-приложений. На мой взгляд, он гораздо лучше JavaScript. Golang можно использовать и в других компонентах IoT, но, по моему опыту, он для этого не очень подходит. Часть кода используется в высокоуровневых программах, а часть должна работать на низком уровне - ближе к "железу“. В IoT хватает и того, и другого.</p>
44
<p>"Golang в основном заменяет JavaScript/Node.js для серверных HTTP-приложений. На мой взгляд, он гораздо лучше JavaScript. Golang можно использовать и в других компонентах IoT, но, по моему опыту, он для этого не очень подходит. Часть кода используется в высокоуровневых программах, а часть должна работать на низком уровне - ближе к "железу“. В IoT хватает и того, и другого.</p>
45
<p>И вот для низкоуровневой работы Go практически не годится. Он некрасиво обрабатывает данные, а использование указателей - так и вообще устаревший подход. Короче говоря, для работы с протоколами он не подходит. Конечно, даже несмотря на это в подобных задачах он ещё лучше Java, но гораздо хуже C. А если вас пугает сложность C и вы думаете, чем бы его заменить, - лучше обратите внимание на Julia".</p>
45
<p>И вот для низкоуровневой работы Go практически не годится. Он некрасиво обрабатывает данные, а использование указателей - так и вообще устаревший подход. Короче говоря, для работы с протоколами он не подходит. Конечно, даже несмотря на это в подобных задачах он ещё лучше Java, но гораздо хуже C. А если вас пугает сложность C и вы думаете, чем бы его заменить, - лучше обратите внимание на Julia".</p>
46
<p><strong>JP Norair</strong>, IoT-разработчик,<a>комментарий на Quora</a></p>
46
<p><strong>JP Norair</strong>, IoT-разработчик,<a>комментарий на Quora</a></p>
47
<p>Это особая версия PHP для работы с чипами. Удобна для тех, кто уже знает PHP и хочет заняться интернетом вещей. Плюс в этом диалекте из коробки есть средства, полезные для разработки под IoT. К тому же более 90% серверов в мире по-прежнему работают на PHP, поэтому этот язык также популярен в интернете вещей и применяется для управления микросервисами на базе Linux.</p>
47
<p>Это особая версия PHP для работы с чипами. Удобна для тех, кто уже знает PHP и хочет заняться интернетом вещей. Плюс в этом диалекте из коробки есть средства, полезные для разработки под IoT. К тому же более 90% серверов в мире по-прежнему работают на PHP, поэтому этот язык также популярен в интернете вещей и применяется для управления микросервисами на базе Linux.</p>
48
<p>Swift используется для создания приложений для умных устройств в экосистеме Apple. У Swift собственные библиотеки для платформы<a>HomeKit</a>, которая обеспечивает поддержку интеграции каналов данных из сети совместимых устройств.</p>
48
<p>Swift используется для создания приложений для умных устройств в экосистеме Apple. У Swift собственные библиотеки для платформы<a>HomeKit</a>, которая обеспечивает поддержку интеграции каналов данных из сети совместимых устройств.</p>
49
<p>Использование операционных систем, как и в случае языков программирования, определяется тем, с какой частью архитектуры вы работаете (но надо понимать, что для уровня микроконтроллеров и встраиваемых устройств операционная система - необязательный компонент).</p>
49
<p>Использование операционных систем, как и в случае языков программирования, определяется тем, с какой частью архитектуры вы работаете (но надо понимать, что для уровня микроконтроллеров и встраиваемых устройств операционная система - необязательный компонент).</p>
50
<p>Во встраиваемых устройствах, шлюзах и микроконтроллерах самым популярным выбором является Linux (в основном урезанные или специфические версии - из "обычных" линуксов более-менее популярен разве что CentOS). Linux - гибкая и свободная ОС, которую можно "доработать напильником" практически под любые нужды, которая умеет запускаться на множестве разных архитектур. Плюс у него огромное сообщество и куча готового софта почти под любые задачи (разве что с Photoshop и Microsoft Office проблемы - но кому они нужны в IoT).</p>
50
<p>Во встраиваемых устройствах, шлюзах и микроконтроллерах самым популярным выбором является Linux (в основном урезанные или специфические версии - из "обычных" линуксов более-менее популярен разве что CentOS). Linux - гибкая и свободная ОС, которую можно "доработать напильником" практически под любые нужды, которая умеет запускаться на множестве разных архитектур. Плюс у него огромное сообщество и куча готового софта почти под любые задачи (разве что с Photoshop и Microsoft Office проблемы - но кому они нужны в IoT).</p>
51
<p>"Для всего, что можно воткнуть в розетку, существует операционная система Linux. В качестве use case может быть определение безопасности закрытия дверей в поезде. Для этого используют обычные компьютеры, которые соединены с датчиками по проводу или с помощью Bluetooth.Чтобы эта система работала, нужно полноценное питание и интернет-соединение. Приложения для умного дома можно писать на чём угодно - в серверных используют файрволы, роутеры и хранилища App Storage для загрузки файлов. Для написания приложений существует множество open-source-проектов, в основном построенных на PHP".</p>
51
<p>"Для всего, что можно воткнуть в розетку, существует операционная система Linux. В качестве use case может быть определение безопасности закрытия дверей в поезде. Для этого используют обычные компьютеры, которые соединены с датчиками по проводу или с помощью Bluetooth.Чтобы эта система работала, нужно полноценное питание и интернет-соединение. Приложения для умного дома можно писать на чём угодно - в серверных используют файрволы, роутеры и хранилища App Storage для загрузки файлов. Для написания приложений существует множество open-source-проектов, в основном построенных на PHP".</p>
52
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
52
<p><a><strong>Иван Игнатьев</strong></a>, Cloud Solution Architect из Pluto Informatics</p>
53
<p>За Linux следует FreeRTOS - операционка реального времени, созданная специально под микроконтроллеры. А значит, она умеет экономно использовать даже самые скромные ресурсы. Особенность систем реального времени - они заранее гарантируют, что задача будет выполнена в конкретные сроки. То есть работают максимально предсказуемо, что особенно важно для обработки критических запросов в военной или космической промышленности, а также везде, где от точной до миллисекунды обработки задачи зависят жизни людей или работоспособность дорогостоящего оборудования. Кстати, Linux так не умеет.</p>
53
<p>За Linux следует FreeRTOS - операционка реального времени, созданная специально под микроконтроллеры. А значит, она умеет экономно использовать даже самые скромные ресурсы. Особенность систем реального времени - они заранее гарантируют, что задача будет выполнена в конкретные сроки. То есть работают максимально предсказуемо, что особенно важно для обработки критических запросов в военной или космической промышленности, а также везде, где от точной до миллисекунды обработки задачи зависят жизни людей или работоспособность дорогостоящего оборудования. Кстати, Linux так не умеет.</p>
54
<p>На третьем месте с большим отрывом - Windows. Все мы работали с терминалами оплаты или банкоматами, в которых нередко используется именно система от Microsoft. Это закрытая и гораздо менее гибкая система, и подходит она только для тех устройств, в которых достаточно много свободных ресурсов.</p>
54
<p>На третьем месте с большим отрывом - Windows. Все мы работали с терминалами оплаты или банкоматами, в которых нередко используется именно система от Microsoft. Это закрытая и гораздо менее гибкая система, и подходит она только для тех устройств, в которых достаточно много свободных ресурсов.</p>
55
<p>На четвёртом месте Zephyr - ещё одна свободная операционка реального времени, созданная специально для работы со встраиваемыми устройствами и микроконтроллерами.</p>
55
<p>На четвёртом месте Zephyr - ещё одна свободная операционка реального времени, созданная специально для работы со встраиваемыми устройствами и микроконтроллерами.</p>
56
Операционные системы для шлюзов и встраиваемых устройств. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>А вот на серверах и в облаках ситуация отличается - хотя в рейтинге всё так же присутствуют Linux (лидирует с большим отрывом) и Windows. Кроме того, достаточно популярен майкрософтовский вариант Linux - Azure Sphere. Неудивительно - на ней строится Azure, а это один из лидеров в мире среди облачных платформ. Четвёртое место скромно заняла FreeBSD, ещё одна свободная операционка, которая традиционно считается более надёжной и безопасной, чем Linux.</p>
56
Операционные системы для шлюзов и встраиваемых устройств. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>А вот на серверах и в облаках ситуация отличается - хотя в рейтинге всё так же присутствуют Linux (лидирует с большим отрывом) и Windows. Кроме того, достаточно популярен майкрософтовский вариант Linux - Azure Sphere. Неудивительно - на ней строится Azure, а это один из лидеров в мире среди облачных платформ. Четвёртое место скромно заняла FreeBSD, ещё одна свободная операционка, которая традиционно считается более надёжной и безопасной, чем Linux.</p>
57
Операционные системы для серверов и облаков, популярные в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>Среди каналов связи, конечно же, лидирует классический Ethernet - проводной, надёжный, стабильный и предсказуемый. Он обеспечивает самые большие скорости и может быть почти "бесплатным" с точки зрения энергопотребления.</p>
57
Операционные системы для серверов и облаков, популярные в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>Среди каналов связи, конечно же, лидирует классический Ethernet - проводной, надёжный, стабильный и предсказуемый. Он обеспечивает самые большие скорости и может быть почти "бесплатным" с точки зрения энергопотребления.</p>
58
<p>Из беспроводных технологий наибольшей популярностью пользуется Wi-Fi - его можно развернуть относительно дёшево, не нужно использовать базовые станции, привязанные к операторам связи, у него отличная скорость, и он может покрывать относительно неплохое расстояние.</p>
58
<p>Из беспроводных технологий наибольшей популярностью пользуется Wi-Fi - его можно развернуть относительно дёшево, не нужно использовать базовые станции, привязанные к операторам связи, у него отличная скорость, и он может покрывать относительно неплохое расстояние.</p>
59
<p>Чуть менее популярны сети сотовой связи. Их плюс - они уже есть на куче смартфонов, могут обеспечить хорошую зону покрытия и работают на больших расстояниях. То есть удобны там, где нет проводов, а Wi-Fi просто "не добивает".</p>
59
<p>Чуть менее популярны сети сотовой связи. Их плюс - они уже есть на куче смартфонов, могут обеспечить хорошую зону покрытия и работают на больших расстояниях. То есть удобны там, где нет проводов, а Wi-Fi просто "не добивает".</p>
60
<p>Bluetooth на четвёртом месте - у него достаточно низкая скорость передачи данных, он не так стабилен в работе, и у него серьёзные ограничения по расстоянию между устройствами. Зато он экономнее в потреблении электроэнергии, чем Wi-Fi и сотовые сети связи.</p>
60
<p>Bluetooth на четвёртом месте - у него достаточно низкая скорость передачи данных, он не так стабилен в работе, и у него серьёзные ограничения по расстоянию между устройствами. Зато он экономнее в потреблении электроэнергии, чем Wi-Fi и сотовые сети связи.</p>
61
Технологии связи, популярные в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>"Приведу пример промышленного IoT-проекта - карта заводов с цветовой дифференциацией состояния. С помощью этой карты любой из менеджеров мог зайти на конкретный завод и посмотреть, в чём конкретно проблема на дашбордах с цифрами по каждому цеху - давление, температура и другие данные с промышленных IoT-устройств. Для передачи данных использовали DSL-линию - с её помощью выгружали Python-скрипты. Скрипты использовали для построения прогнозных моделей по объёмам производства нефти на заводе в Сочи. Для отображения моделей в единой ноде использовали Node.js и React, Polymer и Angular. С их помощью строили таблицы и графики из уже посчитанных дата-сайентистами данных, а также сырых данных, выгружаемых из Data Lake.</p>
61
Технологии связи, популярные в IoT. Из <a>исследования Eclipse Foundation</a><em>Инфографика: Eclipse Foundation</em><p>"Приведу пример промышленного IoT-проекта - карта заводов с цветовой дифференциацией состояния. С помощью этой карты любой из менеджеров мог зайти на конкретный завод и посмотреть, в чём конкретно проблема на дашбордах с цифрами по каждому цеху - давление, температура и другие данные с промышленных IoT-устройств. Для передачи данных использовали DSL-линию - с её помощью выгружали Python-скрипты. Скрипты использовали для построения прогнозных моделей по объёмам производства нефти на заводе в Сочи. Для отображения моделей в единой ноде использовали Node.js и React, Polymer и Angular. С их помощью строили таблицы и графики из уже посчитанных дата-сайентистами данных, а также сырых данных, выгружаемых из Data Lake.</p>
62
<p>Конечный результат проекта - интерактивная карта в формате SVG, на которой отмечены точки с заводами "Роснефти“".</p>
62
<p>Конечный результат проекта - интерактивная карта в формате SVG, на которой отмечены точки с заводами "Роснефти“".</p>
63
<p><strong>Алексей Барышников</strong>, Java-/JS-разработчик</p>
63
<p><strong>Алексей Барышников</strong>, Java-/JS-разработчик</p>
64
<p>Мир IoT - это наше будущее, а значит, разработка ПО для интернета вещей будет всё более востребованным занятием. Если вы уже кодите на Python, PHP, Java, Go или JS - попробуйте вкатиться в эту сферу через них. Python будет лучшим выбором для тех, кто ещё не знаком с программированием. А если вы хотите напрямую поработать с "железом" и памятью - обратите внимание на C/C++.</p>
64
<p>Мир IoT - это наше будущее, а значит, разработка ПО для интернета вещей будет всё более востребованным занятием. Если вы уже кодите на Python, PHP, Java, Go или JS - попробуйте вкатиться в эту сферу через них. Python будет лучшим выбором для тех, кто ещё не знаком с программированием. А если вы хотите напрямую поработать с "железом" и памятью - обратите внимание на C/C++.</p>
65
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
65
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>