我正在尝试使用Arduino和Amazon的服务菜单(Alexa技能套件,AWS Lambda和AWS IoT)来学习IoT开发。我已经走了很长一段路,但是当我考虑将其实现为一系列设备时,我不知道如何解决此问题:

对于无头设备,如何将客户的设备与该客户链接?

每当用户调用您的Alexa技能时,您都可以从Alexa轻松获得userID,并且可以将数据库中的该ID与客户进行匹配,并且有可能将其与向该客户注册的设备匹配,但是如何向客户注册设备?是否一定要让客户在某个地方的UI中输入序列号?我曾想过,您可能会使用OAUTH从例如客户的Amazon帐户中获取令牌,然后将其发送到设备,然后让设备将令牌及其自身的标识符提供给您的数据库。这样,您至少在他们的关联帐户和设备之间具有链接。

听起来像是一种合理的方法吗?我无法找到有关将特定设备连接到特定客户帐户的更多信息,因此非常欢迎提供更多信息的任何链接。

#1 楼

许多公司“让客户在某个地方的UI中输入序列号”。购买设备时,说明通常会要求客户访问公司网站,创建帐户,然后输入设备的序列号和/或MAC地址。您创建的同一帐户就是您与该设备连接的任何智能手机应用程序(通常是公司制造的专有应用程序)所使用的帐户。将无头设备链接到家庭ISP网络是另一个问题。如果通过wifi连接,则通常该设备以接入点模式出厂,并且将以SSID名称(例如“ NewThermostat_12345”)广播自己的wifi网络。客户连接到该wifi网络,如果他们打开浏览器,俘虏门户网站通常会将他们直接带到管理页面,在此他们可以输入其家庭wifi网络的SSID名称和密码。然后,设备关闭接入点模式(NewThermostat网络消失),打开客户端模式,并连接到您的家庭wifi网络。

评论


谢谢!进一步考虑一下,我认为使用专有应用程序也会有所帮助,因为这会从设备上分担很多处理工作,这可能会对硬件要求产生重大影响。让设备在wifi上显示令牌/证书比通过初始身份验证过程要轻得多。另外,该应用程序还可以充当GUI来处理初始的wifi设置,因此您已经用一块石头杀死了两只鸟。

–user5468
18年1月25日在17:01

#2 楼

除了两种最常用的方法:


客户将设备上打印的序列号输入公司门户。
设备公开WiFi AP进行初始注册。

是常见的第三种方法:


设备响应物理触发而形成接近连接。

触发可能使附近有一块磁铁,敲击设备,将红外光照射到窗口中或移除一次性标签。无论触发器是什么,它都将导致设备进入调试或注册模式,从而使其对某种形式的短距离通信做出响应。通常是蓝牙,但可以是NFC或WiFi。该设备通过此临时通信通道与客户的智能手机或计算机配对,自动通知其唯一标识,以便客户完成设备注册过程。