Всего за несколько лет код Visual Studio покорил сердца самых разных разработчиков. Он очень быстро появился в сообществах веб-разработчиков, но теперь он также стал IDE для разработчиков на Java, Python или C / C ++, независимо от того, работают они под Linux, macOS или Windows. В самом деле, в последнем опросе разработчиков Stack Overflow , VS Code занимает более 50% рынка среди более 90 000 разработчиков.
Вам также может понравиться: Лучшие 5 обязательных расширений кода Visual Studio
Независимо от того, приступаете ли вы к IoT или уже давно работаете над IoT-решениями, вы, вероятно, поняли, что термин «разработчик с полным стеком» — это термин, который также часто применяется к IoT. Вполне возможно, вы проводите большую часть своих дней, работая над разработкой и тестированием встроенного программного обеспечения подключенного встраиваемого устройства на языке C. Тем не менее, время от времени вы можете настроить некоторые скрипты Python, используемые для сборки системы, или использовать команду инструмент для проверки того, что ваши внутренние сервисы IoT запущены и работают.
Вместо того чтобы переключаться с одной среды разработки или терминала командной строки на другую, я не удивлюсь, если, как и я, вы будете заинтересованы в том, чтобы выполнять большую часть своей работы, даже не покидая IDE.
В этой статье мы рассмотрим некоторые важные расширения кода VS, которые помогут вам стать более продуктивным разработчиком IoT.
Расширение кода VS для Arduino
Прошло очень много времени с тех пор, как я последний раз открывал Arduino IDE на своем компьютере. Это отличный инструмент, особенно для помощи новичкам в освоении экосистемы Arduino, но в нем отсутствуют некоторые ключевые функции для тех, кто заинтересован в том, чтобы делать больше, чем просто мигать светодиодом или запускать основные программы. Теперь, когда все больше и больше платформ совместимы с Arduino, от наборов разработчика RISC-V, таких как HiFive1 до ESP32 или семейства STM32 Nucleo, есть еще больше причин для поиска лучшей IDE для разработки Arduino.
Расширение VS Code для Arduino построено поверх официальной среды разработки Arduino — которую нужно установить один раз, но, вероятно, никогда больше не откроет — и предоставляет вам все функции, которые вы ожидаете найти в классической среде IDE (например, просмотр примеры кода или контролировать ваш последовательный порт).
Что делает расширение особенно мощным, на мой взгляд, так это то, что оно основано на инструментах VS Code C / C ++, чтобы предоставить вам полноценную Intellisense и навигацию по коду для вашего кода, что оказывается очень полезным
Я хорошо помню, как в первый раз я положил руки и спаял Arduino-совместимую плату примерно в 2010 году в TechShop Menlo Park. Было невероятно видеть, как экосистема Arduino растет с годами. Не менее невероятно думать, что до самого недавнего времени отладка так называемого эскиза была предназначена только для самых предприимчивых программистов. Если у вас была только одна причина попробовать расширение VS Code для Arduino, то это должно быть фактом, который значительно упрощает отладку программ Arduino (больше никаких трасс «Serial.println», ура!).
За кулисами расширение использует общие интерфейсы отладки, такие как CMSIS-DAP, JLink и ST-Link. Если на вашем устройстве уже имеется встроенный чип отладки, реализующий один из этих интерфейсов, все готово! Если нет, вам просто нужно взглянуть на использование внешнего разъема, совместимого с вашим чипом.
PlatformIO IDE
Как я уже упоминал в предыдущем разделе, появляется все больше и больше платформ, которые подключаются к парадигме Arduino, но, конечно же, встраиваемая разработка — это нечто большее, чем экосистема Arduino.
PlatformIO изначально создавался как инструмент командной строки с открытым исходным кодом для поддержки IoT и разработчиков встраиваемых систем, предоставляя единый механизм для предоставления инструментальных цепочек, управления библиотеками, отладки и т. Д. Он быстро эволюционировал для тесной интеграции с кодом VS и расширением PlatformIO IDE для VS Code в настоящее время является одним из самых популярных на Visual Studio Marketplace.
PlatformIO поддерживает более 30 платформ (например, Atmel AVR, Atmel SAM, ESP-32 и 8266, Kendryte K210, Freescale Kinetis и т. Д.), Более 20 фреймворков (Arduino, ESP-IDF, Arm Mbed, Zephyr,…) и более 750 разные доски! Для каждой из этих платформ расширение поможет вам написать свой код (завершение кода, навигация по коду), управлять своими зависимостями, создавать и отлаживать, а также взаимодействовать с вашим устройством с помощью монитора последовательного порта.
Еще одна интересная особенность — это возможность конвертировать существующий проект Arduino в формат PlatformIO, что существенно облегчает обмен с коллегами (и с миром!), Поскольку в этом случае можно использовать расширенные функции управления библиотеками PlatformIO . Например, он может автоматически поджать 3 RD библиотеки сторонних исключительно на основе заголовочных файлов вы в том числе в вашем коде.
Инструменты IoT для Azure
Расширение Azure IoT Tools для кода VS — это, по сути, пакет расширения, который устанавливается одним щелчком мыши инструментарий-концентратор IoT Azure, расширение IoT Edge и инструментальные средства для устройств.
Когда вы смотрите на подключение ваших устройств к облаку, Azure IoT Hub предоставляет вам все необходимое для управления вашими устройствами, сбора их телеметрии и маршрутизации к потребляющим службам и многое другое. Используя расширение Azure IoT Hub, вы можете легко подготовить экземпляр IoT Hub в своей подписке Azure, подготовить устройства, отслеживать отправляемые ими данные и т. Д., Не покидая свою среду IDE!
Если вы заинтересованы в использовании контейнерной архитектуры для интеллектуальных шлюзов IoT , скорее всего, IoT Edge может вам помочь! Благодаря выделенному расширению вы можете легко создавать свои собственные модули IoT Edge и развертывать их на своих периферийных устройствах, подключенных к IoT Hub, как реальных, так и имитированных, работающих на вашей машине для разработки.
Наконец, Device Workbench может помочь вам быстро начать работу с реальными устройствами. Он предоставляет набор инструментов, помогающих создать собственное устройство IoT plug-and-play или просто опробовать Azure IoT с реальным устройством, используя один из множества примеров, поставляемых в комплекте с рабочим столом.
Что мне больше всего нравится с расширением Azure IoT Tools? Каждые несколько недель вы получаете массу удивительных обновлений и новых функций, так как расширение активно развивается.
Пакет расширений для удаленной разработки
IoT Development — это гораздо больше, чем написание кода для встроенных устройств. Часто вы попадаете в ситуацию, когда вы хотите взаимодействовать с папкой, которая находится в контейнере на удаленном пограничном шлюзе или на облачном сервере. Вы точно можете использовать SSH и / или SCP для синхронизации ваших локальных и удаленных сред разработки, но это может быть довольно болезненным и подверженным ошибкам.
Пакет расширений для удаленной разработки позволяет открывать любую папку в контейнере или на удаленной машине, а затем просто использовать VS Code, как если бы вы манипулировали локальными ресурсами.
REST Client
Если вы похожи на меня, ваш инструмент для тестирования API REST — это, вероятно, Postman. Это действительно отличный инструмент для создания и тестирования запросов REST, SOAP или GraphQL, и он даже позволяет сохранять запросы в облаке и делиться ими с коллегами.
Недавно я оказался в ситуации, когда я хотел поделиться некоторыми примерами запросов с людьми во время учебной сессии, и я не хотел, чтобы им приходилось без необходимости копировать и вставлять из инструкций по обучению Почтальона; Вместо этого я хотел, чтобы запросы были частью реального учебного материала!
Расширение REST Client превращает любой файл с расширением .http или .rest в исполняемый блокнот, где вы можете очень легко выполнить все содержащиеся в нем запросы.
Как вы строите решение от конца до конца IoT, это более чем вероятно , что вы будете полагаться на 3 — й услуги сторонних по пути, и что вы будете взаимодействовать с ними с помощью той или иной форме REST API. Например, вы можете полагаться на метеорологическую службу как часть ваших прогнозов по техническому обслуживанию. Ниже приведен пример того, как я поделился со своими учениками несколькими запросами, показывающими, как использовать API Карт Azure для вычисления маршрутов или рендеринга листов карты.
PowerShell
1
@subscription-key = REPLACE_WITH_YOUR_AZURE_MAPS_KEY
2
@SeattleWA = 47.60323,-122.33028
3
@RedmondWA = 47.67491,-122.124
4
###
6
# GetTimezoneByCoordinates for Seattle, WA
7
###
8
GET https://atlas.microsoft.com/timezone/byCoordinates/json?subscription-key={{subscription-key}}&api-version=1.0&options=all&query={{SeattleWA}}
9
###
11
# Get route from Seattle, WA to Redmond, WA
12
###
13
GET https://atlas.microsoft.com/route/directions/json?api-version=1.0&subscription-key={{subscription-key}}&query={{RedmondWA}}:{{SeattleWA}}&routeRepresentation=polyline&travelMode=car&view=Auto
14
###
16
# Render tile for Seattle, WA
17
###
18
GET https://atlas.microsoft.com/map/static/png?subscription-key={{subscription-key}}&api-version=1.0&layer=basic&style=main&zoom=10¢er=-122.33028,47.67491
Вы также всегда можете найти меня в Twitter, чтобы продолжить разговор.
Дальнейшее чтение
Visual Studio Code для Java: окончательное руководство 2019
Как настроить код Visual Studio для тестирования и разработки Python