不要乱得一团糟——IoT Hub怎么这么多接口

Click here to read English version 如果你刚刚接触Azure IoT Hub,可能会对IoT Hub的接口感到困惑。 在我们开始之前,你需要搞清楚IoT Hub是一个通道,是通道就要有两个端口,设备端和云端。而两端连接IoT Hub的方式不尽相同。 在设备端,你也许会使用IoT Hub的Device SDK通过设备的Connection String连接IoT Hub,这个Connection String的格式是HostName=xxx.azure-devices.net;DeviceId=xxx;SharedAccessKey=xxx。之后SDK会使用HTTP、AMQP或者MQTT协议连接到IoT Hub。对于设备端你可以很容易地使用同一个接口发送D2C消息、接收C2D消息、监听Direct Method以及获取和更新Device Twin。 可是,对于云端就不是这么回事儿了。云端只支持AMQP协议连接点IoT Hub。也许你会有这样的疑问,为什么在官方IoT Hub Service SDK的 GitHub repo里没有接收D2C消息的例子呢?因为你无法通过与发送C2D消息的同一个接口接收D2C的消息,发送C2D消息和接收D2C消息是两个独立的接口。 如果你想要发送C2D消息,你只需使用IoT Hub Service SDK通过IoT Hub的Connection String连接即可(你可以通过Shared access policies找到这个Connection String),可是如果你想要接收D2C的消息,你就不得部使用Event Hub SDK,通过 IoT Hub Event Hub-compatible name和Event Hub-compatible endpoint进行连接(你可以通过Endpoints – Built-in endpoints – Events找到Event Hub-compatible name和Event Hub-compatible…

0

在浏览器中管理IoT Hub设备

图片来自 http://www.plasmacomp.com/blogs/internet-of-things-iot-device-examples Click here to read English version 几天以前,我写了一篇博客来介绍两种简单的向IoT Hub添加设备的方法。你可以使用文章中提到的工具在几秒的时间里添加和移除设备。 今天我将想你介绍一个新的基于网页的IoT Hub设备管理工具。通过这个工具你不仅可以添加移除设备,还可以对设备进行其他的操作,包括生产SAS Token、查看设备连接状态等等。你可以在你喜欢的浏览器中通过访问https://azure-iothub.github.io/device-management/来使用这个工具。 首先你需要做的事情是找到你的IoT Hub Connection String。在Azure控制台中打开IoT Hub,转到Shared access policies标签,点击iothubowner,并复制其中的Connection string—primary key。 然后将其粘贴到工具的Connection String输入框中。 之后点击Apply按钮,你就会看到IoT Hub的设备列表。 如果设备的图标是灰色的,说明这个设备处于被禁用的状态。你可以通过点击Add a new device按钮添加新的设备。如果想要移除设备或者查看设备详细信息,只需点击列表中的设备,然后再点击Delete或Details按钮。 在设备详细信息页面中,你可以看到包括设备的Primary Key、设备的Connection String、设备状态和最后活动时间等信息。 同时你还可以在设备详细信息页面中生成设备的SAS Token。 现在让我们回到设备列表页面。除了Details和Delete按钮,还有一个Connect按钮。你可以点击Connect按钮,之后Device工具会自动打开。在新的工具页面,设备的Connection String会被自动填好,你只需点一下Connect按钮即可。 你可以通过https://blogs.msdn.microsoft.com/zheli/2017/03/06/web-based-azure-iot-hub-developer-tool/了解更多有关Device工具的相关信息。 目前这个设备管理工具只能列出IoT Hub中前20个设备,之后当我们认为必要的时候会增大这个数字。

0

向IoT Hub添加设备更简单的方法

图片来自 http://www.edntaiwan.com/news/article/20160523TA01-IoT-SoC Click here to read English version Azure IoT团队有计划在Azure控制台中加入设备管理功能,但可以在Azure控制台中管理设备之前,我们还得再等一段时间。现在你已经可以在Azure的控制台中添加设备了! 虽然目前还无法在Azure控制台中添加设备,但我们仍然有很多选择可以为IoT Hub创建新设备。 Windows用户可以使用一个名为Device Explorer的工具,你可以通过简单的几下点击来添加设备。 对于Node开发者,有一个叫做IoT Hub Explorer的工具,你可以通过运行npm install -g iothub-explorer来安装它。 Python开发者可以使用a href=”https://github.com/Azure/azure-cli”>Azure CLI这个工具,在MacOS和Linux上可以运行curl -L https://aka.ms/InstallAzureCli | bash进行安装,在Windows上通过pip install –user azure-cli来安装。 由于IoT Hub Explorer和Azure CLI是基于Node和Python运行环境的,所以他们都是跨平台的工具。 上面提到的三款工具都非常的强大,但如果我只想向IoT Hub添加一个新设备,是否有更简单的方法呢?我可以不在我的电脑上安装新的东西吗? 答案是可以! 如果你是MacOS或Linux用户,可以使用我用Shell脚本编写的名为IoT Device的工具。这个脚本只有一个依赖,就是OpenSSL,而OpenSSL在MacOS和大多数Linux系统上都是预装好的。也就是说,只需下载这个脚本,运行chmod +x iot-device.sh为脚本添加运行权限,然后运行.\iot-device.sh <add/del> <device-id> <iothub account name> <iothubowner primary key>,仅此而已。当你不再需要这个脚本时,只需删除它就可以了,它不会在你的电脑上留下任何痕迹。 如果你是Windows用户,或者你更喜欢带有可视化界面的工具,我也写了一个基于Chrome扩展的工具。在Chrome浏览器中打开chrome://extensions/,打开开发者模式(在页面的右上角有一个开发者模式的选框),然后点击加载已解压的扩展程序按钮,选择刚刚下载的文件夹。 在扩展加载完毕后,你可以在地址栏旁看到一个Azure IoT的图标,点击后或打开一个新的页面。 向IoT Hub添加完设备后,你无需使用真实的设备发生D2C消息或接收C2D消息。我们已经发布了一个在线的工具,你可以在浏览器中使用它而不必下载或安装任何东西。你可以通过我之前发布的文章,在线的Azure IoT…

0

在线的Azure IoT Hub开发者工具

Click here to read English version Azure IoT发布了Device Explorer使发送和接受IoT Hub消息变得容易,可以Device Explorer只能运行于Windows之上。 我们开发了一个在线的Azure IoT Hub工具,你不必安装任何东西就可以在浏览器里使用它来发送和接收IoT Hub的消息。 由于一些限制,目前此工具还无法在谷歌浏览器中运行[为什么?],但你可以通过运行一个中间人工具来解决这个问题,比如Fiddler。这个工具现在已经可以在谷歌浏览器中使用了。 你可以通过浏览器访问https://azure-iothub.github.io/v2/来使用这个工具,将Device Connection String粘贴到输入框中,然后点击Connect按钮。你可以在Azure的控制台找到Device Connection String。 如果你想通过MQTT over WebSockets连接IoT Hub,打开Show MQTT over WebSockets connection options开关,就可以看到MQTT相关的参数。如果你不知道MQTT是什么,并且只想使用SDK,那么可以忽略它。 After connected, switch to D2C Messages tab. You can send anything, including JSON, XML and plaintext. Just type anything in the box, and click send…

0

在Azure上运行饥荒联机版服务器

图片来自 http://forums.kleientertainment.com/topic/54719-welcome-to-dont-starve-together/ Click here to read English version 本文中提到的Azure是由微软公司直接运营的全球Azure服务azure.com,而不是中国地区由世纪互联运营的azure.cn,由于两个服务可能存在差异,不保证本文所述内容可以正常运行于azure.cn之上。 目录 在Azure上创建容器服务 下载DST服务器Docker文件并配置你的DST服务器 获取你的DST服务器Token 更改Azure容器服务Master虚拟机大小 转发Azure容器服务Master虚拟机端口到本地 在你的Azure容器中启动DST服务器 移除服务器 现在利用Docker你可以在Azure上用几分钟的时间运行饥荒联机版(DST)服务器了! 第一步:在Azure上创建容器服务 在Azure管理后台左侧工具条上点击New,在Search the marketplace输入框中输入Azure Container Service。 点击create按钮,在Basics标签中选择一个Master虚拟机管理员用户名并记下它,此处我使用了dst作为管理员用户名。将你的SSH公钥粘贴到SSH public key文本框中,选择一个订阅,然后用你喜欢的名字创建一个新的资源组,我依然使用了dst作为资源组的名字。你可以为资源组起任何名字,不必在想名字上花费太多时间。选择一个离你和你的朋友都比较近的地区,比如我选择了亚洲东部,即香港。然后点击OK。 在Framework configuration标签中,选择Swarm作为orchestrator configuration,然后点击OK。 在Azure Container service settings标签,将Agent虚拟机的大小改为Standard A1(注意:不要选择A0,DST服务器要求至少1GB内存,而A0只有0.75GB,如果选择A0你的服务器会由于内存耗尽而崩溃)。如果你无法找到A1,点击Choose a size窗口右侧的View all链接。服务器需要1GB的内存,每个玩家需要大约60MB的内存,所以我们可以用A1运行一个10人的服务器。在DNS prefix输入任何内容都可以,但必须保证在Azure中是独一无二的,然后点击OK。 之后Azure会想你展示一个配置清单,如果没有问题点击OK。 点击Purchase按钮来部署你的容器。你不会被立即收费,而根据你以后的使用情况进行收费。 在容器部署完成之前你需要等上一段时间。 第二步:下载DST服务器Docker文件并配置你的DST服务器 从https://github.com/Jamesits/docker-dst-server下载DST服务器的Docker文件。如果你对git熟悉可以使用git clone命令,也可以直接用浏览器从https://github.com/Jamesits/docker-dst-server/archive/master.zip下载。 进入代码仓库的plain/config/Cluster_1文件夹,用文本编辑器打开cluster_token.txt,将你自己的token粘贴进去。如果你不知道如何获取toke可以参见第三步,否则跳到第四步。 编辑cluster.ini,用以下内容覆盖原有文件: [GAMEPLAY] game_mode = endless max_players = 10 pvp…

0

使用Azure IoT Hub构建智能灯

Click here to read English version 在这篇文章中我们将使用Azure IoT Hub构建一个声控智能灯。所需的所有硬件如下图所示:一个树莓派、三个LED、3个220Ω电阻、一个面包板、一些杜邦线以及Amazon Echo Dot。 如果你没有哪个硬件,甚至什么硬件都没有也不必担心,我们仍然可以使用模拟设备来让它工作,我会在文章的结尾说明如何使用模拟设备进行操作。 在我们开始这个有趣的工作前,需要先清楚信息从你发出的声音到开关灯状态的整个流程。首先Amazon Echo Dot记录下你的声音并发送给Amazon的云服务器,之后Amazon云服务器将其解析为指令。接着Amazon云服务器将指令传到Azure IoT Hub的服务端,Azure IoT Hub服务端又把它传给Azure IoT Hub的客户端。在这篇文章中我们使用树莓派作为客户端。最终,树莓派通过GPIO控制LED的开和关。 第一步你需要设置Azure IoT Hub。Azure IoT Hub提供免费的套餐,所以你现在并不需要为其付费。你可以按照https://github.com/Azure/azure-iot-sdks/blob/master/doc/setup_iothub.md的步骤进行设置。注意,如果你想使用Azure IoT Hub的免费套餐,需要将Pricing and scale tier从S1 – Standard改为F1 – Free。免费套餐有每天8000条消息的限制,但对我们的实验来说已经足够了对吧! 在设置好Azure IoT Hub之后,我们需要在其中先创建一个设备。你可以按照https://github.com/Azure/azure-iot-sdks/blob/e1c8c6df558823f21bd94875d940cdb864b490b8/doc/manage_iot_hub.md中的步骤来创建你的设备。记住你所创建设备的名字,我们会在后面的步骤中用到它。 现在来把Azure IoT Hub铺设到服务端。选择一个支持Node的服务器,比如Azure的web app。对于Azure IoT Hub来说Azure web app不是必要的,如果你已经有了一个支持Node的服务器尽管使用它。 我使用express generator来快速创建一个node网站,你也可以使用你喜欢的工具。可以通过简单运行下面的命令安装express generator npm install -g generator-express 如果这条指令无法正常运行,尝试以管理员权限运行 sudo…

3