Introduction: Servo Motor Controlled With BLYNK Over WiFi

Picture of Servo Motor Controlled With BLYNK Over WiFi

Hello All, I hope you are having a great time!

Today, we are gonna build a simple project to control a servo motor with BLYNK app over Wifi.

Overview: The slider on the blynk app will send a value to the NodeMCU/ESP8266 and this value will be written on PIN 8 and the servo rotates that much degrees.


Step 1: Things We Need

Hardware:

  • Servo SG90
  • NodeMCU
  • MicroUSB cable
  • Jumper Wires

Software:

  • Arduino IDE
  • BLYNK app

Step 2: Circuit and Connections

Picture of Circuit and Connections

Connections:

  • D8 pin of NodeMCU connects to Command pin of Servo Motor.
  • 3V3 PIN of NodeMCU connects to Power PIN of Servo motor (usually RED one).
  • GND PIN of NodeMCU connects to GND of servo motor (usually BLACK one).

Simple connections, huh!

Step 3: ​BLYNK App Setup on Phone

Picture of ​BLYNK App Setup on Phone
  • Create a New Project in BLYNK app.
  • Write Project Name and Select ESP8266 or NodeMCU from dropdown.
  • An AUTH token will be sent to your registered email, note this down.
  • Tap on the screen and add a SLIDER widget on the screen.
  • Tap on the Widget, select Virtual PIN 3 and Start value must be 0 and End Value must be 180 (make sure to these values must not less than 0 and greater than 180 or you might break your servo).

Play responsibly!

Step 4: Time to Code:

We only need to add our AUTH ID(noted above), Wifi SSID and Password in the code and upload it to NodeMCU using Arduino IDE. In the code, we do not need to setup our pins this is already done by BLYNK in their library.

Code:

/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

#include <Servo.h>

// You should get Auth Token in the Blynk App.

// Go to the Project Settings (nut icon).

char auth[] = "YourAuthToken";

// Your WiFi credentials.

// Set password to "" for open networks.

char ssid[] = "YourNetworkName";

char pass[] = "YourPassword";

Servo servo;

BLYNK_WRITE(V3) {

servo.write(param.asInt());

}

void setup() {

// Debug console Serial.begin(115200);

Blynk.begin(auth, ssid, pass);

// You can also specify server:

//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);

//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);

servo.attach(15); // 15 means D8 pin of ESP8266

}

void loop()

{

Blynk.run(); // You can inject your own code or combine it with other sketches.

}

If you do not have BLYNKEsp8266 library, download the BLYNKEsp library from Sketch menu --> Include Library -->Manage Libraries. Search for the BLYNK and install it.

Step 5: Upload Your Code to NodeMCU

Picture of Upload Your Code to NodeMCU

Upload the code to your NodeMCU or ESP8266 and device will be displayed online on your BLYNK app. Click Play button on top right of your app and slide over the slider to rotate Servo as much you need.

Oh yeah!

Your suggestions and comments are always welcome! Feel free. Till then, Happy IOTing.

Follow knowshipp.com for more IOT projects.

Comments

KCC20 (author)2017-09-28

Hi PrakharR6

Is is possible to add a dfplayer mini or Sd card module? how to connect and code it, Thank you.

KCC20 (author)2017-08-25

Hi,

Is it possible to control 2 servo motors in the same time?

Thank you.

PrakharR6 (author)KCC202017-08-25

Yes, add one more servo.attach(PIN_NUMBER); inside setup() function,
considering that you want to control both servos with same slider.
Else, create one more Servo variable, read values on another virtual pin from second slider and write this onto the PIN.

KCC20 (author)PrakharR62017-08-30

I was failed to write the code for 2 different slider=.=

PrakharR6 (author)KCC202017-09-05

Can you share your code?

KCC20 (author)PrakharR62017-09-06

you need the code?

KCC20 (author)PrakharR62017-08-30

Thank you for your hits, I made it ................. so happy and many thanks.

max14118 (author)2017-09-03

when i put in my code and turn on my blynk app and try to connect it, it says servo is offline

PrakharR6 (author)max141182017-09-05

Please check your AUTH token in code and in BLYNK app. Also, look for Serial Monitor under Tools Menu in Arduino IDE, to check if NodeMCU/ESP8266 is connecting or not.

John221B (author)2017-04-12

Hey, for some reason I can't control the servo enough to make it rotate a by degree. It only goes all the way one way, unless I put negative numbers in the slider.

PrakharR6 (author)John221B2017-04-14

Thanks John, for finding the pointing the issue.

I have made some corrections in code(bolded them). Also, select V3 pin for slider. So, now we shall send rotation value to V3 and nodemcu will write this value to D8 pin.

I hope this will work fine.

Hackxtron (author)PrakharR62017-08-01

Sir plz. tell me that whether i should follow ur IMAGE OF SCHEMAtICS.. OR THE THING WRITTER JUST DOWN THE IMAGE!!!!. Plz. tell fast

PrakharR6 (author)Hackxtron2017-08-01

For my SG90 servo, Red wire is Vcc, Brown is GND and Orange is COMMAND.

John221B (author)PrakharR62017-04-14

Ok thanks!