Điều khiển thiết bị qua Web Sever với ESP8266 không cần Arduino

Giới thiệu

Hôm nay, mình sẽ chia sẻ cách lập trình để điều khiển thiết bị bằng ESP8266, thông qua nền Web. Nó giống như module Ethernet á, nhưng ESP8266 tuyệt vời hơn bởi vì nó không cần kết nối qua cáp mạng so với Elthernet Shield và cũng không phụ thuộc vào Arduino. Chúng ta cùng đi tìm hiểu nào!!!

Chuẩn bị

Kết nối

Nguồn cấp cho ESP8266 là 3.3V nhé! Đây là sơ đồ lúc hoạt động ý!!! ( Cái sơ đồ này thiếu nha, mình lấy trên google !! các bạn phải nối cả chân CH-PD với 3.3V nữa thì ESP8266 mới hoạt động...chân này là chân enable của module ESP8266 nhé )

 

Nạp Code

Đầu tiên, các bạn kết nối ESP8266 với USB UART như sau:

ESP8266 USB UART
TX RX
RX TX
Vcc 3.3V
GND GND
CH_PD 3.3V

Sau đó, các bạn phải down thư viện tại đây

Để nạp được code cho ESP8266 bằng Arduino IDE, các bạn xem lại bài viết trước của mình tại đây

 

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";// tên wifi mà bạn muốn connect
const char* password = "your-password";//pass wifi

int ledPin = 2; // GPIO2
WiFiServer server(80);// Port 80

void setup() {
Serial.begin(115200);
delay(10);

pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);

// Kết nỗi với wifi
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Bắt đầu sever
server.begin();
Serial.println("Server started");

// In địa chỉ IP 
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");

}

void loop() {
// Kiểm tra xem đã connect chưa
WiFiClient client = server.available();
if (!client) {
return;
}

// Đọc data
Serial.println("new client");
while(!client.available()){
delay(1);
}

String request = client.readStringUntil(‘\r’);
Serial.println(request);
client.flush();

int value = LOW;
if (request.indexOf("/LED=ON") != -1) {
digitalWrite(ledPin, HIGH);
value = HIGH;
}
if (request.indexOf("/LED=OFF") != -1) {
digitalWrite(ledPin, LOW);
value = LOW;
}
//digitalWrite(ledPin, value);


// Tạo giao diện cho html!!! giống con elthernet shield á!!! bạn có thể thiết kế 1 giao diện html khác, cho đẹp
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("<!DOCTYPE HTML>");
client.println("<html>");

client.print("Led pin is now: ");

if(value == HIGH) {
client.print("On");
} else {
client.print("Off");
}
client.println("<br><br>");
client.println("Click <a href=\"/LED=ON\">here</a> turn the LED on pin 2 ON<br>");
client.println("Click <a href=\"/LED=OFF\">here</a> turn the LED on pin 2 OFF<br>");
client.println("</html>");

delay(1);
Serial.println("Client disonnected");
Serial.println("");

}

Sau khi ESP8266 connect với Wifi...các bạn bật Serial Monitor để xem IP của ESP8266. Vào trình duyệt và gõ địa chỉ IP...các bạn có thể điều khiển led trong mạng LAN!!! để ứng dụng vào các dự án điều khiển thiết bị từ xa, các bạn cần NAT PORT IP!!!

Lời kết

Trên đây là cách điều khiển thiết bị từ xa bằng ESP8266. Chúc các bạn thành công nhé!!!

lên
30 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Hướng dẫn sử dụng các loại module

Nếu bạn đang muốn thực hiện hóa ý tưởng của mình mà không biết dùng loại module nào? Hãy tham khảo các module trong danh sách sau

Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Khởi đầu những dự án IoT bằng Raspberry Pi

Raspberry Pi không chỉ là một nền tảng phần cứng thú vị để ứng dụng cho các dự án IoT mà còn là công cụ giúp các nhà phát triển học hỏi và hoàn thiện kĩ năng Internet kết nối vạn vật. Internet of Things được cho là chủ đề nóng nhất trong lĩnh vực CNTT hiện nay. Mọi tổ chức muốn tham gia vào xu hướng IoT thì luôn đòi hỏi các chuyên gia CNTT phải được trang bị các kỹ năng, kinh nghiệm cho các dự án của mình. Có rất nhiều tùy chọn cho việc học về IoT, nhưng không có gì tốt hơn ngoài những kinh nghiệm thực tế.

lên
20 thành viên đã đánh giá bài viết này hữu ích.

Kết nối Raspberry và máy tính qua cổng Serial

Trong bài chia sẻ này, mình sẽ chia sẻ cách kết nối, điều khiển Raspberry Pi 2 qua cổng Serial. Ưu điểm của cách kết nối này là có thể đồng thời cấp nguồn cho Pi của bạn và không cần bàn phím, chuột hay màn hình kết nối và làm việc với Pi. Bạn sẽ cần cài đặt phần mềm mô phỏng thiết bị đầu cuối ( ở đây là Putty) nếu bạn sử dụng Windows, ngoài ra còn cần cài đặt Driver cần thiết. Raspberry Pi được tích hợp sẵn cổng giao tiếp nối tiếp Serial cho phép các thiết bị kết nối tới giao diện điều khiển dòng lệnh, đăng nhập và làm việc như một User. Chúng ta cũng nên tìm hiểu một cách tương tự để kết nối với Pi qua mạng nội bộ sử dụng SSH theo bài viết sau của bác raspi: tại đây

lên
10 thành viên đã đánh giá bài viết này hữu ích.