• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
    • Đồng hồ
      • Clocks
      • Nixie Clock
      • Gixie Clock
      • Lixie Clock
      • Scope Clock
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ESP8266 PROJECT » Điều khiển Servo thông qua NodeMCU ESP8266 và Blynk hiển thị lên OLED 0.96

Điều khiển Servo thông qua NodeMCU ESP8266 và Blynk hiển thị lên OLED 0.96

01/12/2020 by admin Để lại bình luận

Điều khiển Servo thông qua NodeMCU ESP8266 và Blynk hiển thị lên OLED 0.96

Mục lục hiện
Điều khiển Servo thông qua NodeMCU ESP8266 và Blynk hiển thị lên OLED 0.96
Cấu hình thông số Servo trên App Blynk
Sơ đồ nguyên lý
Các linh kiện cần thiết cho dự án
Code
Giải thích code
Thư viện

Trong nội dung bài viết hôm nay mình sẽ hướng dẫn các bạn cách làm thể nào để điều khiển Servo thông qua NodeMCU ESP8266 và App Blynk hiển thị lên OLED 0.96.

Để có thể hiểu rõ hơn về bài viết hôm nay các bạn xem lại bài viết bên dưới nhé.

Xem thêm:

  • Động cơ RC Servo là gì?
  • Arduino cơ bản 10: Điều khiển động cơ RC Servo sử dụng Arduino
  • Arduino cơ bản 11: Điều khiển động cơ Servo bằng biến trở sử dụng Arduino
  • Điều khiển động cơ Servo SG90 bằng App Blynk sử dụng NodeMCU ESP8266
  • Hiển thị thời gian thực bằng màn hình OLED 0.96 sử dụng NodeMCU ESP8266

Cấu hình thông số Servo trên App Blynk

Chọn thẻ Slider

  • OUTPUT: VO (0 ~ 1023)
  • DECIMALS: #
  • SEND ON RELEASE & SHOW VALUE: ON

 

Chọn thẻ Value

  • INPUT: V1 (0 ~ 90)
  • READING RATE: 1 sec

Sơ đồ nguyên lý

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
NodeMCU ESP8266 1
Dây cắm 13
OLED 0.96 1
Servo SG90 1
Biến trở 1

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#define SW_VERSION "ServoCtrlBlynk_V.1"
 
/*NodeMCU */
#include <ESP8266WiFi.h>
char ssid [] = "Phamson";
char pass [] = "phamtheson";
 
/* Blynk */
#include <BlynkSimpleEsp8266.h>
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
char auth [] = "6zCB6XaSV9PflOIBv7h1uOF7pgUV99t9"; // Servo Control Project // Servo Control Project
 
/* OLED */
#include "SSD1306Wire.h"
#include "Wire.h"
const int I2C_DISPLAY_ADDRESS = 0x3c;
const int SDA_PIN = 0;
const int SCL_PIN = 2;
SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SCL_PIN);
 
/* Servo */
#define servo1Pin D2
#include <Servo.h>
Servo servo1;
 
/* Initial pot reading and servo position set the position to neutral */
#define potPin A0
int potReading = 1023/2;
int servo1Angle = 90;
 
