9

I'm trying to learn IoT development using an Arduino and Amazon's menu of services—Alexa Skill Kit, AWS Lambda, and AWS IoT. I've been able to get come a long way, but when I think about implementing these for like a fleet of devices, I can't figure out how to approach this problem:

For a headless device, how do you link a customer's device with that customer?

You can readily get a userID from Alexa whenever a user invokes your Alexa skill, and you can match that in your database to a customer, and potentially match that with a device registered to that customer—but how do you register a device to a customer? Would it have to be like having the customer enter a serial number in a UI somewhere? I had a thought that you could potentially use OAUTH to get a token from, e.g., a customer's Amazon account, send that to the device, and then have the device present both the token and its own identifier to your database. That way you have at least a link between their linked account and the device.

Does this sound like a reasonable approach? I haven't been able to find much about connecting particular devices to particular customer accounts, so any links with more information are very welcome.

5

A lot of companies "have the customer enter a serial number in a UI somewhere". When you buy the device, the instructions usually have the customer visit the company website, create an account, and enter the serial number and/or MAC address of the device. The same account you created is what you use with any smart phone apps (usually the company makes a proprietary app) connected to the device. Linking the headless device to your home ISP network is another issue. If it connects via wifi, usually the device comes shipped in Access Point mode, and will broadcast it's own wifi network, with a SSID name such as "NewThermostat_12345". The customer connects to this wifi network, and if they open a browser, a captive portal usually takes them directly to an admin page where they can enter their home wifi network SSID name and password. The device then turns Access Point mode off (the NewThermostat network disappears), turns Client mode on, and connects to your home wifi network.

  • Thanks! Further thinking this through, I think using a proprietary app can also be helpful because it offloads a lot of processing work from the device, which can have a significant impact on the hardware requirements. Having a device present a token/certificates over wifi is a lot lighter than lighter than it going through the initial authentication process as well. Plus the app can also serve as the GUI to handle the initial wifi setup, so you've killed two birds with one stone. – user5468 Jan 25 '18 at 17:01
2

In addition to the two most common methods:

  1. Customer enters serial number printed on device into company portal.
  2. Device exposes WiFi AP for initial registration.

is a third method that's not uncommon:

  1. Device forms proximity connection in response to physical trigger.

The trigger could be bringing a magnet nearby, tapping the device, shining an IR led into a window, or removing a single-use tab. Whatever the trigger is, it will cause the device to go into a commissioning or registration mode, which makes it responsive to some form of short-range communication. Usually Bluetooth but could be NFC or WiFi. The device is paired to the customer's smartphone or computer via this temporary communications channel, automatically informing it of its unique identify so the customer can complete the process of registering the device.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.