Page i BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP Đề tài: GIÁM SÁT VÀ ĐIỀU KHIỂN MÔ HÌNH NHÀ THÔNG MINH SVTH : NGUYỄN VĂN CƯỜNG MSSV : 12141280 SVTH : HÀ MẠNH DUY MSSV : 12141432 Khoá : 20122016 Ngành : ĐIỆN TỬ TRUYỀN THÔNG GVHD: ThS. NGUYỄN NGÔ LÂM Tp. Hồ Chí Minh, tháng 07 năm 2016i Tp. Hồ Chí Minh, ngày 16 tháng 03 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: Nguyễn Văn Cường MSSV:12141280 Hà Mạnh Duy MSSV:12141432 Giảng viên hướng dẫn: Th.S Nguyễn Ngô Lâm ĐT:0908.434.763 Ngày nhận đề tài:23022016 Ngày nộp đề tài:1672016 1. Tên đề tài : Giám sát và điều khiển mô hình nhà thông minh 2. Các số liệu ban đầu: Board Intel Galileo Gen1 Board Arduino Các cảm biến Gas, cảm biến mưa Các thiết bị điện tử: Các loại khóa cửa tự động, ma trận phím 4x4, Động cơ bước, Module Blutooth 3. Nội dung thực hiện đề tài: Tìm hiểu về Board Intel Galileo Tìm hiểu thông số kỹ thuật, nguyên lý hoạt động các thiết bị được sử dụng trong hệ thống. Làm mô hình thực tế từ mica và gỗ. Thiết kế Web Server giám sát các thông số của hệ thống và điều khiển hoạt động của hệ thống qua mạng Internet, điều khiển thiết bị bằng giọng nói. Nhận xét, kết luận. 4. Sản phẩm: Mô hình hệ thống nhà thông minh. TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ii CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ và tên Sinh viên: Nguyễn Văn Cường........................ MSSV: 12141280 Hà Mạnh Duy ................................. MSSV: 12141432 Ngành: Công nghệ kỹ thuật điện tử truyền thông ...................................................... Tên đề tài: Điều khiển và giám sát mô hình nhà thông minh ....................................... Họ và tên Giáo viên hướng dẫn: Th.S Nguyễn Ngô Lâm NHẬN XÉT 1. Về nội dung đề tài khối lượng thực hiện: ...................................................................................................................................... ...................................................................................................................................... 2. Ưu điểm: ...................................................................................................................................... ...................................................................................................................................... 3. Khuyết điểm: ...................................................................................................................................... ...................................................................................................................................... 4. Đề nghị cho bảo vệ hay không? ...................................................................................................................................... 5. Đánh giá loại: ...................................................................................................................................... 6. Điểm:……………….(Bằng chữ:............................................................................ ) Tp. Hồ Chí Minh, ngày tháng 07 năm 2016 Giáo viên hướng dẫniii CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên: Nguyễn Văn Cường........................ MSSV: 12141280 Hà Mạnh Duy ................................. MSSV: 12141432 Ngành: Công nghệ kỹ thuật điện tử truyền thông ...................................................... Tên đề tài: Điều khiển và giám sát mô hình nhà thông minh ....................................... Họ và tên Giáo viên phản biện: .................................................................................... NHẬN XÉT 1. Về nội dung đề tài khối lượng thực hiện: ...................................................................................................................................... ...................................................................................................................................... 2. Ưu điểm: ...................................................................................................................................... ...................................................................................................................................... 3. Khuyết điểm: ...................................................................................................................................... ...................................................................................................................................... 4. Đề nghị cho bảo vệ hay không? ...................................................................................................................................... 5. Đánh giá loại: ...................................................................................................................................... 6. Điểm:……………….(Bằng chữ:............................................................................ ) Tp. Hồ Chí Minh, ngày tháng 07 năm 2016 Giáo viên phản biệniv LỜI CẢM ƠN Trong thời gian làm đề tài đồ án tốt nghiệp, nhóm em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cô, gia đình và bạn bè. Nhóm em xin chân thành gửi lời cảm ơn đến: Ban giám hiệu trường Đại học Sư Phạm Kỹ Thuật TP.Hồ Chí Minh đã tạo môi trường làm việc, học tập và nghiên cứu cũng như mọi điều kiện tốt nhất cho nhóm em có thể hoàn thành đề tài đồ án tốt nghiệp này. Khoa ĐiệnĐiện tử, Khoa đào tạo Chất Lượng Cao đã cung cấp cho nhóm em những giáo trình, tài liệu tham khảo, cơ sở vật chất cũng như các thiết bị hỗ trợ liên quan. Thầy hướng dẫn Th.S Nguyễn Ngô Lâm cùng các thầy cô bộ môn đã tận tình hướng dẫn, giúp đỡ nhóm em trong suốt quá trình đã qua. Mặc dù đã cố gắng trong quá trình tìm hiểu nhưng do kiến thức còn hạn chế nên không tránh khỏi những thiếu sót. Nhóm em rất mong nhận được sự góp ý, nhận xét của thầy cô và các bạn để đồ án có thể hoàn thiện hơn và phát triển hơn nữa. Một lần nữa nhóm em xin chân thành cảm ơn Tp. Hồ Chí Minh, ngày 16 tháng 07 năm 2016 Nhóm sinh viên thực hiện Nguyễn Văn Cường Hà Mạnh Duyv LỜI TÓM TẮT Trong xã hội hiện nay với trình độ khoa học kỹ thuật ngày càng tăng cao đi kèm với đó là áp dụng các ứng dụng khoa học vào đời sống thực tiễn cũng như những nhu cầu thiết yếu của con người về việc ăn uống, đi lại, nhà ở, y tế, giáo dục,…Một trong số đó là vấn đề về nhà ở, nhằm đáp ứng nhu cầu sử dụng công nghệ vào cuộc sống nhóm quyết định chọn cho mình đề tài “Giám sát và điều khiển mô hình nhà thông minh”. Để thực hiện đề tài “Giám sát và điều khiển mô hình nhà thông minh” nhóm thực hiện trên sự kết hợp giữa Board Intel Galileo và Board Arduino UNO thế hệ thứ 3 cùng với đó là các linh kiện thiết bị điện, điện tử nhằm mô phỏng một cách tổng quát nhất về các hệ thống, thiết bị trong và ngoài thực tiễn. Sau quá trình tìm hiểu về các tính năng tương tác cũng như tính khả thi của đề tài cùng với sự hỗ trợ tận tình của giáo viên hướng dẫn thầy Nguyễn Ngô Lâm nhóm đã hoàn thành mô hình cũng như điều khiển được các thiết bị với các chức năng có thể áp dụng vào thực tiễn trong cuộc sống như: Bảo mật bằng hệ thống khóa số thông qua ma trận phím. Điều khiển thiết bị bằng giọng nói, Internet (website, app...). Hệ thống giàn phơi đồ thông minh có hai chế độ ManualAuto. Cảnh báo về rò rỉ khí gas thông qua website cũng như khả năng thông báo về thời tiết.vi MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .................................................................................. i PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ................................................. ii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ................................................... iii LỜI CẢM ƠN .................................................................................................................. iv LỜI TÓM TẮT ................................................................................................................. v MỤC LỤC….................................................................................................................... vi DANH MỤC CHỮ VIẾT TẮT ....................................................................................... ix DANH MỤC CÁC BẢNG, BIỂU ĐỒ ............................................................................. x DANH MỤC CÁC HÌNH ẢNH ...................................................................................... xi Chương 1 TỔNG QUAN........................................................................................ 1 1.1. Giới thiệu tình hình nghiên cứu hiện nay............................................................ 1 1.2. Tính cấp thiết đề tài ............................................................................................. 2 1.3. Mục tiêu nghiên cứu ............................................................................................ 3 1.4. Nhiệm vụ nghiên cứu .......................................................................................... 3 1.5. Đối tượng và phạm vi nghiên cứu ....................................................................... 3 1.6. Phương pháp nghiên cứu ..................................................................................... 4 1.7. Bố cục đồ án ........................................................................................................ 4 Chương 2 CƠ SỞ LÝ THUYẾT ............................................................................. 5 2.1. Giới thiệu về Bộ xử lý Intel Quart Soc X1000 và Board Intel Galileo ............... 5 2.1.1. Giới thiệu chung về Intel Galileo ..................................................................... 5 2.1.2. Giới thiệu về bộ xử lý Intel Quark SoC x1000 ................................................ 5 2.1.3. Các đặc điểm kỹ thuật của bộ xử lý Intel Quark SoC x1000 ........................... 6 2.1.4. Kiến trúc của Board Intel Galileo................................................................... 10 2.1.5. Các tính năng hỗ trợ cho Arduino Shield ....................................................... 10 2.1.6. Chi tiết về các tính năng hỗ trợ Intel Architecture ......................................... 12 2.1.7. Các ứng dụng của Board Intel Galileo ........................................................... 15 2.1.8. Phương thức lập trình ..................................................................................... 16vii 2.2. Giới thiệu về LCD 20x4 .................................................................................... 17 2.2.1. Sơ đồ chân và chức năng của các chân LCD 20x4 ........................................ 17 2.2.2. Mã lệnh của LCD ........................................................................................... 19 2.2.3. Các mã lệnh cơ bản ........................................................................................ 19 2.3. Cảm biến mưa.................................................................................................... 21 2.4. Cảm biến Gas..................................................................................................... 23 2.5. Khóa Solenoid Lock .......................................................................................... 24 2.6. KeyPad............................................................................................................... 25 2.7. Động cơ bước .................................................................................................... 27 2.8. A4988 Step Driver ............................................................................................. 29 2.9. Quạt ................................................................................................................... 31 2.10. Khối thiết bị công suất..................................................................................... 31 2.11. Module Bluetooth HC05 ................................................................................. 32 2.12. Module I2C ...................................................................................................... 33 2.13. Arduino ............................................................................................................ 35 Chương 3 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ........................................ 38 3.1. Sơ đồ khối hệ thống........................................................................................... 38 3.1.1. Yêu cầu của hệ thống ..................................................................................... 38 3.1.2. Sơ đồ khối và chức năng mỗi khối ................................................................. 39 3.1.3. Hoạt động của hệ thống.................................................................................. 40 3.2. Thiết kế, tính toán hệ thống............................................................................... 40 3.2.1. Khối nguồn: .................................................................................................... 40 3.2.2. Khối cảm biến................................................................................................. 41 3.2.3. Khối hiển thị LCD .......................................................................................... 42 3.2.4. Khối xử lý trung tâm ...................................................................................... 43 3.2.5. Lưu đồ thuật toán ............................................................................................ 45 3.3. Công cụ phần mềm............................................................................................ 47 3.4. Ứng dụng phân tích giọng nói ........................................................................... 55 3.4.1. Giới thiệu về MIT App Inventor .................................................................... 55viii 3.4.2. Giao diện chính của MIT App Inventor ......................................................... 56 3.5. Chương trình phân tích giọng nói trên điện thoại ............................................. 59 Chương 4 KẾT QUẢ THỰC HIỆN.................................................................... 61 4.1. Kết quả phần cứng............................................................................................. 61 4.2. Kết quả phần mềm............................................................................................. 62 Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .......................................... 68 5.1. Kết luận.............................................................................................................. 68 5.2. Hướng phát triển................................................................................................ 68 TÀI LIỆU THAM KHẢO ............................................................................................... 69 PHỤ LỤC……................................................................................................................ 70ix DANH MỤC CHỮ VIẾT TẮT IoT Internet of Things Internet với vạn vật PWM Pulse Width Modulation Điều chế độ rộng xung SPI Serial Peripheral Bus Giao diện Ngoại vi Nối tiếp UART Universal Asynchronous Receiver – Transmitter Truyền dữ liệu nối tiếp bất đồng bộ IDE Integrated Development Environment USB Universal Serial Bus Chuẩn kết nối tuần tự SD Secure Digital Thẻ nhớ I2C InterIntegrated Circuit Vi mạch tích hợp truyền thông nối tiếp ADC AnalogtoDigital Converter Chuyển đổi tín hiệu tương tự sang tín hiệu số LCD Liquid crystal display Màn hình tinh thể lỏng GPIO General Purpose Input Output Các cổng vàora LED Light Emitting Diode Điốt phát quang CPU Central Processing Unit Bộ xử lý trung tâm IDLE Integrated DeveLopment Environment Môi trường phát triển tích hợp PIC Programmable Intelligent Computer Thiết bị thông minh có thể lập trình CNTT Công Nghệ Thông Tin SMM System Management Mode Quản lý hệ thống OS Operating System Hệ điều hành IO InputOutput Ngõ vàongõ rax DANH MỤC CÁC BẢNG, BIỂU ĐỒ Bảng 2.1: Thông Số Bộ Nhớ của Intel Quark x1000………………………………7 Bảng 2.2: Thông Số dòng điện………………………………………….…………14 Bảng 2.3: Chức năng chân của LCD 20x4…………………………….……..……18 Bảng 2.4: Mã lệnh của LCD……………………………………………….………19 Bảng 2.5: Thông số kỹ thuật động cơ bước………………………………….…….28 Bảng 2.6: Thiết bị đi kèm với động cơ bước………………………………………29 Bảng 2.7: Bảng lựa chọn chế độ điều khiển cho driver A4988……………………31 Bảng 2.8: Thông số kỹ thuật của board Arduino UNO R3……………….………..37 Bảng 3.1: Dòng điện và điện áp hoạt động của các thiết bị……………………..…40 Bảng 4.1: Số lần thành thành công trong việc nhận dạng giọng nói………………67xi DANH MỤC CÁC HÌNH ẢNH Hình 2.1: Bo mạch Intel Galileo Gen1 ....................................................................... 5 Hình 2.2: Intel Quarlk Core Block Diagram .............................................................. 7 Hình 2.3: Cấu Trúc Pipeline của Intel Quark x1000.................................................. 9 Hình 2.4: Kiến trúc bo mạch Intel Galileo ............................................................... 10 Hình 2.5: Cấu trúc của Board Intel Galileo Gen 1 ................................................... 11 Hình 2.6: Vị trí các Jumper tren Galileo .................................................................. 15 Hình 2.7: LCD20x4 .................................................................................................. 17 Hình 2.8: Dạng sóng điều khiển LCD...................................................................... 21 Hình 2.9: Cảm biến mưa........................................................................................... 21 Hình 2.10: Sơ đồ mạch cảm biến mưa ..................................................................... 22 Hình 2.11: Cảm biến Gas MQ2................................................................................ 23 Hình 2.12: Khóa Solenoid lock ................................................................................ 24 Hình 2.13: Khóa Solenoid lock ................................................................................ 25 Hình 2.14: Ma trận phím 4x4 ................................................................................... 25 Hình 2.15: Sơ đồ chân .............................................................................................. 26 Hình 2.16a: Động cơ bước ....................................................................................... 27 Hình 2.16b: Driver A4988 ........................................................................................ 27 Hình 2.17: Sơ đồ nguyên lý A4988 Step Driver ...................................................... 30 Hình 2.18: Quạt ........................................................................................................ 31 Hình 2.19: Module Relay 2 kênh ............................................................................. 31 Hình 2.20: Module Bluetooth HC05 ........................................................................ 32 Hình 2.21: Module I2C giao tiếp LCD..................................................................... 33 Hình 2.22: Quá trình giao tiếp giữa 2 thiết bị sử dụng bus I2C ............................... 34 Hình 2.23: Arduino UNO R3 ................................................................................... 35 Hình 3.1: Sơ đồ khối hệ thống 1............................................................................... 38 Hình 3.2: Sơ đồ khối hệ thống 2............................................................................... 39 Hình 3.3: Sơ đồ kết nối cảm biến Gas và Board ...................................................... 42 Hình 3.4: Sơ kết nối LCD và module I2C ............................................................... 43xii Hình 3.5: Khối xử lý trung tâm 1 ............................................................................. 44 Hình 3.6: Khối xử lý trung tâm 2 ............................................................................. 44 Hình 3.7: Lưu đồ giải thuật trên Board Intel glileo gen1 ......................................... 45 Hình 3.8: Lưu đồ giải thuật trên Arduino ................................................................. 46 Hình 3.9: Tìm gói hỡ trợ cho board điều khiển........................................................ 47 Hình 3.10: Chọn gói hỗ trợ cho board Intel Galileo................................................. 48 Hình 3.11: Cấu trúc một project trong IDE.............................................................. 49 Hình 3.12: Ví dụ một chương trình trên IDE. .......................................................... 49 Hình 3.13: Cài đặt driver cho Intel Galileo. ............................................................. 50 Hình 3.14: Địa chỉ IP của Kit ................................................................................... 51 Hình 3.15: Dòng lệnh khởi động.............................................................................. 51 Hình 3.16: Trang địa chỉ truy cập Board.................................................................. 52 Hình 3.17: Màn hình thiết lập................................................................................... 52 Hình 3.18: Màn hình điều khiển............................................................................... 55 Hình 3.19: Sau khi đăng nhập vào MIT App Inventor ............................................. 56 Hình 3.20: Tạo một project mới. .............................................................................. 57 Hình 3.21: Thiết kế giao diện cho App. ................................................................... 58 Hình 3.22: Thiết kế chức năng cho các khối. ........................................................... 58 Hình 3.23: Lưu đồ chương trình trên Arduino. ........................................................ 59 Hình 3.24: Giao diện màn hình ................................................................................ 60 Hình 3.25: Phần chương trình của ứng dụng. ....................................................... 60 Hình 3.26: Phần chương trình của ứng dụng ( tiếp theo). ........................................ 61 Hình 4.1: Mô hình nhà thông minh .......................................................................... 62 Hình 4.2: Mô hình nhà thông minh sau khi hoàn thành ........................................... 63 Hình 4.3: Màn hình giao diện Web .......................................................................... 63 Hình 4.4: Màn hình ứng dụng khi ta nói “mở hệ thống” ......................................... 64 Hình 4.5: Hệ thống sáng 2 đèn 1 và và 2.................................................................. 64 Hình 4.6: Màn hình ứng dụng khi ta nói “đóng hệ thống”....................................... 65 Hình 4.7: Hệ thống tắt 2 đèn .................................................................................... 65xiii Hình 4.8a: Khi nói “mở thiết bị một” Hình 4.8b: Hệ thống sáng đèn 1 ............. 66 Hình 4.9a: Khi nói “đóng thiết bị một” Hình 4.9b: Hệ thống tắt đèn 1 ............... 66Đồ Án Tốt Nghiệp 1 Chương 1 TỔNG QUAN 1.1. Giới thiệu tình hình nghiên cứu hiện nay Trong khoảng vài năm trở lại đây, chắc hẳn chúng ta đã không ít lần nghe thoáng qua về khái niệm Internet of Things, hay bắt gặp tin tức về các sản phẩm được quảng cáo là phục vụ cho nhu cầu “Smart Home” (Nhà thông minh). Vậy Internet of Things hay Smart Home là gì, nó có những gì và hoạt động ra sao? Nói về Internet of Things thì không như nhiều xu hướng công nghệ trước đây, hiện vẫn chưa có một định nghĩa được chấp nhận rộng rãi nào cho khái niệm Internet of Things.Vậy Internet of things (IoT) được hiểu là khi mỗi đồ vật, con người được cung cấp một định danh riêng của mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người hay người với máy tính. Như vậy có thể tạm hiểu, Internet of Things là khi tất cả mọi thứ đều được kết nối với nhau qua mạng Internet, người dùng (chủ) có thể kiểm soát mọi đồ vật của mình qua mạng với các thiết bị thông minh, chẳng hạn như smartphone, PC, laptop, Tablet hay các thiết bị điện tử cầm tay. Vậy Internet of things (IoT ) được hiểu là khi mỗi đồ vật, con người được cung cấp một định danh riêng của mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà không cần đến sự tương tác trực tiếp giữa người với người hay người với máy tính. Internet of things (IoT) đã phát triển từ sự hội tụ của công nghệ không dây và công nghệ vi cơ điện tử và Internet. Internet of Things còn có khái niệm khác là vạn vật với Internet và Smart Home chính là một dạng thu nhỏ của Internet of Things, nơi mà đồ dùng trong nhà từ phòng ngủ, phòng khách đến toilet đều gắn các bộ điều khiển điện tử có thể kết nối với Internet và điện thoại di động, cho phép chủ nhân điều khiển vật dụng từ xa hoặc lập trình cho thiết bị ở nhà hoạt động theo từng “kịch bản” được thiết lập sẵn. Như vậy Nhà thông minh (Smart Home) là kiểu nhà được lắp đặt các thiết bị điện, điện tử, các cảm biến có tác dụng tự động hoá hoàn toàn hoặc bán tự động, thay thế con người trong thực hiện một hoặc một số thao tác quản lý, điều khiển. Vậy, điều gì đã làm nên khác biệt cho Smart Home nói riêng và Internet of Things nói chung. Chỉ một từ thôi, đó là cảm biến. Mọi thiết bị trong hệ thống Internet of Things sẽ được tích hợp các cảm biến để phát hiện các thay đổi về nhiệt độ, độ ẩm, ánh sáng, âm thanh, chuyển động và vị trí địa lí. Các bộ điều khiển như máy tính hoặc các thiết bị điều khiển chuyên biệt, và các thiết bị chấp hành như công tắc, động cơ, van có điều khiển. Chúng sẽ là con mắt và đôi bàn tay điện tử của người sử dụng, với khả năng phátĐồ Án Tốt Nghiệp 2 hiện và ghi lại mọi thay đổi của thế giới xung quanh. Mỗi cảm biến sau đó sẽ được kết hợp với các mạch tích hợp (các bảng mạch dạng này sẽ chỉ cho phép các lập trình viên thay đổi một vài thông số, do đã được thiết kế chuyên biệt cho một mục đích cụ thể). Cộng thêm bộ vi xử lí, các module giao tiếp, ta có một cấu phần điều khiển hoàn chỉnh, sẵn sàng để kết nối các vật dụng với hệ thống Internet of Things. Các chức năng chính thường sử dụng trong nhà thông minh: 1. Điều khiển chiếu sáng 2. Điều khiển mành, rèm, cửa cổng 3. Hệ thống an ninh, bảo mật, báo động, báo cháy 4. Điều khiển điều hòa, máy lạnh 5. Hệ thống Âm thanh 6. Camera, chuông 7. Hệ Thống Bảo vệ nguồn điện 8. Các tiện ích và ứng dụng khác 1.2. Tính cấp thiết đề tài Nhà thông minh, xu hướng của nhà ở hiện đại Vài năm trở lại đây, khi thế giới đang dần tiến vào kỷ nguyên Internet of Things (IoT), kết nối mọi vật qua Internet, nhà thông minh trở thành một xu hướng công nghệ tất yếu, là tiêu chuẩn của nhà ở hiện đại. Tại triển lãm lớn nhất thế giới về công nghệ điện tử và tiêu dùng diễn ra đầu tháng 12015 tại Las Vegas (Mỹ), nhà thông minh là một trong những chủ đề nóng nhất. Còn theo hãng tư vấn công nghệ hàng đầu Gartner, công nghệ IoT sẽ bùng nổ kể từ năm 2015 với sự tham gia của hầu hết các hãng công nghệ tên tuổi. Việt Nam không nằm ngoài xu hướng này. Trong năm 2014, chủ đầu tư của hàng loạt khu đô thị lớn như Phú Mỹ Hưng, Royal City, Times City, Ecopark, Vinhomes Central Park… đã đưa nhà thông minh tới các căn hộ, mang lại sự tiện nghi và đẳng cấp cho nhà ở tại đây. Và chủ đề năm học 2016 Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh là “ứng dụng CNTT và công nghệ cao trong kỷ nguyên IoT để xây dựng trường thành Đại học thông minh” cho thấy tầm quan trọng của IoT hiện nay. Nhóm chọn đề tài Smart Home vì thấy để tài đang được quan tâm rất nhiều hiện nay, mang tính thực tế nhiều, có thể áp dụng vào thực tế.Đồ Án Tốt Nghiệp 3 1.3. Mục tiêu nghiên cứu Mục tiêu của đề tài là hiểu được nguyên lý hoạt động của các loại linh kiện, thiết bị điện điện tử được sử dụng trong đề tài từ đó thiết kế một hệ thống quản lý các thiết bị điện tử trong nhà qua mạng Internet với giao diện web hoặc qua điện thoại SmartPhone hệ thống này có thể điều khiển thiết bị điện, đọc dữ liệu từ cảm biến, mở cửa bằng mật khẩu. Điều khiển thiết bị điện từ xa với bất cứ thiết bị nào có kết nối Internet. Thiết kế hệ thống giá phơi đồ thông minh. 1.4. Nhiệm vụ nghiên cứu Tìm hiểu các công nghệ đang được sử dụng cho đề tài hiện nay. Nguyên lý, thông số kỹ thuật các linh kiện điện, điện tử, cơ khí. Sử dụng, thiết lập được firmware và software về Board Intel Galileo. Xây dựng hệ thống phơi đồ thông minh dùng cảm biến mưa phát hiện mưa. Hệ thống mở cửa bằng mật khẩu và khóa Solenoid Lock. Điều khiển thiết bị điện từ xa với bất cứ thiết bị nào có kết nối Internet kết hợp theo dõi và kiểm soát trạng thái ngôi nhà trên một Website. Điều khiển thiết bị bằng giọng nói. 1.5. Đối tượng và phạm vi nghiên cứu Dữ liệu cho trước: Các tài liệu tham khảo, tài liệu chuyên môn. Board Intel Galileo Gen1, Board Arduino Cảm biến mưa, cảm biến gas Module bluetooth Ma trận phím, khóa Solenoid Lock Động cơ bước, Driver động cơ bước Nội dung cần hoàn thành Phần lí thuyết Tính cấp thiết của đề tài Giới thiệu về Board Intel Galileo Gen1 và các thiết bị điện điện tử. Thiết kế web giám sát hệ thống Lập lưu đồ thuật toán và viết chương trình điều khiển. Sản phẩm: Hệ thống hoạt động chính xác và ổn định đạt yêu cầu kĩ thuật và có tính ứng dụng vào thực tế. Mục đích: Hoàn thành được một ứng dụng cụ thể từ Board Intel Galileo Gen 1. Cụ thể là : Mô hình hệ thống nhà thông minh Smart HomeĐồ Án Tốt Nghiệp 4 1.6. Phương pháp nghiên cứu Tìm hiểu các ứng dụng, các thiết bị thực tế hiện nay Tham khảo các tài liệu liên quan Tìm hiểu, nghiên cứu các thiết bị điện tử liên quan Viết chương trình, chạy thử, tìm nguyên nhân và khắc phục Thiết kế và xây dựng mô hình hệ thống nhà thông minh. 1.7. Bố cục đồ án Đồ án gồm 5 chương với các nội dung như sau Chương 1: TỔNG QUAN Giới thiệu sơ lược về tình hình nghiên cứu hiện nay cũng như tính cấp thiết của đề tài. Chương 2: CƠ SỞ LÝ THUYẾT Nêu các lý thuyết cần thiết để sử dụng trong đề tài. Chương 3: THIẾT KẾ HỆ THỐNG Trình bày sơ đồ hệ thống và giải thích hoạt động của hệ thống. Đưa ra các phương pháp lựa chọn phần cứng và xác định lựa chọn phù hợp với yêu cầu của đề tài. Tính toán đưa ra giải thuật, thuật toán phần mềm. Chương 4: KẾT QUẢ, NHẬN XÉT VÀ SO SÁNH Trình bày kết quả đã thực hiện về phần cứng và phần mềm, đưa ra nhận xét. Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Nêu các ưu điểm và nhược điểm của đề tài, hướng khắc phục và phạm vi sử dụng trong thực tế.Đồ Án Tốt Nghiệp 5 Chương 2 CƠ SỞ LÝ THUYẾT 2.1. Giới thiệu về Bộ xử lý Intel Quart Soc X1000 và Board Intel Galileo 2.1.1. Giới thiệu chung về Intel Galileo Board Intel Galileo Gen 1 được bán trên thị trường từ ngày 17102013 bởi Intel Corporation (Tập đoàn Intel) với giá bán 99 USD. Hiện tại Intel Galileo có 2 thế hệ là Intel Galileo Gen 1 và Intel Galileo Gen 2. Galileo là sản phẩm đầu tiên sử dụng chip Intel Quark X1000 SoC đầu tiên thuộc dòng Santa Clara được sản xuất dựa trên dây chuyền công nghệ 14nm với mức độ tiêu thụ điện rất thấp. Phần lõi của của X1000 là vi xử lí 400MHz dựa trên nền tảng Intel Penti. Trong chương này chúng ta sẽ cùng đi tìm hiểu về cấu trúc cũng như những đặc điểm được tích hợp từ chip Intel Quark SoC X1000, sự hoạt động và cách thức làm việc của bo mạch Intel Galileo. Galileo có chiều dài 10.67cm và rộng 7.11cm với các cổng USB, jack UART, cổng Ethernet và jack nguồn mở rộng ra ngoài kích thước bo mạch. Hình 2.1: Bo mạch Intel Galileo Gen1 2.1.2. Giới thiệu về bộ xử lý Intel Quark SoC x1000 Công nghệ Intel® Quark được thiết kế cho những ứng dụng đặt tiêu chí tiết kiệm điện năng và yếu tố kích thước lên trên hiệu năng. Các sản phẩm xuất thân từ dòng bộ xử lý Intel Quark sẽ phát triển những giải pháp cách tân cho thị trường điện toán rộng khắp và khái niệm Internet of Things, từ ô tô đến ngành công nghiệp đến những thiết bị điện tử. Sản phẩm đầu tiên trong dòng mới này là Intel Quark SoC X1000. Các sản phẩm như Intel Quark SoC X1000 sẽ mang lại sự linh hoạt cho cấp độ tích hợp cao hơn, điệnĐồ Án Tốt Nghiệp 6 năng thấp hơn và tiết kiệm chi phí cho làn sóng mới của những thiết bị kết nối thông minh trong khi vẫn duy trì khả năng tương thích với bộ chỉ dẫn kiến trúc Intel®. 2.1.3. Các đặc điểm kỹ thuật của bộ xử lý Intel Quark SoC x1000 Các tín hiệu từ bộ vi xử lý 32bit ngoại đi vào các đơn vị bên trong qua các bus. Ở bên trong thì các bus và các đơn vị bộ nhớ cache liên kết với nhau qua lại qua 1 bus 32 bit. Dữ liệu được truyền từ bộ nhớ cache tới các đơn vị bus trên 1 bus dữ liệu 32 bit. Ngoài ra bộ nhớ cache sử dụng để nhận các toán hạng và các kiểu dữ liệu khác. Các câu lệnh trên bộ nhớ cache có thể truy nhập tới các đơn vị nạp trước câu lệnh, bao gồm một hàng đợi các câu lệnh 32bit chờ để thực thi. Các bộ nhớ cache chia sẻ hai bus dữ liệu 32bit với các đơn vị segment, số nguyên, và dấu chấm động. Hai bus này có thể được sử dụng cùng nhau như một bus 64bit. Khi một segment 64bit được chuyển từ bộ nhớ cache tới các đơn vị segment, 32 bit được truyền trực tiếp qua một bus dữ liệu và 32 bit khác được chuyển qua các đơn. Các Intel®Quark Core có bốn chế độ hoạt động: Mode địa chỉ thực, mode bảo vệ, mode ảo và mode quản lý hệ thống (SMM). Mode địa chỉ thực được yêu cầu chủ yếu để thiết lập Intel® Quark Core cho bảo vệ chế độ hoạt động. Mode bảo vệ cung cấp quyền truy cập vào các phân trang quản lý bộ nhớ và khả năng đặc quyền của các bộ vi xử lý. Trong Mode bảo vệ, phần mềm có thể thực hiện một nhiệm vụ chuyển đổi để tham gia vào chức năng chỉ định như một chức năng của Mode 8086 ảo. Mode quản lý hệ thống (SMM) cung cấp cho các nhà thiết kế hệ thống và phương tiện là phần mềm điều khiển cho các sản phẩm máy tính của chúng mà luôn luôn hoạt động minh bạch cho hệ điều hành (OS) và các ứng dụng phần mềm. SMM chỉ được sử dụng bởi phần mềm hệ thống, chứ không phải bởi các ứng dụng phần mềm hoặc mục đích chung hệ thống phần mềm.Đồ Án Tốt Nghiệp 7 Hình 2.2: Intel Quarlk Core Block Diagram Bảng 2.1: Thông Số Bộ Nhớ của Intel Quark x1000 HIỆU SUẤT Số lõi 1 Số luồng 1 Tần số cơ sở của bộ xử lý 400MHZ TDP 2,2W THÔNG SỐ BỘ NHỚ Dung lượng bộ nhớ tối đa 2GBĐồ Án Tốt Nghiệp 8 Các loại bộ nhớ DDR3 800 Số kênh bộ nhớ tối đa 1 Băng thông bộ nhớ tối đa 1.6GBs Phần mở rộng địa chỉ vật lý 32bit THÔNG SỐ GÓI Cấu hình CPU tối đa 1 TJUNCTION 110oC Phạm vi nhiệt độ vận hành 0oC 70oC Kích thước gói 15mm x 15mm Hỗ trợ socket FCBGA393 CÁC TÙY CHỌN MỞ RỘNG Hỗ trợ PCI PCI Express Phiên bản PCI Express 2.0 Cấu hình PCI Express x1 Số cổng PCI Express tối đa 2 Cấu trúc Pileline Không phải mọi câu lệnh đều liên kết đến tất cả các đơn vị bên trong. Khi một lệnh cần sự tham gia của một số đơn vị, mỗi đơn vị hoạt động song song với đơn vị khác trên các câu lệnh ở các giai đoạn thực thi khác nhau. Mặc dù mỗi lệnh được xử lý tuần tự, một số lệnh ở các giai đoạn được thực hiện khác nhau trong bộ xử lý tại bất kỳ thời gian cho trước nào. Điều này được gọi là pipelining. Câu lệnh nạp trước, câu lệnh giải mã, thực thi vi mã, toán hạng thập phân, các toán hạng floating point, tất cả các phân trang, quản lý bộ nhớ cache, và các toán hạng giao diện bus được thực hiện đồng thời. Hình dưới cho thấy nguyên tắc xử lý song song cho một lệnh đơn: Nạp câu lệnh, hai giai đoạn giải mã, thực hiện và thanh ghi writebackĐồ Án Tốt Nghiệp 9 Hình 2.3: Cấu Trúc Pipeline của Intel Quark x1000 Kết luận: Mỗi giai đoạn trong Pipeline này thực thi trong một chu kỳ clock. Bộ truyền IO Vận chuyển từ và IO địa điểm có một số hạn chế để đảm bảo tính toàn vẹn dữ liệu: • Lưu trữ IO đọc không bao giờ được lưu trữ. • Đọc lại đặt hàng IO lần đọc không bao giờ được tái đặt hàng trước của đệm để viết bộ nhớ. Điều này đảm bảo rằng các bộ vi xử lý đã hoàn thành việc cập nhật tất cả các bộ nhớ địa điểm trước khi đọc trạng thái từ một thiết bị. Các Intel®Quark Core không đệm đơn các bộ ghi IO; đọc không được thực hiện cho đến khi các bộ ghi IO được hoàn thành.Đồ Án Tốt Nghiệp 10 2.1.4. Kiến trúc của Board Intel Galileo Hình 2.4: Kiến trúc bo mạch Intel Galileo 2.1.5. Các tính năng hỗ trợ cho Arduino Shield Galileo tương thích với các Arduino UNO shield và được thiết kể để làm việc với các shield chạy ở cả 2 mức điện áp 3.3V và 5V. Giống như Arduino UNO phiên bản 3, Galileo có: 14 chân Digital IO, trong đó 6 chân có thể phát xung PWM. Chúng có thể được sử dụng ở cả 2 chế độ INPUT và OUTPUT, sử dụng được với các hàm pinMode(), digitalWrite(), và digitalRead() như trên các mạch Arduino.Đồ Án Tốt Nghiệp 11 Hình 2.5: Cấu trúc của Board Intel Galileo Gen 1 Các chân giao tiếp có thể hoạt động ở 2 mức điện áp 3.3V và 5V. Dòng cấp tối đa là 10mA, dòng đỉnh là 25 mA. 6 chân Analog từ A0 đến A5 giao tiếp qua chip AD7298 (chuyển đổi AnalogtoDigital). SPI: chạy ở xung mặc định là 4MHz để làm việc với các Arduino shield, có thể lập trình lên đến mức 25MHz. UART (cổng Serial): là một cổng UART với tốc độ có thể lập trình được, 2 chân giao tiếp là 0 (RX) và chân 1 (TX). VIN: chân cấp nguồn cho Galileo khi nó sử dụng nguồn ngoài (trái ngược với điện áp chuẩn 5V từ chân cắm nguồn). Ta có thể cấp nguồn cho Galileo từ chân này, hoặc, nếu cấp nguồn từ chân cắm nguồn phía trước, ta có thể lấy ra điện áp chuẩn 5V từ chân này. Chân 5V output: chân này cấp nguồn ra 5V từ nguồn ngoài cấp cho Galileo hay từ nguồn USB. Dòng ra tối đa ở chân này cho các shield là 800mA. Chân 3.3V output: cấp điện áp ra 3.3V được điều chế từ các mạch điều áp trên Galileo. Dòng ra tối đa ở chân này cho các shield là 800mA. GND: chân nối cực âm của nguồn điện.Đồ Án Tốt Nghiệp 12 IOREF: cho phép các shield điều chỉnh hoạt động phù hợp với điện áp hoạt động trên Galileo. Chân IOREF được kiểm soát bởi các jumper trên mạch để lựa chọn 2 mức điện áp làm việc của shield là 3.3V và 5V. RESET: chânnút nhấn RESET.Kéo chân này xuống GND để reset chương trình đang chạy trên Galileo. Thường chân này được dùng để reset các shield. AREF: không được sử dụng trên Galileo. Trên Arduino, chân này cung cấp một điện áp tham chiếu ngoài cho các chân đọc tín hiệu analog. 2.1.6. Chi tiết về các tính năng hỗ trợ Intel Architecture Các bộ xử lí của Intel và các tương thích IO của SoC đi kèm cung cấp hầu như tất cả các tính năng cần thiết cho cộng đồng người dùng cũng như tầng lớp học sinh sinh viên. Điều này cũng cực kì hữu ích cho các nhà nghiên cứu chuyên nghiệp những người luôn có những khát khao từ các môi trường lập trình giá rẻ và hiệu quả đến những thiết kế vi xử lí Intel Atom hay những thết kế dựa trên Intel Coreprocessor như Galileo: Bộ xử lí 400Mhz Intel Pentium 32bit tương thích với kiến trúc tập lệnh ISA (ISAcompatible). 16KB bộ nhớ đệm L1. 512KB bộ nhớ SRAM ondie embedded. Dễ dàng lập trình: đơn luồng, đơn nhân, xung nhịp cố định (single thread, single core, constant speed). Mạch thời gian thực tích hợp (RTC intergrated) với 1 pin nút áo 3V. Cổng kết nối 10100 Ethernet. Cổng PCI Express minicard với chuẩn PICe 2.0. Có thể hoạt động với card miniPCIe halfsized với tùy chọn chuyển đổi. Cung cấp cổng USB 2.0 Host tương đương ở cổng miniPCIe. Cổng kết nối USB 2.0 Host. Hỗ trợ tới 128 thiết bị USB đầu cuối. Cổng kết nối USB Client dùng để lập trình. Ngoài chức năng là một cổng lập trình, nó cũng có thể đóng vai trò như một USB Host chuẩn 2.0. 10 chân header chuẩn JTAG hỗ trợ việc dò lỗi hệ thống. Nút Reboot dùng để reboot vi xử lí trung tâm. Nút reset dùng để reset chương trình đang chạy hay bất kì shield nào đang kết nối.Đồ Án Tốt Nghiệp 13 Tùy chọn lưu trữ 8MB Legacy SPI Flash dùng để lưu trữ firmware hay bootloader cũng như chương trình Arduino. Khoảng 256KB đến 512KB được tách ra từ 8MB này để lưu trữ chương trình Arduino cuối cùng được tải lên. Các chương trình Arduino được tải lên từ máy tính được xử lí một cách tự động, bạn không cần phải thao tác gì trừ khi có một sự thay đổi nào đó được thêm vào firmware. 512KB bộ nhớ SRAM nhúng được mở mặc định bởi firmware. 256MB DRAM được mở mặc định bởi firmware. Tùy chọn thẻ nhớ ngoài SD có thể cung cấp lên tới 32GB dung lượng lưu trữ. Lưu trữ USB có thể làm việc với bất kì ổ đĩa USB 2.0 nào tương thích. 11KB EEPROM có thể được lập trình qua thư viện EEPROM. Giao tiếp Galieo có thể dễ dàng kết nối với máy tính, mạch Arduino hay các vi điều khiển khác bằng nhiều phương thức: Galieo cung cấp giao tiếp UART TTL Serial ở cả 2 mức 3.3V và 5V ở 2 chân 0 (RX) và 1 (TX). Thêm vào đó, 1 cổng UART khác hỗ trợ RS232 có thể được sử dụng qua jack cắm 3.5mm. Cổng USB Client cho phép giao tiếp Serial (CDCACM) qua USB. Nó cung cấp cho bạn kết nối Serial đến Serial Monitor (một chức năng trong IDE) hoặc các ứng dụng khác trong máy tính của bạn. Bạn cũng có thể tải chương trình Arduino lên Galieo qua cổng này. Cổng USB Host cho phép Galieo kết nối tới các thiết bị khác như chuột, bàn phím, điện thoại thông minh,... với vai trò là một USB Host. Galieo là mạch Arduino đầu tiên cung cấp một cổng mini PCI Express (mPCIe). Cổng này cho phép kết nối các module mPCIe fullsize lẫn halfsized (với adapter) cũng như cung cấp thêm một cổng USB Host khác. Một module chuẩn mPCIe có thể kết nối và cung cấp cho Galieonhiều ứng dụng như WiFi, Bluetooth hay kết nối mạng di động. Bước đầu, cổng mPCIe sẽ hỗ trợ thư viện WiFi. Cổng kết nối Ethernet RJ45 cho phép Galieo kết nối đến các mạng có dây. Giao tiếp Ethernet được hỗ trợ đầy đủ trên Galieo, do đó bạn không cần phải sử dụng giao tiếp SPI như trên Arduino shield. Đầu đọc thẻ nhớ microSD tích hợp trên mạch có thể được truy cập thông qua thư viện SD. Giao tiếp giữa Galieo và thẻ nhớ microSD được hỗ trợ bởi một trình điều khiển SD tích hợp, do đó bạn không cần phải sử dụng giao tiếp SPI như trên mạch Arduino.Đồ Án Tốt Nghiệp 14 Giao tiếp SD có thể chạy với tần số đến 50MHz phụ thuộc vào Class của thẻ nhớ. Thẻ nhớ có 2 loại Class thông dụng là Class 4 và Class 10. Phần mềm như trên Arduino bao gồm thư viện Wire giúp bạn dễ dàng sử dụng bus I2CTW. Thuộc tính các chân hoạt động ở chế độ OUTPUT Các chân được đặt chế độ OUTPUT bằng hàm pinMode() sẽ có trạng thái trở kháng thấp. TrênGalieo, khi một chân ở chế độ OUTPUT, các hàm chức năng sẽ được cung cấp qua phần mở rộng I2Cbased Cypress IO. Các chân Digital từ 0 đến 13 và các chân Analog từ A0 đến A5 có thể được thiết đặt chế độ OUTPUT trên Galieo. Các phần mở rộng của những chân IO, khi được thiết lập chế độ OUTPUT, có thể hoạt động với cường độ dòng điện đến 10mA và có thể đạt đỉnh 25mA. Trên tất cả các chân OUTPUT, dòng giới hạn là 80mA và dòng đỉnh là 200mA. Bảng sau sẽ cung cấp cho bạn cái nhìn tổng quan về các chân trên Galieo. Bảng 2.2: Thông Số dòng điện Dòng hoạt động(mA) Dòng điện đỉnh(mA) Mỗi chân IO 10 25 Các chân Digital 3,5,9,10,12,13 40 100 Các chân Digital 0, 1, 2, 4, 6, 7, 8, 11 và các chân Analog A0 ,A1, A2, A3, A4, A5 cộng lại 40 100 Các chân Digital từ 0 đến 13 và Analog từ A0 đến A5 cộng lại 80 200 Thiết đặt các Jumper trên Galileo Có 3 jumper trên Gailieo được sử dụng cho nhiều mục đích khác nhau. IOREF jumper Để Galileo có thể chạy được các shield ở cả 2 mức 3.3V và 5V, điện áp ở các chân giao tiếp bên ngoài được điều chỉnh bởi các jumper. Khi jumper nối vào mức 5V, GalileoĐồ Án Tốt Nghiệp 15 có thể hoạt động với các shield chạy ở 5V và điện áp ở chân IOREF khi đó sẽ là 5V. Khi jumper nối vào mức 3.3V, Galileo có thể hoạt động với các shield chạy ở 3.3V và điện áp ở chân IOREF khi đó sẽ là 3.3V. I2C Address Jumper Để ngăn chặn sự trùng lặp địa chỉ giữa các thiết bị I2C Slave của các IO Expander trên Galileohay EEPROM với các thiết bị I2C Slave ngoại vi, jumper J2 được sử dụng để thiết đặt nhiều địa chỉ I2C khác nhau cho các thiết bị trên Galileo. Khi J2 kết nối với chân số 1 (đánh dấu bởi hình tam giác màu trắng), 7bit địa chỉ của IO Expander là 0100001 và 7bit địa chỉ của EEPROM là 1010001. Đổi vị trí của jumpper, 7bit địa chỉ của IO Expander sẽ là 0100000 còn của EEPROM là1010000. VIN jumper Trên Galileo, chân VIN được sử dụng để cấp nguồn ngoài 5V, nó cũng được nối với jack nguồn cũng như có thể cấp nguồn cho các shield hay thiết bị khác. Nếu bạn muốn cấp nguồn cho mạch ở mức điện áp lớn hơn 5V cho các shield lấy nguồn từ chân VIN, bạn phải tháo VIN jumper ra để ngắt kết nối chân VIN với nguồn 5V trên Galileo. Hình 2.6: Vị trí các Jumper tren Galileo 2.1.7. Các ứng dụng của Board Intel Galileo Intel Galileo là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Intel Galileo là môi trường phát triển ứng dụng cực kỳ dễ sự dụng, với ngôn ngữ lậpĐồ Án Tốt Nghiệp 16 trình có thế học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Bộ bo mạch Intel Galileo được dùng để phục vụ cho những nhà giáo dục, những nhà sáng chế nghiệp dư, và những người đam mê khoa học, công nghệ. Với bo mạch Intel Galileo trên tay bạn có thể thỏa sức nghiên cứu và khám phá với những dự án công nghệ của bản thân. Bạn có thể kết nối và điều khiển các thiết bị điện tử trong nhà, Smart Phone, Tablets,...và xây dựng những ứng dụng thông minh. 2.1.8. Phương thức lập trình Galieo có thể được lập trình với IDE của Arduino. Khi đã sẵn sàng để tải chương trình lên, hãy kết nối máy tính với Galieo qua cổng USB Client (gần cổng Ethernet nhất) trên mạch, trong IDE hãy chọn Boards là Intel Galieo. Khi Galieo khởi động, sẽ có 2 kịch bản xảy ra: Nếu đã có 1 chương trình trong bộ nhớ, nó sẽ được khởi chạy. Trường hợp này chỉ xảy ra khi đã gắn thẻ microSD vào Galileo. Nếu không có chương trình nào trong bộ nhớ, Galieo sẽ đợi lệnh tải chương trình lên từ IDE. Nếu không có thẻ microSD, chương trình sẽ bị mất khi Galileo khởi động lại (reboot). Khi một chương trình đang chạy trên Galieo, có thể tải một chương trình khác lên mà không cần nhấn nút reset trên mạch: chương trình đang chạy sẽ bị ngừng, Galileo sẽ đợi đến khi chương trình mới được tải lên và khởi chạy nó. Bằng việc bấm nút reset trên mạch, sẽ khởi động lại chương trình đang chạy, đồng thời cũng reset bất cứ shield nào đang cắm vào Galieo. Tổng kết Từ những tìm hiểu về bộ vi xử lý Intel Quark Soc x1000 và bo mạch Intel Galileo ta thấy được sự thích hợp của nó với các yêu cầu của đồ án vì tính đa dụng của các chân, tính kết nối với các thiết bị ngoại vi. Chính vì vậy nhóm đã chọn bo mạch Intel Galileo này để làm bộ điều khiển trung tâm cho mô hình sẽ thực hiện trong đồ án này.Đồ Án Tốt Nghiệp 17 2.2. Giới thiệu về LCD 20x4 Ngày nay, thiết bị hiển thị LCD (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của VĐK (vi điều khiển). LCD có rất nhiều ưu điểm so với các dạng hiển thị khác đó là khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ. 2.2.1. Sơ đồ chân và chức năng của các chân LCD 20x4 Hình ảnh thực tế Sơ đồ chân LCD Hình 2.7: LCD20x4 LCD có nhiều loại và số chân của chúng cũng khác nhau nhưng có 2 loại phổ biến là loại 14 chân và loại 16 chân, sự khác nhau là các chân nguồn cung cấp, còn các chân điều khiển thì không thay đổi, khi sử dụng loại LCD nào thì phải tra datasheet (tài liệu thông số kỹ thuật của hãng sản xuất) của chúng để biết rõ các chân. Màn hình LCD 20x4 xanh dương sử dụng driver HD44780, có khả năng hiển thị 4 dòng với mỗi dòng 20 ký tự, màn hình có độ bền cao, rất phổ biến. Thông số kỹ thuật: Điện áp hoạt động: 5V Kích thước 98 x 60 x 13.5 mm Chữ trắng, nền xanh dương Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard. Tên các chân được ghi ở mặt sau của màn hình LCD hỗ trợ việc kết nối, đi dây. Có đèn led nền, có thể dùng biến trở hoặc PWM điều chỉnh độ sáng. LCD 20X4 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 KA D7 D6 D5 D4 D3 D2 D1 D0 E RW RS V0 VDD VSSĐồ Án Tốt Nghiệp 18 Chức năng các chân LCD: Bảng 2.3: Chức năng chân của LCD 20x4 Chân số Ký hiệu Chức năng 1 Vୱୱ GND (0V) 2 Vୡୡ Nguồn cung cấp (+5V) 3 Vୣୣ Điện áp để điều chỉnh độ tương phản 4 RS Lựa chọn: 0(mức thấp) : Chọn thanh ghi lệnh 1(mức cao ) : Chọn thanh ghi dữ liệu 5 RW Lựa chọn thanh ghi đọc viết dữ liệu 0 : Thanh ghi viết 1 : Thanh ghi đọc 6 E Tín hiệu cho phép 7 DB1 Data Bus Line 0 (LSB) 8 DB2 Data Bus Line 1 9 DB3 Data Bus Line 2 10 DB4 Data Bus Line 3 11 DB5 Data Bus Line 4 12 DB6 Data Bus Line 5 13 DB7 Data Bus Line 6 14 DB8 Data Bus Line 7(MSB) 15 A Cực dương Led nền từ 0V đến 5V 16 K Cực âm Led nền 0V Trong 14 chân của LCD được chia ra làm 3 dạng tín hiệu như sau: Các chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là Vdd nối với nguồn +5V. Chân thứ 3 dùng để chỉnh contrast thường nối với biến trở. Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi. Chân RW dùng để điều khiển quá trình đọc và ghi. Chân E là chân cho phép dạng xung chốt. Các chân dữ liệu D7÷D0: Chân số 7 đến chân số 14 là 8 chân dùng để trao đổi dữ liệu giữa thiết bị điều khiển và LCD.Đồ Án Tốt Nghiệp 19 2.2.2. Mã lệnh của LCD Bảng 2.4: Mã lệnh của LCD 2.2.3. Các mã lệnh cơ bản Lệnh xoá màn hình “Clear Display”: khi thực hiện lệnh này thì LCD sẽ bị xoá và bộ đếm địa chỉ được xoá về 0. Lệnh di chuyển con trỏ về đầu màn hình “Cursor Home”: khi thực hiện lệnh này thì bộ đếm địa chỉ được xoá về 0, phần hiển thị trở về vị trí gốc đã bị dịch trước đó. Nội dung bộ nhớ RAM hiển thị DDRAM không bị thay đổi. Lệnh thiết lập lối vào “Entry mode set”: lệnh này dùng để thiết lập lối vào cho các kí tự hiển thị, bit ID = 1 thì con trỏ tự động tăng lên 1 mỗi khi có 1 byte dữ liệu ghi vào bộ hiển thị, khi ID = 0 thì con trỏ sẽ không tăng: dữ liệu mới sẽ ghi đè lên dữ liệu cũ. Bit S = 1 thì cho phép dịch chuyển dữ liệu mỗi khi nhận 1 byte hiển thị.Đồ Án Tốt Nghiệp 20 Lệnh điều khiển con trỏ hiển thị “Display Control”: lệnh này dùng để điều khiển con trỏ (cho hiển thị thì bit D = 1, tắt hiển thị thì bit D = 0), tắt mở con trỏ (mở con trỏ thì bit C = 1, tắt con trỏ thì bit C = 0), và nhấp nháy con trỏ (cho nhấp nháy thì bit B = 1, tắt thì bit B = 0). Lệnh di chuyển con trỏ “Cursor Display Shift”: lệnh này dùng để điều khiển di chuyển con trỏ hiển thị dịch chuyển (SC = 1 cho phép dịch chuyển, SC = 0 thì không cho phép), hướng dịch chuyển (RL = 1 thì dịch phải, RL = 0 thì dịch trái). Nội dung bộ nhớ DDRAM vẫn không đổi. Lệnh thiết chức năng “Function set”: lệnh này dùng để thiết lập chức năng giao tiếp, bit DL (data length) = 1 thì cho phép giao tiếp 8 đường data D7 ÷ D0, nếu bằng 0 thì cho phép giao tiếp 4 đường D7 ÷ D4. Bit N (number of line) = 1 thì cho phép hiển thị 2 hàng, nếu bằng 0 thì cho phép hiển thị 1 hàng. Bit F (font) = 1 thì cho phép hiển thị với ma trận 5×10, nếu bằng 0 thì cho phép hiển thị với ma trận 5×7. Lệnh thiết lập địa chỉ cho bộ nhớ RAM phát kí tự “Set CGRAM Addr”: lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM phát kí tự. Lệnh thiết lập địa chỉ cho bộ nhớ RAM hiển thị “Set DDRAM Addr”: lệnh này dùng để thiết lập địa chỉ cho bộ nhớ RAM lưu trữ các dữ liệu hiển thị. Dạng sóng các tín hiệu khi thực hiện ghi dữ liệu vào LCD như hình 2.8. Nhìn vào dạng sóng ta có thể thấy được trình tự điều khiển như sau: Điều khiển tín hiệu RS. Điều khiển tín hiệu RW xuống mức thấp. Điều khiển tín hiệu E lên mức cao để cho phép. Xuất dữ liệu D7÷D0. Điều khiển tín hiệu E về mức thấp. Điều khiển tín hiệu RW lên mức cao trở lại. LCD 20x4 có 4 hàng mỗi hàng 20 kí tự: • Hàng 1: kí tự tận cùng bên trái có địa chỉ là 0x80, kí tự kế là 0x81, kí tự cuối cùng là 0x93. • Hàng 2: kí tự tận cùng bên trái có địa chỉ là 0xC0, kí tự kế là 0xC1, kí tự cuối cùng là 0XD3. • Hàng 3: kí tự tận cùng bên trái có địa chỉ là 0x94, kí tự kế là 0x95, kí tự cuối cùng là 0xA7. • Hàng 4: kí tự tận cùng bên trái có địa chỉ là 0xD4, kí tự kế là 0xD5, kí tự cuối cùng là 0XE7.Đồ Án Tốt Nghiệp 21 Hình 2.8: Dạng sóng điều khiển LCD. 2.3. Cảm biến mưa Chúng ta có thể dễ dàng nhận biết mưa bằng mắt thường hoặc cảm nhận ở da. Và trong mạch điện tử củng vậy, các hệ thống điện tử phát hiện mưa cũng chia ra làm hai loại: thứ nhất là dùng camera để nhận biết và loại thứ hai là dùng cảm biến (tương tự da của con người). Ở đây, nhóm em dung cảm biến mưa như hình 2.9 Hình 2.9: Cảm biến mưa Mạch cảm biến mưa gồm 2 bộ phận: + Bộ phận cảm biến mưa được gắn ngoài trời + Bộ phận điều chỉnh độ nhạy cần được che chắn Mạch cảm biến mưa hoạt động bằng cách so sánh hiệu điện thế của mạch cảm biến nằm ngoài trời với giá trị định trước (giá trị này thay đổi được thông qua 1 biến trở màu xanh) từ đó phát ra tín hiệu đóng ngắt rơ le qua chân D0. Khi cảm biến khô ráo (trời không mưa), chân D0 của module cảm biến sẽ được giữ ở mức cao (5V12V). Khi có nước trên bề mặt cảm biến (trời mưa), đèn LED màu đỏ sẽ sáng lên, chân D0 được kéo xuống thấp (0V).Đồ Án Tốt Nghiệp 22 Hình 2.10: Sơ đồ mạch cảm biến mưa Mô tả: Raindrops và bộ điều khiển riêng biệt, dễ dàng nối dây. Tấm cảm biến mưa lớn, thuận lợi để phát hiện mưa. Board có lỗ định vị dễ dàng lắp đặt LM393 khoảng so sánh điện áp rộng Thông số kĩ thuật: Kích thước tấm cảm biến mưa: 54 x 40mm Kích thước board PCB: 30 x 16mm Điện áp: 5V Đầu ra: đầu ra kỹ thuật số (0 và 1) và đầu ra tương tự điện áp A0 ; Lỗ cố định bu lông dễ dàng để cài đặt Có đèn báo hiệu nguồn và đầu ra Đầu ra TTL, tín hiệu đầu ra TTL có giá trị thấp. Có thể điều khiển trực tiếp relay, buzzer, a small fan... Độ nhạy có thể được điều chỉnh thông qua chiết áp LED sáng lên khi không có mưa đầu ra cao, có mưa, đầu ra thấp LED tắt. Các chân kết nối:Đồ Án Tốt Nghiệp 23 Chân Chức năng Vcc Nguồn (5V) GND 0V D0 Đầu ra tín hiệu TTL chuyển đổi A0 Đầu ra tín hiệu Analog 2.4. Cảm biến Gas MQ2 là cảm biến khí, dùng để phát hiện các khí có thể gây cháy. Nó được cấu tạo từ chất bán dẫn SnO2. Chất này có độ nhạy cảm thấp với khôn
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO - ĐỒ ÁN TỐT NGHIỆP Đề tài: GIÁM SÁT VÀ ĐIỀU KHIỂN MƠ HÌNH NHÀ THƠNG MINH SVTH : MSSV : SVTH : MSSV : Khoá : Ngành : GVHD: NGUYỄN VĂN CƯỜNG 12141280 HÀ MẠNH DUY 12141432 2012-2016 ĐIỆN TỬ TRUYỀN THÔNG ThS NGUYỄN NGÔ LÂM Tp Hồ Chí Minh, tháng 07 năm 2016 Page i CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -Tp Hồ Chí Minh, ngày 16 tháng 03 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Văn Cường Hà Mạnh Duy MSSV:12141280 MSSV:12141432 Giảng viên hướng dẫn: Th.S Nguyễn Ngô Lâm ĐT:0908.434.763 Ngày nhận đề tài:23/02/2016 Ngày nộp đề tài:16/7/2016 Tên đề tài : Giám sát điều khiển mơ hình nhà thơng minh Các số liệu ban đầu: - Board Intel Galileo Gen1 - Board Arduino - Các cảm biến Gas, cảm biến mưa - Các thiết bị điện tử: Các loại khóa cửa tự động, ma trận phím 4x4, Động bước, Module Blutooth Nội dung thực đề tài: - Tìm hiểu Board Intel Galileo - Tìm hiểu thông số kỹ thuật, nguyên lý hoạt động thiết bị sử dụng hệ thống - Làm mơ hình thực tế từ mica gỗ - Thiết kế Web Server giám sát thông số hệ thống điều khiển hoạt động hệ thống qua mạng Internet, điều khiển thiết bị giọng nói - Nhận xét, kết luận Sản phẩm: Mơ hình hệ thống nhà thông minh TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN i CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Nguyễn Văn Cường MSSV: 12141280 Hà Mạnh Duy MSSV: 12141432 Ngành: Công nghệ kỹ thuật điện tử - truyền thông Tên đề tài: Điều khiển giám sát mơ hình nhà thơng minh Họ tên Giáo viên hướng dẫn: Th.S Nguyễn Ngô Lâm NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng 07 năm 2016 Giáo viên hướng dẫn ii CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Nguyễn Văn Cường MSSV: 12141280 Hà Mạnh Duy MSSV: 12141432 Ngành: Công nghệ kỹ thuật điện tử - truyền thông Tên đề tài: Điều khiển giám sát mơ hình nhà thơng minh Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng 07 năm 2016 Giáo viên phản biện iii LỜI CẢM ƠN Trong thời gian làm đề tài đồ án tốt nghiệp, nhóm em nhận nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình thầy cơ, gia đình bạn bè Nhóm em xin chân thành gửi lời cảm ơn đến: Ban giám hiệu trường Đại học Sư Phạm Kỹ Thuật TP.Hồ Chí Minh tạo mơi trường làm việc, học tập nghiên cứu điều kiện tốt cho nhóm em hồn thành đề tài đồ án tốt nghiệp Khoa Điện-Điện tử, Khoa đào tạo Chất Lượng Cao cung cấp cho nhóm em giáo trình, tài liệu tham khảo, sở vật chất thiết bị hỗ trợ liên quan Thầy hướng dẫn Th.S Nguyễn Ngô Lâm thầy mơn tận tình hướng dẫn, giúp đỡ nhóm em suốt q trình qua Mặc dù cố gắng trình tìm hiểu kiến thức cịn hạn chế nên khơng tránh khỏi thiếu sót Nhóm em mong nhận góp ý, nhận xét thầy bạn để đồ án hồn thiện phát triển Một lần nhóm em xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày 16 tháng 07 năm 2016 Nhóm sinh viên thực Nguyễn Văn Cường Hà Mạnh Duy iv LỜI TÓM TẮT Trong xã hội với trình độ khoa học kỹ thuật ngày tăng cao kèm với áp dụng ứng dụng khoa học vào đời sống thực tiễn nhu cầu thiết yếu người việc ăn uống, lại, nhà ở, y tế, giáo dục,…Một số vấn đề nhà ở, nhằm đáp ứng nhu cầu sử dụng cơng nghệ vào sống nhóm định chọn cho đề tài “Giám sát điều khiển mơ hình nhà thông minh” Để thực đề tài “Giám sát điều khiển mơ hình nhà thơng minh” nhóm thực kết hợp Board Intel Galileo Board Arduino UNO hệ thứ với linh kiện thiết bị điện, điện tử nhằm mô cách tổng quát hệ thống, thiết bị thực tiễn Sau trình tìm hiểu tính tương tác tính khả thi đề tài với hỗ trợ tận tình giáo viên hướng dẫn thầy Nguyễn Ngơ Lâm nhóm hồn thành mơ điều khiển thiết bị với chức áp dụng vào thực tiễn sống như: - Bảo mật hệ thống khóa số thơng qua ma trận phím - Điều khiển thiết bị giọng nói, Internet (website, app ) - Hệ thống giàn phơi đồ thơng minh có hai chế độ Manual/Auto - Cảnh báo rị rỉ khí gas thơng qua website khả thông báo thời tiết v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv LỜI TÓM TẮT v MỤC LỤC… vi DANH MỤC CHỮ VIẾT TẮT ix DANH MỤC CÁC BẢNG, BIỂU ĐỒ x DANH MỤC CÁC HÌNH ẢNH xi Chương TỔNG QUAN 1.1 Giới thiệu tình hình nghiên cứu 1.2 Tính cấp thiết đề tài 1.3 Mục tiêu nghiên cứu 1.4 Nhiệm vụ nghiên cứu 1.5 Đối tượng phạm vi nghiên cứu 1.6 Phương pháp nghiên cứu 1.7 Bố cục đồ án Chương CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Bộ xử lý Intel Quart Soc X1000 Board Intel Galileo 2.1.1 Giới thiệu chung Intel Galileo 2.1.2 Giới thiệu xử lý Intel Quark SoC x1000 2.1.3 Các đặc điểm kỹ thuật xử lý Intel Quark SoC x1000 2.1.4 Kiến trúc Board Intel Galileo 10 2.1.5 Các tính hỗ trợ cho Arduino Shield 10 2.1.6 Chi tiết tính hỗ trợ Intel Architecture 12 2.1.7 Các ứng dụng Board Intel Galileo 15 2.1.8 Phương thức lập trình 16 vi 2.2 Giới thiệu LCD 20x4 17 2.2.1 Sơ đồ chân chức chân LCD 20x4 17 2.2.2 Mã lệnh LCD 19 2.2.3 Các mã lệnh 19 2.3 Cảm biến mưa 21 2.4 Cảm biến Gas 23 2.5 Khóa Solenoid Lock 24 2.6 KeyPad 25 2.7 Động bước 27 2.8 A4988 Step Driver 29 2.9 Quạt 31 2.10 Khối thiết bị công suất 31 2.11 Module Bluetooth HC05 32 2.12 Module I2C 33 2.13 Arduino 35 Chương THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 38 3.1 Sơ đồ khối hệ thống 38 3.1.1 Yêu cầu hệ thống 38 3.1.2 Sơ đồ khối chức khối 39 3.1.3 Hoạt động hệ thống 40 3.2 Thiết kế, tính tốn hệ thống 40 3.2.1 Khối nguồn: 40 3.2.2 Khối cảm biến 41 3.2.3 Khối hiển thị LCD 42 3.2.4 Khối xử lý trung tâm 43 3.2.5 Lưu đồ thuật toán 45 3.3 Công cụ phần mềm 47 3.4 Ứng dụng phân tích giọng nói 55 3.4.1 Giới thiệu MIT App Inventor 55 vii 3.4.2 Giao diện MIT App Inventor 56 3.5 Chương trình phân tích giọng nói điện thoại 59 Chương KẾT QUẢ THỰC HIỆN 61 4.1 Kết phần cứng 61 4.2 Kết phần mềm 62 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68 5.1 Kết luận 68 5.2 Hướng phát triển 68 TÀI LIỆU THAM KHẢO 69 PHỤ LỤC…… 70 viii DANH MỤC CHỮ VIẾT TẮT IoT PWM Internet of Things Pulse Width Modulation Internet với vạn vật Điều chế độ rộng xung SPI Serial Peripheral Bus UART Universal Asynchronous Receiver – Transmitter Giao diện Ngoại vi Nối tiếp Truyền liệu nối tiếp bất đồng IDE USB SD Integrated Development Environment Universal Serial Bus Secure Digital Chuẩn kết nối Thẻ nhớ I2C Inter-Integrated Circuit ADC Analog-to-Digital Converter Vi mạch tích hợp truyền thơng nối tiếp Chuyển đổi tín hiệu tương tự sang tín hiệu số LCD GPIO Liquid crystal display General Purpose Input Output Màn hình tinh thể lỏng Các cổng vào/ra LED CPU Light Emitting Diode Central Processing Unit Điốt phát quang Bộ xử lý trung tâm IDLE Integrated DeveLopment Environment PIC Programmable Intelligent Computer CNTT SMM OS I/O System Management Mode Operating System Input/Output Mơi trường phát triển tích hợp Thiết bị thơng minh lập trình Cơng Nghệ Thơng Tin Quản lý hệ thống Hệ điều hành Ngõ vào/ngõ ix Đồ Án Tốt Nghiệp Bảng 4.1 Số lần thành thành cơng việc nhận dạng giọng nói STT Câu nói Số lần thành cơng mơi trường khơng nhiễu Số lần thành cơng mơi trường có nhiễu Mở hệ thống 18/20 12/20 Đóng hệ thống 18/20 11/20 Mở thiết bị 17/20 13/20 Đóng thiết bị 18/20 12/20 Mở thiết bị hai 11/20 8/20 Đóng thiết bị hai 12/20 8/20 Ở ta khơng thiết phải nói “Mở hệ thống” mà thay vào nói số câu tương tự “Bật hệ thống”, “ Bật thiết bị” Tương tự câu nói khác ta tùy chỉnh theo ý cho dể nhớ, dể điều khiển Vì đặc thù cách phát âm vùng miền khác nên có nhiều câu chữ phát âm chưa chuẩn dẫn đến sai lệch nhiều Cụ thể bảng 4.1 trên, câu nói “Mở thiết bị hai” “ Đóng thiết bị hai” số lần thành công môi trường không nhiễu thấp: 11 20 lần thử Lý nói “Mở thiết bị hai” hay “Đóng thiết bị hai” hệ thống nhận “Mở thiết bị hay”, “Đóng thiết bị hay” Và để khắc phục điều nhóm sử dụng câu nói “Mở thiết bị ba” “Đóng thiết bị ba” với số lần thành công cao (18 lần thành công 20 lần thử) để thực bật/tắt đèn số 67 Đồ Án Tốt Nghiệp Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Sau hoàn thành đề tài giúp cho nhóm nắm thêm nhiều kiến thức bổ ích như: +Về mặt lý thuyết: - Board Intel Galileo Board mới, việc tìm hiểu làm việc với Board thành cơng lớn nhóm Tổng quan khái niệm nhà thông minh Internet Of Things Tìm hiểu dịng Intel Quark Soc x1000 Hiểu nguyên lý hoạt động thiết bị liên quan Xây dựng hệ thống hoàn chỉnh với chức +Về mặt thực tế: - Thiết kế thi cơng hệ thống mơ hình nhà thơng minh Cảm biến gas phát rò rỉ Gas hiển thị Web Server Mở/ Khóa cửa mật Cảm biến mưa phát trời mưa mô hình giàn phơi đồ tự động Điều khiển thiết bị Web Server điều khiển giọng nói thơng qua Smart Phone - Thời gian đáp ứng nhanh Chi phí thấp Điều khiển xác vị trí giàn phơi (kéo ra/kéo vào) Giao diện Web đơn giản, thân thiện, dể sử dụng Ưu điểm: Bên cạnh kiến thức cịn hạn hẹp nên khơng tránh khỏi số hạn chế như: - Khó khăn việc truy cập vào board muốn kết nối vào Website Hệ thống lắp ráp chưa nhỏ gọn Việc điểu khiển thiết bị mức độ đơn giản đóng tắt 5.2 Hướng phát triển Mặc dù để tài mang tên “Giám sát điều khiển mơ hình nhà thông minh” dừng lại số ứng dụng, kỷ nguyên IOT nên có nhiều hướng để phát triển Ta kết hợp thêm Camera để quan sát, hay làm Gara, hệ thống an ninh bảo mật Sử dụng cảm biến vân tay, hay thẻ từ RFID cho ứng dụng khóa cửa,… Xây dựng Website với tốc độ tương tác nhanh hơn, mơ hình nhà thơng minh với nhiều ứng dụng Hoặc xa thiết kế giao diện mơ hình nhà dạng 3D sử dụng thiết bị cầm tay 68 Đồ Án Tốt Nghiệp TÀI LIỆU THAM KHẢO Tiếng Việt [1] http://vi.wikipedia.org/wiki [2] http://maker.intel.com/vi [3] Trần Thu Hà (2013), “Giáo trình Điện tử bản”, Đại học Quốc gia Tp Hồ Chính Minh, Tp HCM, Việt Nam [4] http://codientu.org/threads/1492/ [5] http://www.arduino.cc/en/ArduinoCertigied/IntelGalileo [6] Nguyễn Đình Phú (2014), “Vi điều khiển PIC”, Đại học Sư phạm kỹ thuật Hồ Chí Minh, Tp HCM, Việt Nam [7] Trương Thị Bích Ngà (2012), “Điện tử bản”, Đại học Sư phạm kỹ thuật Hồ Chí Minh, TPHCM, Việt Nam [8] Nguyễn Tường Thành (2016), “Thiết kế xây dựng hệ thống đèn đường thông minh”, Đồ án tốt nghiệp khóa 2011 – 2015 Tiếng Anh [9] http://www.intel.com/content/www/us/en/embedded/products/galileo/galileo-g1datasheet.html [10] http://www.intel.com/content/www/us/en/embedded/products/galileo/galileooverview.html [11] Michael Margolis (7/2014), “Arduino CookBook”, O'Reilly Media [12] Matt Richardson,”Getting started with Intel Galileo”, The Magazine for Makes 2014 69 Đồ Án Tốt Nghiệp PHỤ LỤC int x; int vitri=0; #define mua #define tang #define mode #define giam #define ena 13 #define ste 12 #define dir 11 void setup() { pinMode(ena,OUTPUT); pinMode(ste,OUTPUT); // Step pin pinMode(dir,OUTPUT); // Dir - pin pinMode(tang,INPUT); pinMode(giam,INPUT); pinMode(mode,INPUT); pinMode(mua, INPUT); digitalWrite(ena,LOW); // Set Enable low } void loop() { int value = digitalRead(mua); int a_m = digitalRead(mode); if(a_m == HIGH) //CHE DO AUTO { if(value == HIGH)//ko mua { if(vitri != 10) { digitalWrite(ena,LOW); // Đặt Enable trạng thái LOW - CHO PHEP CHAY digitalWrite(dir,HIGH); // Đặt Dir trạng thái HIGH - QUAY THUAN for(x = 0; x < 200; x++) // Cho chay vong { 70 Đồ Án Tốt Nghiệp digitalWrite(ste,HIGH); // Output high delay(1); // chờ digitalWrite(ste,LOW); // Output low delay(1); // chờ } vitri++; } else { digitalWrite(ena,HIGH); //DUNG DONG CO } } else { if(vitri != 0) { digitalWrite(ena,LOW); // Đặt Enable trạng thái LOW - CHO PHEP CHAY digitalWrite(dir,LOW); // Đặt Dir trạng thái LOW - QUAY NGUOC for(x = 0; x < 200; x++) // Cho chay vong { digitalWrite(ste,HIGH); // Output high delay(1); // chờ digitalWrite(ste,LOW); // Output low delay(1); // chờ } vitri ; } else { digitalWrite(ena,HIGH); //DUNG DONG CO } } } else //CHE DO MANUAL { if(digitalRead(tang) == HIGH) //nut tang duoc nhan - quay vong { 71 Đồ Án Tốt Nghiệp digitalWrite(ena,LOW); // Đặt Enable trạng thái LOW - CHO PHEP CHAY digitalWrite(dir,HIGH); // Đặt Dir trạng thái HIGH - QUAY THUAN for(x = 0; x < 200; x++) // Cho chay vong { digitalWrite(ste,HIGH); // Output high delay(1); // chờ digitalWrite(ste,LOW); // Output low delay(1); // chờ } vitri++; } else { digitalWrite(ena,HIGH); //DUNG DONG CO } if(digitalRead(giam) == HIGH) //nut giam duoc nhan - quay vao vong { digitalWrite(ena,LOW); // Đặt Enable trạng thái LOW - CHO PHEP CHAY digitalWrite(dir,LOW); // Đặt Dir trạng thái HIGH - QUAY THUAN for(x = 0; x < 200; x++) // Cho chay vong { digitalWrite(ste,HIGH); // Output high delay(1); // chờ digitalWrite(ste,LOW); // Output low delay(1); // chờ } vitri ; } else { digitalWrite(ena,HIGH); //DUNG DONG CO } } } 72 Đồ Án Tốt Nghiệp CODE ARDUINO #include #include #include char* password = "1234"; int position = 0; const byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; LiquidCrystal_I2C lcd(0x27,20,4); byte rowPins[ROWS] = { 8, 7, 6, }; byte colPins[COLS] = { 5, 4, 3, }; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); int redPin = 12; String voice; int led1 = 10; int led2 = 11; void allon() { digitalWrite(led1, LOW); digitalWrite(led2, LOW); } void alloff() { digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); } void setup() { Serial.begin(9600); 73 Đồ Án Tốt Nghiệp pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); pinMode(redPin, OUTPUT); setLocked(true); lcd.init(); //Khởi động hình lcd.backlight(); //Bật đèn lcd.setCursor(0,0); //Đưa trỏ tới hàng 0, cột lcd.print(" SMART HOME "); lcd.setCursor(2,1); //Đưa trỏ tới hàng 1, cột lcd.print("T.Thai Cua:"); lcd.setCursor(0,2); //Đưa trỏ tới hàng 2, cột lcd.print("Den 1:"); lcd.setCursor(0,3); //Đưa trỏ tới hàng 3, cột lcd.print("Den 2:"); lcd.setCursor(10,2); //Đưa trỏ tới hàng 2, cột lcd.print(" Tat "); lcd.setCursor(10,3); //Đưa trỏ tới hàng 3, cột lcd.print(" Tat "); } void loop() { while (Serial.available()) { delay(10); char c = Serial.read(); if (c == '#') {break;} voice += c; } if (voice.length() > 0) { Serial.println(voice); if(voice == "Open system" || voice =="enable system") { allon(); 74 Đồ Án Tốt Nghiệp lcd.setCursor(15,2); //Đưa trỏ tới hàng 2, cột lcd.print("Mo "); lcd.setCursor(15,3); //Đưa trỏ tới hàng 3, cột lcd.print("Mo "); } else if(voice == "closed system" || voice =="shut down the system") { alloff(); lcd.setCursor(15,2); //Đưa trỏ tới hàng 2, cột lcd.print("Tat"); lcd.setCursor(15,3); //Đưa trỏ tới hàng 3, cột lcd.print("Tat"); } else if(voice == "Open device 1" || voice == "enable device 1" || voice == "turn on the device 1") { digitalWrite(led1, LOW); lcd.setCursor(15,2); //Đưa trỏ tới hàng 2, cột lcd.print("Mo "); } else if(voice == "close device 1" ||voice == "turn off the device 1") { digitalWrite(led1, HIGH); lcd.setCursor(15,2); //Đưa trỏ tới hàng 2, cột lcd.print("Tat"); } else if(voice == "closing device 3" ||voice == "turn off the device 3") { digitalWrite(led2, HIGH); lcd.setCursor(15,3); //Đưa trỏ tới hàng 2, cột lcd.print("Tat");}// tat den else if(voice == "Open device 3" || voice == "enable device 3" || voice == "turn on the device 3") { digitalWrite(led2, LOW); lcd.setCursor(15,3); //Đưa trỏ tới hàng 2, cột 75 Đồ Án Tốt Nghiệp lcd.print("Mo "); }// bat den voice=""; } char key = keypad.getKey(); if (key == '*' || key == '#') { position = 0; setLocked(true); lcd.setCursor(15,1); //Đưa trỏ tới hàng 2, cột lcd.print("Khoa"); } if (key == password[position]) { position ++; } if (position == 4) { setLocked(false); lcd.setCursor(15,1); //Đưa trỏ tới hàng 1, cột lcd.print("Mo "); } delay(100); } void setLocked(int locked) { if (locked) { digitalWrite(redPin, LOW); } else { digitalWrite(redPin, HIGH); } } 76 Đồ Án Tốt Nghiệp CODE XDK var mraa = require('mraa'); //require mraa console.log('MRAA Version: ' + mraa.getVersion()); //write the mraa version to the Intel XDK console //den var myOnboardLed = new mraa.Gpio(4); //LED hooked up to digital pin 13 (or built in pin on Intel Galileo Gen2 as well as Intel Edison) myOnboardLed.dir(mraa.DIR_OUT); //set the gpio direction to output var ledState = true; //Boolean to hold the state of Led //quat var myOnboardLed1 = new mraa.Gpio(3); //LED hooked up to digital pin 13 (or built in pin on Intel Galileo Gen2 as well as Intel Edison) myOnboardLed1.dir(mraa.DIR_OUT); //set the gpio direction to output var ledState1 = true; //Boolean to hold the state of Led //mua var myOnboardLed2 = new mraa.Gpio(2); //LED hooked up to digital pin 13 (or built in pin on Intel Galileo Gen2 as well as Intel Edison) myOnboardLed2.dir(mraa.DIR_OUT); //set the gpio direction to output var myDigitalPin6 = new mraa.Gpio(6); //setup digital read on Digital pin #6 (D6) myDigitalPin6.dir(mraa.DIR_IN); //set the gpio direction to input var myDigitalValue; //gas var myOnboardLed3 = new mraa.Gpio(1); //LED hooked up to digital pin 13 (or built in pin on Intel Galileo Gen2 as well as Intel Edison) myOnboardLed3.dir(mraa.DIR_OUT); //set the gpio direction to output var myDigitalPin5 = new mraa.Gpio(5); //setup digital read on Digital pin #6 (D6) myDigitalPin5.dir(mraa.DIR_IN); //set the gpio direction to input var myDigitalValue1; 77 Đồ Án Tốt Nghiệp var express = require('express'); var app = express(); var path = require('path'); var http = require('http').Server(app); var io = require('socket.io')(http); var connectedUsersArray = []; var userId; app.get('/', function(req, res) { //Join all arguments together and normalize the resulting path res.sendFile(path.join( dirname + '/client', 'index.html')); }); //Allow use of files in client folder app.use(express.static( dirname + '/client')); app.use('/client', express.static( dirname + '/client')); //Socket.io Event handlers io.on('connection', function(socket) { console.log("\n Add new User: u"+connectedUsersArray.length); if(connectedUsersArray.length > 0) { var element = connectedUsersArray[connectedUsersArray.length-1]; userId = 'u' + (parseInt(element.replace("u", ""))+1); } else { userId = "u0"; } console.log('a user connected: '+userId); io.emit('user connect', userId); connectedUsersArray.push(userId); console.log('Number of Users Connected ' + connectedUsersArray.length); console.log('User(s) Connected: ' + connectedUsersArray); io.emit('connected users', connectedUsersArray); 78 Đồ Án Tốt Nghiệp socket.on('user disconnect', function(msg) { console.log('remove: ' + msg); connectedUsersArray.splice(connectedUsersArray.lastIndexOf(msg), 1); io.emit('user disconnect', msg); }); socket.on('chat message', function(msg) { io.emit('chat message', msg); console.log('message: ' + msg.value); }); socket.on('toogle led', function(msg) { myOnboardLed.write(ledState?1:0); //if ledState is true then write a '1' (high) otherwise write a '0' (low) msg.value = ledState; io.emit('toogle led', msg); ledState = !ledState; //invert the ledState }); socket.on('toogle led 1', function(msg) { myOnboardLed1.write(ledState1?1:0); //if ledState is true then write a '1' (high) otherwise write a '0' (low) msg.value = ledState1; io.emit('toogle led 1', msg); ledState1 = !ledState1; //invert the ledState }); socket.on('toogle led 2', function(msg) { msg.value = myDigitalValue; io.emit('toogle led 2', msg); }); socket.on('toogle led 3', function(msg) { msg.value = myDigitalValue1; io.emit('toogle led 3', msg); 79 Đồ Án Tốt Nghiệp }); }); http.listen(2112, function(){ console.log('Web server Active listening on *:2112'); }); periodicActivity(); //call the periodicActivity function function periodicActivity() // { //mua myDigitalValue = myDigitalPin6.read(); //read the digital value of the pin myOnboardLed2.write(myDigitalValue?0:1); //setTimeout(periodicActivity,100); //call the indicated function after second (1000 milliseconds) //gas myDigitalValue1 = myDigitalPin5.read(); //read the digital value of the pin myOnboardLed3.write(myDigitalValue1?0:1); setTimeout(periodicActivity,100); //call the indicated function after second (1000 milliseconds) } 80