Đặc biệt em xin gửi lời cảm ơn đến thầy Mai Cường Thọ đã tận tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm dự án.Trongthời gian làm việc với thầy, cô, em không n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠ̣I HỌC NHA TRANG
KHOA CÔNG NGHỆ THÔNG TIN
BÁ́O CÁ́O BÀ̀I TẬP LỚN
Nguyễn Văn Trâm
Khánh Hòa – 10/2022
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠ̣I HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ TÀ̀I SMARTHOME - ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
QUA WIFI DÙNG APP INVENTOR CÓ KẾT HỢP BẰNG GIỌNG NÓI
Bộ môn thực hiện : Internet of Things (IoT)
Sinh viên thực hiện : Trương Minh Vũ - 61131565
Nguyễn Văn Trâm - 6113
Khánh Hòa – 10/2022
Trang 4LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong
trường Đại học Nha Trang và các thầy giáo của Khoa Công nghệ Thông tin đã
tận tình giảng dạy, truyền đạt cho em những kiến thức, kinh nghiệm quý báu trong
suốt thời gian qua Đặc biệt em xin gửi lời cảm ơn đến thầy Mai Cường Thọ đã tận
tình giúp đỡ, trực tiếp chỉ bảo, hướng dẫn em trong suốt quá trình làm dự án.Trongthời gian làm việc với thầy, cô, em không ngừng tiếp thu thêm nhiều kiến thức bổích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêmtúc, hiệu quả, đây là những điều rất cần thiết cho em trong quá trình học và công tácsau này Sau cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã độngviên,đóng góp ý kiến và giúp đỡ trong quá trình học tâp, nghiên cứu và hoàn thànhbáo cáo
Khánh Hòa, ngày 26 tháng 10 năm 2022
Trang 5LỜI CAM ĐOAN
Chúng em xin cam đoan: Những nội dung trong dự án này là do chúng em thực
hiện dưới sự hướng dẫn của thầy Mai Cường Thọ và nghiên cứu trên Internet,sách
báo, các tài liệu trong và ngoài nước có liên quan, không sao chép hay sử dụng bàilàm của bất kỳ các mô hình đề tài ai khác Mọi tham khảo dùng trong đồ án đềuđược trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.Chúng em xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước các thầy
cô và nhà trường
Khánh Hòa, ngày 26 tháng 10 năm 2022
Trang 6MỤ̣C LỤ̣C
LỜI CẢM ƠN 3
LỜI CAM ĐOAN 4
PHẦN I TỔNG QUAN VỀ ĐỀ TÀ̀I 7
1 Lý do chọn đề tài 7
2 Mục tiêu nghiên cứu 7
3 Nhiệm vụ nghiên cứu 7
4 Phương pháp nghiên cứu 8
5 Đối tượng nghiên cứu 8
6 Phạm vi nghiên cứu 8
PHẦN II NỘ̣I DUNG CỦA ĐỀ TÀ̀I 9
CHƯƠNG I: KHÁI QUÁT 9
1.1 Giới thiệu phần mềm Arduino IDE 9
1.2 Giới thiệu Module Wifi ESP8266 10
1.3 Giới thiệu tạo và tải App Inventor trên Smartphone 11
1.4 Các thiết bị có liên quan đề tài 14
CHƯƠNG II: MÔ PHỎNG VÀ LẬP TRÌNH TRÊN ARDUINO IDE 16
2.1 Giới thiệu môi trường tích hợp Arduino 16
2.2 Lập trình cho ESP8266 trên Arduino IDE 20
CHƯƠNG III: ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TỪ XA QUA APP INVENTOR VÀ ESP8266 23
3.1 Sơ đồ thiết kế 23
3.2 Tiến hành thực thi và kết quả thực tế 24
PHẦN III KẾT LUẬN VÀ̀ HƯỚNG PHÁ́T TRIỂN 28
1.Kết luận dự án 28
2 Hướng phát triển 28
PHẦN IV: TÀ̀I LIỆU THAM KHẢO 29
Trang 7DANH MỤC HÌNH
Hình 1 Phần mềm Arduino IDE 9
Hình 2 Esp8266 10
Hình 3 Module Relay 5V 14
Hình 4 Đèn led trái ớt 15
Hình 5 Thiết bị quạt điện 220V 16
Hình 6 Ví dụ Điều khiển led đơn giản 19
Hình 7 Sơ đồ thiết kế mạch 23
Hình 8 Sơ đồ thực thi 23
Hình 9 Mô hình triển khai thực tế 24
Hình 10 Cắm nguồn cho Esp và thiết bị điện 24
Hình 11 Nạp chương trình và xuất địa chỉ IP 25
Hình 12 Giao diện ứng dụng và nhập IP 25
Hình 13 Bật tắt đèn phòng 26
Hình 14 Bật tắt quạt điện 26
Hình 15 Bật tắt đèn vệ sinh 27
CÀI ĐẶT APP INVENTOR
Bước 1.1 Truy cập trang chủ App Inventor 11Bước 1.2 Tạo project 11
Bước 1.3 Thiết kế View của project 12
Bước 1.4 Chuyển đổi trang thiết kế 12
Bước 1.5 Thiết kế Block của project 13
Bước 1.6 Xây dựng ứng dụng 13
Bước 1.7 Nhận mã QR quét và sử dụng 14
CÀ̀I ĐẶT ARDUINO Bước 2.1 Truy cập trang chủ Arduino IDE 16
Bước 2.2 Chọn tải Arduino IDE 17
Bước 2.3 Lựa chọn ổ đĩa tải 17
Bước 2.4 Cài đặt Aduino IDE 17
Bước 2.5 Thiết lập cấu hình kết nối Arduino và Esp8266 18
Trang 8PHẦN I TỔNG QUAN VỀ ĐỀ TÀ̀I
1 Lý do chọn đề tài
Mỗi giai đoạn phát triển của lịch sử thế giới đều gắn liền với những cuộc cáchmạng về khoa học kĩ thuật.Và ngày nay, cuộc cách mạng Internet of Things đã tạonên những thay đổi đáng kể cho cuộc sống con người ở hiện tại và trong tương lai.Với sự phát triển của Internet, smartphone và đặc biệt là các thiết bị điều khiển từ
xa, Internet of Things (IoT) đang trở thành xu hướng mới của thế giới IoT đượcđịnh nghĩa là những vật dụng có khả năng kết nối Internet Bạn vào nhà, mở khóacửa, đèn sẽ tự động sáng chỗ bạn đứng, điều hòa sẽ tự động điều chỉnh nhiệt độ,nhạc sẽ tự động bật để chào đón bạn… những điều chỉ có trong phim khoa học viễntưởng, đang dần trở thành hiện thực với công nghệ IoT
Việc điều khiển từ xa thiết bị đèn là một vấn đề rất quan trọng nó khiến cho công việc bật tắt thiết bị trở nên đơn giản, tiện lợi và nhanh chóng hơn Hơn hết,
nó chứng tỏ được từng bước phát triển về khoa học và công nghệ giúp ích khiến cho đời sống thoải mái và đơn giản hơn trong thời đại 4.0
Từ nhu cầu thực tế cần có một thiết bị điều khiển, giám sát nhiệt đồ, độ ẩm, tủ lạnh,
dữ liệu,… bằng smartphone, thông qua Module Wifi Esp8266 hay Esp32 Từ đó, tínhlinh động cao, cập nhật các dữ liệu 24/24h nhằm tăng hiệu quả quản lý
Xuất phát từ những lý do trên, chúng em chọn đề tài:”Điều khiển thiết bị điện qua app inventor từ module wifi esp8266” làm dự án của bộ môn “Internet of things” Trong quá trình thực hiện dự án không tránh khỏi thiếu sót, chúng em rất mong nhận được sự góp ý của thầy và các bạn để đề tài được hoàn thiện hơn.
2 Mục tiêu nghiên cứu
Thiết kế mạch điều khiển thiết bị từ xa bằng smartphone để bật tắt thiết bị điện
3 Nhiệm vụ nghiên cứu
Nghiên cứu về phần mềm Arduino IDE, Module Wifi ESP8266, Module Relay
2 kênh, thiết bị điện
Nghiên cứu Module Wifi ESP8266, phần mềm App Inventor trên điện thoại
Trang 94 Phương pháp nghiên cứu
Nghiên cứu lý thuyết: Tìm hiểu khái niệm, cấu tạo, các thông số ký thuật, sơ
đồ mạch giữa Esp8266 với Module Relay 2 kênh Tìm hiểu cách cài đặt và tải appInventor về điện thoại
Nghiên cứu thực nghiệm: Thiết kế mạch điều khiển từ xa thiết bị điện trên
điện thoại thông qua Module Wifi ESP8266
5 Đối tượng nghiên cứu
Module Wifi ESP8266, Module Relay 2 kênh và các thiết bị điện
6 Phạm vi nghiên cứu
Thiết kế mạch điều khiển từ xa thiết bị điện trên điện thoại thông qua
Module Wifi ESP8266
Trang 10PHẦN II NỘ̣I DUNG CỦA ĐỀ TÀ̀I CHƯƠNG I: KHÁ́I QUÁ́T
1.1 Giới thiệu phần mềm Arduino IDE
1.1.1 Phần mền Arduino IDE là gì?
để viết và biên dịch mã vào module Arduino Nó bao gồm phần cứng và phần mềm Phầncứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện Phầnmềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạtphù hợp với mục đích sử dụng
Hình 1 Phần mềm Arduino IDE
nên dễ dàng, ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thểlàm được
1.1.2 Arduino IDE hoạt động như thế nào?
- Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã File Hex làcác file thập phân Hexa được Arduino hiểu và gửi đến bo mạch bằng cáp USB Mỗi boArduino đều được tích hợp một bộ vi điều khiển, bộ vi điều khiển sẽ nhận file Hex vàchạy theo mã được viết
1.1.3 Lý do bạn nên sử dụng Arduino IDE
Phần mềm lập trình mã nguồn mở miễn phí
Sử dụng ngôn ngữ lập trình C/C++ thân thiện với các lập trình
viên Hỗ trợ lập trình tốt cho bo mạch Arduino
Thư viện hỗ trợ phong phú
Giao diện đơn giản, dễ sử dụng
Trang 111.2 Giới thiệu Module Wifi ESP8266
1.2.1 Module Wifi ESP8266 là gì?
đặc tính giá rẻ, tương thích với nhiều nền tảng Nó thường được sử dụng trong các boardmạch smart home giá rẻ như Sonoff Basic và các công tắc Wi-Fi Module sơ khai nhấtcủa ESP8266 là ESP-01
1.2.2 Thông số của ESP8266
Tần số hoạt động: 80 MHz
Bộ nhớ flash: 1MB 17 GPIO pins
Giao tiếp: I2C, SPI, I²S, UART
Đặc biệt: 10bit ADC
1.2.3 Các module esp thường gặp
Hình 2 Esp8266
Trang 121.3 Giới thiệu tạo và tải App Inventor trên Smartphone
1.3.1 App Inventor là gì?
trình ứng dụng android Được phát triển bởi Google và đang được duy trì bởi viện côngnghệ Massachusetts (MIT) Mục tiêu của App Inventor là giúp cho người dùng dễ dàngtạo ra các ứng dụng android mà không cần kiến thức lập trình Bằng cách kéo thả cáckhối mã và sắp xếp chúng lại với nhau để tạo thành một ứng dụng
1.3.2 Hướng dẫn tạo trên app Inventor
- Truy cập: http://ai2.appinventor.mit.edu/ để vào app Sau khi nhấp vào
“Create Apps!“ ở góc trên cùng bên trái, bạn tiến hành đăng nhập với tài khoản
gmail của mình nhé
Bước 1.1 Truy cập trang chủ App Inventor
- Sau khi đăng nhập, bạn nhấp vào “Projects” trên màn hình tiếp theo và sau đó
chọn “Start new project”.
Bước 1.2 Tạo project
- Bây giờ bạn tiến hành thiết kế giao diện cho ứng dụng bằng cách chọn nhấp
chọn nút “Designer” ở góc trên bên phải.
- Trong màn hình thiết như hình bên dưới, bạn nhấp chọn và kéo các đối tượng
(component) ở cột Palette vào trong màn hình thiết kế Viewer như hình bên dưới.
Trang 13Bước 1.3 Thiết kế View của project
- Các bạn lưu ý, cột Components cho thấy các đối tượng được sử dụng để thiết
kế giao diện cho ứng dụng này
- Bạn có thể thay đổi thuộc tính của các đối tượng trong cột Properties Sau khi thiết kế giao diện cho ứng dụng xong, bạn nhấp vào “Blocks” ở góc trên bên phải để lập
trình cho ứng dụng của bạn
Bước 1.4 Chuyển đổi trang thiết kế
- Trong màn hình lập trình như hình bên dưới, bạn hãy nhấp vào các đối tượng tương ứng trên màn hình thiết kế rồi chọn và sắp xếp các khối như hình dưới đây
Trang 14Bước 1.5 Thiết kế Block của project
- Sau khi thiết kế giao diện và lập trình cho ứng dụng xong, chúng ta sẽ đónggói ứng dụng ra file apk và cài vào điện thoại của mình Để xuất ra được file apk các bạnchọn “Build” trên menu rồi chọn “App“
Bước 1.6 Xây dựng ứng dụng
- Sau đó, sẽ nhận được mã QR, bạn hãy sử dụng công cụ để quét app về rồi sử dụng
Bước 1.7 Nhận mã QR quét và sử dụng
Trang 151.4 Các thiết bị có liên quan đề tài
- Sau đây là danh sách các linh kiền cần thiết để thực hiện ứng dụng điều khiển
thiết bị điện qua wifi bằng MIT App Inventor và NodeMCU ESP8266
Bảng 1 Các thiết bị liên quan đến đề tài
- Giới thiệu sơ lược về các thiết bị trừ NodeMCU ESP8266 (có phần chi tiết
khác):
1.4.1 Module Relay 5V (2 kênh)
Hình 3 Module Relay 5V Tính năng:
các thiết bị tiêu thụ dòng điện lớn (<10A) Module có thể đóng ngắt cùng lúc hai kênh
bằng tín hiệu điều khiển từ các vi điều khiển khác nhau như: Arduino, 8051, AVR, PIC,
DSP, ARM, ARM, MSP430, logic TTL, đồng thời module được cách ly bằng
optocoupler giúp bảo vệ tốt hơn cho các vi điều khiển
Thông số:
Đóng ngắt được dòng điện cao: AC250V 10A, DC30V
10A 2 led báo trạng thái relay
Điện áp điều khiển: 5V
Mạch cách ly bằng opto
Trang 16Kích thước: 50x45 mm
1.4.2 Đèn điện
- Có 2 loại đèn được sử dụng trong dự án này:
Hình 4 Đèn led trái ớt Tính năng:
- Thiết kế theo hình dáng đèn dây tóc truyền thống, sử dụng công nghệ Led Tiết kiệm năng lượng và thân thiện với môi trường, độ sáng cao, tỏa nhiệt ít, màu sắc trung thựcm tuổi thọ đạt tới 35.000 giờ và không UV hoặc bức xạ
Trang 17CHƯƠNG II: MÔ PHỎNG VÀ̀ LẬP TRÌNH TRÊN ARDUINO IDE
2.1 Giới thiệu môi trường tích hợp Arduino
2.1.1 Hướng dẫn tải và cài đặt Arduino
IDE a Tải Arduino IDE
- Truy cập vào link: https://www.arduino.cc/en/Main/Software để tải phần mềm
Bước 2.1 Truy cập trang chủ Arduino IDE
- Ở đây sẽ xuất hiện các Link Download của các hệ điều hành khác nhau như (Windows, Mac OS X, Linux) Mình sẽ demo cho các bạn cách cài đặt trên
Trang 18Bước 2.3 Lựa chọn ổ đĩa tải
- Sau khi đã tải về hoàn tất bạn vào nơi lưu trữ bản cài đặt và tiến hành cài đặt Arduino IDE
Bước 2.4 Cài đặt Aduino IDE
- Bạn Click vào “I Agree / Next / Install” (bạn chờ giây lát để IDE tiến hành cài
đặt)
b Cài đặt và chức năng Arduino IDE
- Sau khi kết nối và cài đặt xong, sẽ xuất hiện cổng COM ảo trên máy tính (Tùy từng loại hệ điều hành mà có những tên cổng như: COM1, COM2 đối với Windows
Board: NodeMCU 1.0 (ESP-12E Module)
Port: chọn cổng khi gắn thiết bị vào sẽ thấy xuất hiện.
Upload speed: Chọn cao nhất, nếu nạp không được chọn thấp dần.
Trang 19Bước 2.5 Thiết lập cấu hình kết nối Arduino và Esp8266 2.1.2 Cấu trúc của một chương trình lập trình Arduino
- Cũng như các ngôn ngữ lập trình khác, ngôn ngữ trong Arduino sử dụng ngônngữ C, cấu trúc một chương trình Arduino bao gồm 2 phần chính :
- Hàm setup() được sử dụng để khởi tạo giá trị các biến, thiết lập chế độ chân,
bắt đầu sử dụng các thư viện…Hàm setup chỉ thực hiện một lần khi cấp nguồn hoặc reset Arduino
- Hàm loop() được hiểu như là chương trình chính, thực hiện các chức năng được
lập trình và có tính lặp lại liên tục
Trang 202.1.3 Một số ví dụ lập trình các ứng dụng
- Trong Arduino hỗ trợ rất nhiều ví dụ với các thư viện mở, có thể sử dụng tùyvào mục đích mà điều chỉnh cho phù hợp
Ví dụ: Lập trình Điều khiển led
Hình 6 Ví dụ Điều khiển led đơn giản
- Trong hình trên led được kết nối tới chân 13 của Arduino board, với hiệu ứng nhấp nháy cách nhau 1 giây
int led = 13; // khoi tao chan led la 13
Trang 222.2 Lập trình cho ESP8266 trên Arduino IDE Nạp
chương trình cho Esp8266 qua Arduino IDE
a.Nạp và giải thích chương trình code
#include <ESP8266WiFi.h>
WiFiClient client;
WiFiServer server(80);
/* Cài đặt WIFI */
const char* ssid = "TMV";
const char* password = "minhvu1202";
/* dữ liệu nhận được từ ứng dụng */
String data ="";
/* xác định chân điều khiển động cơ */
int relay1 = 4; /* GPIO4(D2) -> IN3 */
int relay2 = 2; /* GPIO2(D4) -> IN1 */
int relay3 = 13; /* GPIO13(D7) -> IN1 */
void setup()
{
Thư viện có sẵn cho module Esp8266 Wifi và truyền nhận cổng 80
Nhập thông tin đăng nhập
WiFi như SSID và mật khẩu.
Truyền nhận dữ liệu
Khai báo kết nối relay với chân trên Esp8266
/* khởi tạo chân điều khiển động cơ làm đầu ra */
pinMode(relay
1, OUTPUT);
Trang 23/* Nếu máy chủ có sẵn, hãy chạy chức năng " checkClient" */
Dữ liệu của 3 chân relay là OUTPUT, cổng Serial 115200 và
lệnh kết nối Wifi Nếu kết nối thành công sẽ nhận được địa chỉ IP.
client = server.available();
if (!client) return;
data = checkClient ();
if (data == "r1on") turnonrelay(relay1); else if
(data == "r1off") turnoffrelay(relay1); else if
(data == "r2on") turnonrelay(relay2); else if
(data == "r2off") turnoffrelay(relay2); else if
(data == "r3on") turnonrelay(relay3); else if
(data == "r3off") turnoffrelay(relay3);
/****************************** BẬT RELAY
***********************/ void turnonrelay(int relay)
{
Trang 24/***************** NHẬN DỮ LIỆU TỪ ỨNG DỤNG *****************/ String checkClient (void)
{
while(!client.available()) delay(1);
String request = client.readStringUntil('\
r'); Serial.println(request); return request;
Trang 25Serial.println("");
Serial.println("WiFi connected"); Serial.println("NodeMCU Local IP is : "); Serial.print((WiFi.localIP()));
}
Trang 26CHƯƠNG III: ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TỪ XA QUA APP INVENTOR VÀ̀ ESP8266.
3.1 Sơ đồ thiết kế
3.1.1 Sơ đồ thiết kế mạch
Hình 7 Sơ đồ thiết kế mạch
relay 1) với lần lượt chân VU,G,D2, D4 và D1 của Esp8266 để tương ứng với thiết bịđiện
3.1.2 Sơ đồ sơ lược của dự án
Hình 8 Sơ đồ thực thi
Trang 273.2 Tiến hành thực thi và kết quả thực tế
3.2.1 Mô hình triển khai
Hình 9 Mô hình triển khai thực tế 3.2.2 Tiến hành thực tế
- Đầu tiên, ta cấp nguồn cho Esp8266 cũng như cho các thiết bị 220V
Hình 10 Cắm nguồn cho Esp và thiết bị điện