Tổng quan về vấn đề nghiên cứu
Các giải pháp đã có
Hiện nay, nhiều chủ nhà thông minh vẫn phải kiểm tra các thông số môi trường và an ninh một cách thủ công qua điện thoại Họ cần mở ứng dụng quản lý để theo dõi và điều khiển thiết bị trong nhà, điều này có thể gây bất tiện và tốn thời gian.
Hình 1: Hệ thống nhà thông minh những trường hợp như người dùng không thể mở điện thoại thì đây là một sự bất tiện không hề nhỏ
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 từ chúng chưa đạt mức như các ngành công nghiệp khác Điều này đã hạn chế sự phát triển của công nghệ nhà thông minh, khiến chúng chủ yếu xuất hiện ở các nước phát triển với nền tảng 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à giải pháp công nghiệp phù hợp với trình độ học sinh, nhưng lại có lợi về mặt kinh tế Dự án này yêu cầu chi phí triển khai vừa phải và không cần độ ổn định cao tuyệt đối.
Mô hình hệ thống bao gồm 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ả về cho người dùng Đối với điều khiển từ xa, người dùng sử dụng điện thoại để gửi kết quả về máy chủ, nơi thông tin được phân tích và xử lý trước khi trả 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.
Hình 2: Mô hình đơn giản hệ thống
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 cuộc cách mạng công nghiệp 4.0 và xu thế Vạn Vật Kết Nối, chúng em đang xem xét khả năng 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 việc đ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 đọc thông số Điều này giảm thiểu sự bất tiện trong quá trình sử dụng, mang lại trải nghiệm thuận tiện hơn cho người dùng.
Nghiên cứu tự thiết kế một thư viện trên nền tảng Arduino giúp kết nối dễ dàng với máy chủ tập kết dữ liệu chỉ với 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 có sẵn trên điện thoại mà không cần thao tác thủ công như trước đây.
Sử dụng nền tảng Arduino, giao thức MQTT và Node-red, những công nghệ quen thuộc với học sinh, có thể giúp quá trình thực hiện không gặp khó khăn về kỹ thuật Tuy nhiên, do chưa có kinh nghiệm với nền tảng này, chúng tôi có thể sẽ cần nhiều thời gian để tìm hiểu và làm quen với các công cụ này.
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à sự phong phú của các câu hỏi có thể đặt ra, tuy nhiên, đây 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 nhận lệnh từ người dùng sẽ giúp giảm bớt sự bất tiện trong quá trình sử dụng, đồng thời 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ẽ mang lại ứng dụng cao trong thực tiễn với các tính năng nổi bật 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 cho 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 có khả năng tự động nhận diện lệnh từ người dùng sẽ giúp giảm thiểu sự bất tiện trong quá trình sử dụng Hệ thống này không chỉ mang lại tiện lợi 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ẽ mang lại ứng dụng cao trong thực tiễn 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òn mở ra hướng nghiên cứu mới trong 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
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 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 Do đó, nền tảng Arduino đã được phát triển để đơ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ý, giúp mọi người dễ dàng tiếp cận với thiết bị điện tử mà không cần nhiều kiến thức chuyên sâu 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, including its user-friendly interface, versatility in various projects, and strong community support that fosters innovation and collaboration among makers and developers.
Hình 3: Board mạch Arduino UNO R3
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 sử dụng các thư viện có sẵn giúp mã nguồn đơn giản hơ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 trong cách viết truyền thống cần tới 19 dòng lệnh, trong khi với Arduino chỉ cần 4 dòng.
Arduino là một nền tảng hoàn toàn mở, từ phần cứng đến phần mềm, cho phép dễ dàng chia sẻ và tích hợp 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 với sơ đồ mạch được cung cấp 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 là một công cụ đơn giản, nhanh chóng và hiệu quả, lý do chính khiến nó được phát triển Điều này cũng giải thích tại sao hàng triệu người yêu công nghệ trên toàn thế giới tin tưởng và sử dụng 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òn có khả năng xác định vị trí thông qua hệ thống vệ tinh GPS Ngoài ra, 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ư gửi tin nhắn SMS và truy cập Internet Hơn nữa, 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 có thể 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 học sinh không có nhiều kiến thức về điện tử cũng có thể dễ dàng tiếp cận Công cụ này hỗ trợ nghiên cứu khoa học, cho phép nhà nghiên cứu xây dựng nhanh chóng hệ thống thu thập dữ liệu môi trường, như nhiệt độ và độ ẩm, cho các thí nghiệm.
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
Raspberry Pi là một loại máy tính mini với kích thước bằng thẻ tín dụng, được phát triển bởi Raspberry Pi Foundation tại Anh Mục tiêu chính 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à 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 nhờ các thỏa thuận cấp phép với Newark element14, RS Components và Egoman Những công ty này cung cấp Raspberry Pi trực tuyến Đặc biệt, Egoman sản xuất một phiên bản phân phối riêng tại Đài Loan, có màu đỏ và không có dấu FCC/CE, nhưng phần cứng vẫn giống nhau giữa các nhà sản xuất.
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 được trang bị GPU VideoCore IV và hoạt động trên băng tần 700 MHz, ban đầu có 256 MB RAM, sau đó nâng cấp lên 512 MB ở các model B và B+ Nó cũng bao gồm một socket Secure Digital (SD) cho model A và B, hoặc MicroSD cho model A+ và B+ để sử dụng làm thiết bị khởi động và lưu trữ.
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.
Hình 4: Một bo mạch máy tính Raspberry
Foundation này cung cấp Debian và Arch Linux ARM cho người dùng tải về, với các công cụ hỗ trợ ngôn ngữ lập trình chính là Python, cùng với 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 phát hành với cấu hình đầu tiên là model B, 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à 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 ở tầng ứng dụng, đóng vai trò quan trọng trong việc xây dựng các trang web hiện đại Đối với lập trình viên web, việc hiểu rõ về HTTP là điều cần thiết.
Hãy khám phá giao thức mạnh mẽ này từ góc nhìn của các nhà phát triển web Trong phần này, chúng ta sẽ tìm hiểu những điều 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à thường sử dụng giao thức TCP/IP để truyền tải dữ liệu, mặc dù có thể áp 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 khởi tạo một yêu cầu HTTP, và máy chủ đáp lại bằng một thông điệp phản hồi HTTP Chúng ta sẽ tìm hiểu sâu hơn về thông điệp này trong phần tiếp theo.
Phiên bản HTTP/1.1 hiện tại đã được cải tiến với nhiều 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 khả năng kết nối liên tục, mã hóa chunked và các tiêu đề bộ nhớ đệm chi tiết.
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 nhiều thành phần khác nhau.
Giao thức chính thường sử dụng là HTTP, nhưng HTTPS cũng được áp dụng để đảm bảo an toàn cho truyền thông Cổng mặc định là 80, tuy nhiên, có thể thiết lập cổng khác một cách rõ ràng Đường dẫn tài nguyên là cách xác định vị trí các 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 kết nối, 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 thườ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, tạo ra một tiêu chuẩn chung cho mọi loại ứng dụng.
Những động từ yêu cầu là:
GET là phương thức dùng để lấy một nguồn tài nguyên hiện có, trong đó 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.
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 truyền tải nội dung thư Nó được sử dụng chủ yếu để lấy các tiêu đề máy chủ cho một tài nguyên cụ thể, thường nhằm kiểm tra sự thay đổi của tài nguyên theo thời gian.
TRACE là một công cụ quan trọng để thu thập các bước nhảy trong quá trình kết nối từ máy chủ Mỗi proxy hoặc gateway sẽ đưa IP hoặc tên DNS vào trường "Via", giúp hỗ trợ cho các mục đích chẩn đoán.
Thông qua các URL và động từ, máy chủ và máy khách có thể khởi đầu yêu cầu đến máy chủ Đáp lại, máy chủ cung cấp 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, giúp khách hàng hiểu cách giải thích các phản ứng từ máy chủ Thông số HTTP xác định phạm vi 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
Lớp mã số này được giới thiệu trong HTTP/1.1 và mang tính tạm thời Các máy chủ có khả năng gửi thông điệp "100-Continue" để yêu cầu khách hàng 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 đã gửi Khách hàng sử dụng HTTP/1.0 có trách nhiệm 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ẽ trả về tài nguyên trong nội dung của thư Ngoài mã 200, còn có một số mã ít được sử dụng khác trong nhóm này.
Tìm kiếm thông tin
Đối với các chủ đề mang tính kỹ thuật, Google Search là kênh thông tin phổ biến nhất Một số trang web đáng 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 dễ dà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 khác nhau.
Stack Overflow là một trang web nổi tiếng chuyên cung cấp dịch vụ hỏi và đáp trong các lĩnh vực kỹ thuật Đây là nguồn tài nguyên không chính thức mà hầu hết các nghiên cứu liên quan đến kỹ thuật thường xuyên sử dụng để tìm kiếm thông tin và giải pháp.
Nội dung nghiên cứu
Mô hình 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 thực hiện việc giám sát từ xa bằng cách gửi các giá trị điện thế tới vi điều khiển Những vi điều khiển này phân tích tín hiệu điện thế thành dữ liệu số và chuyển tiếp 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ó chức năng thu thập dữ liệu từ máy chủ tập kết và phân phối thông tin này đến các thiết bị của người dùng Việc truyền tải thông tin được thực hiện 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 đang sử dụng.
• Phần dữ liệu (điều khiển từ xa) : Các thiết bị điều khiển của người dung gửi các
Hệ thống gói tin sử dụng giao thức MQTT để gửi dữ liệu đến máy chủ tập kết thông tin Máy chủ này sau đó chuyển thông tin đến các vi điều khiển để xử lý Tại vi điều khiển, dữ liệu được giải mã từ dạng số sang giá trị điện thế, và các tín hiệu này được xuất ra để điều khiển 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 lẫn nhau và trao đổi các gói tin một cách dễ dàng.
• Điều khiển thông qua ứng dụng
Phương pháp điều khiển này rất đơn giản; phần mềm sẽ nhận lệnh từ giọng nói của người dùng, sau đó phân tích và xử lý thông tin Nó 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, với máy chủ này cũng đóng vai trò quan trọng trong quá trình xử lý.
Điều khiển thông qua trợ lý ảo Google Assistant là phương pháp phức tạp nhất, yêu cầu sử dụng nền tảng IFTTT Khi nhận lệnh bằng 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.
Giới thiệu các thành phần
Arduino UNO R3 là một trong những mạch phổ biến nhất hiện nay, sử dụng vi điều khiển 8bit AVR Atmega328 Với 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, nó mở ra nhiều ứng dụng thú vị cho người dùng.
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 này cần phải được kết 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
Để 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 có thể nhận điện áp từ 5V đến 12V.
Hình 13: Mạch Arduino UNO R3
• 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 của 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, giúp điều chỉnh điện áp đầu ra từ 0V đến 5V thông qua hàm analogWrite() Điều này mang lại khả năng linh hoạt hơn so với các chân chỉ có mức điện áp cố định Để 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 sử dụng nền tảng Arduino dưới dạng văn bản Module này có hai loại điện áp hoạt động là 5V và 3.3V, cùng với hai màu sắc là xanh lá cây và xanh đậm.
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 hiển thị chữ không rõ, hãy kiểm tra các đường dây điện để đảm bảo chúng 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.
Khi dịch chương trì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", 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 sáu chân tín hiệu để thực hiện kết nối.
Hình 15: Mạch driver chuyển giao tiếp LCD1602 qua I2C
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í, giúp đảm bảo an toàn cho cả môi trường công nghiệp và dân dụng Sản phẩm này đóng vai trò cảnh báo kịp thời, bảo vệ người sử dụng trong quá trình vận hành và sử dụng các loại khí.
• 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à
5.3.4 Cảm biến chuyển động HC-SR501
Cảm biến chuyển động HC-SR501 có khả năng phát hiện sự di chuyển của vật thể trong vùng hoạt động của nó Module cảm biến này cho phép người dùng điều chỉnh độ nhạy thông qua hai biến trở, với Sx là biến trở chính để điều 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
Hình 17: Cảm biến HC-SR501
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 này còn tích hợp IC CP2102, giúp giao tiếp với máy tính qua cổng Micro USB Ngoài ra, NodeMCU V1.0 còn có sẵn nút nhấn và đèn LED, thuận tiện cho quá trình học tập và nghiên cứu.
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
5.3.6 Cảm biến nhiệt độ - độ ẩm DHT11
Cảm biến DHT11 được thiết kế dưới dạng mạch tích hợp, giúp người dùng dễ dàng kết nối với Arduino chỉ bằng cách nối dây nguồn (Vcc, GND) và dây tín hiệu (Signal).
• Điện áp hoạt động: 3-5.5V DC
• Sai số nhiệt độ: ± 2oC
Hình 19: Cảm biến nhiệt độ - độ ẩm DHT11
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 Để thực hiện điều này, chúng ta sử dụng chương trình mô phỏng mạch điện Trước khi chế tạo mạch in và hàn linh kiện, việc kết nối các linh kiện bằng breadboard là rất hữu ích Ư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 có sai sót, việc thay đổi thiết kế trở nên đơn giản và nhanh chóng.
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 giúp kết nối các chân linh kiện Phần nhựa trên Breadboard không chỉ giữ chặt chân linh kiện mà còn được làm từ vật liệu chịu nhiệt hoặc sứ Đặc biệt, thiết kế có mấu gài cho phép mở rộng Breadboard bằng cách nối ghép nhiều cái lại với nhau, tạo ra sự linh hoạt trong việc lắp ráp mạch điện.
Hình 20: Sơ đồ cấu tạo của breadboard
Hướng phát triển
Trong tương lai gần, chúng ta có thể cải tiến dự án bằng cách cho phép Siri điều khiển từ xa qua mạng WAN Do vấn đề 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 hiện tại sẽ bị vô hiệu hóa Tuy nhiên, chúng ta có thể khắc phục điều này bằng cách sử dụng đường hầm Proxy, giúp người dùng có thể điều khiển bằng giọng nói ở mọi nơi.
Sức mạnh của Raspberry Pi chủ yếu đến từ cộng đồng người dùng năng độ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 có thể dễ dàng nâng cấp theo nhu cầu của người sử dụng, cho phép nhiều Raspberry Pi hoạt động song song trong mỗi ngôi nhà, với mỗi thiết bị đảm nhiệm các chức năng riêng biệt.
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 để 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
I don't know!
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