/* 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(potPin);               // Read Analog data from potenciometer not used here
  servo1Angle = map(potReading, 0, 1023, 0, 180);  // Map the pot reading to an angle from 0 to 180
  servo1.write(servo1Angle);                       // Move the servo to a position
  displayAngle();
  delay (200);
}
 
/* 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();
}

Giải thích code

Khai báo Tài khoản và Mật khẩu Wifi.

1
2
char ssid [] = "Phamson";
char pass [] = "phamtheson";

Mã Token được cấp khi tạo mới Project trên Blynk.

1
char auth [] = "6zCB6XaSV9PflOIBv7h1uOF7pgUV99t9";

Đọc giá trị thanh trượt trên App Blynk và ghi giá trị vào biến “potReading”.

1
2
3
4
BLYNK_WRITE(V0)
{
  potReading = param.asInt();
}

Hiển thị giá trị Servo trên App Blynk.

1
2
3
4
BLYNK_READ(V1)
{
  Blynk.virtualWrite(V1, servo1Angle);
}

Thư viện

  • BlynkSimpleEsp8266.h: Tải ngay.
  • SSD1306Wire.h: Tải ngay.

Nguồn: arduinokit.vn

5 / 5 ( 1 bình chọn )

You May Also Like

Giám sát nhiệt độ, độ ẩm (DHT11) thông qua Thingspeak bằng NodeMCU ESP8266
Điều khiển thiết bị thông qua Cayenne Mydevices và NodeMCU ESP8266
Phát hiện mưa (Rain Sensor) sử dụng NodeMCU ESP8266

Thuộc chủ đề:Động cơ bước, ESP8266 PROJECT Tag với:blynk, esp8266, oled, servo

Bài viết trước « Tự chế mỏ hàn xung cao tần 12v nhỏ gọn
Bài viết sau Cảnh báo rò rỉ khí Gas (Sensor MQ-2) sử dụng NodeMCU ESP8266 và App Blynk »

Reader Interactions

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

NHẬN BÀI VIẾT QUA EMAIL

Hãy đăng ký ngay để là người đầu tiên nhận được thông báo qua email mỗi khi chúng tôi có bài viết mới!

Theo dõi qua mạng xã hội

  • Facebook
  • RSS

Bạn đang tìm gì?

Bài viết mới nhất

Mạch chỉnh tần số âm thanh (Audio Equalizer)

Mạch chỉnh tần số âm thanh (Audio Equalizer)

25/02/2021

Tổng hợp một số mạch điện dùng trong công nghiệp

Tổng hợp một số mạch điện dùng trong công nghiệp

24/02/2021

Cách thay thế transistor tương đương

Cách thay thế transistor tương đương

23/02/2021

Mạch công suất amply 33W

Mạch công suất amply 33W

22/02/2021

Tài liệu động cơ bước và mạch điều khiển động cơ bước

21/02/2021

Zalo hỏi đáp 24/7

Chuyên mục

  • DỰ ÁN & MẠCH ĐIỆN (223)
    • Công nghiệp (16)
    • Dân dụng (27)
    • Điện tử ứng dụng (169)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (23)
      • Cảm biến (40)
      • Động cơ bước (6)
      • Kiểm thử và đo đạc (23)
      • LCD (11)
      • LED (19)
      • Mạch linh tinh (27)
      • Nguồn điện (39)
      • Pin sạc/Acquy và mạch sạc (22)
      • RF – FM (3)
      • Robotic (2)
    • Đồng hồ (6)
      • Clocks (3)
      • Nixie Clock (3)
    • HOME AUTOMATION (25)
    • Lập trình (72)
      • ARDUINO PROJECT (32)
      • ESP32 PROJECT (1)
      • ESP8266 PROJECT (25)
      • RASPBERRY PI PROJECT (7)
      • Vi điều khiển (11)
  • Kiến thức căn bản (145)
    • Arduino (34)
    • Điện tử cơ bản (70)
    • Điện tử số (7)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (11)
    • Raspberry Pi (9)
    • Vi điều khiển (4)

Footer

Bài viết mới nhất

  • Mạch chỉnh tần số âm thanh (Audio Equalizer)
  • Tổng hợp một số mạch điện dùng trong công nghiệp
  • Cách thay thế transistor tương đương
  • Mạch công suất amply 33W
  • Tài liệu động cơ bước và mạch điều khiển động cơ bước
  • Phân loại động cơ bước thường dùng trong máy móc

Bình luận mới nhất

  • admin trong Mạch điều khiển đèn tự động dùng quang trở và 555
  • Kiệt trong Mạch điều khiển đèn tự động dùng quang trở và 555
  • admin trong Mạch Ampli 100W dùng IC TDA7294
  • Viet trong Mạch Ampli 100W dùng IC TDA7294

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.