The AWS IoT Button is a programmable button based on the Amazon Dash Button hardware. This simple Wi-Fi device is easy to configure and designed for developers to get started with AWS IoT, AWS Lambda, Amazon DynamoDB, Amazon SNS, and many other Amazon Web Services without writing device-specific code.
You can code the button's logic in the cloud to configure button clicks to count or track items, call or alert someone, start or stop something, order services, or even provide feedback. For example, you can click the button to unlock or start a car, open your garage door, call a cab, call your spouse or a customer service representative, track the use of common household chores, medications or products, or remotely control your home appliances.
The button can be used as a remote control for Netflix, a switch for your Philips Hue light bulb, a check-in/check-out device for Airbnb guests, or a way to order your favorite pizza for delivery. You can integrate it with third-party APIs like Twitter, Facebook, Twilio, Slack or even your own company's applications. Connect it to things we haven’t even thought of yet. We can't wait to see what you will build with the AWS IoT Button!
After you configure the AWS IoT Button to connect to your Wi-Fi network and provision the button with an AWS IoT certificate and private key, the button will securely connect to AWS IoT and publish a message on a topic when clicked. You can use the AWS IoT rules engine to set up a rule and configure single-click, double-click, or long-press events to be routed to any AWS service. You can configure it to send you a notification through Amazon SNS or store the clicks in an Amazon DynamoDB table. You can even code custom logic written in Node.js, Python, or Java in an AWS Lambda function, and then configure the function to connect to third-party services or other AWS IoT-powered connected things.
First, you will need an AWS account. It’s free and easy to create an account. Sign up now.
The fastest way to start using your AWS IoT Button is to complete an AWS Lambda blueprint wizard. This wizard will create the required AWS IoT resources for you and add an event source to your button that invokes a new Lambda function. The Lambda function uses Amazon SNS to send you an email when you press your button.
To get started, click the link on the right to sign in to the console, and then follow these steps in the ‘Configure Your Event Source’ wizard:
- Select “IoT Button” from IoT Type drop-down menu.
- Enter your device serial number (DSN). You'll find the DSN on the back of the device.
- Follow the steps to configure your AWS IoT Button to connect to Wi-Fi and AWS IoT.
- Continue the steps in the wizard and update the sample Lambda function. Type your email in the code editor.
- Start clicking!
This wizard uses the AWS Lambda console to configure an AWS IoT event source and creates the required resources in AWS IoT for you. If you would like to learn more about AWS IoT and use the AWS IoT console to create these resources manually, follow this step by step tutorial, instead.
How can I get an AWS IoT Button?
AWS IoT Buttons are available for purchase on Amazon.com. If you want to purchase the buttons in bulk, send an email to firstname.lastname@example.org with details about your use case.
I would like to learn about AWS IoT using the AWS IoT button. Is there a step- by-step tutorial?
Yes, you can use this Step-by-Step Tutorial to use the AWS IoT console to create the AWS IoT resources, configure your button, and create rules.
What more can I do with the AWS IoT Button?
You can use the button to count items, track usage, call or text and alert someone, start and stop a process or Internet-connected device. To count and track usage, you can store the clicks in Amazon DynamoDB. Follow this tutorial to create a DynamoDB rule using the AWS IoT rules engine. You can alert someone using Amazon SNS. Follow this tutorial to create an SNS rule using the AWS IoT rules engine. You can start and stop a process, call an external API endpoint, or connect to an Internet-connected device using AWS Lambda. Follow this tutorial to create a Lambda rule using the AWS IoT rules engine.
How do I configure the button to use at home or office Wi-Fi?
Press and hold the button for five seconds until the LED starts flashing blue.
Use your phone or computer to connect to the Button ConfigureMe - XXXX Wi-Fi network. Use the last 8 digits of the serial number of your device as the WPA2-PSK password.
In a browser, navigate to http://192.168.0.1/index.html.
Select the network (SSID) you want the button to connect to and enter its password.
Will the AWS IoT Button work anywhere?
The button will work wherever there is Wi-Fi (2.4 Ghz). It is designed to work in a home or office environment, but is not ideal for spaces with a congested Wi-Fi spectrum like expo halls, lunch rooms, keynote rooms, or hallways. If it can connect to the Internet, it will work.
What’s in the payload sent from the device when you press it?
The payload contains the device serial number, the measured battery voltage, and a click type.
The following JSON template shows what is sent in the payload.
"clickType": "SINGLE | DOUBLE | LONG"
A LONG clickType is sent if the first press lasts longer than 1.5 seconds. SINGLE and DOUBLE clickType payloads are sent for short clicks.
What do the LED color patterns mean?
|Blinking White||Connecting to Wi-Fi, getting IP address, connecting to AWS IoT.|
|Solid Green||Successfully connected to Wi-Fi and published a message to AWS IoT.|
|Blinking Blue||Soft AP mode.|
|Solid Orange||No Wi-Fi configured.|
|Red||Error. (See the Troubleshooting Guide for more information.)|
Do you have examples of Lambda functions I can use?
You can use any of the blueprints in the AWS Lambda console.
How long will the battery last?
The battery should last for approximately 1,000 presses. When the device battery runs out of charge, there is no way to recharge or replace the battery.
Do I need an AWS account as well as an Amazon.com account to use this device?
Yes. You need an AWS account to set up this device. An AWS account is different from an Amazon.com account. You need an Amazon.com account to purchase the button.
How much is it going to cost?
With AWS, you pay only for the services you use, for as long as you use them, and with no long-term contracts. The button will use the AWS IoT service and any other service you consume. If you qualify for the free tier, there will be no additional charge. Otherwise, each service has separate pricing. You will be charged separately based on your usage.
I have built a unique IoT project. Where can I post it?
We have worked with Hackster and they have created an AWS IoT Button page on Hackster.io, hackster.io/amazonwebservices/products/aws-iot-button. Feel free to post your project with details on how others can build what you have built.
I am having trouble provisioning the certificate and private key on my button.
In the AWS Lambda Event Source wizard, if you are using Firefox, Chrome, or Opera, click the link to download the certificate and private key. If you are using Safari or Internet Explorer, right-click and choose Save As to download the certificate and the private key files to your computer.
For security reasons, AWS does not store the AWS IoT certificate and private key. If you do not download them to your computer, they will be lost. You can create a new certificate and private key or follow the steps in the AWS Lambda Event Source wizard if the current certificate does not work.
I am having trouble getting my device to connect to AWS IoT.
- Check that your device’s certificate is ACTIVE.
- Check that your device has a policy attached that allows publishing to iotbutton/+.
- Check that port 8443 isn’t blocked on your network. Requests to port 8443 must be allowed. See this page.
I followed the blueprint wizard, but when I press the button, I get a green light. I don’t get an email.
It’s possible that your Lambda function does not have the right permissions to create resources in SNS. To confirm, go to the CloudWatch logs of the Lambda function you just created with the wizard. Add the required SNS permissions (sns:createTopic, sns:Publish, sns:subscribe, sns:listSubscriptions) to your execution role of the function.
In other cases, when you are not using the wizard, whenever you get a green light and nothing happens, follow these steps for debugging:
- Test using the MQTT Client in the AWS IoT console. Subscribe to the “iotbutton/+” topic and see whether you receive a message when clicked.
- In the AWS IoT console, under Settings, enable CloudWatch Logs, and then examine “AWSIoTLogs” in the Amazon CloudWatch console to see if the rule was fired.
- For other services like AWS Lambda, examine the logs specific to the function in the CloudWatch logs to find the error.
My button cannot connect and blinks a red pattern.
This indicates an error has occurred. Use this blinking sequence guide to troubleshoot the issue:
Short short short
There was an error connecting to the configured wireless network.
Short short long
There was an error obtaining an IP address from the network.
Short long short
There was an error performing the host name lookup. This can be the result of not being able to reach the DNS server or an incorrectly configured AWS IoT endpoint subdomain.
Short long long
Cannot connect to AWS IoT. This can be an issue with the network, but is most likely not an issue with the certificates.
Long short short
Cannot establish a secure connection with the server. This error is most likely due to an unknown or inactive certificate.
Long short long
Received HTTP 403 Forbidden This error is most likely returned because the certificate does not have permission to publish to that topic.
Long long short
There is a problem sending to or receiving from AWS IoT. This is most likely just a networking error.
Long long long
Received an unknown HTTP response from AWS IoT.
A fatal internal error occurred. Your only option is to retry.
I am having trouble connecting to the device’s Wi-Fi mode.
After connecting to the button's SSID (Button ConfigureMe - XXX), navigate to http://192.168.0.1/index.html on your browser. Restart the browser if you cannot connect to the Button ConfigureMe page.
SSIDs and Wi-Fi passwords that contain spaces are not allowed.
Make sure you aren’t connected to a VPN when you attempt to access the configuration web page.
I am an IAM user with restricted access.
You must provide iot:* permissions in your IAM user policy.
I am having problems not addressed in this guide.
Don't worry. We are here for you. If you cannot connect the button to AWS, click here to create a support case. The AWS Customer Service team will contact you.