亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

MKR1000 温湿度传感器

组件和用品

Arduino MKR1000
× 1
DHT22 温度传感器
× 1

应用和在线服务

Microsoft Azure
Arduino IDE
Microsoft Visual Studio 2015

关于这个项目

Paul DeCarlo 有一篇关于将天气数据从 Particle Photon 发送到 Microsoft Azure 的精彩文章。我想用新的 Arduino MKR1000 复制这个。

Photon 使用 webhook 将数据从粒子云发送到 Azure。由于 MKR1000 支持 HTTPS,数据可以直接发送到 Azure。本指南将使您的 MKR1000 连接到 Azure 并重用 Microsoft Connect the Dots 项目中的大量服务器端代码。

硬件

DHT22 传感器用于测量温度和湿度。您还可以修改代码以支持 DHT11 传感器。在面包板上连接 DHT 传感器。从 MKR1000 向第一个引脚发送 3.3 伏电压。在 3.3V 和引脚 2 之间放置一个 10,000Ω 上拉电阻。将引脚 3 接地。将一根电线从 DHT22 上的引脚 2 连接到 MKR1000 上的引脚 6。

有关 DHT22 的更多信息,请参阅 Adafruit 的 DHT 教程。

Arduino IDE

打开 Arduino IDE。使用 Boards Manager 安装 MKR1000 板。使用库管理器安装 WiFi101 库。

HTTPS

Arduino MKR1000 支持 HTTPS,但我们需要为我们将访问的站点手动安装证书。这是必要的,因为设备上的内存是有限的。这是一个两步过程。首先,我们在板上加载草图,然后在我们的计算机上运行一个程序来上传证书。

使用 Arduino IDE 将固件更新程序草图加载到您的板上。

下载 WiFi101 固件更新程序。解压缩存档并运行 winc1500-uploader-gui.exe。

Azure 事件中心的 HTTPS 证书颁发给 servicebus.windows.net,因此任何服务总线 URL 都应该有效。在文本字段中输入 ctd-ns.servicebus.windows.net。选择您的 COM 端口并上传证书。

Arduino 草图

从 https://github.com/don/MKR1000-Azure 克隆或下载 Arudino 草图。编辑 ssid 选项卡并更改 ssid[]password[] 以匹配您的网络设置。将草图上传到您的 MKR1000 板。

如果出现错误,您可能需要使用 Arduino 库管理器(草图 -> 包含库 -> 管理库...)来安装“DHT 传感器库”、ArduinoJson 或 RTCZero 库。

打开 Arduino 串行监视器(工具 -> 串行监视器)并确保数据开始发送到 Azure。

草图重用了连接点项目中的事件中心。这意味着我们可以使用现有的 Azure Web 应用程序来查看我们的数据。在浏览器中打开 http://connectthedotsdx.azurewebsites.net/。您应该会看到来自 MKR1000 的数据。由于这是一个“公共”事件中心,您的传感器数据将与其他传感器混合。如果多人正在运行此 MKR1000 代码,您可能需要更改 displaynameguidcreateJSON 功能。

创建您自己的事件中心

针对现有事件中心运行是可以的,但您也可以为您的数据创建自己的事件中心。这需要 Visual Studio 和 Azure 订阅。免费的 Visual Studio 2015 社区版运行良好。您还可以注册免费的 Azure 试用订阅。

我们将使用 Connect the Dots 项目中的代码。使用 git 克隆项目或使用 Github 页面上的下载 ZIP 按钮。

git clone https://github.com/Azure/connectthedots.git

您可以按照 Microsoft 的说明创建 Azure 资源,这需要一些时间,但可以让您深入了解各个部分是如何组合在一起的。我建议使用克隆存储库中的 AzurePrep 项目来自动创建这些资源。

使用 Visual Studio 并从 connectthedots\Azure\AzurePrep 打开 AzurePrep 解决方案。在发布模式下运行 AzurePrep 项目 .

该应用程序将打开一些窗口,提示您登录 Azure 并授予对资源的权限。之后,在终端中回答一堆问题来创建资源。

您需要为资源选择一个名称。连接点文档推荐名称 ctd(连接点)+ 您的姓名首字母。比如我选择了“ctddc”。

返回 Visual Studio,从 AzurePrep 运行 CreateWebConfig 目标,为网站创建配置文件。登录,按照提示操作。一个 web.config 文件将被写入桌面。

将 web.config 从桌面复制到 connectthedots 网站项目中,connectthedots\Azure\WebSite\ConnectTheDotsWebSite。

从 Visual Studio 中的 connectthedots\Azure\WebSite 打开 ConnectTheDotsWebsite 解决方案。

您需要将新的 web.config 文件添加到项目中。右键单击解决方案资源管理器中的解决方案。从菜单中选择“添加 -> 现有项目...”。导航到 ConnectTheDotsWebSite 并添加 web.config。

在 Microsoft Edge 中运行项目。在我们更新 MKR1000 上的草图之前,您不会看到任何数据。

Arduino 草图需要一个 SAS 密钥来访问 Azure 资源。使用 Sandrino Di Mattia 的事件中心签名生成器工具以正确的格式生成密钥。从 https://github.com/sandrinodimattia/RedDog/releases 下载。解压缩该工具并启动 RedDog.ServiceBus.EventHubs.SignatureGenerator。

使用您之前创建的命名空间填写 UI。由于我在创建 Azure 资源时使用了 ctddc,因此我的命名空间是 ctddc-ns。集线器名称是ehdevices。发布者和发送者密钥名称都应该是 D1。我将令牌 TTL 设置为 1 年(525,600 分钟)。签名应该对设备的生命周期有益。

