Uttering Alexa voice commands to turn your ESP connected device on or off is cool. There is plenty of information readily available pmacct kafka example how to make that happen.
Like having Alexa tell you something unique. Using data gathered by reading your specific IoT device sensors? Having the ability to interact verbally with your IoT device in this manner opens up a wide range of possibilities. Yet, as I discovered, information on this topic was more challenging to find with a google search.
Alexa on ESP32
What is needed is a method of converting your verbal request into a command that can be sent to your ESP or other IoT device to get the requested information, and to return the information to Alexa in a format that she can read back to you.
Truth is, you can cut out these intermediate steps. But do not be concerned, as you will see, this does not make the system overly complicated. Since we are dealing with the Amazon Echo device, Amazon lingo is needed bold.
The voice command was received by the Amazon Echo device and recognized as an Alexa skill. Invocation of the skill triggered the Lambda function which, in-turn, sent a request to ThingSpeak for the current ESP sensor readings.
The readings returned were passed back to the Alexa skill which recites the values of the temperature sensors. Amazon Skill to convert your voice to a command to retrieve the requested information. Amazon Lambda function to receive the Skill request, query for the requested information and return a reply to the Amazon Skill.
You will need to setup two accounts with Amazon, If you do not already have these accounts, create them now. No worries, they are FREE:. Note: The rest of the skill creation can be customized for your needs. It is suggested that you follow along with this guide for your first skill, and customize after getting this example to work. For this example, my publicly shared ThingSpeak Channel is used for the dynamic data source.
You should now be able to invoke this skill using your Amazon Echo using voice commands.We're excited to announce new tools that give Alexa skill developers better control of skill publishing, distribution, and permissions.
Build visually rich voice games with existing web technologies using the Alexa Web API for Games, now in developer preview. Skills are like apps for Alexa, and provide a new channel for your content and services.
Skills let customers use their voices to perform everyday tasks like checking the news, listening to music, playing a game, and more. Organizations and individuals can publish skills in the Alexa Skills Store to reach and delight customers on hundreds of millions of Alexa devices. You can also hire an agency with Alexa expertise to help your organization build a skill. Voice is the most natural user interface. Use our self-service APIs and tools to deliver experiences in gaming, productivity, news, music, smart home, and more.
Expand your reach through hundreds of millions of Alexa devices across the globe, use voice to close the distance between your brand and your customers, and make money by selling premium experiences and physical goods. Want to build an experience for your own use without coding? Use Alexa Skill Blueprints to build chore charts, keep track of your personal fitness, and more. Ready to get started with Alexa skills? Learn how to start building today with the Alexa Skills Kit, or explore how you can grow your business with Alexa skills.
Read Story. New Developer Tools to Improve Your Productivity We're excited to announce new tools that give Alexa skill developers better control of skill publishing, distribution, and permissions.
Learn More. Alexa Skills Kit. Get Started. Get Deeper. Grow Your Business. What's New. What Are Alexa Skills. Why Build Alexa Skills. Delight Your Customers. Easily Bring Your Vision to Life. What You Can Build. With the Alexa Skills Kit, you can deliver voice experiences in more than 20 different categories, from education to audio to travel.
Take advantage of built-in voice interaction models or imagine your own custom voice experience. You can also create multimodal skills that integrate voice, visuals, and touch, and offer premium content in your skills. Here are just a few examples of what you can build.
Experiences for Kids. Multimodal Experiences. Flash Briefings. Music Streaming. Smart Home Control. See More in the Alexa Skills Store. How You Can Build. Build It Yourself.Try this at home, but not at work. The beauty of this technique is that we can use it in our own homes to make Alexa automate almost literally anything that runs on electricity. We are bypassing all that with our hack. We want to make the Alexa device talk directly to our ESP chip, inside of our home, without sending anything out to the cloud and back.
We want the Alexa to directly send a request to our ESP, over and inside of our home wifi network only. Our hack is not really a secret. Pretending to be a Wemo, our ESP enjoys the privilege of being able to receive commands directly from the Alexa. To keep things as simple as possible, for this tutorial, we will just take the quickest to explain, which is to simply copy folders. The image below shows typical settings, which work for me and my hardware but may vary for each user. Arduino projects start with an.
To compile and flash are easy steps, if your setup so far is correct. Great, so that works; next, we want to verify our IR output. One of the great things about Arduino is how easy it is to snap libraries and modules in and out.
This code just flashes the IR transmitter repeatedly. Look directly at the IR diode bulb through your camera. You can try this with any working remote control as well e. The following code should cause the IR bulb to start flashing every 0. The code below will attempt to connect to the Wifi, and reports success on connection through the serial debugger. My own Wemo Emulator is included in the source files for this tutorial.
Now, you can search Google and find a simpler Wemo emulator. By all means, feel free to examine, experiment, write your own, etc. Why is this good? Well, there are only so many servers or devices you can run on the ESP using this method before it starts becoming unreliable, in the sense that the Alexa will start missing devices not finding themcommands will get dropped, and performance becomes slow.
Install it just as we did the IR library; go to the Git page and follow the instructions. Test what we have so far wifi and emulatorby running it with Alexa. This tutorial assumes that your Alexa device is set up and installed in your home. This will cause Alexa to broadcast a UDP request on your local wifi network, scanning for Wemos and other compatible devices.
A response is sent out in the nextUDPResponse method. Note the content of that response:. The output of the serial debugger at this point should look like the image below. This is the callback where we will capture commands from Alexa. Its body is defined in WemoCallbackHandler.A ton of Alexa skills come with your Echo devices; some of are fun or silly while others are surprisingly useful.
Here is a look at more than 60 skills that can help you as soon as you get your Echo connected to Wi-Fi and the internet. Alexa is Amazon's proprietary speech-driven service, similar to what Siri is for the iPhone. Commands to the service are known as skills; these capabilities run the gamut from playing a particular song to raising the temperature on your thermostat.
While Alexa can use the thousands and thousands of skills that are available, there are a few things to keep in mind. This shouldn't scare you away, however. Alexa-enabled devices are great to have in your home and, with a little tweaking, can prove to be very good companions. While some skills can be set up by following Alexa's voice prompt instructions, others need to be activated via the Alexa app or on Amazon's website.
You'll notice in the lists below that many Alexa skills are called by using trigger words like openstartplay and ask. While select skills require you to use specific terms, others consider them to be interchangeable and will work with some or all of these phrases. Over time you'll begin launching your favorite skills by the words you feel most comfortable using.
Initially, though, it can be fun to play around with each. The following Alexa skills will keep you entertained for hours on end. Notice each command is clearly stated with an action, such as open or ask. While saying Alexa, what's the weather? This includes the latest headlines on dozens of wide-ranging topics from over 2, available sources.
Whenever you say Alexa, what's my Flash Briefing? Select the settings button, represented by three horizontal lines and located in the upper left-hand corner of the app's main window. Alexa's Settings interface should now be visible. In the Accounts section, select Flash Briefing. A list of the Flash Briefing skills currently associated with your account should now be shown, each designated as on or off.
To activate or deactivate a news source, tap on its accompanying button once.
To modify the priority in which Alexa reads each source during your Flash Briefing, first select the Edit Order button. Next, select and drag each option until they are displayed in the desired order of preference.
Once complete, tap the Done button to return to the previous screen. A searchable and sortable list of applicable skills should now be listed. To add one to your list of information sources, select it from the list and then tap the Enable button. Not surprisingly, Alexa-enabled devices are also great tools for listening to your favorite songs and audiobooks. In addition to the capabilities listed below, there are also dozens of podcasts available as Alexa skills.
To navigate songs, books and other audio Alexa honors commands such as Alexa, pauseAlexa, resume and Alexa, restart. Despite the fact that Alexa is operated strictly by voice there are some pretty cool games available, thanks in part to developer ingenuity and player imagination.
Your Alexa-enabled device can also function as a white noise machine, playing the following ambient sounds to set the right mood at the right time. It can also interact with certain smart home hardware including garage doors, lights and TVs to name a few.
Alexa Skill Spotlight: Pandora
Each platform functions differently with Alexa, so consult with your manufacturer's documentation. There are thousands of additional skills available for Alexa, searchable within the app or the Alexa Skills section of Amazon. These skills fall into a number of different categories, such as sports trivia specific to certain teams and up-to-date transportation schedules for individual cities and transit systems.
You can also perform shopping tasks on Amazon through Alexaincluding purchasing items in your cart and tracking the package once they're sent. You can have Alexa manage your calendar. And you can even order a pie from Pizza Hut or a latte from Starbucks. On top of all of this, don't forget that you can also ask Alexa a free-form question.As hackers, we like to think of ourselves as a logical bunch. But the truth is, we are as subject to fads as the general public.
There was a time when the cool projects swapped green LEDs out for blue ones or added WiFi connectivity where nobody else had it. Now all the rage is to connect your project to a personal assistant. The problem is, this requires software. However, there is a very simple way to jump start an Alexa skill. I got one up and running in virtually no time using a website called Glitch. Glitch is a little bit of everything. It is a web hosting service, a programming IDE for Node. The site is from the company that brought us Trello and helped to start Stack Overflow.
It is about creating web applications and services easily. Both are free, at least for what we want to accomplish. Glitch has some templates for Google Home, as well. I have both but decided to focus on Alexa, for no particular reason. One nice thing about Glitch is that you can share code live and people can remix it. Think of a GitHub fork, but where you can try running my copy and your copy is instantly live, too.
But it does mean there are example Alexa skills including mine that you can borrow to get yours started, just like I borrowed one to start mine. The first question you might ask yourself is do you even need an Alexa skill? However, if you really want to claim you work with a virtual assistant, you are going to have to write some code somewhere.
Then head over to Glitch and register there, too. There are at least two templates for building an Alexa skill. There are a bare-bones one and a more involved one that retrieves weather forecasts. If you are looking at the page, it might not make much sense. Remember, the web server is meant to talk to Alexa, not people.
Once you create the main app object, you can set up routes to have your code execute when someone calls a particular web service. It also includes an object that represents an Alexa service. There are two methods I wanted to provide. One for when someone opens my skill I called it Hacker Fact, by the way — it gives mildly humorous facts about hacking and related things. That last bit is known as an intent.Add the following snippet to your HTML:.
Read up about this project on. Curtain can be raised or lowered using voice or smartphone application. I wanted to keep the possibility to operate the curtain with a simple external push button, like in the old style, so to avoid conflicts I used the NC contact of the relay to avoid conflicts.
Finally, since the full cycle requires 35 seconds, I wanted to be able to stop the operation by using a voice command. For this reason I used the multitasking capability of ESP one task is listening the wifi communication and the second one operates the switches. In this way a second command will stop the motor. Critical points are the complexity of command chain Alexa, Alexa server, Sinric server, my device and the local wifi network.
I used a 3 lights LED to indicate with blue the connection status and red and green the raise or the lower status. Commands are on and off, but also lower or raise using voice or smart phone Alexa application. Log in Sign up. Intermediate Protip 1, Things used in this project. I wanted to lower or raise the outdoor curtains using a single command, like "good night".
Since I have Alexa 2. Alexa controlled curtain Alexa controlled curtain. Refer to sinric page on github for instruction. Then go to sinric. Insert your wifi network name and password. Your API Key is displayed on sinric.
Follow Contact Contact. Related channels and tags multitasking. Amazon Alexa Alexa Skills Kit.GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
If nothing happens, download GitHub Desktop and try again. If nothing happens, download Xcode and try again. If nothing happens, download the GitHub extension for Visual Studio and try again.
You do not need a physical Alexa device to interact with your skill or control your thermostat. You can use the free Alexa mobile app or Alexa Web Console sign up and beta test your skill. You do not need an ESP32 for the thermostat if you do not want to bother creating a mock thermostat.
Your Alexa skill can interact purely with the AWS IoT device shadow, and you can place dummy data into the shadow to simulate the device being online. That being said, the project is way more fun if you build the ESP32 mock thermostat, too :. There are no doubt ways to do things better; some of my design choices may not be ideal.
For example:. In this project, I include a JSON file in the Alexa skill's Lambda handler function that describes the capabilities of the device which the Lambda function uses to tell the Alexa service what your device can do. Is storing this configuration file with the Lambda function the right place to do so? You create a skill in the Alexa Developer Console and then link it to a Lambda function in your AWS account, and your users register to use the skill via the Alexa mobile app or website.
You need an OAuth identity provider IdP to keep track of your registered users, and for this demo we will use Amazon Cognito. Custom Alexa Skills essentially allow you to do anything you want when your Lambda function gets invoked.
Custom Alexa skills give you more control but require additional development and planning. As an alternative to a custom Alexa skill, the Amazon Alexa team has created a number of pre-made Alexa Skill Kits and APIs that give you a framework for rapidly developing skills for popular use cases. If your use case matches a skill kit's capabilities, it may be worth trading the flexibility of a custom skill for the time savings offerred by the skills kit.
In this project, we only need to use AWS IoT Core to create a thingwhich is a logical representation of a physical device. Even if you do not build the optional ESP32 thermostat in this project, this project allows you to interact with your IoT thing as if it were a physical device.
This message contains the device's current physical state e. Desired statewhich is a JSON document that represents the the target state we want our physical device to match e. When the IoT Core shadow service detects a difference between the reported and desired state in the shadow, it will send a delta message over MQTT to the physical device. In normal operating conditions, we expect that the device will receive this delta, respond by changing its state e.
In this project, we will use the device shadow's reported state to track things such as the current temperature, thermostat mode heat, cool, or offand current target temperature.
When a user talks to Alexa to change our thermostat settings, Alexa will invoke a Lambda which will then change our device's desired state in the shadow. The shadow will detect the change and send the delta to the physical device to respond accordingly. When a user invokes their Alexa skill, the Alexa service needs to know which AWS IoT thing belong to that user so that Alexa can read from or update the appropriate device shadow.
This section contains design choices that I am unsure of or where I want to further explain my reasoning. I chose DynamoDB because I wanted the possibility of a "many to one" mapping of users to a single device.
For example, maybe a household family or roommates all want to control the same thermostat using their separately-registered Alexa devices and accounts. If we only needed a "one-to-one" mapping, then it would be simpler to use an attribute in our IoT thing's device registry. When a user asks Alexa to discover available devices, Alexa will query your backend application via a Lambda to ask for a list of devices associated to the user's Cognito ID.
The first key, smartThing-v1 is the physical device's model number, while the second key, 1.
The keys within that represent the device's basic attributes and Smart Home capabilities. My thought was that both the physical device model number and its firmware version both dictate what capabilities it has, so that's how I opted to organize configuration.