问题标签 [iot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6236 浏览

javascript - 如何将消息从 mosca 代理发送到 mqtt.js 客户端

我们设置了一个由MQTT.js提供支持的 MQTT 客户端(在桌面 PC 上或在实际板上,都是一样的)和一个由mosca提供支持的 MQTT 代理,这个代理在桌面 PC 上运行。

我们能够成功地从客户端向代理发送具有特定主题的消息,但现在我们陷入了相反的境地:从代理向客户端发送消息。

我们正在遵循两个项目文档中提供的代码示例,但没有运气。客户端能够正确注册到主题,但在发送消息时不会以任何方式做出反应。Broker 能够正确发送消息,也能够监听自己的消息,因为它无论如何都在监听所有消息。

摘自 MQTT 代理:

摘自 MQTT 客户端:

更新

当持久性基于 mongoDb 时,问题似乎就出现了。相反,当持久性基于内存时,消息会正确发送给订阅者。以下是依赖 mongoDb 持久性时的 pub-sub 设置。实际上,它是一个在 mongolab.com 上运行的开发实例:

有人发现这有什么问题吗?

0 投票
4 回答
4032 浏览

iot - Windows 10 IoT Raspberry Pi 2:自动启动已发布的应用程序

我开始使用 Windows 10 进行 Raspberry Pi 2 开发体验,我想知道如何配置 Raspberry Pi 2 以自动启动我自己在 Visual Studio 中开发的已发布应用程序?此外:如何在我的设备上设置时间和地区?

非常感谢您提供的所有有用且善意的答案。

0 投票
2 回答
195 浏览

.net - 如何命名我部署的应用程序?

我已经在我的 Raspberry Pi 2 上成功安装了 Windows 10 IoT。我编写了一个测试“Hello World”UAP 应用程序(简单的文本框和按钮,使用 Visual Studio Community 2015 RC)并且可以在 Pi 上运行并调试它(设置断点等)。当我为 Release 构建它并将其部署到 Pi 时,我在 Visual Studio 构建输出中看到以下内容:

当我在连接到 Pi 的 PowerShell 中运行以下命令时:

我看到服务器安装的应用程序列表,包括:

我正在关注的教程说我应该看到类似的内容:

我没有看到任何名称为“HellowWorld”的内容,只有与构建输出中显示的名称相匹配的 GUID 外观名称。如何将已部署应用程序的名称设置为更友好的名称?这将使设置应用程序在 Pi 启动期间启动等变得更容易。顺便说一句,我的 VS 解决方案和项目都命名为 HelloWorld。

0 投票
2 回答
2411 浏览

android - 在 Android 上部署 MQTT 代理?

我看到很多关于在 Android 上部署 MQTT 代理的问题都被问及他们的目的,并最终被否决。在手机上运行代理以便物联网设备可以直接与手机对话而不通过某些云服务器不是一个好主意吗?否则这些设备如何在“离线”设置中与手机通话?是的,当然,电话必须在范围内。手机必须处于热点模式吗?

0 投票
1 回答
124 浏览

ibm-cloud - 删除 IBM Bluemix 物联网服务会出错

我正在处理一个 Bluemix 物联网 (IoT) 项目,并且想要删除一个 IoT 服务。Bluemix 返回:

服务代理错误:调用 url https://bluemix-staging.internetofthings.ibmcloud.com/broker/v2/service_instances/2a98b0e9-2d48-4fed-b66b-c20cac2f83c7?plan_id=iotf-service-free-id&service_id=iotf-service- id 失败并显示错误消息 getaddrinfo ENOTFOUND bluemix-staging.internetofthings.ibmcloud.com

我也无法创建新服务。任何想法如何进行?

0 投票
1 回答
3060 浏览

iot - Windows 10 物联网树莓派 2:DHT22/AM2302

我只是想开始体验 DHT22/AM2302(温度和湿度传感器),但我不知道如何初始化和获取它的数据......我尝试使用 GpioPin:

但得到异常:“此操作所需的资源已禁用。”

之后,我查看了 unixoids 的库,发现了这个:

https://github.com/technion/lol_dht22/blob/master/dht22.c

但我不知道如何在使用 Windows 10 的 VCSharp 中实现这一点,任何人都有想法或经验吗?

非常感谢您!

更新:

我得到提示,没有 GPIO-Pin 7,这是真的,所以我重试了,但 GPIO 输出似乎只是高或低……所以我必须使用 I2C 或 SPI ...根据这个项目,我决定尝试使用 SPI:http ://microsoft.hackster.io/windowsiot/temperature-sensor-sample并向前迈出一步......现在的困难是翻译上述链接C-Library 到 C-Sharp-SDK 以接收正确的数据...

这工作不太好,要清楚:它只在启动树莓派 pi2 时工作一次,然后启动/远程调试应用程序,但在退出应用程序并重新启动它们后,SPI 初始化失败。

现在我正在努力从 pin 中读取数据,并将在未来的更新中显示一些代码。仍然欢迎任何意见、答案和/或建议。

0 投票
2 回答
115 浏览

cassandra - 我不确定哪种 NoSQL 适合我的场景

我正在尝试设计创建一个基于云的系统(IaaS),该系统将从传感器(水污染相关活动)收集数据,并在某些事件时决定处理特定传感器的数据。数据特征是: 1. 对于每个传感器,数据每隔几天发送一次(每月最多 6 次) 2. 每个传感器读数包含大约 5000 个事件,这些事件封装在发送到服务器的 50-100 条消息中(这样的“会话”大约需要 20 分钟,其中每 5 秒发送一次消息) 3. 我正在构建系统以处理每秒 30,000 条消息的速率。4.数据的处理不应该是实时的,一旦“会话”完成,我有大约10分钟的时间来进行处理。5. 90% 的课程没有兴趣,一旦完成就可以扔掉。

我创建了一个每秒生成 5000 条消息的工具,我试图找出哪个数据库最适合我的场景。这些是我想尝试的数据库:

  1. Cassandra - 我将为每个会话保存一个内存中的密钥集合。密钥用于存储在 cassandra 中的消息。一旦我检测到包含错误读数的消息,我将需要提取“会话”中的所有其他消息并处理它们(这意味着对 cassandra 的 50-100 个请求)。我在这里关心的是写入性能(因为我有很多读写操作)+我没有一个好的策略来删除 90% 不需要的会话。

  2. Couchbase - 我将根据 sensorID 为每个“会话”保存一个文档,并将每条消息附加到文档中。一旦我检测到包含错误读数的消息,我只需要发送一个文档请求。我关心的是读取性能。

  3. Redis - 像 cassandra 一样使用它。我认为性能将是最好的,但我需要自己处理数据的分片和复制,以免达到内存限制

我很想听听哪个选项最合适

谢谢

0 投票
2 回答
4463 浏览

c# - 超声波传感器树莓派 2 c# .net

我正在尝试从超声波传感器(HC-SR04)读取距离,但我得到的唯一值是 0 和 265.xx。

我正在使用安装了 Windows 10 IoT Core 的 Raspberry Pi 2。

我已经用 C# 编写了代码。

这是超声波传感器类:

我还在 python 中编写了一个脚本来读取超声波传感器的值,然后它可以工作,但是在 c# 中我无法让它工作。

在底部您可以找到调试日志:

“BACKGROUNDTASKHOST.EXE”(CoreCLR:DefaultDomain):已加载“C:\Program Files\WindowsApps\Microsoft.NET.CoreRuntime.1.0_1.0.22816.1_arm__8wekyb3d8bbwe\mscorlib.ni.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\RaspiCar.winmd”。已加载符号。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\System.Runtime.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。'BACKGROUNDTASKHOST.EXE'(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\WinMetadata\Windows.winmd”。模块是在没有符号的情况下构建的。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\System.Runtime.InteropServices.WindowsRuntime.dll”。模块是在没有符号的情况下构建的。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\System.Threading.dll”。模块是在没有符号的情况下构建的。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\System.Diagnostics.Debug.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。“BACKGROUNDTASKHOST.EXE”(CoreCLR:CoreCLR_UAP_Domain):已加载“C:\Users\DefaultAccount\AppData\Local\DevelopmentFiles\RaspiCarVS.Debug_ARM.chris\System.Runtime.WindowsRuntime.dll”。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。距离:265.7457 距离:0 距离:0 距离:0 程序“[2508] BackgroundTASKHOST.EXE”已退出,代码为 0 (0x0)。dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。距离:265.7457 距离:0 距离:0 距离:0 程序“[2508] BackgroundTASKHOST.EXE”已退出,代码为 0 (0x0)。dll'。跳过加载符号。模块已优化,调试器选项“仅我的代码”已启用。距离:265.7457 距离:0 距离:0 距离:0 程序“[2508] BackgroundTASKHOST.EXE”已退出,代码为 0 (0x0)。

0 投票
1 回答
1178 浏览

c# - 具有 IoC 的通用应用程序:依赖管理/隔离

我非常喜欢将 Unity 用于 .NET 应用程序以在大型代码库中保持代码模块和依赖项“可管理”。我多年来一直使用 .NET 将程序集放入主程序的程序目录并重新配置 IoC 配置文件(通常是 .exe.config 文件),将新行为注入程序而无需重新编译主程序。

但是,我已经开始着手为 Windows 应用商店以及更重要的 Windows IoT 编写通用应用程序——但是由于这些应用程序在编译过程中被“打包”,我发现很难理解如何最好地继续这样做。

一种可能的选择是编译“模块”(PCL/通用类库)并将它们(及其依赖项)作为“内容”文件包含在通用应用程序中,然后在启动期间使用反射从这些程序集中加载类型通过反射的程序。

另一种选择是在编译之前将所有模块及其依赖项包含到主程序的项目引用中,但使用“穷人的依赖注入对注册和解决方案进行硬编码”,但这对我来说真的是错误的——我最好保留如果可能的话,分离依赖关系?

有任何想法吗...?

PS。我不以任何方式与 Unity 绑定,如果有另一个 IoC 库在这个平台上做得更好,那很好 - 但 Unity 是我已经知道和喜爱的!

0 投票
2 回答
1624 浏览

powershell - 如何使用在 Raspberry Pi 上运行的 Windows 10 IoT Core 获得交互式登录?

我刚刚在树莓派上安装了 Windows 10。它启动得很好,我可以从我的笔记本电脑连接(使用 PowerShell)。

我可以将键盘和鼠标连接到 Pi,但我无法获得登录窗口。我所能做的就是更改时区并重新启动。有没有办法直接登录设备?

我不需要花哨的图形窗口。命令行会话(à la Linux 或 PowerShell)就可以了。

如果无法通过核心安装实现,是否有人知道 Microsoft 或第三方提供商是否计划添加此功能?