Windows 10 iot core приложения

Привет, Хабр.

Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.

Деплоим Windows 10 приложения на Raspberry Pi 2

Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас.

Затем мы загружаем образ на misroSD-флешку.

Подключаем флешку к Raspberry и включаем. Первую загрузку ОС придется подождать, мгновенной она, конечно, не будет. Когда устройство «оживет» — подключаем Raspberry к локальной сети по Ethernet. Снова открываем Windows 10 IoT Core Dashboard и видим в списке «Мои устройства» заветную строчку. К слову, можно обойтись и без проводного подключения – список WiFi-донглов, поддерживаемых Windows 10 IoT Core, находится тут.

Далее нам понадобится Visual Studio 2015. Если она у вас все еще не установлена (хотя вы бы вряд ли читали эту статью в таком случае), можно скачать Community Edition.

Создаем новый или же открываем существующий Windows Universal проект. Кстати, если в проекте не нужен UI, можно создать Headless Application, выбрав тип проекта Windows IoT Core Background Application.

Выбираем деплой на Remote Machine.

Вводим адрес Raspberry. Посмотреть его можно на стартовом экране Win10 IoT Core или в Windows 10 IoT Core Dashboard.

Собственно, Internet of Things

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

Клонируем master-ветку DeviceHive.NET репозитория с GitHub. На момент написания статьи рабочие примеры для Win10 IoT были именно там.

Открываем solution DeviceHive.Device и в файле Program.cs проекта VirtualLed настраиваем доступ к песочнице DeviceHive.

using (var service = new RestfulDeviceService("http://playground.devicehive.com/api/rest"))
{
    // create a DeviceHive network where our device will reside
    var network = new Network("Network WPNBEP", "Playground Network", "%NETWORK_KEY%");

    //...
}

Если вы интересуетесь IoT, но по какой-то немыслимой причине еще не обзавелись DeviceHive Playground – это можно сделать здесь.

А управлять нашим «светодиодом» будет… Нет, пока не Raspberry, а клиент виртуального светодиода. Пример находится в проекте VirtualLedClient солюшена DeviceHive.Client. Его тоже нужно настроить в файле Program.cs:

var connectionInfo = new DeviceHiveConnectionInfo("http://playground.devicehive.com/api/rest", "%ACCESS_KEY%");

Самое интересное

Наше приложение на Raspberry Pi будет не просто кнопочкой включения/выключения светодиода, а практически полноценной админкой всех IoT-устройств нашей DeviceHive-сети. При желании, конечно, можно упростить его до той самой «кнопочки» или наоборот расширить, например, до клиента, управляющего роботом телеприсутствия.

Готовое приложение находится в том же репозитории, в solution DeviceHive.WindowsManager.Universal. Не будем останавливаться на нюансах гайдлайнов Win10 – корни приложения растут еще из Win8. Не будет тут и MVVM – все и так знают, как его применять. Давайте сосредоточимся на главном: нам нужна консоль мониторинга и управления устройствами, подключенными к DeviceHive, под Windows 10 на Raspberry Pi2.

Для DeviceHive реализовано три клиентских библиотеки:

  • DeviceHive.Client – для «большого» .NET 4.5 и выше. Использует WebSocket4Net.
  • DeviceHive.Client.Portable – для Windows 8.1 и Windows Phone 8.1. Использует нативные WebSockets.
  • DeviceHive.Client.Universal – для всех редакций Windows 10, в том числе для Win10 IoT Core. Именно она используется в нашем приложении.

Наследуем ClientService от DeviceHiveClient и инициализируем его сеттингами:

DeviceHiveConnectionInfo connInfo;
if (!String.IsNullOrEmpty(Settings.Instance.CloudAccessKey))
{
    connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudAccessKey);
}
else
{
    connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudUsername, Settings.Instance.CloudPassword);
}
current = new ClientService(connInfo, new RestClient(connInfo));

