Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This is a quick example of how to use websockets in an ESP8266 device.

The websocket server is runs the NodeMCU and its code is based on one of the examples provided in the arduinoWebsocket project. The client is a QML application that can be executed in a desktop PC or a smartphone.


  • This source uses Arduino IDE and its standard libraries
  • Additional libraries: arduinoWebsocket
  • QT creator IDE for the client application

Hardware components

  • NodeMCU 0.9/1.0
  • An RGB Led
  • A computer or smartphone to run the client application


I wanted to experiment with websockets and this was a simple way to do it. The arduino code is very similar to what you can find in this example. On the other side, the client is a Qt (QML) application. I think QML is an easy way of developing smartphone applications and the advantadge is that you can use the same code in a desktop PC.

The Qt application shows a color picker that sends the current RGB color value through a websocket to the NodeMC device so, you can see how the colors change as you move your finger on the screen.

The circuit is very simple and can be found in other projects on the web.

![Breadboard](pics/RGB led_bb.png)

I use three 220 ohm resistors but it is preferable to use different values according to the information of the RGB led specifications. You can read about this for instance here

Because of that, the colors I get are not very accurate, It works well with red, green, blue and magenta but as an example, I couldn't get yellow.

Demo video

When the code is executed the led shows a red color while the WiFi access point is set. Then, when is ready, the led turns into green. Due to the NodeMCU works as an AP,it is necessary to connect to that wireless network from the smartphone (or the computer). The default data is the following:

  • SSID: ESP8266-RGB
  • Password: rgb12345

After connecting, the green color will change. The RGB code selected in the color picker is transmitted through the websocket to the NodeMCU. After that, the code is split and each of the red, green and blue values are converted to an integer and sent to the corresponding PWM pin.

Another option is to launch in a web browser the html client using this URL http://esp8266.local (if this doesn't work try You will notice three sliders corresponding with the RGB values. Just change them and you will see the new color in your led.


Use an RGB led from an ESP8266 through websockets






No releases published


No packages published