Professional Documents
Culture Documents
…………..
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
- Đây là một phần mềm Arduino chính thống, giúp cho việc biên dịch mã trở
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 bo Arduino đề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.
1.2. Giới thiệu Module Wifi ESP8266
1.2.1. Module Wifi ESP8266 là gì?
- ESP8266 là một chip của Espressif Systems có tích hợp công nghệ Wi-Fi với
đặ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
board mạch smart home giá rẻ như Sonoff Basic và các công tắc Wi-Fi. Module
sơ khai nhất củ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
1.3. Giới thiệu tạo và tải App Inventor trên Smartphone
1.3.1. App Inventor là gì?
- MIT App Inventor là một ứng dụng web cung cấp người dùng nền tảng để lập
trình ứng dụng android. Được phát triển bởi Google và đang được duy trì bởi viện
công nghệ Massachusetts (MIT). Mục tiêu của App Inventor là giúp cho người
dùng dễ dàng tạ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ác khố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é.
- 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â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.
Bướ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.
- 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.
Bướ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ẽ đóng gó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ạn chọn “Build” trên menu rồi chọn “App“.
- 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.
- 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)
Tính năng:
- Module Relay 2-Channel 5V được dùng nhiều trong các ứng dụng đóng ngắt
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
Kí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:
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ạ
Thông số:
Màu ánh sáng: nhiều màu Chất liệu: thủy tinh
Nhiệt độ màu:3200k Đuôi đèn: E14
Điện áp: 220V
1.4.3. Quạt điện
Tính năng:
- Sử dụng tạo gió làm mát cho các thiết bị điện tử, điện gia dụng, y tế.
Thông số:
Điện áp 220V Dòng điện 0.14A
Tần số 50/60Hz Kích thước 12x12x3.8cm
CHƯƠ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.
- Ở đâ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
Windows:
Click chọn vào Windows Installer, for Windows XP and up hoặc Windows
ZIP file for non admin install và trang sẽ chuyển hướng đến phần “Contribute
to the Arduino Software“(đây là một nền tảng mở bạn có thể đóng góp tiền để
phát triển phần mềm).
Bước tiếp theo bạn Click vào JUST DOWNLOAD, bạn chọn nơi lưu trữ phần
mềm có thể là ổ C,D,E.. tùy các bạn.
Bướ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ạn Click vào “I Agree / Next / Install” (bạn chờ giây lát để IDE tiến hành cài
đặt).
- Như vây là bạn đã cài xong Arduino IDE.
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.
- Mở Arduino IDE và lựa chọn (tham khảo cấu hình kết nối như hình dưới):
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.
Bướ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ôn
ngữ C, cấu trúc một chương trình Arduino bao gồm 2 phần chính :
void setup()
{
Thực hiện việc thiết lập ban đầu cho các ứng dụng.
}
Void loop()
{
Vòng lặp thực hiện chương trì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.
2.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ùy
và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.
WiFiServer server(80);
void setup()
pinMode(relay1, OUTPUT);
Dữ liệu của 3 chân relay là
pinMode(relay2, OUTPUT); OUTPUT, cổng Serial 115200 và
lệnh kết nối Wifi.
pinMode(relay3, OUTPUT); Nếu kết nối thành công sẽ nhận
được địa chỉ IP.
Serial.begin(115200);
connectWiFi();
}
void loop()
client = server.available();
if (!client) return;
digitalWrite(relay,HIGH);
Hàm bật tắt
} Module relay.
digitalWrite(relay,LOW);
return request;
void connectWiFi()
Serial.println("Connecting to WIFI");
WiFi.begin(ssid, password);
delay(300);
Serial.println("");
Serial.println("WiFi connected");
Serial.print((WiFi.localIP()));
}
CHƯƠ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
- Kết nối lần lượt chân DC+, DC-, IN1, IN3 (Module relay 1) và IN1 (Module
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
- Kế tiếp, ta bật ứng dụng Mit app Inventor đã thiết kế và cài đặt trước đó, nhập
địa chỉ Ip (192.168.43.220) được hiển thị ở bước trên vào ứng dụng để kết nối.
- Sau đó, đã được đồng bộ esp với điện thoại, bây giờ có thể điều khiển thiết bị
bằng cách nhấn nút, kể cả bằng giọng nói tương ứng với lệnh yêu cầu.
3.2.3. Kết quả thực tế
Nhấn nút bật và tắt đèn phòng