А также указываем не использовать LongPolling, а только WebSocket, дабы не упираться в лимит одновременных HTTP-запросов:

SetAvailableChannels(new Channel[] {
    new WebSocketChannel(connectionInfo, restClient)
});

Загружаем список девайсов и группируем их по сетям в MainPage:

var deviceList = await ClientService.Current.GetDevicesAsync();
var networkList = (await ClientService.Current.GetNetworksAsync()).FindAll(n => n.Id != null);
foreach (Network network in networkList)
{
    var devices = deviceList.FindAll(d => d.Network?.Id == network.Id);
    if (devices.Count > 0)
    {
        networkWithDevicesList.Add(new NetworkViewModel(network) { Devices = devices });
    }
}

А вот и наш виртуальный светодиод:

Переходим на DevicePage, подгружаем информацию о нем:

Device = await ClientService.Current.GetDeviceAsync(deviceId);

Переключаемся на вкладку с уведомлениями. Уведомления отправляются от управляемого устройства к управляющему устройству. В нашем случае – от VirtualLedClient к VirtualLed.
Инициализируем автоподгружающийся список с «бесконечным» скроллом:

NotificationFilter filter = new NotificationFilter()
{
    End = filterNotificationsEnd,
    Start = filterNotificationsStart,
    SortOrder = SortOrder.DESC
};
var list = new IncrementalLoadingCollection<Notification>(async (take, skip) =>
{
    filter.Skip = (int)skip;
    filter.Take = (int)take;
    return await ClientService.Current.GetNotificationsAsync(deviceId, filter);
}, 20);

Если не определена конечная дата фильтрации списка нотификаций, подписываемся на новые уведомления, которые будут приходить через вебсокет:

notificationsSubscription = await ClientService.Current.AddNotificationSubscriptionAsync(new[] { deviceId }, null, async (notificationReceived) =>
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        lock (NotificationsObservable)
        {
            if (!NotificationsObservable.Any(c => c.Id == notificationReceived.Notification.Id))
            {
                NotificationsObservable.Insert(0, notificationReceived.Notification);
            }
        }
    });
});

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

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

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

CommandFilter filter = new CommandFilter()
{
    End = filterCommandsEnd,
    Start = filterCommandsStart,
    SortOrder = SortOrder.DESC
};
var list = new IncrementalLoadingCollection<Command>(async (take, skip) =>
{
    filter.Skip = (int)skip;
    filter.Take = (int)take;
    return await ClientService.Current.GetCommandsAsync(deviceId, filter);
}, 20);

Аналогично подписываемся на новые команды:

commandsSubscription = await ClientService.Current.AddCommandSubscriptionAsync(new[] { deviceId }, null, async (commandReceived) =>
{
    await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
    {
        lock (CommandsObservable)
        {
            if (!CommandsObservable.Any(c => c.Id == commandReceived.Command.Id))
            {
                CommandsObservable.Insert(0, commandReceived.Command);
            }
        }
    });
});

Поскольку мы делаем инструмент не только для мониторинга, но и для управления устройствами в DeviceHive сети, нужно реализовать возможность отправки команд:

var parameters = commandParams.Text != "" ? JObject.Parse(commandParams.Text) : null;
var command = new Command(commandName.Text, parameters);
await ClientService.Current.SendCommandAsync(deviceId, command, CommandResultCallback);

При отправке команды мы подписались на ее обновление методом CommandResultCallback. Обрабатываем результат выполнения команды:

foreach (Command cmd in CommandsObservable)
{
  if (command.Id == cmd.Id)  
  {
        // Command class doesn't implement INotifyPropertyChanded to update its result,
        // so old command is replaced by command with result:
        var index = commandsObservable.IndexOf(cmd);
        commandsObservable.RemoveAt(index);
        commandsObservable.Insert(index, command);
        break;
    }
}

Чтобы не копировать команды вручную, нужно предусмотреть клонирование команд. Выделяем, клонируем, если нужно – редактируем, отправляем.

