Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói Đồ án ngành cơ điện: điều khiển thiết bị điện bằng giọng nói
Trang 1ĐẠI HỌC LÂM NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN VÀ CÔNG TRÌNH
BỘ MÔN KỸ THUẬT ĐIỆN VÀ TỰ ĐỘNG HÓA
KHOÁ LUẬN TỐT NGHIỆP
Đề tài: Thiết kế bộ điều khiển các thiết bị điện trong nhà
Trang 2MỞ ĐẦU
Ngày nay, khoa học công nghệ ngày càng phát triển, đặc biệt là lĩnh vực tự động hóa Trong đó, thiết bị điện thông minh đang được đầu tư nghiên cứu và phát triển rất mạnh với nhiều phương thức điều khiển khác nhau như: Touch (chạm), sử dụng cử chỉ hay sử dụng bằng giọng nói để ra lệnh qua đó có tính ứng dụng rất cao trong các khu sản xuất hay các mô hình nhà thông minh
Xuất phát từ thực tế trên, kết hợp với kiến thức đã học về điện tử, tin học đại cương cùng với những hiểu biết về các thiết bị điện tử, em đã quyết định thực hiện đề
tài: “Thiết kế bộ điều khiển các thiết bị điện trong nhà bằng giọng nói” với mục
đích tạo ra một bộ điều khiển thông minh, có khả năng điều khiển các thiết bị điện dân dụng trong nhà bằng chính giọng nói của con người, cùng với đó là học hỏi, trau dồi thêm kiến thức về các thiết bị điện tử và nâng cao hiểu biết cho bản thân
Em đã sử dụng phương pháp nghiên cứu lý thuyết, kết hợp với thực nghiệm khoa học
để đưa ra hướng thiết kế, thử nghiệm và hoàn thiện sản phẩm Đề tài của em có bố cục gồm 3 chương:
Chương 1: Tổng quan về hệ thống điều khiển các thiết bị điện trong nhà và công nghệ điều khiển bằng giọng nói
Chương 2: Giới thiệu các linh kiện và phần mềm sử dụng trong bộ điều khiển
Chương 3: Thiết kế và xây dựng phần mềm điều khiển
Chương 4: Thiết kế cấu trúc phần cứng và lập trình cho bộ điều khiển
Lần đầu khai thác một lĩnh vực còn khá mới mẻ và do kiến thức còn hạn chế nên chắc chắn không thể tránh khỏi những thiếu sót, vì vậy em rất mong có được sự góp ý và nhắc nhở từ Thầy, Cô giáo để có thể hoàn thiện hơn đề tài của mình
Em xin chân thành cảm ơn cô giáo ThS Đinh Hải Linh, Thầy giáo KS Nguyễn Thành Trung đã giúp đỡ em rất nhiều trong quá trình tìm hiểu, thiết kế và hoàn thành
đề tài đồ án này
Sinh viên thực hiện
Trần Mạnh Hùng
Trang 3NHẬN XÉT (Của giảng viên hướng dẫn)
GIẢNG VIÊN HƯỚNG DẪN
(Chữ ký, họ tên)
Trang 4NHẬN XÉT (Của giảng viên phản biện)
GIẢNG VIÊN PHẢN BIỆN
(Chữ ký, họ tên)
Trang 5MỤC LỤC
ĐIỆN TRONG NHÀ VÀ CÔNG NGHỆ ĐIỀU KHIỂN BẰNG GIỌNG NÓI 1
1.1 Khái quát chung về các thiết bị điện thông minh 1
1.2 Công nghệ điều khiển thiết bị điện không dây sử dụng bluetooth 1
1.3 Tổng quan về hệ thống điều khiển thiết bị điện trong nhà bằng giọng nói 2
CHƯƠNG 2 GIỚI THIỆU CÁC LINH KIỆN VÀ PHẦN MỀM ỨNG DỤNG DÙNG TRONG BỘ ĐIỀU KHIỂN 3
2.1 Giới thiệu về Arduino 3
2.2 Phần mềm lập trình Arduino IDE 7
2.3 Phần mềm mô phỏng Proteus 9
2.4 Ứng dụng App Inventor 10
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN 12
3.1 Thiết kế và xây dựng phần mềm điều khiển 12
3.1.1 Thiết kế lưu đồ thuật toán trong chương trình trên vi điều khiển 12
3.1.2 Thiết kế lưu đồ thuật toán trong ứng dụng trên điện thoại Android 13
3.1.3 Thiết kế giao diện ứng dụng thiết kế trên App Inventor 15
CHƯƠNG 4 THIẾT KẾ CẤU TRÚC PHẦN CỨNG VÀLẬP TRÌNH CHO BỘ ĐIỀU KHIỂN 20
4.1 Thiết kế cấu trúc phần cứng 20
4.1.1 Khối nguồn 21
4.1.2 Khối Module Bluetooth HC05 21
4.1.3 Khối xử lý trung tâm Arduino Uno R3 24
4.1.4 Khối công suất 25
4.1.5 Khối LED báo trạng thái 28
4.2 Lập trình cho bộ điều khiển 29
4.3 Hoàn thành sản phẩm và thực nghiệm 32
KẾT LUẬN 33
DANH MỤC TÀI LIỆU THAM KHẢO 34
Trang 6DANH MỤC CÁC BẢNG, HÌNH VẼ
Bảng 2.1 Bảng thông số của Arduino Uno R3 5
Hình 1.1 Ứng dụng điều khiển thiết bị điện không dây của bluetooth 1
Hình 1.2 Sơ đồ khối hệ thống 2
Hình 2.1 Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O 4
Hình 2.2 Mạch thực tế Arduino Uno R3 4
Hình 2.3 Giao diện của phần mềm Arduino IDE 8
Hình 2.4 Phần mềm mô phỏng mạch điện tử Proteus 9
Hình 2.5 Các linh kiện trong thư viện Arduino cho Proteus 10
Hình 2.6 Các bước để tạo ra một ứng dụng với App Inventor 11
Hình 3.1 Lưu đồ thuật toán trong chương trình trên vi điều khiển 13
Hình 3.2 Lưu đồ thuật toán trong ứng dụng trên điện thoại Android 14
Hình 3.3 Tạo mới và đặt tên ứng dụng 15
Hình 3.4 Thiết kế giao diện ứng dụng 16
Hình 3.5 Lập trình tính năng cho các đối tượng 17
Hình 3.6 Lưu ứng dụng dưới dạng apk để cài đặt vào điện thoại Android 17
Hình 3.7 Lưu và cài đặt ứng dụng bằng cách quét mã Barcode 17
Hình 3.8 Ứng dụng trên điện thoại Android 18
Hình 3.9 Giao diện ứng dụng sau khi khởi động 18
Hình 3.10 Danh sách các thiết bị có thể kết nối bluetooth 19
Hình 3.11 Ứng dụng sau khi kết nối thành công 19
Hình 3.12 Ứng dụng sẵn sàng nhận lệnh từ người dùng 19
Hình 4.1: Sơ đồ khối tổng quan bộ điều khiển thiết bị điện trong nhà bằng giọng nói 20
Hình 4.2 Sơ đồ nguyên lý mạch nguồn 220VAC – 9VDC 21
Hình 4.3 Sơ đồ nguyên lý mạch nguồn 220VAC – 5VDC 21
Hình 4.4 Hình ảnh thực tế Module Bluetooth HC-05 22
Hình 4.5 Sơ đồ nguyên lý Module HC-05 22
Hình 4.6 Arduino với mô hình nhà thông minh 24
Hình 4.7 IC đệm ULN2003A 25
Hình 4.8 Sơ đồ nguyên lý module relay 4 kênh trên phần mềm Altium designer 27
Hình 4.9 Sản phẩm module relay 4 kênh 27
Hình 4.10 LED đơn báo trạng thái 28
Hình 4.11 Sản phẩm module relay 4 kênh 28
Hình 4.12 Bộ điều khiển thiết bị điện trong nhà bằng giọng nói 32
Hình 4.13 Bật đèn bằng giọng nói 32
Trang 7SVTH: Trần Mạnh Hùng 1 GVHD: ThS Đinh Hải Lĩnh
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN CÁC THIẾT BỊ ĐIỆN TRONG NHÀ VÀ CÔNG NGHỆ ĐIỀU KHIỂN BẰNG GIỌNG NÓI 1.1 Khái quát chung về các thiết bị điện thông minh
Thiết bị điện thông minh là một hệ thống các thiết bị điện, điện tử có sử dụng năng lượng Các thiết bị điện này sẽ trở nên thông minh khi có sự phối hợp giữa công nghệ thông tin và truyền thông để chúng có thể kết nối và tự động thực hiện các thao tác từ sự điều khiển của con người Trong một ngôi nhà thông minh, các thiết bị điện này sẽ được người dùng điều khiển thông qua điện thoại hay máy tính bảng Ngoài ra,
có khả năng tương tác được với các thông số môi trường, giúp người sử dụng có thể giám sát và điều khiển các thiết bị từ xa, đem lại sự an toàn, tiện nghi, linh hoạt, tiết kiệm và thể hiện đẳng cấp người sử dụng
1.2 Công nghệ điều khiển thiết bị điện không dây sử dụng bluetooth
Trong những năm gần đây, công nghệ truyền nhận dữ liệu không dây thông minh đang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh Hiện nay, có khá nhiều công nghệ truyền nhận dữ liệu không dây như: RF, Wifi, NFC, Bluetooth Trong đó, Bluetooth là một trong những công nghệ được phát triển từ lâu và luôn được cải tiến để nâng cao tốc độ cũng như khả năng bảo mật Ứng nổi bật của bluetooth được thể hiện như hình 1.1
Hình 1.1 Ứng dụng điều khiển thiết bị điện không dây của bluetooth
Trang 8SVTH: Trần Mạnh Hùng 2 GVHD: ThS Đinh Hải Lĩnh
1.3 Tổng quan về hệ thống điều khiển thiết bị điện trong nhà bằng giọng nói
Xuất phát từ thực tế về sự phát triển của công nghệ truyền nhận dữ liệu không dây cùng những ứng dụng quan trọng mà nó đem lại, em đã quyết định thực hiện đề tài: “ Thiết kế bộ điều khiển thiết bị điện trong nhà bằng giọng nói’’ Đề tài ứng dụng công nghệ Bluetooth phổ biến trên nhiều thiết bị sử dụng hệ điều hành Android, qua
đó áp dụng được rộng rãi cho người sử dụng, góp phần phát triển các hệ thống điều khiển thông minh
Bộ điều khiển thiết bị điện trong nhà bằng giọng nói là một dạng của thiết bị điện thông minh Hệ thống sẽ nhận tín hiệu từ giọng nói của con người thông qua một ứng dụng cài đặt trên thiết bị Android có kết nối internet Sau đó, tín hiệu sẽ được chuyển tới cho bộ xử lý phân tích, xây dựng các thuật toán và cuối cùng đưa ra các tín hiệu đóng cắt các thiết bị điện trong nhà nhờ relay Sơ đồ khối của hệ thống điều khiển được thể hiện như hình 1.2
Hình 1.2 Sơ đồ khối hệ thống
Trang 9SVTH: Trần Mạnh Hùng 3 GVHD: ThS Đinh Hải Lĩnh
CHƯƠNG 2 GIỚI THIỆU CÁC LINH KIỆN VÀ PHẦN MỀM ỨNG DỤNG DÙNG
TRONG BỘ ĐIỀU KHIỂN 2.1 Giới thiệu về Arduino
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với
nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau
Một mạch Arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp
dễ dàng lập trình và có thể mở rộng với các mạch khác Một khía cạnh quan trọng của Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của
board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài
shield truyền thông với board Arduino trực tiếp thông qua các chân khách nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I²C-nhiều shield có thể được xếp chồng và sử dụng dưới dạng song song Arduino chính thức thường sử dụng các dòng chip megaAVR, đặc biệt là ATmega8, ATmega168, ATmega328, ATmega1280, và ATmega2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch gồm một bộ điều chỉnh tuyến tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua bộ điều chỉnh điện áp onboard do hạn chế về kích cỡ thiết bị Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on-chip, so với các thiết bị khác thường phải cần một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương trình Một mạch Arduino hoàn chỉnh với đầy đủ các cổng giao tiếp được thể hiện như hình 3.6
Trang 10SVTH: Trần Mạnh Hùng 4 GVHD: ThS Đinh Hải Lĩnh
Hình 2.1 Một mạch Arduino Uno chính thức với các mô tả về các cổng I/O
Trong các dòng Arduino thì Arduino Uno R3 là Board mạch rất phổ biến hiện nay (hình 2.2)
Hình 2.2 Mạch thực tế Arduino Uno R3
Các thông số của Arduino Uno R3 được thể hiện ở bảng 2.1:
Trang 11SVTH: Trần Mạnh Hùng 5 GVHD: ThS Đinh Hải Lĩnh
Bảng 2.1 Bảng thông số của Arduino Uno R3
USB)
- Năng lượng:
Trang 12SVTH: Trần Mạnh Hùng 6 GVHD: ThS Đinh Hải Lĩnh
+ GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO R3 Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
+ 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
+ 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
+ Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO R3, ta nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
+ IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO R3 có thể được đo ở chân này và luôn là 5V Mặc dù vậy không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
+ RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
- Bộ nhớ:
+ 32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader
+ 2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi lập
trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Khi mất điện, dữ liệu trên SRAM sẽ bị mất
+ 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
- Các cổng vào ra:
Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ
có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
Trang 13SVTH: Trần Mạnh Hùng 7 GVHD: ThS Đinh Hải Lĩnh
+ Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX)
dữ liệu TTL Serial Arduino Uno R3 có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này nếu không cần thiết
+ Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay
vì chỉ cố định ở mức 0V và 5V như những chân khác
+ Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
+ LED 13: trên Arduino UNO R3 có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
Arduino UNO R3 có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0
→ 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board,
có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu cấp điện áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
2.2 Phần mềm lập trình Arduino IDE
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mạng lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wring dễ hiều và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn
Trang 14SVTH: Trần Mạnh Hùng 8 GVHD: ThS Đinh Hải Lĩnh
Arduino IDE là phần mềm dùng để lập trình cho Arduino Giao diện phần mềm lập trình Arduino IDE cho Arduino được thể hiện như hình 2.3
Hình 2.3 Giao diện của phần mềm Arduino IDE
Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến hiện nay
là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh ghiệm Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR vào chương trình nêu muốn Hiện tại, Arduino IDE
có thể download từ trang chủ http://arduino.cc/ bao gồm các phiên bản sau:
Trang 15tương tự một cách hiệu quả ISIS đã được nghiên cứu và phát triển trong hơn 12 năm
và có hơn 12000 người dùng trên khắp thế giới Sức mạnh của nó là có thể mô phỏng hoạt động của các hệ vi điều khiển mà không cần thêm phần mềm phụ trợ nào Sau đó,
phần mềm ISIS có thể xuất file sang ARES hoặc các phần mềm vẽ mạch in khác
Hình 2.4 Phần mềm mô phỏng mạch điện tử Proteus
* Thư viện Arduino trong Proteus
Thư viện Arduino là một bổ sung rất hay cho phần mềm mô phỏng Proteus, nó giúp cho việc mô phỏng Arduino được thuận tiện và dễ dàng hơn thay vì chỉ mô phỏng được chip Atmega328 (nhân của Arduino), thư viện này được phát triển bởi các kỹ sư Cesar Osaka, Daniel Cezar, Roberto Bauer và được đăng tải trên Blog tiếng Bồ Đào Nha: http://blogembarcado.blogspot.de/
Trang 16SVTH: Trần Mạnh Hùng 10 GVHD: ThS Đinh Hải Lĩnh
Thư viện bao gồm các linh kiện sau:
+ Arduino Uno (phiên bản chip Atmega 328 chân DIP)
+ Arduino Uno (phiên bản chip Atmega 328 chân SMD)
+ Arduino Mega
+ Arduino Lilypad
+ Arduino Nano
+ Cảm biến siêu âm Ulstrasonic V2
Các linh kiện trong thư viện Arduino của Proteus được thể hiện như hình 2.5:
Hình 2.5 Các linh kiện trong thư viện Arduino cho Proteus
2.4 Ứng dụng App Inventor
App Inventor là một công cụ lập trình trực quan dùng để phát triển phần mềm ứng dụng trên hệ điều hành Android được Google giới thiệu vào ngày 12/7/2010 Với công cụ App Inventor, Google tạo điều kiện để mọi người có thể tự xây dựng phần mềm ứng dụng cho thiết bị di động dùng hệ điều hành Android
Trang 17SVTH: Trần Mạnh Hùng 11 GVHD: ThS Đinh Hải Lĩnh
App Inventor thực chất là một ứng dụng web, chạy bởi trình duyệt trên máy tính
cá nhân.Tuy nhiên, người dùng vẫn phải cài đặt một phần mềm Java mang tên App Inventor Extras, có nhiệm vụ điều khiển điện thoại Android (kết nối với máy tính thông qua cổng USB) Nhờ vậy, người dùng có thể nhanh chóng chuyển ứng dụng từ máy tính cá nhân qua điện thoại Android để chạy thử Nhóm dự án App Inventor tại Google dự định bổ sung những bộ mô phỏng điện thoại Android để có thể sử dụng App Inventor mà không cần có điện thoại Android thực sự gắn vào máy tính Việc thiết kế code trên app rất tiện lợi và đơn giản Chỉ cần kéo các phần tử trong khối blocks rồi sau đó thả ra màn hình và lắp ghép theo ý tưởng của người sử dụng Các bước tạo ra một ứng dụng với App Inventor (hình 2.6)
Hình 2.6 Các bước để tạo ra một ứng dụng với App Inventor
Ngày nay, MIT đã hoàn thiện App Inventor và nó được chia sẻ ngay trên tài khoản Google Các lập trình viên mới bắt đầu hoặc bất kỳ ai muốn tạo ứng dụng Android chỉ cần vào địa chỉ web của MIT, nhập thông tin tài khoản Google, và từ những mảnh ghép nhỏ, xây dựng những ý tưởng của mình
Để sử dụng được App Inventor, người dùng cần truy cập vào địa chỉ: ai2.appinventor.mit.edu Sau đó tiến hành đăng nhập bằng tài khoản Google để mở trang quản lí các project
Trang 18SVTH: Trần Mạnh Hùng 12 GVHD: ThS Đinh Hải Lĩnh
CHƯƠNG 3 THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM ĐIỀU KHIỂN
3.1 Thiết kế và xây dựng phần mềm điều khiển
* Xây dựng lưu đồ thuật toán
Trong thực tế, để thay đổi trạng thái của một thiết bị điện (hoạt động -> ngừng hoạt động hoặc ngược lại) ta sử dụng cách thông dụng nhất đó là phải tác dụng cơ trực tiếp lên công tắc, attomat, jack cắm nguồn…nhằm bật hay ngắt nguồn cung cấp vào thiết bị điện Tương tự, hệ thống điều khiển các thiết bị điện trong nhà bằng giọng nói cũng sẽ thực hiện bật hoặc ngắt nguồn cung cấp vào thiết bị điện để thay đổi trạng thái hoạt động của nó, tuy nhiên, người sử dụng không cần tác động cơ học trực tiếp lên công tắc, hay jack cắm nguồn, mà chỉ cần ra lệnh bằng giọng nói
Để làm được điều này, hệ thống sẽ đóng vai trò là một bộ phận trung gian xử lý giọng nói sau đó chuyển thành tín hiệu tương tự đóng/ cắt nguồn cấp vào thiết bị điện thông qua relay Dưới đây là lưu đồ thuật toán trong trương trình trên vi điều khiển và trong ứng dụng trên điện thoại Andrioid
3.1.1 Thiết kế lưu đồ thuật toán trong chương trình trên vi điều khiển
Dựa vào mục tiêu và yêu cầu của đề tài, em đã xây dựng được lưu đồ thuật toán làm cơ sở để viết code lập trình như hình 3.1
Trang 19SVTH: Trần Mạnh Hùng 13 GVHD: ThS Đinh Hải Lĩnh
Hình 3.1 Lưu đồ thuật toán trong chương trình trên vi điều khiển
* Giải thích lưu đồ thuật toán
Khi hệ thống được cấp nguồn thì trước tiên sẽ khởi tạo chân vào/ra của vi điều khiển trên kit Arduino Các chân điều khiển đèn, chân tín hiệu đưa sang điều khiển khối công suất là các chân ra Chân nguồn cấp 5VDC, 9VDC là các chân vào
Để vi điều khiển của Arduino có thể nhận và xử lý được giọng nói của người dùng, trước tiên cần khai báo một chuỗi ký tự (string) Chuỗi ký tự này sẽ đóng vai trò là mẫu để so sánh với các chuỗi ký tự nằm trong bộ nhớ tạm của vi điều khiển mà trước
đó module bluetooth HC-05 gửi về Vi điều khiển sẽ bắt đầu chu trình so sánh
3.1.2 Thiết kế lưu đồ thuật toán trong ứng dụng trên điện thoại Android
Căn cứ vào yêu cầu của đề tài và lưu đồ thuật toán trên vi điều khiển, em đã thiết
kế lưu đồ thuật toán của ứng dụng trên điện thoại Android như hình 3.2.:
Trang 20Khi kết nối thành công, người dùng ra lệnh cho bộ điều khiển bằng cách click vào biểu tượng micro trên giao diện ứng dụng và phát giọng nói Ứng dụng sẽ nhận diện giọng