【.com快译】短短几年,VisualStudioCode(简称VSCode)征服了众多开发者的心。随着其在Web开发社区的迅速崛起,它已成为Java、Python和C/C++开发人员的首选IDE(集成开发环境),无论是在Linux、macOS还是Windows平台上运行。在StackOverflow最新的开发者调查(https://insights.stackoverflow.com/survey/2019)中,超过90,000名开发者给出了反馈,据信VSCode已经占据了超过50%的市场份额。无论您是刚刚开始接触物联网(IoT)技术,还是已经使用物联网相关解决方案一段时间,您可能很快就会意识到“全栈开发人员”一词同样适用于物联网领域。你需要花很多时间开发和测试用C语言连接的嵌入式设备和固件。有时,您可能还需要调整一些可用于构建系统的Python脚本,或使用命令行工具来检查目标物联网后端服务是否已启动并运行。在本文中,我们将向您介绍一些基本的VSCode扩展。这些扩展将帮助您成为更高效的物联网(IoT)开发人员。Arduino的ArduinoIDE的VSCode扩展是一个很棒的工具。特别适合帮助新手入门整个Arduino生态系统。然而,对于那些想要超越只是闪烁LED或运行基本程序的用户来说,Arduino在它可以提供的关键功能方面仍然有点欠缺。如今,越来越多的平台兼容Arduino,包括:ESP32等HiFive1RISC-V开发者套件,STM32Nucleo系列。有关详细信息,请参阅:https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems。Arduino的VSCode扩展已经放在ArduinoIDE的官方网站上。您只需要安装一次,就可以反复使用它提供的所有功能。如下图所示,包括:浏览代码示例,监控自己的串口等。在我看来,VSCode扩展的真正强大之处在于它可以基于VSCode的C/C++工具进行构建,并能为您提供全面的智能感知和实用的代码导航功能。自从2010年第一次接触Arduino兼容主板,以及之后的Arduino生态系统,Arduino的VSCode扩展已经逐渐摆脱了“Serial.println”,越来越适合相关的程序调试。在幕后,该扩展利用了常见的调试接口,例如CMSIS-DAP、JLink和ST-Link。如果您的设备已经有一个实现这些接口之一的板载调试芯片,那么您可以立即开始工作。当然,如果没有,你只需要考虑使用与你的芯片兼容的外部连接器。PlatformIOIDEPlatformIO是一个开源命令行工具,通过提供统一的工具链分发、代码库管理和调试机制来支持物联网和嵌入式开发。近年来,它与VSCode的集成越来越紧密。可以说,VSCode的PlatformIOIDE扩展现在是VisualStudio市场上最受欢迎的扩展工具之一。目前PlatformIO支持30多个平台,包括:AtmelAVR、AtmelSAM、ESP-32和8266、KendryteK210、FreescaleKinetis等,同时还可以支持Arduino、ESP等20多个框架-IDF、ArmMbed、Zephyr以及超过750个平台和其他不同的主板。在这些平台上,该扩展将帮助您编写代码(包括:代码完成和代码导航等)、管理依赖项、构建和调试以及使用串口监视器与您自己的设备进行交互。此扩展工具的另一个有趣功能:能够将现有的Arduino项目转换为PlatformIO格式。据此,您可以更轻松地与同事(或其他人)共享您自己的代码,以利用PlatformIO的高级库管理功能(参见https://docs.platformio.org/en/latest/librarymanager/index.html)。例如:它可以仅根据您在代码中包含的头文件自动提取使用过的第三方代码库。AzureIoT工具VSCode的AzureIoT工具扩展本质上是一个扩展包。作为物联网边缘扩展和设备工作台(DeviceWorkbench),你只需要点击AzureIoTHubToolkit即可完成安装。当你想将设备连接到云端时,AzureIoTHub为你提供管理设备、收集设备遥测和路由所需的所有服务。使用AzureIoTHub扩展提供的IDE,您可以轻松地在Azure订阅服务中配置IoTHub实例、配置设备并监控它们发送的数据。另外,如果你有兴趣使用基于容器的架构构建智能物联网网关,那么IoTEdge一定能帮到你。借助其专用扩展,您可以轻松构建自定义IoT边缘模块并将它们部署到连接到IoTHub的那些边缘设备。而且这样的扩展并不局限于开发阶段是在电脑上模拟运行设备,还是在真实设备上运行。最后,DeviceWorkbench可以帮助您快速启用各种真实的物联网设备。它通过提供一组工具帮助您构建IoT即插即用设备(请参阅https://docs.microsoft.com/en-us/azure/iot-pnp/)。当然,Workbench也可以使用多种内置案例将AzureIoT部署到实际设备上。而且,很高兴看到AzureIoT工具扩展每隔几周推出一些不错的更新和新功能。详情请参考:https://devblogs.microsoft.com/visualstudio/tag/iot/。远程开发扩展包众所周知,物联网开发不仅仅是为嵌入式设备编写代码。通常,您需要与远程边缘网关或驻留在云服务器容器中的文件夹进行交互。虽然可以使用SSH和SCP来同步本地和远程开发环境,但过程往往极其繁琐。如上图所示,远程开发扩展包可以让你打开容器内或远程电脑上的任意文件夹,然后像处理本地资源一样使用各种VSCode。RESTClient为了测试RESTAPI,我们经常需要创建和测试相应的REST、SOAP或GraphQL请求。有时,您甚至需要将查询保存到云端,以便与同事轻松共享。RESTClient扩展可以将任何扩展名为.http或.rest的文件转换为可执行的记事本文件,以便您可以轻松地在其中执行各种查询任务。在构建端到端IoT解决方案时,您很可能会依赖第三方服务并使用某种形式的RESTAPI与它们进行交互。示例:您可能需要依赖天气服务作为您自己的预测计算的一部分。下面是我与合作伙伴分享的一些查询示例。它展示了如何使用AzureMapsAPI计算和处理路线,以及如何呈现地图图块。下图展示了如何借助RESTClient扩展实现实时查询效果。原标题:Top5VSCodeExtensionsforIoTDevelopers,作者:BenjaminCabé