Задача выполнена! Как видите, Raspberry Pi 2 c Windows 10 IoT Core и DeviceHive – отличное решение для практически любой задачи в контексте Internet of Things. Прикрутите пару кнопок, dashboard и подключите Raspberry Pi к телевизору в гостиной – мониторинг и управление умным домом готово. Купили лишних Raspberry? Не вопрос, библиотека DeviceHive.Client умеет работать не только в качестве управляющего клиента, но и в качестве управляемого девайса – реализуем Headless Application, подключаем датчики/реле и устанавливаем Raspberry Pi по дому. Ограничивает вас лишь ваша фантазия.

Заключение

Появление Windows 10 IoT Core – это именно то, чего ждали embedded-разработчики. Когда ресурсов даже самого мощного микроконтроллера на .NET Micro Framework (для которого, кстати, тоже есть реализация DeviceHive) не хватает, а ставить полноценный компьютер на Windows – все равно, что стрелять из пушки по воробьям, то Windows 10 IoT Core – настоящее спасение. И пусть пока есть нюансы с аппаратным ускорением графики и недостатком драйверов для некоторых USB-устройств – это всё простительно. Ведь еще недавно мы только мечтали, чтобы Windows-приложения, работающие на настольных ПК и планшетах запускались не только на телефонах, но и на микрокомпьютерах. А теперь – это реальность, добро пожаловать в «сегодня».


Об авторе

Антон Седышев — Senior .NET-разработчик «DataArt »

В IT работает с далекого 2003, к команде DataArt присоединился в 2012. Ранее занимался разработкой веб- и мобильных проектов, автоматизицией логистических процессов на складах крупной международной компании. Сейчас выступает в роли ведущего .NET-разработчика и идеолога Microsoft-сообщества DataArt. Занимается разработкой приложений на Windows Phone и Windows 10, сервисом DeviceHive и embedded-технологиями вообще. В свободное время работает над собственным OpenSource embedded-проектом по интеграции .NET Micro Framework устройства в автомобили BMW.

Internet of Things (IoT) application is a popular technology topic in recent years. By connecting devices to the cloud, collecting data, monitoring the environment, computing at the edge and even remotely controlling devices, it is used to make Industry 4.0 unmanned factories or smart homes come true.

In response to the extensive demand of the Internet of Things, Microsoft® has developed a series of Windows IOT operating system and Azure cloud computing platform based on Windows Embedded. In the Windows 10 IOT OS family, Windows 10 IOT core version is designed for supporting Raspberry Pi. The compact and affordable Raspberry Pi can be adopted to incorporate IoT applications as an IOT gateways or edge computing devices.

According to the following instructions, you can easily install the Windows 10 IOT core operating system on Raspberry Pi. After connecting M505T touch monitor, the Windows 10 compatible M505T is plug-and-play after booting. Let’s take a look at the touch operation of M505T and Raspberry Pi with Windows IOT core.

1. Install Windows 10 IoT Core

Windows IOT Core is the most streamlined version of the Microsoft IOT operating system. It is developed for small smart devices and supports small single boards such as Raspberry Pi, Minnowboard, Dragonboard, and NXP devices. It is recommended to use the software provided by Microsoft-«IOT Core Dashboard» for system installation.

Download software ”IoT Core Dashboard”:Click here to download ”IoT Core Dashboard”

① Install ”IoT Core Dashboar” in your laptop and launch it

IOT-Dashboard-blank-EN-800

② Insert the formatted SD memory card into the laptop

insert-SD-card.jpg

Click “Set up a new device”:Choose «Broadcomm [Raspberry Pi 2 & 3]» in «Device type»

IOT-Dashboard-new device1-EN-800

④ Enter the Device name and password

IOT-Dashboard-new device2-EN-800

⑤ click “ Download and install”

IOT-Dashboard-new device3-EN-800

