Hệ thống nhúng - Bài 9: Điều khiển thiết bị điện từ xa dùng wifi

 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):

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/esp8266-esp-01-pinout-768x311.jpg

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

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/arduino-ide-esp8266-esp-01-board.png

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

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/esp-01-arduino-ide.png

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):

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/arduino-ide-install-esp8266-board-768x431.png

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

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/esp-01-board-arduino-ide.png

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:

Description: https://advancecad.edu.vn/wp-content/uploads/2019/02/arduino-esp-01-program-768x439.png

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).

 

Description: Kết quả hình ảnh cho giải thích tạo arduino R3

Hình 8. Sơ đồ cấu tạo Arduino Uno

 

Vi điều khiển

Description: http://k3.arduino.vn/img/2014/05/22/0/452_8121-1400736757-0--vdk.jpg

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

Description: http://k3.arduino.vn/img/2014/05/25/0/467_8121-1401018414-0--input.jpg

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

Description: create_project_blynk

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

Description: add_button_blynk.gif

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.

Description: get_auth_token_blynk.gif

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ả.

Description: led_result_blynk

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

Ngày:20/03/2020 Chia sẻ bởi:

CÓ THỂ BẠN QUAN TÂM