Chúng ta đã có những dự án điều khiển thiết bị bằng điện thoại di động với kết nối Wifi hoặc Bluetooth. Tuy nhiên, chúng cần hoạt động trong cùng một mạng dẫn đến khoảng cách bị giới hạn. Trong bài này chúng ta sẽ thực hiện điều khiển thiết bị qua Internet với Blynk. Bằng cách này, chúng ta có thể điều khiển bất kỳ thiết bị nào, tại bất kỳ đâu miễn sao có kết nối đến Internet.
Đầu tiên chúng ta cần cập nhật lại chương trình cho chip ESP8266. Các bước đơn giản như sau:
B1- Mở Arduino IDE để bổ sung thư viện ESP8266 như bài trước
B2- Tải tập tin thư viện Blynk: https://github.com/blynkkk/blynk-library/releases rồi copy bổ sung các thư mục vào phần cài đặt của Arduino IDE
- Tải ESP8266 flasher tool: https://os.mbed.com/media/uploads/sschocke/esp_flasher.zip rồi giải nén
B3- Kết nối mạch nạp USB-USART để cập nhật chương trình cho ESP8266. Có thể sử dụng mạch Arduino (xem lại bài Kiểm tra ESP8266 để biết thêm) hoặc mạch đổi riêng như hình
Giải nén tập tin “esp_flasher.zip” và chạy XTCOM_UTIL. Nếu có lỗi, thử cập nhật Microsoft Visual C++ 2005 Redistributable Package
Gắn mạch vào máy tính, kiểm tra cổng COM đã kết nối. Trong chương trình XTCOM_UTIL, chọn Tools –> Config Device và chọn đúng cổng COM, tốc độ 9600 rồi Open. Tiếp theo là Connect
Nếu bị lỗi thì kiểm tra lại kết nối của mạch.
Trong thư mục esp_flasher đã giải nén, đọc trong readme.txt sẽ biết được địa chỉ của từng tập tin.
Mở API Test –> Flash Image Download –> tìm file.bin theo thứ tự và nhập địa chỉ đã biết rồi Download.
Ví dụ: boot_v1.1.bin—————->0x00000
Sau khi thành công, tắt XTCOM_UTIL và rút mạch khỏi máy tính sau từng lần nạp tập tin mới. Lặp lại thao tác này cho đến hết.
B4 – Ngắt dây tại GPI0 rồi mở Arduino IDE, mở Serial Monitor và chọn tốc độ 115200, gõ lệnh AT sẽ có phản hồi OK. Như vậy ta đã cập nhật được ESP8266. Chuyển chế độ hoạt động của ESP8266 về Station
AT+CWMODE=1
B5- Cài đặt Blynk rất đơn giản.
Vào Google Play Store, cài Blynk. Đăng ký với tài khoản email hoặc facebook
Tạo Project mới với nút (+)
Đặt tên cho Project, chọn thiết bị (trong bài này là Arduino UNO)
Loại kết nối Connection Type là Wifi
Auth Token sẽ được gửi vào email hoặc tìm trong mục Setting –> Device
Tạo nút chức năng với nút (+)
Đặt tên và chọn chân tương ứng sẽ được điều khiển trên mạch Arduino
B6- Mở chương trình Arduino IDE và sử dụng chương trình sau. Chú ý sửa đổi Auth Token, Wifi SSID và Password tương ứng.
/*************************************************************
Download latest Blynk library here:
https://github.com/blynkkk/blynk-library/releases/latest
Blynk is a platform with iOS and Android apps to control
Arduino, Raspberry Pi and the likes over the Internet.
You can easily build graphic interfaces for all your
projects by simply dragging and dropping widgets.
Downloads, docs, tutorials: http://www.blynk.cc
Sketch generator: http://examples.blynk.cc
Blynk community: http://community.blynk.cc
Follow us: http://www.fb.com/blynkapp
Blynk library is licensed under MIT license
This example code is in public domain.
*************************************************************
This example shows how to use ESP8266 Shield (with AT commands)
to connect your project to Blynk.
WARNING!
It's very tricky to get it working. Please read this article:
http://help.blynk.cc/hardware-and-libraries/arduino/esp8266-with-at-firmware
Change WiFi ssid, pass, and Blynk auth token to run :)
Feel free to apply it to any other example. It's simple!
*************************************************************/
/* Comment this out to disable prints and save space */
#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[] = "yourAUTH";
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "yourSSID";
char pass[] = "yourpassword";
// 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(&Serial);
void setup()
{
// Debug console
Serial.begin(9600);
delay(10);
// Set ESP8266 baud rate
Serial.begin(ESP8266_BAUD);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop()
{
Blynk.run();
}
Sau khi nạp chương trình cho mạch Arduino UNO. Kết nối với ESP8266 như sau
Mở Serial Monitor sẽ thấy được quá trình ESP8266 làm việc.
Trên điện thoại, mở Blynk, chạy Project (nhấn nút Play [> ) và bật tắt nút để điều khiển chân đã cài đặt của mạch Arduino.
Xem video minh họa