您需要登录 Azure 门户以获取发件人密钥。从左侧菜单中选择浏览,然后使用过滤器查找事件中心。

事件中心在旧的 Azure 门户中打开一个新窗口。

  • 点击您创建的命名空间。
  • 选择事件中心
  • 选择ehdevices
  • 选择配置
  • 滚动到底部并复制 D1 的主键

切换回签名生成器工具并将密钥粘贴到发件人密钥字段中。单击“生成”按钮以生成签名。

复制生成的签名。

再次在 Arduino IDE 中打开 MKR1000-Azure 草图。我们需要替换hostname[]authSAS[] 变量与我们新的事件中心设置。将生成的签名粘贴到 char authSAS[] 场地。编辑主机名字段以匹配您的主机名。例如char hostname[] ="ctddc-ns.servicebus.windows.net";

保存草图并将其上传到您的 MKR1000。可选择打开串行监视器并检查数据是否已开始发送到 Azure。

ALT+TAB 连接在 Microsoft Edge 中运行的 dots 网站,您应该开始查看来自您设备的数据。

物联网中心

Azure IoT 中心比事件中心更新,可能更适合你的项目。 IoT 中心支持设备到云的消息传递(如本项目)和云到设备的消息传递。

使用 Azure 门户创建新的 IoT 中心。

设备资源管理器用于生成访问 IoT 中心的签名。从 https://github.com/Azure/azure-iot-sdks/releases 下载 SetupDeviceExplorer.msi。

返回 Azure 门户并打开新的物联网中心。点击key图标,选择iothubowner行,复制主键的连接字符串。

打开设备资源管理器,粘贴连接字符串,点击更新。

单击管理选项卡。单击操作下的创建按钮。输入 D1 作为设备 ID,然后单击创建。

突出显示 D1 行并单击 SAS 令牌按钮并生成新令牌。

在 Arduino IDE 中打开 MKR1000-Azure 草图。

替换 hostname[] 使用您的 IoT 中心名称 +“.azure-devices.net”。更新 authSAS[] 使用设备资源管理器生成的值。请确保仅复制“SharedAccessSignature=”之后的 SAS 令牌部分。调整 URI 以指向 IoT 中心。

char 主机名[] ="hacksterdemo.azure-devices.net";char authSAS[] ="SharedAccessSignature sr=hacksterdemo.azure-devices.net%2fdevices%2fD1&sig=jnyTV8j2%2bY9BJ9fyEdb7zu3eAV6bgdrh%2bY9BJ9fyEdb7zu3eAV6dvrh2 1490944761";String deviceName ="D1";String uri ="/devices/" + deviceName + "/messages/events?api-version=2016-02-03"; 


编辑检查有效响应的 sendEvent 函数中的代码。事件中心发送 HTTP 201 以指示成功。 IoT 中心发送 HTTP 204。

改变

if (response.startsWith("HTTP/1.1 201")) {

if (response.startsWith("HTTP/1.1 204")) {

使用 Arduino IDE 将草图上传到您的 Arduino MKR1000。

在设备资源管理器中切换数据选项卡。单击监视器按钮可查看发送到事件中心的数据。

由于该项目是从设备到云发送数据,因此我使用 HTTP POST 发送数据。还有用于使用 Azure IoT 中心发送和接收数据的库。不幸的是,IMO 它们还不是很像 Arduino 或用户友好。如果希望设备从 Azure 接收数据,这些库可能会更有帮助。或者,查看 Mohan Palanisamy 的博客文章,了解将数据从 IoT 中心发送到 MKR1000。

这篇博文展示了如何将传感器数据从 MRK1000 发送到 Azure 事件中心和物联网中心。我们使用现有的代码视图并绘制数据图表。查看 connect the dots 项目,了解更多编写代码以使用 Azure 存储、操作和查看数据的方法。

现在您已完成,您可能希望关闭或删除您不使用的资源以限制向您收取的费用。 AzurePrep 解决方案有一个 ClearResources 项目来帮助你删除 Azure 服务。

代码

设备浏览器
IoT 中心的工具。下载 SetupDeviceExplorer.msihttps://github.com/Azure/azure-iot-sdks/releases
点点滴滴
Azure 示例代码 https://github.com/Azure/connectthedots
MKR1000-Arduino
Arduino 源代码 https://github.com/don/MKR1000-Azure
WiFi101 固件更新器
将 TLS 证书添加到 MKR1000 的工具https://github.com/arduino-libraries/WiFi101-FirmwareUpdater/releases/latest
事件中心签名生成器
为 MKR1000 生成 Azure 凭据的工具https://github.com/sandrinodimattia/RedDog/releases

示意图

发布照片,因为没有 MKR1000 Fritzing 部件。有关接线详细信息,请参阅文章文本。

制造工艺

  1. Arduino 传感器 – 类型和应用
  2. 湿度传感器工作及其应用
  3. DHT11 传感器及其工作原理
  4. 带有 Raspberry Pi 和湿度传感器的 Aeroponics
  5. 如何检查和校准湿度传感器
  6. 带 LED 和压电扬声器的 DHT11 传感器
  7. 温湿度数据记录仪
  8. Arduino 温度。使用 3.2 显示的监视器和实时时钟
  9. Arduino Cloud Sensor Tower
  10. BME280 Nextion Display 上的温度、湿度和压力
  11. 如何使用 DHT11 在 Blynk 上读取温度和湿度
  12. 使用 YL-39 + YL-69 土壤湿度传感器和 Arduino