Voice Controlled LED With ESP32, Arduino Cloud and Google Assistant

by taste_the_code in Circuits > Arduino

855 Views, 14 Favorites, 0 Comments

Voice Controlled LED With ESP32, Arduino Cloud and Google Assistant

MVI_1381.00_00_35_16.Still002.jpg
Voice Controlled LED Light with ESP32 and Google Home

Have you ever wondered how cool it would be to control an LED in your home just by talking to it? In this project, I'll show you exactly how to do that using an ESP32 board, Arduino Cloud, and Google Home.

We'll be using an ESP32 microcontroller board to control the LED, leveraging the power of Arduino Cloud for easy online setup and integration. By linking the setup to Google Home, you'll be able to use Google Assistant for voice commands.

The post is sponsored by my friends from PCBWay that are celebrating their 10th Anniversary. Check them out for great coupons and discounts while the promotion lasts!

Supplies

By buying through the links below you support my channel and my work, without any additional cost for you!

Tools and materials used in the video:

Other Smart Home Gear

Setting Up Arduino Cloud

MVI_1381.00_01_51_05.Still004.jpg
MVI_1381.00_02_29_00.Still005.jpg
MVI_1381.00_02_54_18.Still006.jpg
MVI_1381.00_03_04_15.Still007.jpg
MVI_1381.00_03_14_23.Still008.jpg
MVI_1381.00_03_44_03.Still010.jpg

Setting up Arduino Cloud is the first step in this project. You'll need a few things to get started: an Arduino Cloud account and an ESP32 microcontroller.

First, you need to create an Arduino Cloud account. Visit the Arduino Cloud website, and if you don't already have an account, click on "Sign Up" to create one. If you have an account, simply log in. Once logged in, navigate to the "Things" section in the dashboard. This is where you'll manage all your devices. Click on the "Create Thing" button, and you’ll be prompted to add a new device. Choose the ESP32 device from the list of supported devices. I'm using the WROOM module, so I’ll select that one. Name your device something memorable and save the Device ID and Secret Key provided. You'll need them later. Also, add your home Wi-Fi details to ensure your ESP32 can connect to the internet.

And that's it! We've successfully set up Arduino Cloud and prepared our ESP32 for further coding and integration. In the next section, we'll dive into the specifics of coding the ESP32 to control our LED.

Creating the LED Control in Arduino Cloud

MVI_1381.00_03_31_06.Still009.jpg
MVI_1381.00_05_04_10.Still012.jpg

Now that we have our Arduino Cloud account set up and our ESP32 device registered, it’s time to create the LED control. This step will involve adding a switch variable in Arduino Cloud and generating a basic Arduino sketch.

First, in the Arduino Cloud dashboard, go to your newly created "Thing" where you registered your ESP32 device. Here, we need to add a variable that will control our LED. Click on the "Add Variable" button. In the window that appears, set the variable type to "CloudSwitch" and give it a name, such as "LED". This switch will represent the on/off state of our LED. Ensure that the Google Home integration is enabled so that it can be controlled using voice commands via Google Assistant later on.

With the variable set up, Arduino Cloud automatically generates a basic sketch for your project. You can find this initial sketch by navigating to the "Sketch" tab within your "Thing". This sketch includes the necessary code to connect your ESP32 to the Wi-Fi network and manage the switch control.

Before uploading the code to our device, we need to add a small section to the LED handler that will trigger our pin based on the cloud switch variable. The full sketch is available on my website.


void onLEDChange()  {
  // Add your code here to act upon LED change
  if(lED) {
    digitalWrite(LEDPIN, HIGH);
  } else {
    digitalWrite(LEDPIN, LOW);
  }
}


Through the Arduino Cloud web interface, compile and upload the sketch to your ESP32. The platform makes this straightforward, and the upload should only take a few moments. Open the serial monitor after uploading the sketch to verify that your device successfully connects to your specified Wi-Fi network.

By completing this step, you've effectively created a basic setup in Arduino Cloud to control an LED. Your ESP32 is now ready to receive commands from the Arduino Cloud, setting the stage for full voice control integration using Google Home.

Integrating With Google Home

MVI_1381.00_06_33_23.Still013.jpg
MVI_1381.00_00_14_04.Still003.jpg
MVI_1381.00_07_51_21.Still014.jpg

With your ESP32 and Arduino Cloud setup ready, it’s time to integrate it with Google Home. This will allow you to use voice commands via Google Assistant to control your LED.

First, you'll need the Google Home app installed on your smartphone or tablet. Open the app and navigate to the Home screen. Tap on the "+" icon, usually found at the bottom-right corner, and select "Set up device". Choose the option "Works with Google". This will open a list of services that can be linked to Google Home. In the search bar, type "Arduino" and select it once it appears.

You will be prompted to sign in to your Arduino Cloud account. Enter your credentials and authorize Google Home to access your Arduino Cloud devices. After successfully linking the accounts, Google Home will import all the devices you have registered in the Arduino Cloud. You should see your newly created "Thing" with the "LED" switch in the devices list. Select your device and assign it to a specific room, like "Office" or "Living Room". This helps manage your devices within Google Home, especially if you add more smart gadgets in the future.

Once the integration is complete, your LED control via ESP32 should now appear in the Google Home app. You can now use voice commands with Google Assistant to control the LED. For instance, you can say, "Hey Google, turn on the LED," or "Hey Google, turn off the LED," and your ESP32 will respond accordingly. This setup not only allows basic on/off functionality but can also be expanded for more complex automations and routines within Google Home.

This completes the integration, making your LED fully controllable using voice commands and enhancing your smart home setup. Enjoy the convenience and fun of controlling your devices with just your voice!

Next Steps

MVI_1381.00_08_08_09.Still015.jpg

Congratulations! You've successfully set up voice control for your LED using ESP32, Arduino Cloud, and Google Home. But this is just the beginning. With this knowledge, you can expand and enhance your project in numerous ways.

One of the next steps you can take is to expand your setup to control multiple devices. Now that you know how to set up and control a single LED, try adding more gadgets. You can easily control multiple LEDs, fans, or even motors by following similar steps. Another enhancement to consider is creating automation. Use Google Home's automation features to set schedules and scenes. For instance, you can automate your LED to turn on at sunset and turn off at bedtime.

You might also want to integrate sensors, such as motion detectors or light sensors, into your setup. This will allow you to create more complex interactions, like turning on the LED only when someone enters the room. Additionally, explore the various functionalities that Arduino Cloud offers, like dashboards and data logging. Experimenting with these features can help you monitor and control your devices remotely. Lastly, don't hesitate to modify the Arduino sketch to include additional functionalities like dimming the LED or changing colors if you’re using an RGB LED. The possibilities are endless with custom code.

I hope you found this tutorial helpful and engaging. With the steps outlined, you can transform any basic electronic project into a smart device controlled by voice commands. Feel free to experiment and expand on what you've learned here. Technology like this not only brings convenience but also adds a layer of fun and creativity to your DIY projects.

If you enjoyed this tutorial, don't forget to like the video and subscribe to my channel for more exciting projects and tutorials. Your feedback and support are much appreciated, and they help in bringing more content like this to you. Until next time, happy tinkering, and I’ll see you in the next project!

Cheers!