DÙNG GIỌNG NÓI VÀ TRỢ LÝ ẢO ĐỂ ĐIỀU KHIỂN VÀ GIÁM SÁT NHÀ THÔNG MINH Lĩnh vực: 10. Hệ Thống Nhúng, 21. Phần Mềm Hệ Thống NHÓM THỰC HIỆN 1. Nguyễn Trần Gia Bảo Lớp: 8.7 2. Trần Thanh Tâm Lớp: 9.6 NGƯỜI HƯỚNG DẪN Cô : Phạm Hồng Nguyên TP. Vũng Tàu, ngày 07 tháng 12 năm 2018 MỤC LỤC MỤC LỤC 2 DANH MỤC HÌNH ẢNH 4 DANH MỤC BẢNG 5 KÍ HIỆU, CHỮ VIẾT TẮT 5 LỜI CẢM ƠN 6 BO CỤC, NỘI DUNG TRÊN BÁO CÁO 7 1. Tóm tắt nội dung dự án 8 1.1. Giới thiệu 8 1.2. Tóm tắt nội dung dự án 8 1.3. Trình tự thực hiện, nghiên cứu 8 2. Tổng quan về vấn đề nghiên cứu 9 2.1. Thực trạng hiện nay 9 2.2. Các giải pháp đã có 10 2.3. Giải pháp được nhóm nghiên cứu đưa ra 11 3. Vấn đề nghiên cứu 12 3.1. Mục đích 12 3.2. Mục tiêu 12 3.3. Dự đoán những khó khăn trong quá trình nghiên cứu 12 3.4. Giả thuyết khoa học 13 4. Các thành phần nghiên cứu 14 4.1. Nghiên cứu về phần cứng 14 4.1.1. Nghiên cứu về Arduino 14 4.1.2. Nghiên cứu về máy tính nhúng Raspberry 17 4.2. Nghiên cứu về các giao thức truyền tin, các nền tảng hệ thống ứng dụng 19 4.2.1. Nghiên cứu về giao thức truyền tin HTTP 19 4.2.2. Nghiên cứu về MDNS (DNS Service Discovery) 24 4.2.3. Nghiên cứu về giao thức truyền tin MQTT 26 4.2.4. Nghiên cứu về nền tảng IFTTT 28 4.3. Tìm kiếm thông tin 29 5. Nội dung nghiên cứu 30 5.1. Mô hình hệ thống 30 5.2. Giới thiệu các thành phần 32 5.2.1. Mạch Arduino UNO R3 32 5.3.2. Màn hình LCD 1602 34 5.3.3. Cảm biến khói, khí ga (MQ2). 35 5.3.4. Cảm biến chuyển động HCSR501 36 5.3.5. Module mạch thu phát Wifi ESP8266 37 5.3.6. Cảm biến nhiệt độ độ ẩm DHT11 38 5.3.7. Breadboard 39 6. Hướng phát triển 40 7. Kết luận 41 7.1. Tính mới của đề tài nghiên cứu 41 7.2. Ý nghĩa thực tiễn 41 7.3. Ý nghĩa khoa học 41 7.4. Kết quả đạt được 41 7.5. Ứng dụng của dự án trong thực tế 42 7.6. Chi tiết cách sử dụng hệ thống 43 7.6.1. Sử dụng phương thức “Điều khiển – theo dõi trực tiếp thông qua Website” 43 7.6.2. Sử dụng phương thức “Điều khiển thông qua trợ lý ảo Siri trong hệ điều hành IOS – Google Assistant” 46 7.6.3. Sử dụng phương thức “Điều khiển thông qua ứng dụng trên điện thoại” 47 7.7. Các bước xây dựng hệ thống 49 7.7.1. Tìm hiểu thực tế 49 7.7.2. Tìm hiểu lý thuyết 50 7.7.3. Thảo luận, lựa chọn giải pháp 51 7.7.4. Lên thiết kế tổng thể 51 7.7.5. Lập trình thiết bị, gia công, thiết kế và chế tạo mô hình 52 7.7.6. Tinh chỉnh phần mềm và hệ thống 54 8. Mã nguồn hệ thống và tài liệu tham khảo 55 8.1. Mã nguồn hệ thống 55 8.2. Tài liệu tham khảo 55 9. Phụ lục 56 9.1. Nhật kí nghiên cứu khoa học 56 9.2. Chi phí xây dựng hệ thống 58 9.3. Chi phí xây dựng mô hình 59 DANH MỤC HÌNH ẢNH Hình 1: Hệ thống nhà thông minh 10 Hình 2: Mô hình đơn giản hệ thống 11 Hình 3: Board mạch Arduino UNO R3 14 Hình 4: Một bo mạch máy tính Raspberry 17 Hình 5: Sơ đồ truyền dữ liệu giao thức HTTP 19 Hình 6: Cấu trúc URLs 20 Hình 7: Theo dõi các gói tin MDNS trên phần mềm WireShark 24 Hình 8: Logo của giao thức MQTT 26 Hình 9: Sơ đồ hoạt động của giao thức MQTT 27 Hình 10: Logo của nền tảng IFTTT 28 Hình 11: Khẩu hiệu mà IFTTT muốn mang đến cho người dùng 28 Hình 12: Sơ đồ chi tiết hệ thống 30 Hình 13: Mạch Arduino UNO R3 32 Hình 14: Màn hình LCD 1602 34 Hình 15: Mạch driver chuyển giao tiếp LCD1602 qua I2C 34 Hình 16: Cảm biến MQ2 35 Hình 17: Cảm biến HCSR501 36 Hình 18: Bo mạch ESP8266 NodeMCU 37 Hình 19: Cảm biến nhiệt độ độ ẩm DHT11 38 Hình 20: Sơ đồ cấu tạo của breadboard 39 Hình 21: Giao diện chính bảng điều khiển 43 Hình 22: Thông báo được đẩy trên bảng điều khiển 44 Hình 23: Thông báo chặn trên bảng điều khiển 44 Hình 24: Thông báo hệ thống trên bảng điều khiển 45 Hình 25: Google Assistant 46 Hình 26: Siri Assistant 46 Hình 27: Giao diện sau khi khởi động phần mềm 47 Hình 28: Phím tắt ứng dụng trên Android 47 Hình 29: Khởi động trình nhận dạng giọng nói 48 Hình 30: Thu được kết quả giọng nói 48 Hình 31: Khảo sát ý kiến học sinh 49 Hình 32: Khảo sát ý kiến giáo viên 49 Hình 33: Khảo sát ý kiến người dân 49 Hình 34: Phân tích kết quả khảo sát 50 Hình 35: Tìm hiểu lý thuyết 50 Hình 36: Thảo luận, lựa chọn giải pháp 51 Hình 37: Lên thiết kế hệ thống 51 Hình 38: Lập trình thư viện 52 Hình 39: Thiết đặt máy chủ 52 Hình 40: Thiết đặt máy chủ 52 Hình 41: Lập trình hệ thống 52 Hình 42: Lập trình hệ thống nhúng 53 Hình 43: Lắp ráp hệ thống nhúng 53 Hình 44: Tinh chỉnh, sửa lỗi mã nguồn 54 Hình 45: Tinh chỉnh hệ thống nhúng 54 DANH MỤC BẢNG Bảng 1: Chi phí xây dựng hệ thống 58 Bảng 2: Chi phi xây dựng mô hình 59 KÍ HIỆU, CHỮ VIẾT TẮT GND Ground LED Light Emitting Diode LCD Liquid Crystal Display PWM… Pulse Width Modulation SPI… Serial Peripheral Interface IDE Integrated Development Environment IoT Internet of Things LỜI CẢM ƠN Trước hết, chúng em xin cảm ơn gia đình chúng em đã luôn ủng hộ chúng em trong suốt thời gian thực hiện dự án. Chúng em xin cảm ơn ban giám hiệu nhà trường và các thầy cô bộ môn, đặc biệt là cô Phạm Thị Hải Yến chủ nhiệm lớp 8.7; cô Hà Thị Sáu chủ nhiệm lớp 9.6 đã luôn tạo mọi điều kiện thuận lợi cho chúng em về vấn đề học tập trên lớp để chúng em có thể làm được sản phẩm như ngày hôm nay. Chúng em xin cảm ơn cô Phạm Hồng Nguyên đã luôn hướng dẫn, giúp đỡ, chỉ bảo chúng em trong suốt thời gian thực hiện dự án, cảm ơn cô Nguyễn Thị Thùy Dung đã giới thiệu và đưa chúng em đến cuộc thi này. Chúng em cũng xin cảm ơn anh Nguyễn Tiến Minh Hoàng đã dành thời gian để cho chúng em những lời nhận xét, những kinh nghiệm quý báu khi đi thi. Cảm ơn các bạn lớp 8.7, lớp 9.6 đã giúp đỡ mình trong các công việc ở trường trong thời gian chúng mình vắng mặt. Dự án “Dùng giọng nói và trợ lý ảo để điều khiển và giám sát nhà thông minh” đây là dự án đầu tiên của chúng em. Với dự án “Dùng giọng nói và trợ lý ảo để điều khiển và giám sát nhà thông minh” mà chúng em tham đã tham dự cuộc thi cấp thành phố trước. Chúng em đã nhận được rất nhiều những lời góp ý quý báu của các ban giám khảo, các quý thầy cô và đã có những cải tiến cho dự án này. Chúng em hi vọng với làn dự thi mà chúng em sắp dự thi cấp tỉnh tới đây, chúng em hi vọng sẽ nhận được những sự thông cảm, góp ý của các quý thầy cô cho sự thiếu sót của mình. TP. Vũng Tàu, ngày 07 tháng 12 năm 2018 Nhóm tác giả Nguyễn Trần Gia Bảo Trần Thanh Tâm BO CỤC, NỘI DUNG BÁO CÁO Phần 1: Tóm tắt nội dung dự án Phần 2: Tổng quan về vấn đề nghiên cứu Trình bày thực trạng hiện nay, những giải pháp đang có và đang được sử dụng cũng như những vấn đề đang được đặt ra. Phần 3: Vấn đề nghiên cứu Trình bày mục đích, mục tiêu hướng đến của nghiên cứu và quan trọng hơn là nhữn dự đoán của nhóm tác giả về các khó khăn trong quá trình thực hiện. Phần 4: Nội dung nghiên cứu Nội dung được nghiên cứu trong báo cáo. Phần 5: Kết quả nghiên cứu Phân tích và thảo luận quanh các số liệu được thu thập qua quá trình nghiên cứu. Phần 6: Kết luận Tổng kết của nhóm tác giả về đề tài, đồng thời trình bày quy trình xây dựng hệ thống. Phần 7: Mã nguồn hệ thống và tài liệu tham khảo Mã nguồn của hệ thống được đính kèm và tài liệu tham khảo để xây dựng dự án. Phần 8: Phụ lục Nhật kí nghiên cứu và bảng chi phí xây dựng dự án. 7 1. Tóm tắt nội dung dự án 1.1. Giới thiệu a. Họ và tên tác giả : NGUYỄN TRẦN GIA BẢO Lớp 8.7 TRẦN THANH TÂM Lớp 9.6 b. Đơn vị: Trường THCS Nguyễn An Ninh c. Tên dự án nghiên cứu: “Dùng giọng nói và trợ lý ảo để điều khiển và giám sát nhà thông minh” d. Lĩnh vực dự thi: “10. Hệ thống nhúng; 21. Phần mềm hệ thống” e. Thời gian thực hiện dự án: từ ngày 26082017 đến ngày 26082018 1.2. Tóm tắt nội dung dự án Dự án “Dùng giọng nói và trợ lý ảo để điều khiển và giám sát nhà thông minh” nhằm mục tiêu xây dựng một hệ thống nhà thông minh có khả năng điều khiển và theo dõi thông qua Internet, có khả năng điều khiển được bằng giọng nói (Tiếng Anh) sử dụng trợ lý ảo Siri có sẵn trên điện thoại hệ điều hành IOS; trợ lý ảo Google Assistant trên hệ điều hành Android hay điều khiển bằng giọng nói Tiếng Việt với phần mềm được viết cho hệ điều hành Android. Người dùng có thể theo dõi các trạng thái môi trường trong nhà mình như: Nhiệt độ, độ ẩm, nồng độ khí gas, bụi, cường độ ánh sáng,…..Ngoài ra còn có thể điểu khiển các thiết bị trong nhà một cách tự động như khi phát hiện có cháy, nguyên nhân gây cháy như khói, nhiệt độ hoặc nguy cơ có cháy như rò khí gas, hệ thống sẽ tự động tắt các thiết bị điện trong ngôi nhà, bật hệ thống quạt thông gió từ nguồn điện dự phòng, đồng thời báo lên website và gửi thông báo đến điện thoại người dùng. 1.3. Trình tự thực hiện, nghiên cứu Bước 1. Tìm hiểu thực tế, lý thuyết Bước 2. Phân tích, thảo luận, lựa chọn giải pháp. Bước 3. Lên thiết kế tổng thể, rồi đi đến chi tiết từng phần. Bước 4. Lập trình hệ thống, thiết bị. Bước 5. Tiến hành gia công, chế tạo và lắp ráp mô hình. Bước 6. Thử nghiệm, rút kinh nghiệm, cải tiến và hoàn thiện sản phẩm. Bước 7. Hoàn thiện hồ sơ, làm poster và thuyết trình dự án.
Tổng quan về vấn đề nghiên cứu
Các giải pháp đã có
Hình 1: Hệ thống nhà thông minh
Hiện nay, nhiều chủ nhà thông minh nhỏ lẻ gặp khó khăn trong việc theo dõi các thông số môi trường và an ninh, cũng như điều khiển thiết bị, vì phải thực hiện thủ công Họ cần mở điện thoại và truy cập vào trang quản lý để kiểm tra thông tin hoặc ra lệnh qua phần mềm đã được lập trình Điều này trở thành bất tiện lớn, đặc biệt khi người dùng không thể mở điện thoại.
Hiện nay, Việt Nam đã có nhiều hệ thống nhà thông minh tích hợp công nghệ điều khiển bằng giọng nói và trợ lý ảo Tuy nhiên, chi phí triển khai những hệ thống này rất cao, và lợi nhuận chưa đạt mức như các ngành công nghiệp khác Điều này đã dẫn đến việc ứng dụng công nghệ nhà thông minh bị hạn chế, chủ yếu chỉ xuất hiện ở các nước phát triển và có trình độ công nghệ cao như Châu Âu và Châu Mỹ.
Giải pháp được nhóm nghiên cứu đưa ra
Mục này không phải là một giải pháp công nghiệp phù hợp với trình độ học sinh, nhưng lại thích hợp với điều kiện kinh tế vì không yêu cầu độ ổn định cao và chi phí triển khai vừa phải.
Hình 2: Mô hình đơn giản hệ thống
Hệ thống hoạt động theo mô hình đơn giản, trong đó các bộ cảm biến kết nối với bo mạch Arduino để đọc và xử lý tín hiệu, sau đó gửi dữ liệu lên máy chủ Máy chủ sẽ phân tích thông tin và trả kết quả cho người dùng Đối với điều khiển từ xa, người dùng gửi yêu cầu từ điện thoại đến máy chủ, máy chủ tiếp tục phân tích và xử lý thông tin rồi gửi về bo mạch Arduino Cuối cùng, bo mạch Arduino thực hiện nhiệm vụ xuất các giá trị digital ra rơ-le và các thiết bị điện.
Vấn đề nghiên cứu
Mục đích
Nói một cách ngắn gọn, có một số lí do để chúng em chọn tiến hành nghiên cứu này như sau:
Hòa nhập vào xu thế cuộc cách mạng công nghiệp 4.0 về Vạn Vật Kết Nối, chúng em dự định triển khai thử nghiệm một hệ thống nhà thông minh với quy mô nhỏ.
Khoảng cách giữa nghiên cứu và thương mại hóa đang thu hẹp khi chúng ta đã hỗ trợ tiếng Việt trong công nghệ điều khiển bằng giọng nói, điều này hoàn toàn phù hợp với nhu cầu của người Việt Nam.
Khai thác, tận dụng tối đã những lợi ích, tiềm năng mà trợ lý ảo có thể đem lại.
Mục tiêu
Nghiên cứu này gồm có 3 mục tiêu chính:
Hệ thống nhà thông minh được thiết kế và thử nghiệm với trợ lý ảo trên điện thoại, giúp người dùng điều khiển dễ dàng mà không cần mở điện thoại hay ra lệnh bằng giọng nói, giảm thiểu sự bất tiện trong quá trình sử dụng.
Nghiên cứu tự thiết kế một thư viện giúp kết nối với máy chủ tập kết dữ liệu trên nền tảng Arduino chỉ cần vài dòng lệnh đơn giản.
Chúng tôi đang nghiên cứu và phát triển hệ thống nhà thông minh với chi phí thấp hơn đáng kể so với các sản phẩm hiện có trên thị trường.
3.3 Dự đoán những khó khăn trong quá trình nghiên cứu Để dự đoán được những khó khăn, ta xét trên hai mục tiêu đã đề ra:
Mục tiêu 1 là thiết kế và triển khai một hệ thống nhà thông minh, cho phép người dùng điều khiển thông qua trợ lý ảo trên điện thoại mà không cần thao tác thủ công.
Sử dụng nền tảng Arduino, giao thức MQTT và Node-red, các bạn học sinh sẽ dễ dàng làm quen với kỹ thuật này Tuy nhiên, do chúng em chưa có kinh nghiệm với nền tảng này, nên có thể sẽ cần nhiều thời gian để tìm hiểu.
Mục tiêu 2: Nghiên cứu tự lập trình một thư viện về Vạn Vật Kết Nối (gọi tắt là IoT) trên nền tảng Arduino.
Điểm nổi bật nhất trong nghiên cứu chính là khả năng đặt ra nhiều câu hỏi, nhưng cũng là thách thức lớn nhất mà chúng ta phải đối mặt.
Cơ sở lý thuyết nào giúp ta có thể kết hợp 2 nền tảng xa lạ và ít liên quan này lại với nhau ?
Làm sao để xây dựng một máy chủ giúp phân tích và điều khiển thông tin ?
Liệu trợ lý ảo của điện thoại có khả năng làm được hay tương thích với hệ thống mà nhóm đã đưa ra và nghiên cứu.
Việc phát triển một hệ thống có khả năng tự động lắng nghe lệnh từ người sử dụng không chỉ giúp giảm thiểu sự bất tiện trong quá trình sử dụng mà còn mở ra nhiều tiềm năng ứng dụng trong tương lai.
Nếu dự án thành công, nó sẽ có tính ứng dụng cao với các tính năng vượt trội như điều khiển thiết bị trong nhà bằng giọng nói và tự động xử lý sự cố cháy nổ, đảm bảo an toàn cho ngôi nhà Dự án cũng mở ra cơ hội mới trong nghiên cứu công nghệ điện tử và viễn thông, bao gồm trí tuệ nhân tạo (AI) và trợ lý ảo.
Giả thuyết khoa học
Việc phát triển một hệ thống tự động có khả năng nhận diện và thực hiện lệnh từ người sử dụng không chỉ giúp giảm thiểu sự bất tiện trong quá trình sử dụng mà còn mở ra nhiều tiềm năng ứng dụng trong tương lai.
Nếu dự án thành công, nó sẽ có ứng dụng cao trong thực tiễn, cho phép người dùng điều khiển thiết bị trong nhà bằng giọng nói và tự động xử lý sự cố cháy nổ, đảm bảo an toàn cho ngôi nhà Dự án cũng mở ra cơ hội mới trong nghiên cứu công nghệ điện tử và viễn thông, bao gồm trí tuệ nhân tạo AI và trợ lý ảo.
Các thành phần nghiên cứu
Nghiên cứu về phần cứng
Hình 3: Board mạch Arduino UNO R3
Hiện nay, có nhiều loại IC điều khiển được lập trình chủ yếu bằng ngôn ngữ C/C++ hoặc Assembly, khiến nhiều người cảm thấy khó khăn khi học Thêm vào đó, yêu cầu kiến thức sâu về điện tử cũng là một rào cản lớn cho những ai muốn tạo ra sản phẩm công nghệ riêng Để giải quyết vấn đề này, nền tảng Arduino đã được phát triển, giúp đơn giản hóa quá trình thiết kế, lắp ráp linh kiện điện tử và lập trình vi xử lý, từ đó giúp mọi người dễ dàng tiếp cận thiết bị điện tử mà không cần nhiều kiến thức chuyên môn hay thời gian.
Extracting information from the book "Make: Getting Started with Arduino, 3rd Edition," authored by one of the founders of the Arduino platform, reveals several key characteristics of Arduino.
Ngôn ngữ lập trình cho thiết bị Arduino rất đơn giản và dễ hiểu, đặc biệt phù hợp cho người mới bắt đầu Điều này nhờ vào việc sử dụng ngôn ngữ lập trình bậc cao, gần gũi với ngôn ngữ tự nhiên của con người.
Mặc dù sử dụng cùng một ngôn ngữ lập trình C/C++ như nhau nhưng
Arduino cung cấp các thư viện có sẵn giúp đơn giản hóa mã nguồn so với lập trình truyền thống Ví dụ, hàm đọc nhiệt độ từ cảm biến DS18B20 chỉ cần 4 dòng lệnh trên Arduino, trong khi cách viết truyền thống yêu cầu tới 19 dòng.
Arduino là một nền tảng mở hoàn toàn, từ phần cứng đến phần mềm, cho phép chia sẻ và tích hợp dễ dàng với các nền tảng khác Người dùng có thể tự tạo mạch Arduino của riêng mình dựa trên sơ đồ mạch có sẵn trên trang chủ arduino.cc.
Khả năng mở rộng phần cứng của Arduino là một trong những ưu điểm nổi bật, nhờ vào thiết kế module giúp tùy biến dễ dàng Các module này, được gọi là Arduino Shield, hiện có hàng trăm loại với nhiều chức năng khác nhau như GSM Shield, Ethernet Shield, Motor driver Shield và GPS Shield Ngoài ra, Arduino cũng hỗ trợ các công nghệ mới như Truyền thông tầm gần NFC (Near Field Communication).
Arduino được phát triển nhằm mang đến sự đơn giản, nhanh chóng và hiệu quả trong việc sử dụng, chính vì lý do này mà hàng triệu người yêu thích công nghệ trên toàn thế giới đã tin tưởng và lựa chọn Arduino.
Arduino có nhiều ứng dụng hữu ích, bao gồm đo đạc các thông số môi trường như nhiệt độ, độ ẩm, áp suất, gia tốc và phát hiện chuyển động Nó cũng có khả năng xác định vị trí thông qua hệ thống vệ tinh GPS Bên cạnh đó, Arduino có thể điều khiển các thiết bị đơn giản như đèn LED, động cơ điện và rơ le, cũng như thực hiện các tác vụ như gửi tin nhắn SMS và truy cập Internet Ngoài ra, nó còn được sử dụng để điều khiển các loại máy móc như robot, xe cộ và máy bay Cuối cùng, Arduino cho phép giao tiếp với các mạch khác hoặc thiết bị như máy vi tính và điện thoại di động.
… gần gũi nhất đó chính là làm một tay trợ lí xuất sắc cho máy tính Raspberry Pi thông qua giao tiếp Serial.
Arduino được thiết kế để đơn giản hóa quy trình lập trình phần cứng, giúp cả những học sinh không có nhiều kiến thức về điện tử cũng có thể tiếp cận dễ dàng Nhờ vào Arduino, các nhà nghiên cứu có thể xây dựng nhanh chóng hệ thống thu thập dữ liệu môi trường cho các thí nghiệm, như đo nhiệt độ và độ ẩm, từ đó giúp họ hiểu rõ hơn về thế giới vật lý.
Chính vì những ưu điểm đó mà chúng em đã quyết định lựa chọn nền tảng
Arduino để hiện thực hoá ý tưởng mà chúng em đề ra.
4.1.2 Nghiên cứu về máy tính nhúng Raspberry
Hình 4: Một bo mạch máy tính Raspberry
Raspberry Pi là máy tính nhỏ gọn chỉ bằng kích thước thẻ tín dụng, được phát triển bởi Raspberry Pi Foundation tại Anh Mục tiêu ban đầu của nó là thúc đẩy giảng dạy khoa học máy tính cơ bản trong các trường học và hỗ trợ các quốc gia đang phát triển.
Raspberry Pi gốc và Raspberry Pi gốc 2 được sản xuất với nhiều cấu hình khác nhau thông qua các thỏa thuận cấp phép với Newark element14, RS Components và Egoman Các công ty này cung cấp Raspberry Pi trực tuyến Đặc biệt, Egoman sản xuất phiên bản phân phối duy nhất tại Đài Loan, có màu đỏ và không có dấu FCC/CE, nhưng phần cứng của tất cả các nhà sản xuất vẫn giống nhau.
Raspberry Pi ban đầu được dựa trên hệ thống trên một vi mạch (SoC) BCM2835 của Broadcom, bao gồm một vi xử lý ARM1176JZF-S
Bảng mạch này sử dụng vi xử lý 700 MHz và GPU VideoCore IV, ban đầu được trang bị 256 MB RAM, sau đó được nâng cấp lên 512 MB ở các mẫu B và B+ Nó cũng có khe cắm Secure Digital (SD) cho các mẫu A và B, hoặc MicroSD cho các mẫu A+ và B+, dùng để khởi động và lưu trữ dữ liệu.
In 2014, the Raspberry Pi Foundation launched the Compute Module, which integrates a BCM2835 processor with 512 MB of RAM and an eMMC flash chip, designed for use in embedded systems.
Foundation này cung cấp các bản phân phối Debian và Arch Linux ARM cho người dùng tải về Hệ thống hỗ trợ ngôn ngữ lập trình chính là Python, cùng với các công cụ cho BBC BASIC (thông qua hình ảnh RISC OS hoặc bản sao Brandy Basic cho Linux), C, C++, Java, Perl và Ruby.
Tính đến ngày 08/06/2015, Raspberry Pi đã bán được khoảng 5-6 triệu board, trở thành máy tính cá nhân bán chạy nhất tại Anh và đứng thứ hai về số lượng đơn vị vận chuyển sau Amstrad PCW với 8 triệu chiếc Vào đầu tháng 2 năm 2015, Raspberry Pi 2, thế hệ tiếp theo của dòng sản phẩm này, đã được ra mắt với cấu hình đầu tiên là model B và trang bị SoC Broadcom.
Nghiên cứu về các giao thức truyền tin, các nền tảng hệ thống ứng dụng
4.2.1 Nghiên cứu về giao thức truyền tin HTTP
HTTP, hay Giao thức Truyền Tải Siêu Văn Bản, là tập hợp quy tắc chuẩn cho việc biểu diễn dữ liệu và giao tiếp giữa các hệ thống phân phối Đây là giao thức ứng dụng quan trọng, đóng vai trò nền tảng cho các trang web hiện đại Đối với lập trình viên web, việc nắm vững giao thức HTTP là điều cần thiết.
Giao thức mạnh mẽ này sẽ được khám phá từ góc độ của các lập trình viên web Trong phần này, chúng ta sẽ tìm hiểu những kiến thức cơ bản và phác thảo các tiêu đề yêu cầu và phản hồi.
Khái niệm cơ bản về HTTP
HTTP là giao thức cho phép giao tiếp giữa máy chủ và khách hàng, hỗ trợ nhiều cấu hình mạng khác nhau Nó hoạt động như một giao thức không trạng thái (stateless protocol), với giao tiếp chủ yếu qua TCP/IP, mặc dù có thể sử dụng các phương thức vận chuyển đáng tin cậy khác Cổng mặc định cho TCP/IP là 80, nhưng cũng có thể sử dụng các cổng khác.
Gửi yêu cầu / Thực hiện yêu cầu
Hình 5: Sơ đồ truyền dữ liệu giao thức HTTP
Tiêu đề tùy chỉnh cũng có thể được tạo ra và gửi của khách hàng.
Giao tiếp giữa máy chủ và khách hàng diễn ra thông qua yêu cầu và phản hồi Máy khách gửi một thông báo yêu cầu HTTP, và nhận lại dịch vụ thông qua tin nhắn phản hồi HTTP Chúng ta sẽ khám phá chi tiết về thông điệp này trong phần tiếp theo.
Giao thức HTTP/1.1 hiện tại đã được cải tiến với một số tính năng bổ sung so với phiên bản 1.0 trước đó Những cải tiến quan trọng nhất bao gồm kết nối liên tục, mã hóa chunked và các tiêu đề bộ nhớ đệm hạt mịn.
Trọng tâm của truyền thông web là thông báo yêu cầu thông qua các Địa chỉ Tài nguyên Đồng nhất (URL) Các URL có cấu trúc đơn giản, bao gồm các thành phần cơ bản mà người dùng cần hiểu để sử dụng hiệu quả.
Giao thức truyền thông phổ biến là HTTP, nhưng HTTPS được sử dụng để đảm bảo bảo mật Cổng mặc định cho HTTP là 80, tuy nhiên, có thể thiết lập cổng khác theo nhu cầu Đường dẫn tài nguyên là đường dẫn địa phương đến các nguồn tài nguyên trên máy chủ.
URLs cung cấp thông tin về các máy chủ mà chúng ta muốn giao tiếp, trong khi các hành động cần thực hiện trên máy chủ được xác định qua giao thức HTTP Khách hàng có những yêu cầu cụ thể đối với máy chủ, và HTTP đã chuẩn hóa một số hành động cơ bản để đáp ứng nhu cầu này, đảm bảo tính phổ biến cho tất cả các loại ứng dụng.
Những động từ yêu cầu là:
GET là phương thức sử dụng để lấy một nguồn tài nguyên hiện có URL chứa tất cả thông tin cần thiết để các máy chủ xác định vị trí và trả lại tài nguyên một cách chính xác.
POST: tạo ra một nguồn tài nguyên mới POST yêu cầu thường mang một tải trọng mà xác định các dữ liệu về tài nguyên mới.
PUT: cập nhật một nguồn tài nguyên hiện có Tải trọng có thể chứa dữ liệu cập nhật của nguồn tài liệu.
DELETE: xóa một nguồn tài nguyên hiện có.
Trên 4 phương thức trên , và hầu hết các công cụ và khuôn khổ rõ ràng đưa ra những động từ yêu cầu PUT và DELETE đôi khi được coi là phiên bản đặc biệt của động từ POST, và họ có thể được đóng gói như các yêu cầu POST với tải trọng có chứa các hành động chính xác: tạo, cập nhật hoặc xóa.
Có một số động từ được sử dụng ít hơn là HTTP cũng hỗ trợ:
HEAD là phương thức tương tự như GET, nhưng không bao gồm nội dung thư Nó được sử dụng để truy xuất các tiêu đề máy chủ cho một tài nguyên cụ thể, thường nhằm mục đích kiểm tra xem tài nguyên đó có thay đổi theo thời gian hay không.
TRACE là công cụ cần thiết để theo dõi các bước nhảy trong quá trình truyền tải dữ liệu từ máy chủ Mỗi proxy hoặc gateway sẽ thêm địa chỉ IP hoặc tên DNS vào trường "Via", điều này giúp ích cho việc chẩn đoán sự cố mạng.
Với các URL và động từ, máy chủ và máy khách có thể bắt đầu yêu cầu Máy chủ sẽ phản hồi bằng mã trạng thái và nội dung thông báo Các mã trạng thái rất quan trọng vì chúng hướng dẫn khách hàng cách hiểu các phản ứng từ máy chủ HTTP xác định các thông số cho từng loại phản ứng cụ thể.
Tin nhắn thông tin: 1xx
Tất cả HTTP/1.1 khách hàng được yêu cầu phải chấp nhận các tiêu đề Transfer- Encoding.
Trong HTTP/1.1, lớp mã số này được giới thiệu như một tính năng tạm thời Các máy chủ có khả năng gửi thông điệp "100 Continue" để thông báo cho khách hàng rằng họ có thể tiếp tục gửi phần còn lại của yêu cầu, hoặc có thể bỏ qua nếu yêu cầu đã được gửi Đối với khách hàng sử dụng HTTP/1.0, họ có nghĩa vụ phải bỏ qua tiêu đề này.
Mã trạng thái 2xx cho biết yêu cầu của khách hàng đã được xử lý thành công, với mã phổ biến nhất là 200 OK Đối với yêu cầu GET, máy chủ sẽ gửi tài nguyên trong nội dung của phản hồi Ngoài mã 200, còn có một số mã khác ít được sử dụng.
Tìm kiếm thông tin
Đối với các đề tài kỹ thuật, Google Search là kênh thông tin phổ biến nhất Một số trang web hữu ích có thể kể đến bao gồm:
Arduino.vn là một blog tiếng Việt chuyên cung cấp nhiều bài viết hữu ích về nền tảng Arduino Trang web này bao gồm các hướng dẫn lập trình Arduino chi tiết, giúp người đọc nhanh chóng làm quen với việc lập trình, điều khiển màn hình và sử dụng các loại cảm biến.
Stack Overflow là một trang web chuyên cung cấp dịch vụ hỏi và đáp về các lĩnh vực kỹ thuật Đây là nguồn tài nguyên không chính thức quan trọng cho hầu hết các nghiên cứu liên quan đến kỹ thuật.
Nội dung nghiên cứu
Mô hình hệ thống
Hình 12: Sơ đồ chi tiết hệ thống
Một hệ thống nhà thông minh điều khiển bằng giọng nói về cơ bản sẽ có những thành phần sau:
Các cảm biến gửi giá trị điện thế đến vi điều khiển, nơi các tín hiệu này được phân tích và chuyển đổi thành dữ liệu số Sau đó, các vi điều khiển gửi các gói dữ liệu này đến máy chủ để tập kết thông tin.
MQTT Broker là máy chủ xử lý thông tin (Raspberry) có khả năng thu thập dữ liệu từ máy chủ tập kết thông tin và phân phối chúng đến các thiết bị của người dùng Quá trình này diễn ra thông qua nhiều phương thức khác nhau, tùy thuộc vào loại thiết bị mà người dùng sử dụng.
Các thiết bị điều khiển từ xa gửi gói tin đến máy chủ xử lý thông tin, sau đó máy chủ này biên dịch và gửi dữ liệu đến máy chủ tập kết thông qua giao thức MQTT Máy chủ tập kết sẽ truyền thông tin đến các vi điều khiển để xử lý Tại vi điều khiển, thông tin được giải mã từ dạng số sang giá trị điện thế, từ đó xuất ra các tín hiệu cho bóng đèn, rơ-le, và các thiết bị khác.
Nguyên lý chi tiết phần gửi và nhận dữ liệu giữa các thiết bị người dùng và máy chủ xử lý thông tin:
Điều khiển – theo dõi trực tiếp thông qua Website
Khi chọn phương thức “Điều khiển – theo dõi trực tiếp thông qua
Máy chủ xử lý thông tin, hay còn gọi là máy chủ web (Webserver), cho phép người dùng truy cập vào địa chỉ IP của máy chủ Raspberry để vào bảng điều khiển.
Điều khiển thông qua trợ lý ảo Siri trong hệ điều hành IOS
Phương thức điều khiển theo dõi sử dụng giao thức MDNS, cho phép gửi và nhận thông tin từ máy chủ xử lý mà không cần cấu hình DNS hay IP Siri và Raspberry tự động phát hiện và trao đổi các gói tin với nhau.
Điều khiển thông qua ứng dụng
Phương pháp điều khiển này khá đơn giản; sau khi nhận lệnh từ giọng nói của người dùng, phần mềm sẽ phân tích và xử lý thông tin, sau đó sử dụng giao thức HTTP để lấy dữ liệu từ một website của máy chủ xử lý thông tin, mà cũng hoạt động như một webserver.
Điều khiển thông qua trợ lý ảo Google Assistant là một phương pháp phức tạp, yêu cầu sử dụng nền tảng IFTTT Khi nhận lệnh giọng nói, Google Assistant gửi lệnh qua mã khóa API đến máy chủ IFTTT, nơi xử lý thông tin và sử dụng giao thức HTTP để lấy dữ liệu, tương tự như phương pháp truyền dữ liệu đã nêu.
Giới thiệu các thành phần
Hình 13: Mạch Arduino UNO R3
Arduino UNO R3 là một trong những mạch phổ biến nhất trong dòng sản phẩm Arduino hiện nay, sử dụng vi điều khiển 8bit AVR Atmega328 Mạch này có khả năng xử lý các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, hoặc làm trạm đo nhiệt độ và độ ẩm hiển thị trên màn hình LCD, cùng với nhiều ứng dụng khác mà bạn có thể đã gặp.
Arduino UNO R3 có 2 loại là
Arduino UNO R3: là mạch dùng chip AVR dạng DIP (chân cắm có thể tháo lắp).
Arduino UNO R3 SMD: là mạch dùng chip AVR dạng SMD (linh kiện dán). Các chân cung cấp năng lượng:
GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, các chân GND cần phải được nối với nhau để đảm bảo hoạt động ổn định.
Vcc: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.
Để cung cấp nguồn cho mạch Arduino Pro Mini, bạn cần kết nối cực dương của nguồn với chân Raw và cực âm với chân GND Mạch Arduino Pro Mini 3.3V có thể nhận điện áp từ 3.35V đến 12V, trong khi mạch 5V yêu cầu điện áp từ 5V đến 12V.
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Ω.
Arduino UNO R3 có 14 chân tín hiệu dùng để đọc hoặc xuất tín hiệu Một số chân digital có các chức năng đặc biệt Chân PWM (Pulse Width Modulation) (~): 3, 5,
Các chân 6, 9, 10 và 11 trên Arduino UNO R3 cho phép xuất xung PWM với độ phân giải 8 bit, tương ứng với giá trị từ 0 đến 255, tạo ra điện áp từ 0V đến 5V thông qua hàm analogWrite() Điều này cho phép bạn điều chỉnh điện áp đầu ra ở các chân này, thay vì chỉ có mức cố định 0V và 5V như các chân khác Để nạp chương trình cho mạch Arduino UNO R3, bạn cần sử dụng cáp USB Type-B kết nối với máy tính.
Màn hình LCD1602 là một module phổ biến, cho phép hiển thị dữ liệu từ các hệ thống Arduino dưới dạng văn bản Module này hoạt động với điện áp 5V và 3.3V, đồng thời có hai phiên bản màu sắc là xanh lá cây và xanh đậm.
Hình 15: Mạch driver chuyển giao tiếp LCD1602 qua I2C
Một số kinh nghiệm của chúng em khi làm việc với module màn hình này:
Nếu màn hình không hiển thị rõ chữ, hãy kiểm tra các đường dây điện để đảm bảo không bị lỏng Ngoài ra, bạn cũng có thể điều chỉnh độ tương phản bằng cách vặn biến trở trên màn hình.
Nếu bạn gặp lỗi như "'LiquidCrystal_I2C does not name a type'" hoặc "dht.h: No such file or directory" khi dịch chương trình, hãy kiểm tra xem bạn đã cài đặt thư viện cho cảm biến DHT11 hay chưa.
Để giao tiếp với màn hình LCD, cần sử dụng hai chân A4 và A5 (I2C) mà không thể thay đổi sang các chân khác Nếu sử dụng phương pháp giao tiếp truyền thống mà không có mạch driver, sẽ cần tới 6 chân tín hiệu để thực hiện kết nối.
5.3.3 Cảm biến khói, khí ga (MQ2).
Module Cảm Biến Khí Gas MQ2 là thiết bị quan trọng trong việc phát hiện rò rỉ khí, được ứng dụng rộng rãi trong cả ngành công nghiệp và dân dụng Thiết bị này giúp đảm bảo an toàn cho người sử dụng trong quá trình vận hành và sử dụng các loại khí, từ đó giảm thiểu nguy cơ cháy nổ và tai nạn.
Tín hiệu Dout được lấy ra từ Module MQ
Dựa vào việc điều chỉnh biến trở để thay đổi điện áp tham chiếu của LM358 chúng ta có thể điều chỉnh độ nhạy của MQ2.
Cấu tạo từ chất bán dẫn SnO2
Chúng được sử dụng trong thiết bị phát hiện rò rỉ khí trong gia đình và công nghiệp, phù hợp cho việc phát hiện các loại khí như :
LPG : là hỗn hợp hydrocarbon nhẹ, ở thể khí LPG trong dân dụng và công nghiệp chủ yếu có thành phần gồm Propane (C3H8) và Butane (C4H10).
5.3.4 Cảm biến chuyển động HC-SR501
Hình 17: Cảm biến HC-SR501
Cảm biến chuyển động HC-SR501 có khả năng phát hiện chuyển động trong khu vực hoạt động của nó Module này cho phép người dùng điều chỉnh độ nhạy thông qua hai biến trở, trong đó Sx là biến trở dùng để tùy chỉnh độ nhạy của cảm biến.
Tx biến trở điều chỉnh thời gian đóng của cảm biến, giúp cho cảm biến hoạt động phù hợp với những yêu cầu của người dùng.
Sử dụng điện áp: 4.5V - 20V DC
Điện áp đầu ra: 0V - 3.3V DC
Có 2 chế độ hoạt động:
(L) không lặp lại kích hoạt
Thời gian trễ: điều chỉnh trong khoảng 0.5-200S
Sử dụng cảm biến: 500BP
Kích thước PCB:32mm x 24mm
5.3.5 Module mạch thu phát Wifi ESP8266
NodeMCU V1.0 được phát triển từ chip WiFi ESP8266EX trong module ESP-12E, cho phép kết nối WiFi nhanh chóng và dễ dàng Bo mạch tích hợp IC CP2102, giúp giao tiếp với máy tính qua cổng Micro USB, thuận tiện cho việc lập trình và thao tác Ngoài ra, board còn có nút nhấn và đèn LED, hỗ trợ quá trình học tập và nghiên cứu hiệu quả.
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để tạo thành project, sản phẩm mẫu một cách nhanh chóng.
WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n
Điện áp vào: 5V thông qua cổng USB
Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0)
Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
Giao tiếp: Cable Micro USB (Cáp USB)
Hỗ trợ bảo mật: WPA/WPA2
Tích hợp giao thức TCP/IP
Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU - Lua
Hình 18: Bo mạch ESP8266 - Node-MCU[6]
5.3.6 Cảm biến nhiệt độ - độ ẩm DHT11
Hình 19: Cảm biến nhiệt độ - độ ẩm DHT11
Cảm biến DHT11 được thiết kế dưới dạng một mạch tích hợp, cho phép người dùng chỉ cần kết nối dây nguồn (Vcc, GND) và dây tín hiệu (Signal) vào Arduino để sử dụng.
Điện áp hoạt động: 3-5.5V DC
Sai số nhiệt độ: ± 2 oC
Sau khi hoàn thành thiết kế mạch điện, bước tiếp theo là thử nghiệm và điều chỉnh thiết kế cho phù hợp Chúng ta có thể sử dụng phần mềm mô phỏng mạch điện để hỗ trợ công việc này Tuy nhiên, trước khi chế tạo mạch in và hàn linh kiện, nên kết nối các linh kiện bằng breadboard Ưu điểm của breadboard là không cần hàn, chỉ cần cắm linh kiện vào và kiểm tra mạch điện Nếu phát hiện sai sót, việc điều chỉnh thiết kế sẽ trở nên đơn giản hơn.
Hình 20: Sơ đồ cấu tạo của breadboard
Breadboard là một công cụ điện tử quan trọng, với nhiều lỗ cắm có điện thế bằng nhau để kết nối các chân linh kiện Phần nhựa trên Breadboard không chỉ giữ chặt các chân linh kiện mà còn được làm từ nhựa chịu nhiệt hoặc sứ Đặc biệt, thiết kế của nó có mấu gài, cho phép người dùng mở rộng Breadboard bằng cách nối ghép nhiều cái lại với nhau.
Hướng phát triển
Trong tương lai gần, chúng ta có thể nâng cấp dự án bằng cách cho phép Siri điều khiển từ xa qua mạng WAN Để đảm bảo tính bảo mật khi ngắt kết nối với mạng nội bộ, tính năng điều khiển bằng giọng nói sẽ bị vô hiệu hóa Tuy nhiên, chúng ta có thể cải tiến điều này bằng cách sử dụng đường hầm Proxy, giúp Siri có thể điều khiển bằng giọng nói từ bất kỳ đâu.
Sức mạnh của Raspberry Pi đến từ cộng đồng người dùng, dẫn đến việc phát triển vô số ứng dụng đa dạng cho thiết bị này.
Dùng Raspberry Pi làm trung tâm giải trí đa phương tiện
Kết hợp với webcam làm hệ thống phát hiện chuyển động
Điều khiển hệ thống nước, tự bơm nước, tưới cây,…
Hệ thống Raspberry Pi có khả năng nâng cấp dễ dàng tùy theo nhu cầu sử dụng của người dùng Mỗi ngôi nhà có thể trang bị nhiều Raspberry Pi, với mỗi thiết bị đảm nhận những chức năng riêng biệt, tạo nên một mạng lưới thông minh và hiệu quả.
Trong tương lai, việc phát triển chức năng tự điều khiển và lưu trữ dữ liệu sẽ là nền tảng quan trọng cho việc xây dựng tập dữ liệu huấn luyện cho các thuật toán trí tuệ nhân tạo trong ngành công nghiệp thông minh.
Mã nguồn hệ thống và tài liệu tham khảo
Mã nguồn hệ thống
The requested file for the embedded system source code is unavailable Please verify the URL to ensure that the file exists **Utilizing Google Drive**Google Drive offers various applications that facilitate the creation, storage, and sharing of online documents, spreadsheets, presentations, and more For additional information, visit [Google Drive Apps](https://drive.google.com/start/apps).
Mã nguồn thư viện điều khiển https://drive.google.com/open? idvmos0TxlFMH7txo4wFZBT7LudTR2Mzo https://drive.google.com/open? id=1ToN66c2ga3mFO6jAdSKcsKpelDWkOrau
Mã nguồn hệ thống điều khiển trên Android https://drive.google.com/open?id=1n2ZU5k3dPXbRu3_syH9Qz_vHLQx0Co42
Tài liệu tham khảo
[1] https://www.bkav.com.vn/tieu-diem/-/chi_tiet/301150/nha-thong-minh-xu- huong-cua-nha-o-hien-%C4%91ai
[2] https://vi.wikipedia.org/wiki/Raspberry_Pi
[3] https://kipalog.com/posts/Tim-hieu-ve-giao-thuc-MQTT -IoT-protocol
[4] http://mualinhkien.vn/san-pham/61/module-cam-bien-khi-ga-mq2.html
[5]http://mualinhkien.vn/san-pham/636/module-cam-bien-chuyen-dong-hc- sr501.html
[6] https://iotmaker.vn/nodemcu.html
[7] https://vngiotlab.github.io/vbluno/vi/mydoc_arduino_tut10_vi.html