Bài
9: Điều khiển TBĐ từ xa dùng wifi ESP 8266 v1
1. ESP 8266 v1
Board ESP8266 chứa bộ vi điều khiển ESP8266EX ( vi điều khiển 32 bit) từ
Espressif Systems , mô-đun Wi-Fi giá rẻ này là một lựa chọn rất tốt cho những
người có sở thích thực hành các dự án IoT. IoT: Internet vạn vật.
Mô-đun
ESP8266 đi kèm với phần sụn AT cho phép chúng ta điều khiển nó bằng các lệnh AT
thông qua giao diện nối tiếp (chân RX và TX).
Mô-đun
ESP8266 phổ biến nhất là ESP-01, nó chỉ có 8 chân như trong hình bên dưới (có
đầu ra):

Như đã trình bày ở trên, board ESP-01 có 8 chân đó là:
Chân
truyền dữ liệu UART cũng là chân GPIO1
GND: chân
đất (0 V)
CH_PD:
chân cắm xuống chip, được sử dụng để tắt chip ESP8266EX, khi chip được bật HIGH
và khi chip tắt, cũng được đặt tên là CH_PU (tăng khả năng cho chip) và CHIP_EN
(bật chip)
GPIO2: đầu
vào / đầu ra cho chân 2
RESET:
chân đặt lại bên ngoài (ở mức low), khi chip ở mức low là đang ở chế độ thiết
lập lại
GPIO0: đầu
vào / đầu ra cho chân 0
VCC: chân
cấp nguồn. Chip ESP8266EX có điện áp hoạt động: 2.5V ~ 3.6V
RX: Chân
nhận dữ liệu UART cũng là chân GPIO3
2. Lập trình ESP8266 với Arduino IDE:
Đầu tiên,
mở Arduino IDE và đi đến File —> Preferences
Thêm liên
kết bên dưới vào Additional Boards Manager URLvà nhấp vào OK:
http://arduino.esp8266.com/ sóng /
pack_esp8266com_index.json

Giờ vào
Tools —> Board —> Boards Manager

Trong hộp
Search, hãy viết Esp8266 và nhấp vào Install và quá trình cài đặt board sẽ bắt
đầu (quá trình cài đặt có thể mất một chút thời gian tùy thuộc vào tốc độ kết
nối):

Sau khi
cài đặt, chọn board ESP-01 bằng cách truy cập: Tools —> Board: —> Generic
ESP8266 Module

Bây giờ
mọi thứ đã hoàn tất và chúng ta có thể bắt đầu lập trình ESP8266.
3.Lập trình mô-đun ESP8266 (ESP-01) với board
Arduino UNO:
Như đã
biết, board Arduino UNO chứa vi điều khiển Microchip ATmega16U2 được sử dụng
làm bộ chuyển đổi nối tiếp USB. Chip này (ATmega16U2) có thể được sử dụng để
lập trình (flash) mô-đun Wi-iF ESP-01, cách nối mạch được hiển thị bên dưới:

Trong mạch
có 2 điện trở một cái là 1k ohm và cái còn lại là 2.2k ohm. Hai điện trở được
sử dụng để giảm 5V từ arduino còn khoảng 3,43V khi đến board ESP-01 (được nối
với chân RX của ESP-01) vì chip ESP8266EX chỉ hoạt động với 3,3V và cấp nguồn
5V trực tiếp có thể làm hỏng nó.
Mặt khác,
chân TX của ESP-01 được nối trực tiếp với board Arduino mà không có bất kỳ bộ
chuyển đổi mức điện áp nào vì ở đây, ESP-01 gửi dữ liệu (ở mức 3,3V) đến board
Arduino bằng chân này.
4. Arduino
UNO R3
Arduino dùng để lập trình, Arduino UNO đã phát triển tới thế hệ thứ
3 (R3).

Hình 8. Sơ đồ cấu
tạo Arduino Uno
Vi điều khiển

Hình 9. Sơ đồ cấu
tạo vi điều khiển
Arduino UNO có thể sử dụng 3 vi điều khiển
họ 8bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những tác
vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển
từ xa,
Năng lượng
Arduino UNO được cấp nguồn 5V thông qua
cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn
là 6-20V.
Các chân năng lượng
ü
GND: Cực âm của nguồn
điện cấp cho Arduino UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện
riêng biệt thì những chân này phải được nối với nhau.
ü
5V: Cấp điện áp
5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
ü
3.3V: Cấp điện áp
3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
ü
Vin: Để cấp nguồn
ngoài cho Arduino UNO, nối cực dương của nguồn với chân này và cực âm của nguồn
với chân GND.
ü
RESET: Việc nhấn nút
Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối
với GND qua 1 điện trở 10KΩ.
Các cổng vào/ra

Hình 10. Sơ đồ Các
cổng vào/ra
Arduino UNO có
14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là
0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện
trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì
các điện trở này không được kết nối).
Một số chân
digital có các chức năng đặc biệt như sau:
ü
2 chân
Serial:
0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu
TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân
này. Kết nối bluetooth thường thấy - kết nối Serial không dây. Nếu không cần
giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
ü
Chân PWM
(~): 3, 5, 6, 9, 10, và 11: Cho phép xuất ra xung PWM với độ phân
giải 8 bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân
này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
ü
LED 13: Trên Arduino
UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, sẽ thấy đèn này nhấp
nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng,
LED sẽ sáng.
ü
Arduino
UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1)
để đọc giá trị điện áp trong khoảng 0V → 5V.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA)
và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
5.
Code điều khiển dung ứng dụng Blynk
//
Trước khi lập trình phải tải thư viện BLYNK cho arduino
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include
<BlynkSimpleShieldEsp8266.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[] = "Tên wifi nhà bạn";
char pass[] = "Mật khẩu wifi";
// Hardware Serial on Mega, Leonardo,
Micro...
#define EspSerial Serial1
// or Software Serial on Uno, Nano...
//#include <SoftwareSerial.h>
//SoftwareSerial EspSerial(2, 3); // RX,
TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 115200
ESP8266 wifi(&EspSerial);
void setup()
{
// Debug console
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
EspSerial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop()
{
Blynk.run();
}
6.
Ứng dụng blynk
Tạo tài khoản mới trên blynk khá đơn giản chỉ việc nhập email và
pass vào là xong
Tạo project mới cho blynk

Thêm nút nhấn vào blynk

Lấy Auth token để có
thể kết nối tới ESP8266 bằng cách vào hình lục giác, chọn new device và lưu lại
giá trị tại AUTH TOKEN.

Xem như đã xong được giao diện đơn giản trên điện thoại, giờ là
chương trình cho ESP8266
Thử thành quả bằng cách ấn vào nút play hình tam giác và tác động
lên nút nhấn xem kết quả.

Các bạn lên trang Youtube để xem thêm hướng dẫn dùng ứng dụng blynk
|