⑥ Insert the installed SD memory card into Raspberry Pi

binary comment

2. Install M505T Touch Monitor

① Plug the HDMI Cable into M505T and Raspberry Pi respectively

insert-HDMI-cable-V3

② Plug the USB-A to USB-C Touch Signal Cable into the USB-A port on Raspberry Pi and USB-C port on M505T to transmit touch signals

insert-USB-touch cable-V3

③ Plug the USB-C Cable into the power port on M505T and 5V-2A charger to power the monitor

binary comment

④ Plug the USB-A to Micro-USB cable into the Raspberry Pi and power charger

insert raspi power cable-v3

⑤ After booting on, M505T can be touched immediately. Finish the other settings by Windows 10 IoT Core instructions.

windows iot core-m505-touch-moment-2

(RemarkM505T is a Windows 10 Compliant Capacitive touch monitor that is compliable to HID touch screen driver built inside Windows universal driver, so it supports plug and play.)

3. Display Resolution and Orientation Setting

M505T is a Windows 10 compatible touch monitor, so the Windows 10 IOT core operating system will automatically display M505T correctly when connected. If you need to make personalized display settings for individual needs, please follow the steps below to open “Windows Device Portal” on your laptop to configure the system settings of the IOT device.

① Open ”Windows Device Portal”

In “ IoT Core Dashboard”>>My Device, the IOT Raspberry Pi connected to the same network domain will be displayed here. Right-click on the device >> select «Open in device portal. Windows Device Portal will open in the default browser, Chrome or Edge.

IOT-Dashboard-my device-EN-800

IOT-Dashboard-open in device portal-EN-800

② Display Setting and On-Screen Keyboard Setting

▲ Windows Device Portal can set up IOT devices through 8080 port connection:select the required resolution and frequency in 【Display Resolution 】. In 【Display Orientation】, you can specify the display directions such as Landscape, Portrait, Landscape flipped, and Portrait flipped.

Note 1: In Resolution, please select “ 1920×1080 (60Hz) for M505T
Note 2: When Portrait / Portrait (Flipped) is selected for Display Orientation, the screen display will be changed to vertical, but the touch position remains horizontal. This is a technical support issue of Windows 10 IOT core and has not yet been resolved.

▲ If you need to use the on-screen keyboard, remember to check On-Screen Keyboard.

windows device portal-resolution-800

iot-onscreen-keyboard-800

RPI & Windows 10 IOT Core Operation Video

In this blog post you’ll learn about IoT Core Blockly, a new UWP application that allows you to program a Raspberry Pi 2 or 3 and a Raspberry Pi Sense Hat using a “block” editor from your browser:

IMAGE1

You create a program with interlocking blocks, which will run on the Raspberry Pi. For example, you can control the LED matrix on the Sense Hat and react to the inputs (buttons, sensors like temperature, humidity, etc.).

IMAGE2

