Skip to main content

Servo Motor Control using ESP8266 and Blynk App



Hey folks, 

In this tutorial we will learn how to interface Servo motor with NodeMcu(ESP8266)module and operate it with the Blynk app. Servos are controlled by sending an electrical pulse of variable width, or pulse width modulation (PWM), through the control wire. There is a minimum pulse, a maximum pulse, and a repetition rate. A servo motor can usually only turn 90° in either direction for a total of 180° movement.
servo Motor (Back view) 

Servo Motor (front view)
Blynk is a Platform with iOS and Android apps to control Arduino, Raspberry Pi and the likes over the Internet. It's a digital dashboard where you can build a graphic interface for your project by simply dragging and dropping widgets.

(Blynk App)
Components Required:
  • Servo motor
  • NodeMcu(ESP8266)
  • Connecting wires(male to male)
  • Breadboard
   Follow the image below for circuit connection reference.
(Servo Motor connecting with NodeMcu)
In this circuit, we have connected the output pin to the D0 pin of the NodeMcu module. If want to control the servo motor manually then connect a 10K potetiometer .
The 10K potentiometer will work as a voltage divisor, changing the analog input level on  NodeMCU (A0) from 0 to 3.3V. Internally, the 10 bits ADC (Analog-Digital converter) will generate a digital value (from 0 to 1023), the PotReading, equivalent to the analog voltage input.

After making the circuit dump the code given below.
/*NodeMCU */
#include <ESP8266WiFi.h>
char ssid [] = "Tenda_43DA50";
char pass [] = "Karkhana";
/* Blynk */
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
char auth [] = "c21215a557a24272b44230f0c6f8370c"; // Servo Control Project // Servo Control Project
/* Servo */
#include <Servo.h>
Servo servo1;
#define servo1Pin D0
/* Initial pot reading and servo position set the position to neutral */
//#define potPin A0
int potReading = 1023 / 2;
int servo1Angle = 0;
/* Reads slider in the Blynk app and writes the value to "potReading" variable */
BLYNK_WRITE(V0)
{
  potReading = param.asInt();
}
/* Display servo position on Blynk app */
BLYNK_READ(V1)
{
  Blynk.virtualWrite(V1, servo1Angle);
}
void setup ()
{
  Serial.begin(115200);
  servo1.attach(servo1Pin);
  displaySetup();
  Blynk.begin(auth, ssid, pass);
}
void loop()
{
  Blynk.run();
//  potReading = analogRead(A0);               // Read Analog data from potenciometer not used here
  servo1Angle = map(100, 0, 1023, 0, 45);  // Map the pot reading to an angle from 0 to 180
  servo1.write(servo1Angle);                       // Move the servo to a position
  displayAngle();
  Serial.println(servo1Angle);
  delay (500);
}
/* Initiate and display setup data on OLED */
void displaySetup()
{
  display.init();         // initialize display
  display.clear();        // Clear display
  display.display();      // Put data on display
}
/*  Display Servo position */
void displayAngle()
{
  display.clear();
  display.setFont(ArialMT_Plain_16);
  display.drawString(10, 0, "Servo Control");
  display.drawString(0, 45, "POSITION:" );
  display.setFont(ArialMT_Plain_24);
  display.drawString(80, 40, String(servo1Angle));
  display.display();
}
After dumping the code the output is shown on the video below:-




Thinking?
Join our hands-on training courses.

To know more visit us at  Karkhana Training Portal.


Comments

Popular posts from this blog

Arduino Based Audio Spectrum Analyzer Project

This Video will illustrate you how to visualize audio left and right signals in bar-graph in 16X2 LCD Display using Arduino. Components Required: 1. Arduino UNO 2. 16X2 LCD Display 3. 3.5mm Audio Jack 4. Jumper Wires   Connection Diagram: Video Link Arduino Code #include <LiquidCrystal.h> #include <fix_fft.h> #define DEBUG 0 #define L_IN 1 // Audio input A0 Arduino #define R_IN 0 // Audio input A1 Arduino const int Yres = 8; const int gain = 3; float peaks[64]; char im[64], data[64]; char Rim[64], Rdata[64]; char data_avgs[64]; int debugLoop; int i; int load; LiquidCrystal lcd(11, 10, 7, 6, 5, 4); // pins to LCD // Custom CHARACTERS byte v1[8] = {   B00000, B00000, B00000, B00000, B00000, B00000, B00000, B11111 }; byte v2[8] = {   B00000, B00000, B00000, B00000, B00000, B00000, B00000, B11111 }; byte v3[8] = {   B00000, B00000, B00000, B00000, B00000, B11111, B11111, B11111 }; byte v4[8] = {   B0...

Arduino Based Piano Project

This video will illustrate to you how to make a simple piano by using IR Modules. Based on the frequency of sa, re, ga, ma, pa, dha, ni and sa the tone of the buzzer will change. Video Link Components Required: 1> I.R. Modules 2> Arduino Uno 3> Jumper Wires 4>Small Breadboard Circuit Diagram Arduino Code: int button_C = 2; int button_D = 3; int button_E = 4; int button_F = 5; int button_G = 6; int button_A = 7; int button_B = 8; int button_Cup = 9; int speaker = 10; int buttonstate_C = 0; int buttonstate_D = 0; int buttonstate_E = 0; int buttonstate_F = 0; int buttonstate_G = 0; int buttonstate_A = 0; int buttonstate_B = 0; int buttonstate_Cup = 0; //NOTES         'c'  , 'd',  'e',  'f',  'g', 'a',  'b',  'C' int tones[] = { 240, 254, 285, 320, 359, 280, 427, 956 }; //freq int Cur_tone = 0; void setup() {   pinMode(button_C, OUTPUT);   pinMode(button_D, INPUT);   p...

Webcam Interfacing with Raspberry Pi

This tutorial is about the clicking photos and recording videos using "Logitech Webcam C110 with Raspberry Pi 3 Model B" Component Required: Rasberry Pi 3 Model B  Logitech Webcam C110  Adapter Charger micro USB-b Type 5v,2Amp  Connection Diagram: Step 1: Create a new folder First, we create a new folder just to store your photo and videos separately. Open the terminal. Command for creating new folder is "mkdir folder name" Step 2: Check everything is up-to-date To update your Raspberry Pi command is " sudo apt-get update ". And to upgrade your Raspberry Pi command is " sudo apt-get upgrade". Step 3: Check SSH and Camera enabled To make sure SSH and Camera enabled. Follow these two-steps. By this command, you can configure your SSH and Camera " sudo raspi-config ". Enable SSH. Enable Camera. Step 4: Check connection of Camera Make sure the camera is connected. Then run this command to make sure...