Để cuộc sống dễ dàng hơn con người đang tự động hóa tất cả mọi thứ ngay cả việc tắt mở đèn hiện nay cũng được đơn giản đi nhiều bằng cách tự động bật tắt qua giọng nói sử dụng app Googl
Trang 3HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KĨ THUẬT ĐIỆN TỬ 1
- -
BÁO CÁO ĐỒ ÁN MÔN HỌC
HỆ THỐNG NHÚNG
Đề tài: Điều khiển đèn bật tắt sử dụng App Google Assistant hiển thị trên
giao diện web
Giảng viên hướng dẫn : Nguyễn Ngọc Minh
Sinh viên thực hiện : Nguyễn Văn Tú - B17DCDT196
Nguyễn Văn Thủy - B17DCDT178
Vũ Minh Hiếu - B17DCDT078 Hoàng Ngọc Đạt - B17DCDT031
Hệ đào tạo : Hệ đại học chính quy
Hà Nội - 2021
Trang 4M C L CỤC LỤC ỤC LỤC
Trang 5CHƯƠNG I: Ý TƯỞNG, SƠ ĐỒ KHỐI, LINH KIỆN
1.1 Ý tưởng
Thế giới đang bắt đầu bước vào cuộc cách mạng công nghiệp lần thứ tư, một cuộc cách mạng sản xuất mới gắn liền với những đột phá chưa từng có về công nghệ, liên quan đến kết nối Internet, điện toán đám mây, in 3D, công nghệ cảm biến, thực tế ảo Để cuộc sống dễ dàng hơn con người đang tự động hóa tất cả mọi thứ ngay cả việc tắt mở đèn hiện nay cũng được đơn giản đi nhiều bằng cách tự động bật tắt qua giọng nói sử dụng app Google Assistant trên android hoặc iOS
1.2 Sơ đồ khối và linh kiện
1.2.1 Sơ đồ khối
Hình 1.2.1 Sơ đồ khối hệ thống điều khiển đèn bằng app Google Assistant
1.2.2 Link kiện sử dụng
● Rơ-le 5V
Khi có dòng điện chạy qua rơ le, dòng điện này sẽ chạy qua cuộn dây bên trong và tạo ra một từ trường hút Từ trường hút này tác động lên một đòn bẩy bên trong làm đóng hoặc mở các tiếp điểm điện và như thế sẽ làm thay đổi trạng thái của rơ le Số tiếp điểm điện bị thay đổi có thể là 1 hoặc nhiều, tùy vào thiết kế
Rơ le (hình 1.2.2a) có 2 mạch độc lập nhau họạt động Một mạch là để điều khiển cuộn dây của rơ le: Cho dòng chạy qua cuộn dây hay không, hay có nghĩa
là điều khiển rơ le ở trạng thái ON hay OFF Một mạch điều khiển dòng điện ta cần kiểm soát có qua được rơ le hay không dựa vào trạng thái ON hay OFF của
rơ le
Trang 6Dòng chạy qua cuộn dây để điều khiển rơ le ON hay OFF thường vào khoảng 30mA với điện áp 12V hoặc có thể lên tới 100mA Và bạn thấy đó, hầu hết các con chip đều không thể cung cấp dòng này, lúc này ta cần có một BJT để khuếch đại dòng nhỏ ở ngõ ra IC thành dòng lớn hơn phục vụ cho rơ le
● Diode 1N4007
Diode (hình 1.2.2b) là một loại linh kiện chỉ cho phép dòng điện đi qua nó theo một chiều mà không theo chiều ngược lại
● Transistor C1815
Transistor C1815 (hình 1.2.2c) điều khiển tần số âm chung cho các mạch ứng dụng khuếch đại, kích điện áp, đóng mở như công tắc điện tử
● Tụ điện
Tụ điện (hình 1.2.2d) cho phép dòng điện xoay chiều có thể đi qua Tụ hoá hay tụ điện điện phân là một loại tụ điện có phân cực Nó có anode được làm bằng kim loại đặc biệt được xử lý bề mặt để tạo lớp oxyt cách điện Sau đó chất điện phân rắn hoặc không rắn (non-solid) được phủ lên mặt lớp oxyt để tạo ra cathode
● Điện trở 10k
Điện trở (hình 1.2.2e) có tác dụng: Làm cầu chia áp, khống chế dòng điện qua tải cho phù hợp, phân cực cho bóng bán dẫn Tham gia vào các mạch tạo dao động R C
● Opto quang PC817
Opto quang (hình 1.2.2f) hay còn được gọi là bộ cách ly quang dùng để truyền tín hiệu điện bằng cách chuyển tín hiệu ánh sáng và sau đó mới truyền đi
Nó dùng để cách ly điện giữa đầu vào và đầu ra
● Chip xử lý NodeMCU ESP8266
ESP8266 (hình 1.2.2g) là một mạch vi điều khiển có thể giúp chúng ta điều khiển các thiết bị điện tử Điều đặc biệt của nó, đó là sự kết hợp của module Wifi tích hợp sẵn bên trong con vi điều khiển chính Hiện nay, ESP8266 rất được giới nghiên cứu tự động hóa Việt Nam ưa chuộng vì giá thành cực kỳ rẻ (chỉ bằng một con Arduino Nano), nhưng lại được tích hợp sẵn Wifi, bộ nhớ flash 8Mb
● IC ổn áp 3.3V LM1117
LM1117 3V3 (hình 1.2.2h) là một IC điều chỉnh điện áp dương công suất thấp được thiết kế để đáp ứng dòng điện đầu ra 1A và tuân thủ với thông số kỹ thuật SCSI-I
Trang 7Hình 1.2.2 Các linh kiện sử dụng
CHƯƠNG II : MẠCH NGUYÊN LÝ, MẠCH IN
2.1 Mạch nguyên lý
Hình 2.1.1 Khối điều khiển
Hình 2.1.3 Khối reset
Trang 8Hình 2.1.4 Khối xử lý
2.2 Nguyên lý hoạt động :
a) Khối nguồn
- Khối nguồn có tác dụng ổn định điện áp 3.3V để cấp cho mạch xử lý.
Nguồn đầu vào từ 3-12V
- Tụ C5 dùng để san phẳng điện áp
- Tụ C4 và C6 lọc nhiễu cao tần
b) Khối điều khiển
- Nhận tín hiệu từ ESP8266, khuếch đại tín hiệu để điều khiển Relay Ví dụ tín hiệu đẩy ra là HIGH Lúc này opto sẽ mở cho dòng đi qua, làm có dòng điện đi vào transistor, mạch điện sẽ kín và sẽ có dòng đi qua cuộn cảm của Relay dẫn đến Relay đóng Ngược lại Relay sẽ mở
- Tụ C7 C8 có tác dụng chống hồi tiếp âm
- Trở R3 để hạn dòng đi vào Opto
- Trở R7 hạn dòng đi vào transistor
- Diode cản dòng ngược khi đóng ngắt Relay Do relay hoạt động dựa trên hiện tượng cảm ứng điện từ
c) Khối Reset
- Có tác dụng reset lại vi điều khiển
- Các điện trở được mắc như sơ đồ dựa vào thông số nhà sản xuất cho sẵn
Trang 92.3 Mạch in và ảnh sản phẩm
Hình 2.3.1 Mạch in của hệ thống
Trang 10Hình 2.3.2 Ảnh sản phẩm đã hoàn thiện
Trang 11CHƯƠNG III: XÂY DỰNG HỆ THỐNG THU NHẬN TIẾNG NÓI
3.1 Sơ đồ khối hệ thống
Hình 3.1 Sơ đồ khối hệ thống thu nhận tiếng nói
3.2 Nguyên lý hoạt động
Người dùng thông qua Google Assistant trên điện thoại có thể điều khiển các thiết bị bằng giọng nói Luồng tín hiệu được thể hiện như sau:
Bước 1: Người dùng nói vào điện thoại có Google Assistant
Bước 2: Google Assistant nhận dữ liệu giọng nói xử lý thành chuỗi rồi gửi dữ
liệu đến IFTTT Cloud
Bước 3: IFTTT Cloud nhận dữ liệu từ Google Assistant rồi đưa ra xử lý
WebHooks tương ứng WebHooks được trỏ vào server NodeJS
Bước 4: Server NodeJS – API có nhiệm vụ nhận request từ IFTTT Cloud sau đó
phân tích dữ liệu này và truyền tín hiệu điều khiển tương ứng cho ESP8266 thông qua giao thức MQTT
Bước 5: Server NodeJS - Webserver còn có nhiệm vụ khác là render web
interface để người dùng có thể thông qua browser truy cập đến server để hiển thị
ra danh sách lịch sử điều khiển thiết bị
Ví dụ:
Bước 1: Người dùng nói “Turn on the light”
Bước 2: Google chuyển giọng nói thành văn bản “Turn on the light” rồi gửi đến
IFTTT
Trang 12Bước 3: IFTTT được cài đặt để khi nhận được văn bản “Turn on the light” thì sẽ
sử dụng Webhooks để request đến server NodeJS (qua API)
Ví dụ dữ liệu gửi đi: {device: “light”, status: 1}
Bước 4: Server nodejs nhận dữ liệu và lưu và CSDL, đồng thời truyền tín hiệu
điều khiển đến ESP8266 qua MQTT
Bước 5: Người dùng truy cập vào http://54.255.213.142:4000/web để xem lịch sử điều khiển thiết bị
3.3 Xây dựng Server NodeJS
3.3.1 Web API
Web API cung cấp API để IFTT có thể sử dụng WebHooks để gửi dữ liệu cho server
Bước 1: Tạo CSDL
Cấu trúc bảng
* CREATE TABLE history(ID int(20) PRIMARY KEY AUTO_INCREMENT, device varchar(20), status int(1), time timestamp DEFAULT
CURRENT_TIMESTAMP)
+ -+ -+ -+ -+ -+ -+
| Field | Type | Null | Key | Default | Extra
|
+ -+ -+ -+ -+ -+ -+
| id | int(20) | NO | PRI | NULL |
auto_increment |
| device | varchar(20) | NO | | NULL |
|
| status | int(1) | NO | | NULL |
|
| time | timestamp | NO | | CURRENT_TIMESTAMP |
|
Trong đó :
- Device dùng để lưu tên các thiết bị
- Status dùng để lưu trạng thái thiết bị
- Time dùng để lưu thời gian
Bước 2: Viết chương trình NodeJS
Sử dụng lệnh “express create” để tạo project Sau khi tạo xong sẽ có cấu trúc thư mục như sau
- Thư mục bin là file run server
Trang 13Hình 3.3.1 Cấu trúc thư mục hệ thống
3.3.2 Web Interface
- Web interface được chứa trong thư mục Views của project
- Web interface được viết hoàn toàn bằng html / css và javascript
- Giao diện Web:
Hình 3.3.2 Giao diện web hiển thị dữ liệu bật tắt đèn
3.3.3 Cấu hình kết nối IFTTT và Server NodeJS
Các bước tiến hành:
Bước 1: Đăng nhập vào Cloud IFTTT https://ifttt.com/
Yêu cầu đăng nhập vào bằng tài khoản Google đang liên kết với Google Assistant trên máy để có thể sử dụng được
Bước 2: Truy cập vào https://ifttt.com/create để tạo một action
Bước 3: Chọn “If This”
Trang 14Hình 3.3.3.1 Cấu hình đầu vào IFTT
Bước 4: Trong giao diện tìm kiếm, tìm kiếm với từ khóa “Google assistant” rồi
chọn vào biểu tượng Google Assistant”
Hình 3.3.3.2 Chọn dữ liệu đầu vào là google assistant
Bước 5: Chọn Trigger “Say a simple phrase”
Trang 15Hình 3.3.3.5 Cài đặt bộ nhận diện giọng nói
Bước 7: Sau khi nhấn OK thì quay trở lại màn hình IF-Then-That và chọn vào
“That”
Hình 3.3.3.6 Cài đặt đầu ra
Bước 8: Tìm kiếm và chọn webhooks
Hình 3.3.3.7 Lựa chọn webhook với nền tảng là web
Bước 9: Điền thông tin sẽ được Request
Trang 16Hình 3.3.3.8 Điền thông tin request
Cuối cùng nhấn OK để hoàn thành Giờ khi ta nói vào Google Assistant
“Turn on the light”, Google Assistant sẽ phản hồi lại là “Đã bật đèn” đồng thời gửi một request đến cho server NodeJs Ở đây do IFTTT không hỗ trợ tiếng việt nên đầu vào chúng ta sẽ phải ghi tiếng anh và nói tiếng anh Đầu ra là phản hồi của Google Assistant nên chúng ta có thể viết tiếng việt, phản hồi sẽ nói tiếng việt
Để thêm một action khác ta lặp lại các bước như trên
3.4 Viết chương trình điều khiển cho ESP8266
❖ Hàm kết nối wifi
Trang 17❖ Hàm lắng nghe topic
❖ Hàm xử lý khi bị ngắt kết nối hoặc chưa kết nối được
Trang 18CHƯƠNG IV: TỔNG KẾT
4.1 Đánh giá kết quả thực hiện
Ưu điểm
- Sản phẩm hoạt động khá tốt, mạch cứng và các thiết bị kết nối ổn định
- Tính ứng dụng cao
- Chi phí tương đối rẻ
Nhược điểm
- Chưa tích hợp được ngôn ngữ Tiếng Việt
- Chưa có khả năng hiển thị realtime trên trình duyệt, vẫn phải F5 mỗi lần xem kết quả
Hướng phát triển
Trang 194.2 Tài liệu tham khảo
1 ESP8266 Voice Control With Google Assistant and Adafruit IO
2 https://www.instructables.com
3 http://arduino.vn
4 https://o7planning.org/vi/11935/nodejs
5 https://quantrimang.com/huong-dan-tu-che-thiet-bi-battat-den-va-quat-bang-giong-noi-tieng-viet-138033