Hướng dẫn sử dụng ESP8266 trong các ứng dụng Internet Of Things (Phần 8) – Htelectronics
Phần 8: Demo lập trình điều khiển thiết bị qua Internet
Xin chào, tất cả chúng ta sẽ liên tục chủ đề sử dụng ESP8266 trong những ứng dụng Internet Of Things. Với những bài trước, tất cả chúng ta đã luận bàn khá khá đầy đủ những kỹ năng và kiến thức nền tảng khi lập trình với ESP8266 như kiến trúc phần cứng, những quy mô lập trình và quy trình nạp firmware cho ESP8266. Với những kỹ năng và kiến thức trên, những bạn hoàn toàn có thể ứng dụng để lập trình 1 ứng dụng hoàn hảo sử dụng ESP8266 cho riêng mình rồi. Để minh họa cho ứng dụng, bài viết này sẽ demo lập trình điều khiển thiết bị qua ESP8266 sử dụng mạng Wifi và Internet với mục tiêu để điều khiển thiết bị mọi lúc, mọi nơi .
Yêu cầu của demo
Lập trình 1 web server đơn thuần trên ESP8266 để hiện thị 2 nút nhấn ON và OFF trên nền web, khi user truy vấn vào website này thì hoàn toàn có thể ấn nút để triển khai việc bật / tắt LED. Ngoài ra, nhu yếu phải thiết lập để hoàn toàn có thể truy vấn website này từ bất kỳ nơi nào / thiết bị nàomiễn là có liên kết Internet .
Hardware cần chuẩn bị
Để thực hiện demo này, chúng ta sẽ sử dụng module ESP-01 và module FT232 USB-UART vì tính đơn giản và dễ dàng.
Bạn đang đọc: Hướng dẫn sử dụng ESP8266 trong các ứng dụng Internet Of Things (Phần 8) – Htelectronics
Kết nối phần cứng khi nạp như hình bên dưới :
Ở đây tất cả chúng ta sẽ sử dụng BLUE LED ngay trên board ESP01 nên không cần gắn thêm LED bên ngoài. Lưu ý là BLUE LED mặc định dùng cho công dụng TX của UART0 để output những thông tin debug info ; do đó trong code sẽ đổi khác thành tính năng GPIO và sử dụng để blink LED khi user ấn nút trên web server .
Software cần chuẩn bị
Demo ứng dụng sẽ được code trên Arduino IDE vì tất cả chúng ta hoàn toàn có thể sử dụng những thư viện network 1 cách thuận tiện. Do đó, những bạn cần setup :
- Phần mềm Arduino IDE
- Bộ thư viện và tool cho ESP8266 trên Arduino (xem lại bài 7 để tìm hiểu cách cài bộ thư viện trên Arduino)
Sketch cho ESP8266 trên Arduino
Với demo này, tất cả chúng ta sẽ sử dụng thư viện ESPWiFi tương hỗ những tính năng Wifi và web server .
- Tạo 1 web server và cấu hình port để listen
WiFiServer server(PORT); //PORT = 301 (có thể dùng giá trị bất kỳ)
- Hàm setup()
Cơ bản thì hàm setup() sẽ có chức năng kết nối vào mạng Wifi và khởi động web server
Kết nối mạng Wifi
WiFi.begin(“”, “”);
while (WiFi.status() != WL_CONNECTED) { //đợi kết nối Wifi thành công
delay(500);
Serial.print(“.”);
}
while (WiFi.status() != WL_CONNECTED) { //đợi kết nối Wifi thành công
delay(500);
Serial.print(“.”);
}
Khởi động Web server
server.begin();
Serial.println(WiFi.localIP());
Cấu hình lại GPIO1 để điều khiển BLUE LED trên board
pinMode(LED_PIN, OUTPUT); //LED_PIN = 1
digitalWrite(LED_PIN, HIGH);
Các bạn sửa chữa thay thế thông tin mạng Wifi của mình vào hàm WiFi. begin ( ). Sau khi liên kết thành công xuất sắc, ESP sẽ output địa chỉ IP của nó qua UART0, tất cả chúng ta cần ghi nhớ địa chỉ IP này để thiết lập mở port trên modem Wifi ở bước tiếp theo .
Lưu ý trong hàm setup ( ) không có viết nội dung hiện thị của website, phần hiện thị nội dung sẽ được triển khai trong hàm loop ( ) vì tất cả chúng ta cần update nội dung website theo thao tác của user .
- Hàm loop()
Trong hàm loop(), chúng ta sẽ đợi user ấn nút trên trang web rồi đọc dữ liệu từ web client để biết được user đã ấn nút nào trên trang web và thực hiện action tương ứng
Đợi user mở website hoặc ấn nút trên trang web
while (!client.available()) {
delay(1);
}
Đọc tài liệu từ web client để biết user có ấn nút hay không
String req = client.readStringUntil(‘\r’); //đọc thông tin từ web client
client.flush();
if (req.indexOf(“”) != -10) {
if (req.indexOf(“/OFF”) != -1) { //khi user ấn nút OFF
digitalWrite(LED_PIN, HIGH);
led_status = false;
}
if (req.indexOf(“/ON”) != -1) { //khi user ấn nút ON
digitalWrite(LED_PIN, LOW);
led_status = true;
}
}
Gửi nội dung để hiện thi trên trang web
// Prepare the response
String s = “HTTP/1.1 200 OK\r\n”;
s += “Content-Type: text/html\r\n\r\n”;
s += “
\r\n\r\n”;
s += “
”;
s += “
”;
s += “
”;
s += “”;
s += “
”;
if(led_status) {
s += “”;
}
else
{
s += “”;
}
s += “\n”;
client.flush();
Tùy vào trạng thái LED mà nội dung của website sẽ được biến hóa tương ứng để thông tin user là LED đã được ON / OFF theo nhu yếu
File sketch của demo có thể download ở đây
Để nạp firmware sau khi biên dịch trên Arduino, tất cả chúng ta thông số kỹ thuật như hình bên dưới :
Kết nối USB tới module FT232 và chọn Port tương ứng để thực thi quy trình nạp firmware xuống module ESP8266
Test demo
Chúng ta hoàn toàn có thể test demo trong mạng Wifi local trước như hình bên dưới :
Trước khi chân GPIO1 bị đổi thành IO để điều khiển LED, ESP sẽ output những log ra hành lang cửa số COM trên Arduino với thông tin local IP của module ( trong ví dụ là 192.168.1.106 ). Chúng ta sẽ liên kết tới địa chỉ IP này trên 1 web browser trên máy tính liên kết cùng mạng Wifi với module ESP01 để load website server ( quan tâm là phải chọn port tương ứng đã lập trình trong code ) .
Từ website này, khi ấn nút ON / OFF tương ứng, tất cả chúng ta sẽ thấy BLUE LED trên board ESP01 sẽ tắt / mở tương ứng và trạng thái của LED cũng được update trên website. Thế là demo đã work OK !
Điều khiển qua mạng Internet
Hiện tại tất cả chúng ta chỉ hoàn toàn có thể điều khiển LED từ máy tính hoặc smartphone liên kết chung mạng Wifi với module ESP01. Để hoàn toàn có thể gửi lệnh tới ESP8266 từ mạng Internet bên ngoài, tất cả chúng ta cần thiết lập Open Port trên modem Wifi của mình .
Sau đây là ví dụ triển khai Open Port trên modem H640W của mạng Viettel
- Kết nối dây cáp LAN vào modem
- Mở browser trên máy tính và nhập vào địa chỉ IP của modem (mặc định modem H640W của Viettel có địa chỉ IP là 192.168.1.100) và điền thông tin username, password để login
- Vào mục Advance Settings, thiết lập Open Port như sau:
Rule Name = Tên rule bất kỳ
Target IP = địa chỉ IP của module ESP01 khi chạy (đã được in ra khi ESP01 chạy code)
Netmask chọn 32
Tất cả port đều là giá trị PORT đã lập trình trong code (ví dụ ở đây là 301)
Với những modem và mạng internet khác thì việc Open Port cũng tựa như
Bước tiếp theo là cần tìm địa chỉ internet IP của mạng Wifi mà ESP01 đang liên kết vào. Chúng ta hoàn toàn có thể vào website ping.eu để lấy thông tin này. Ví dụ như hình sau :
Thế là xong, từ giờ chúng ta có thể vào 1 mạng internet bất kỳ, đánh địa chỉ “<địa chỉ internet IP>:
<địa chỉ internet IP> là địa chỉ internet IP của mạng Wifi mà ESP8266 đang kết nối
Các bạn hoàn toàn có thể test thuận tiện bằng cách tắt Wifi trên smartphone, bật 3G và truy vấn vào địa chỉ trên để điều khiển LED ngay từ mạng 3G trên smartphone .
Enjoy!
Bài viết đến đây là hết rồi. Hy vọng những bạn đã khám phá được cách đơn thuần để điều khiển thiết bị trong nhà ( quạt, đèn, v.v … ) qua Internet sử dụng chip ESP8266. Lưu ý là với những mạng Wifi sử dụng địa chỉ IP động thì địa chỉ internet IP của mạng Wifi hoàn toàn có thể bị biến hóa, tất cả chúng ta hoàn toàn có thể ĐK 1 địa chỉ IP tĩnh hoặc nghiên cứu và điều tra thêm chính sách lấy được địa chỉ IP động mới khi có biến hóa để hoàn toàn có thể liên kết website server của ESP8266 thành công xuất sắc .
Source: https://baoduongdieuhoa24h.com
Category: Điện Tử