IoT Core Blockly was inspired by these other super interesting projects:

  • BBC micro:bit and the block editor (check out io as well)
  • Google Blockly open source block editor
  • Raspberry Pi Sense Hat (and the handy C# NuGet library from EmmellSoft)
  • Microsoft Chakra JavaScript engine

In this blog post, we will show you how to set up your Raspberry Pi with IoT Core Blockly and get coding with blocks.

Also, we’ll open the hood and look at how we implemented IoT Core Blockly leveraging Windows 10 IoT Core, Google Blockly, the Sense Hat library and the Chakra JavaScript engine.

Set up IoT Core Blockly on your Raspberry Pi

What you will need:

  • A Raspberry Pi 2 or 3
  • A Raspberry Pi Sense Hat
  • A clean SD Card (at least 8 Gb) to install Windows IoT Core 10 Insider Preview
  • A computer or laptop running Windows 10, to install the IoT Dashboard

First, unpack your Sense Hat and connect it on top of the Raspberry Pi (having four small spacers is handy, but not required):

Now you will need to install the latest Windows IoT Core 10 Insider Preview on your SD card. Follow the instructions at www.windowsondevices.com in the “Get Started” section:

  • If you have a Raspberry Pi 2, go here
  • If you have a Raspberry Pi 3, go here

At this point, you should have the IoT Dashboard up and running on your Windows 10 desktop (or laptop) and your Raspberry Pi connected to the network (either Ethernet or Wireless). You should be able to see your Raspberry Pi on the IoT Dashboard “My devices” section:

IMAGE5

In IoT Dashboard, go to the section called “Try some samples.” You will see the IoT Core Blockly sample:

IMAGE6

Click on it and follow the instructions to install the UWP application onto your Raspberry Pi. After a few seconds, IoT Dashboard will open your favorite browser and connect to the IoT Core Blockly application running on your Raspberry Pi:

IMAGE7

Press the “Run” button and the IoT Core Blockly application will start the “Heartbeat” program, and you should see a blinking red heart on your Sense Hat!

Try some other samples (the green buttons on the top). Select a sample, inspect the “blocks” in the editor and press the “Start” button to start this new program.

Try modifying an example: maybe a different image, color or message. IoT Core Blockly remembers the last program you run on the Raspberry Pi and will reload it when you start the Raspberry Pi again.

Under the hood

How does IoT Core Blockly work? How did we build it?

The code is on GitHub: https://github.com/ms-iot/samples/tree/develop/IoTBlockly.

You can clone the https://github.com/ms-iot/samples repo and load the IoTBlockly solution using Visual Studio 2015 Update 3.

The structure of IoT Core Blockly is simple:

  • The main app starts a web server which serves the Blockly editor page on port 8000.
  • At this point, you can browse to your Raspberry Pi <ip-address>:8000 from a browser and access the Blockly editor.
  • We created custom blocks for specific Sense Hat functionalities (e.g. the LED display, the joystick, the sensors, etc.) and added them to specific “categories” (e.g. Basic, Input, LED, Images, Pin, etc.)
  • Blockly makes it simple to translate blocks to JavaScript, so we could generate a runnable JavaScript snippet. You can see what your block program translates to in JavaScript by pressing the blue button “Convert to JavaScript” – note: to enable “events” like “on joystick button pressed” we have a few helper JavaScript functions and we pay special attention to the order of the various functions.
  • At this point, we have a block editor that can generate a runnable JavaScript snippet: We need something that can execute this JavaScript snippet on a different thread without interfering with the web server.
  • To run the snippet, we instantiate the Chakra JavaScript engine (which is part of every Windows 10 edition) and start the snippet. Chakra makes it easy to stop the snippet at will.
  • Many of the blocks interact directly with the Sense Hat. We could have written a bunch of JavaScript code to control the Sense Hat, but we leveraged the complete and easy to use C# SenseHat library from EmmellSoft. Bridging between JavaScript and C# was extremely easy leveraging a wrapper UWP library.
  • Last, we added some machinery to make sure the last “run” snippet is saved on the Raspberry Pi (both the blocks layout and the JavaScript snippet are cached) and run again the next time the IoT Core Blockly app starts (e.g. when you restart your device).

If you inspect the IoTBlockly solution from GitHub, you can see 4 different projects:

  • IoTBlocklyBackgroundApp: The main app that orchestrate the web server and the Chakra JavaScript engine. Google Blockly code is part of this project.
  • ChakraHost: A wrapper library to simplify the use of the Chakra JavaScript engine (inspired by the “JavaScript Runtime Sample” you can find at https://github.com/Microsoft/Chakra-Samples (full path at http://bit.ly/1QgvdWa).
  • IoTBlocklyHelper: A simple UWP wrapper library to bridge between C# code and the JavaScript snippet. The SenseHat library from EmmellSoft is referenced in this project.
  • SimpleWebServer: A rudimentary web server based on Windows.Networking.Sockets.StreamSocketListener.

Let us know if you want more details about how this works. We can definitely geek out more about this! J

Next steps

IoT Core Blockly is a functional sample, but we think we can do more. For example:

  • add more support for colors,
  • add support for sounds,
  • add support for voice (speech and speech recognition),
  • add more blocks for GPIO, ADC, PWM, SPI, I2C,
  • add blocks for other “hats” (for example, the GrovePi),
  • send/Receive data to/from the cloud, over BT, etc.,
  • leverage the io environment,
  • improve the stability of the web server.

First, though, we want to hear from you J How you use IoT Core? What would you change or improve?

Don’t forget, IoT Core Blockly code is here on GitHub, and we gladly accept help, contributions and ideas!

Thanks for trying this out, and get started with Visual Studio!

The Windows team would love to hear your feedback. Please keep the feedback coming using our Windows Developer UserVoice site. If you have a direct bug, please use the Windows Feedback tool built directly into Windows 10.

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

В июне 2018 года компания Microsoft представила Windows 10 IoT Core Services — новую бизнес-модель для операционной системы Windows 10 IoT Core. Разберем особенность и преимущества нового предложения для разработчиков и производителей embedded-устройств.

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

Windows 10 IoT Core vs. Windows 10 IoT Enterprise

Windows 10 IoT Core — представленная в 2015 году бесплатная редакция ОС Windows 10. Разработчики и OEM-производители создают и тестируют с помощью этой ОС прототипы готового устройства, а также используют ее как рабочую ОС для «умных» устройств Интернета вещей. 

Ключевыми преимуществами Windows 10 IoT Core являются: возможность работы на платформе ARM, низкие системные требования и размер, бесплатность (в варианте для непромышленного использования).

Сравним Windows 10 IoT Core с редакцией Windows 10 IoT Enterprise:

 

Windows 10 IoT Core

Windows 10 IoT Enterprise

Пользовательская среда

Только одно одновременно активное UWP приложение. Поддерживает приложения и службы в фоне.

Классическая оболочка Windows c расширенными возможностями блокировки от нежелательных изменений, любые win32 приложения

Возможность работы без интерфейсов управления

Да

Да

Архитектура приложений

UWP

UWP, Win32

Cortana

Да

Да

Управление

Azure IoT DM, MDM

Azure IoT DM, MDM, классические системы управления «клиент-сервер»

Технологии безопасности устройства

TPM, Secure Boot, BitLocker, Device Guard, Device

TPM, Secure Boot, BitLocker, Device Guard, Device

Архитектура CPU

x86, x64, ARM32

X86, x64

Системные требования

512 Mb RAM + 2Gb памяти на диске

1 Gb RAM + 16Gb памяти на диске

Лицензирование

Лицензионное соглашение онлайн, бесплатная и платная версии

Платные версии, OEM Customer License Agreement

Типовые сценарии использования*

  • Digital Signage & Kiosks
  • IoT gateway
  • Manufacturing Devices
  • Small medical devices
  • Wearables
  • Smart building
  • Digital Signage & Kiosks
  • IoT gateway
  • Manuf. Devices
  • Industry tables
  • Large medical devices
  • POS, ATM

* Указаны для примера. Фактически сценариев использования может быть больше.

Windows 10 IoT Core и Windows 10 IoT Core Services

Windows 10 IoT Core распространяется бесплатно, дважды в год получает новую функциональность, а каждый выпуск поддерживается Microsoft только 1,5 года. Такой подход с одной стороны удобен для разработчиков-энтузиастов, которым важно постоянно иметь в арсенале самые актуальные технологии Microsoft, с другой — ограничивает использование этой ОС в промышленном производстве и отраслевых решениях, поскольку в большинстве сценариев использования таких устройств недопустимы незапланированные обновления и перезагрузки, а ограниченная поддержка 18 месяцев подвергает риску безопасность устройств.

Кроме того, Windows 10 IoT Core не обладает механизмом официального подтверждения легальности использования (не имеет наклеек-сертификатов подлинности), а также, учитывая ее бесплатность — не имеет официальных документов о передаче сублицензионных прав.

Поэтому, для коммерческих сценариев использования Windows 10 IoT Microsoft предлагает аналогичный продукт, но лишенный указанных недостатков — Windows 10 IoT Core Services.

Преимущества Windows 10 IoT Core Services

Windows 10 IoT Core Services — это новая модель платного распространения и обслуживания операционной системы Windows 10 IoT Core по подписке. Рассмотрим основные преимущества нового предложения:

Обновления

Новый облачный механизм обновлений IoT Core Device Update Center (DUC). Позволяет удаленно обновлять ОС, драйвера и ваши собственные приложения на устройстве через ту же сеть Content Distribution Network (CDN), которая используется и в привычном инструменте Windows Update.

 

DUC

WSUS

Управляемая ОС

Windows 10 IoT Core

Windows 10 IoT Enterprise

Где размещается

В облаке

Локально на устройстве

Подключение к Интернету для обновления

Обязательно

Нет

Чем можно управлять

Обновления ОС и приложений

Обновления ОС

10 лет поддержи через канал LTSC

Windows 10 IoT Core Services предлагает долгосрочный цикл обслуживания LTSC (ранее — LTSB), с ежемесячно публикуемыми кумулятивными обновлениями безопасности и стабильности, но без доставки функциональных обновлений (новых релизов). 

 

Windows 10 IoT Enterprise LTSC

Windows 10 IoT Core Services

10 лет поддержки

Да

Да

Цикл обновления каждые 2-3 года

Да

Да

Канал поставки

Embedded канал

CSP-дистрибьюторы,
Embedded-дистрибьюторы
Подписка

Механизм обновления

Windows releases Cycle

DUC

Необходимость интернет-подключения для обновления

Только для первоначальной загрузки

Да

Безопасность в Windows 10 IoT Core Services

Новый инструмент Device Health Attestation (DHA). Облачный сервис, гарантирующий безопасность подключаемых устройств и системы в целом, путем внешнего удостоверения подлинности каждого подключенного устройства на платформе Windows 10 IoT Core Services.

Поддержка для Windows 10 IoT Core Services

  • Официальная поддержка Microsoft в течение 10 лет, в соответствии с политикой Microsoft Lifecycle Support.
  • Выпуски с долгосрочным обслуживанием Long-term Servicing Channel (LTSC), аналогичный Windows 10 IoT Enterprise LTSC.
  • Доступ к ежемесячно обновляемым кумулятивным пакетам обновлений безопасности Windows 10 IoT Core.

Лицензирование Windows 10 IoT Core Services

Windows 10 IoT Core Services состоялся осенью 2018 года и уже доступна для заказа в Кварта Технологии.

Продукт поставляется вместе с сервисами Azure по обновлению устройств Device Update Center**, 10-ти летней поддержкой, а также серисом гарантированного безопасного доступа (Device Health Attestation). 

Стоимость Windows 10 IoT Core Services составляет 36 долларов за единицу, включая 10-ти летнюю подписку на сервисы (или $0,30 за устройство в месяц). Для Windows 10 IoT Core Services, в отличие от Windows 10 IoT Core могут быть заказаны лицензионные наклейки COA (опционально).

Полезные ресурсы

Ценообразование и ознакомительные версии

Дистрибутивы

Настройка служб обновлений ОС и приложений Device Update Center

Материалы в базе знаний

(**) — Сервисы Azure не включают подписку Azure Active Directory, необходимую для работы с сервисом Device Update Center. Azure Active Directory заказчик может приобрести самостоятельно или через нашу компанию.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Код события запуска windows
  • Tetris for windows 7 download
  • Как отключить панель с погодой в windows 10
  • Как обновить windows 10 до последней версии без центра обновлений
  • Как установить windows поверх linux