Raspberry установка windows iot

Установка Windows 10 IoT Core на Raspberry Pi 2

Windows 10 IoT Core – особая операционная система Microsoft, оптимизированная для мини-компьютеров с ограниченным набором системных ресурсов, разрабатываемая в рамках концепции IoT (Internet of Things, «Интернет Вещей»). Предназначена для различных миниатюрных, встраиваемых решений и устройств «умного дома». В частности, минимальные требования для Core — архитектура x86/ARM , 256 Мб ОЗУ и 2 Гб емкости на диске/флешке. На данный момент гарантированно работает на платах Raspberry Pi 2 (ARM), Intel Minnowboard MAX (x86) и DragonBoard 410c. Windows 10 IoT Core является бесплатной платформой.

В этой статье мы рассмотрим, как установить Windows 10 IoT Core для Raspberry Pi 2 на SD карту, загрузить с нее систему и удаленной управлять платформой с Windows-компьютера при помощи PowerShell.

Нам понадобятся:

  • Собственно плата Raspberry Pi 2 (стоимость 25$)
  • MicroSD карта емкостью 8 или 16 Гб (класса 10 или выше)
  • HDMI-кабель для подключения к внешнему монитору / ТВ
  • Ethernet кабель для подключения к сети
  • МикроUSB кабель в качестве питающего кабеля (5V)
  • Компьютер с Windows 10 (для создания загрузочной SD карты обязательно должен быть физическим устройством, а не виртуальной машиной, т.к. требуется прямой доступ к SD карте)
  • Образ Windows 10 IoT Core для Raspberry Pi 2 (можно скачать по ссылке на странице https://developer.microsoft.com/en-us/windows/iot/downloads
  • USB клавиатуру/ USB мышь для управления Raspberry Pi (опционально)

Качаем образ Windows 10 IoT Core для Raspberry Pi 2 (10586.0.151029-1700.TH2_Release_IOTCoreRPi_armFRE.iso) и монтируем его в виртуальный CD привод. Устанавливаем Windows_10_IoT_Core_RPi2.msi.

Запись образа Windows 10 IoT Core на SD карту можно выполнить с помощью графической утилиты или из командной строки.

Для запуска графической утилиты запустите программу IoTCoreImageHelper.exe. Затем в окне мастера выберите вашу SD карту и укажите путь к файлу с образом системы flash.ffu (по умолчанию устанавливается в ”C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2”) и запишите образ на SD диск, нажав на кнопку Flash.

Чтобы вручную записать образ, для удобства скопируем файл flash.ffu в каталог C:\WindowsIoT. Затем вставим SD карту в компьютер и с помощью PowerShell выведем список дисков в системе:

Get-Disk | ft -AutoSize

Определяем номер диска нашей SD карты (в данном примере ее номер 1). Переходим в каталог, в котором хранится файл flash.ffu:

С помощью следующей команды скопируем образ Windows 10 IoT на SD карту (PhysicalDrive1 нужно заменить на номер SD карты в вашей системе):

dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive1 /SkipPlatformCheck

Безопасно извлеките SD карту.

Подключаем к плате Raspberry Pi 2 сетевой кабель, монитор через HDMI, записанную на предыдущем этапе SD карту с образом системы, USB кабель и загружаемся. Первая загрузка будет продолжительной, т.к. будет выполнение начальная настройка системы, после чего система перезагрузиться в нормальном режиме.

На дисплее должны отобразиться имя системы (по-умолчанию minwinpc), полученный IP адрес (если в сети имеется DHCP сервер), список подключенных устройств.

Устройства Windows 10 IoT подразумевает возможность управления через веб интерфейс. Утилита WindowsIoTCoreWatcher.exe позволяет найти в сети ip адреса устройств с Windows 10 IoT. Затем в браузере перейдите на порт 8080 обнаруженного ip адреса устройства. Для авторизации воспользуйтесь именем administrator и паролем p@ssw0rd.

Нам более интересна возможность подключения к устройству под Windows 10 IoT Core с помощью Powershell: Для этого запустим PowerShell с правами администратора.

net start WinRM

Затем добавим адрес Pi-устройства в список доверенных:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value «192.168.1.115»

Запустим новую удаленную сессию PowerShell:

Enter-PsSession -ComputerName «192.168.1.115» -Credential 192.168.1.115\Administrator

Авторизуемся с помощью дефолтного пароля p@ssw0rd.

Совет. Авторизационные данные можно сохранить в переменной, чтобы не вводить их каждый раз вручную:

Читайте также:  Доступ сервер сценариев windows

$Cred = Get-Credential
Enter-PsSession -ComputerName 192.168.1.115 -Credential $Cred

Новая сессия устанавливается в речении примерно 30 секунд. После этого в консоль можно вводить команды управления.

Рассмотрим некоторые типовые команды.

Вывод списка каталогов:

set computername «newcomputername»

Изменить пароль администратора:

net user Administrator NewPa$$W0rd

Выключить устройство можно командой shutdown:

Перезагрузить устройство:

Как на Raspberry Pi установить Windows 10

Raspberry Pi — многофункциональная платформа, способная стать основой для разнообразных проектов. Обычно программной базой для решений на RPi выбирают ОС семейства Linux или Android, но в некоторых случаях целесообразно использовать Windows. Для запуска Windows на Raspberry Pi существует специальная сборка операционной системы — Windows 10 IoT Core.

Что такое Windows 10 IoT

Если встает вопрос установки Виндовс на «малинку», выбор невелик. Win XP или 7 адаптированы под архитектуры процессоров ×86-64 и ×86, а микрокомпьютер работает под управлением CPU с архитектурой ARM. Конечно, существуют проекты запуска XP через эмулятор на Raspbian, но такие решения ничего толкового не принесут. Windows на Raspberry в данном варианте будет разделять аппаратные ресурсы с основной ОС и работать весьма медленно. Поэтому подобное имеет смысл лишь в экспериментальных целях.

Среди релизов Windows 10 компания Microsoft предлагает ветку Embedded для встраиваемых систем. Среди ее представителей есть и Windows IoT Core — ОС для устройств «умных домов» и «интернета вещей». Она способна работать на оборудовании с процессорами ARM, включая Raspberry.

Windows 10 IoT Core сильно отличается от привычной десктопной версии системы, хотя в ее основе лежит все то же ядро NT. Важно учитывать, что существуют два варианта поставки:

Первая представляет полноценную Windows Enterprise для корпоративного сектора. Ее используют в разнообразных встраиваемых устройствах. Вторая — более «легковесная», поддерживает ARM-архитектуру и не совместима с обычными Win-приложениями и оборудованием. Также она лишена графической оболочки и обладает рядом других ограничений. Главные среди них – возможность запускать лишь приложения UWP (Universal Windows Platform). При этом на единицу времени может работать только одно основное (foreground) приложение и несколько фоновых.

Кроме того, Enterprise существует в платном варианте, а Core можно загружать и использовать бесплатно. В рамках данной статьи рассматривается именно она.

«Малина» под управлением Win-систем часто встречается в промышленных контроллерах, кассовых аппаратах и прочих устройствах.

Загрузка и установка

Процесс развертывания ОС от Microsoft на Raspberry Pi 3 несколько отличается от такового у «родного» Raspbian или Андроид. Для установки понадобится:

  • сам компьютер Raspberry. Для примера используем Raspberry Pi 3 b +;
  • карта памяти;
  • ПК с подключением к интернету;
  • установленный на нем пакет Microsoft Visual Studio от 15 версии и выше;
  • программное обеспечение IoT Dashboard и IoT Remote Client.

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

Когда все скачано и установлено, приступаем к развертыванию образа на Raspberry Pi 3. Процесс состоит из нескольких шагов.

    Запуск дашборда. Открывается интерфейс программы, где следует перейти на вкладку «Set up a new device» (или «Настройка нового устройства» в русскоязычном варианте):Здесь выбирается аппаратное обеспечение, билд Windows для Raspberry Pi 3, задается имя узла и пароль администратора.

Важно: если необходимо включить на «малинке» работу через Wi-Fi, на ПК с запущенным дашбордом также должно быть активно беспроводное подключение. Программа автоматически внесет нужные настройки в разворачиваемый образ. На скриншоте выше подключение к Wi-Fi отсутствует, о чем утилита и сообщает. При его наличии окно будет выглядеть примерно следующим образом:

Если подключен дисплей, на нем отобразится основной экран приложения с информацией о компьютере.

Взаимодействие с Windows на Raspberry Pi 3

Управлять свежеустановленной на Raspberry Pi Windows 10 можно посредством дисплея и клавиатуры/мышки. Также по сетевому адресу или имени узла компьютера (которое было задано на этапе развертывания) доступен веб-интерфейс — Web Manager.

Следующий способ управления Windows на Raspberry — клиент удаленного доступа. Его интерфейс прост: необходимо ввести ip-адрес «малинки» или выбрать устройство в списке обнаруженных.

Читайте также:  Зашифрованный архив mac os

ПО Dashboard позволяет подключаться к компьютеру посредством удаленного PowerShell:

Для этого может понадобиться разрешить компьютеру удаленное подключение. Это делается следующей командой локального PowerShell:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value «сетевое_имя_RPI или ip-адрес»

Далее можно подключаться через Dashboard. Если все сделано верно, откроется окно PS:

Оболочка также может потребовать ввода пароля администратора.

Из Dashboard доступен функционал просмотра сетевых папок, например, содержимого диска C через стандартный административный общий ресурс c$:

Зачем это нужно

IoT Core — система высокоспециализированная и в качестве замены обычной десктопной Windows работать не будет. Ее основное предназначение лежит в сфере проектов для «умных домов», и различных контроллеров, будет она интересна инженерам, разработчикам и просто энтузиастам IT. И в этой роли ОС в связке с недорогим одноплатником Pi 3 становится отличным тандемом.

Добавляет привлекательности и то, что пакет Visual Studio в последних версиях изначально поддерживает разработку под IoT Core — для этого в шаблонах проектов присутствует Windows IoT Core Background Application с возможностью загрузки готового приложения непосредственно на удаленный ПК.

Кроме того, система бесплатна.

Видео по теме

Не IoT, а малина! Строим IoT-проект на Raspberry Pi с Windows 10 и DeviceHive

Наверное каждый разработчик на определенном этапе задумывался о собственном 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.

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

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

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

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

Читайте также:  Как использовать proxy windows

Готовое приложение находится в том же репозитории, в 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 и инициализируем его сеттингами:

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

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

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

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

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

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

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

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

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

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

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

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

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

Задача выполнена! Как видите, 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.

Оцените статью