Xem mẫu
- THIẾT KẾ MẠCH ĐIỀU KHIỂN THIẾT BỊ BẰNG WIFI
Thái Trung Hưng, Nguyễn Quỳnh Trâm
Viện Kỹ thuật HUTECH, Trường Đại học Công nghệ TP.Hồ Chí Minh
GVHD: ThS. Nghiêm Hoàng Hải
TÓM TẮT
Đề tài tập trung nghiên cứu và chế tạo mạch điều khiển thiết bị điện từ xa bằng wifi phục vụ
trong đời sống xã hội. Điều khiển thiết bị điện bằng wifi giúp chúng ta có thể bật tắt các thiết
bị điện trong nhà mà không cần phải ở nhà. Để làm được mạch này cần thiết kế 3 phần
chính: bộ phận thu phát wifi – bộ phận xử lý – bộ phận điều khiển. Bộ phận thu phát wifi sử
dụng Kit thu phát Wifi ESP8266 NodeMCU được dùng cho các ứng dụng cần kết nối, thu
thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng liên quan đến IoT. Sau khi
thu thập dữ liệu sẽ truyền đến bộ phận xử lý để xử lý, sau đó bộ phận điều khiển sẽ điều
khiển các thiết bị trong nhà. Mạch sau khi được tính toán, thiết kế, chế tạo đã được lắp ráp
và hoạt động tốt.
Từ khóa: mạch điều khiển, mạch điều khiển bằng wifi.
1 GIỚI THIỆU
Ngày nay, với sự phát triển và tiến bộ không ngừng của khoa học và công nghệ, đời sống
của con người càng được cải thiện và con người càng có thêm nhiều nhu cầu điều khiển
thiết bị từ xa để kiểm soát an toàn khi thiết bị hoạt động và tiết kiệm chi phí khi quên tắt thiết
bị kể cả khi con người không có mặt trực tiếp ở nhà. Việc điều khiển và kiểm soát các thiết bị
điện trong nhà sẽ không còn tốn thời gian nhiều như trước nữa bởi mọi thứ sẽ được điều
khiển từ xa thông qua Web.
Hình 1. Hình ESP 8266 tích hợp mạch nạp CP2102
Nguyên lý hoạt động của mạch:
ESP 8266 NodeMCU đóng vai trò là 1 web server, khi ta nạp code vào ESP 8266 NodeMCU
trong đó có phần nhập thông tin địa chỉ wifi mà ta phải nhập để ESP 8266 sẽ kết nối.
Sau khi ESP8266 khởi động sẽ tiến hành dò tìm và kết nối với địa chỉ wifi đã được khai báo
trong chương trình và được cấp cho 1 địa chỉ IP truy cập vào mạng. Ta có thể dùng các
286
- thiết bị có thể vào internet để truy cập vào địa chỉ IP mới được cấp cho ở trên để điều khiển
các thiết bị thông qua giao diện web đã được lập trình.
Hình 2. Sơ đồ ESP 8266 ra chân NodeMCU
2 THIẾT KẾ NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG
Hình 3. Sơ đồ mạch nguyên lý
3 NỘI DUNG TÍNH TOÁN, THIẾT KẾ, THI CÔNG MẠCH
Hình 4. Sơ đồ khối
287
- - Khối nguồn: cung cấp dòng nguồn ổn định cho thiết bị hoạt động. Mạch chọn nguồn
5VDC dùng cho Kit ESP 8266 NodeMCU, Khối Điều Khiển.
- Khối Xử Lý: khối điều khiển trung tâm nhận tín hiệu từ Web để xuất tín hiệu ngõ ra cho
các chân GPIO.
- Khối Điều Khiển: nhận tín hiệu ở ngõ ra của khối ESP 8266 NodeMCU thực hiện đóng
mở tiếp điểm điều khiển thiết bị hoạt động hay dừng.
- Khối wifi: môi trường truyền lệnh của người sử dụng thông qua web đến thiết bị và
ngược lại.
Hình 5. Sơ đồ giải thuật
Chương trình phần mềm
#include
const char* ssid = "cube";// tên wifi
const char* password = "123456789";//pass wifi
int Pin = 5; // GPIO
int Pin1 = 4;
WiFiServer server(80);// Port 80
void setup() {
Serial.begin(115200);
delay(10);
pinMode(Pin, OUTPUT);
digitalWrite(Pin, LOW);
pinMode(Pin1, OUTPUT);
digitalWrite(Pin1, LOW);
// Kết nối với wifi
Serial.println();
Serial.println();
Serial.print("Ket noi vao mang: ");
Serial.println(ssid);
288
- WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("Da ket noi vao mang");
// Bắt đầu sever
server.begin();
Serial.println("Khoi dong Server");
// In địa chỉ IP
Serial.print("Dia chi IP lien ket: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}
void loop() {
// Kiểm tra vào mạng chưa
WiFiClient client = server.available();
if (!client) {
return;
}
// Đợi Client gửi data
Serial.println("Co Client moi");
while(!client.available()){
delay(1);}
//Đọc yêu cầu từ Client
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();;
//Kiểm tra yêu cầu là gì
int value = LOW;
if (request.indexOf("LED=ON") != -1) {
digitalWrite(Pin,HIGH);
value = HIGH;
}
if (request.indexOf("LED=OFF") != -1) {
digitalWrite(Pin, LOW);
value = LOW;
}
//digitalWrite(ledPin, value);
if (request.indexOf("LED1=ON") != -1) {
digitalWrite(Pin1,HIGH);
value = HIGH;
}
if (request.indexOf("LED1=OFF") != -1) {
digitalWrite(Pin1, LOW);
289
- value = LOW;
}
//Tạo giao diện cho web
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println(""); // do not forget this one
client.println("");
client.println("");
client.println("");
client.println("") ;
client.print("DIEU KHIEN THIET BI BANG WIFI");
client.print("");
client.println("");
client.println("THIET BI 1");
client.println("");
client.println("");
client.println("");
client.println("THIET BI 2");
client.println("");
client.println("");
client.println("");
delay(1);
Serial.println("Client disonnected");
Serial.println("");
}
4 KẾT QUẢ THI CÔNG SẢN PHẨM KHÓA SỐ DÙNG PIC16F877:
GIA CÔNG, LẮP RÁP, LẬP TRÌNH
Kết quả gia công chế tạo là sản phẩm thực tế như Hình 6.
Hình 6. Hình ảnh thực tế của mạch
290
- 5 KẾT LUẬN
Đề tài này thực hiện việc tính toán, thiết kế và chế tạo mạch điều khiển thiết bị bằng wifi sử
dụng Kit thu phát Wifi ESP8266 NodeMCU. Hoạt đông của mạch được điều khiển bằng vi
điều khiển và nhận tín hiệu từ Kit thu phát. Mạch sau khi được chế tạo và lắp ráp đã hoạt
động đúng yêu cầu thiết kế. Tuy nhiên vì hạn chế là trên mô hình nên chưa điều khiển được
các thiết bị tải lớn, chưa ứng dụng điều khiển được các thiết bị qua app,… Do đó cần tính
toán và thiết kế lại rất nhiều. Để ứng dụng vào thực tế hệ thống này còn cần được chỉnh sửa
để tăng tính ổn định của sản phẩm. Ngoài ra, chúng ta còn có thể phát triển giao diện điều
khiển thông qua App của các phần mềm thông dụng như Ios, Android,....
TÀI LIỆU THAM KHẢO
[1] arduino.vn
[2] http://www.picvietnam.com
[3] http://mcu.banlinhkien.vn/threads/giao-tiep-pic16f877a-voi-srf05.102/
[4] http://tailieu.vn/tag/vi-dieu-khien-pic.html
[5] http://www.dientuvietnam.net/forums/
291
nguon tai.lieu . vn