ĐỒ ÁN TỐT NGHIỆP ĐỒ ÁN TỐT NGHIỆP TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG ~~~~~ ~~~~~ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài XÂY DỰNG MÔ HÌNH NHÀ THÔNG MINH Sinh viên thực hiện SHSV Lớp Khóa Nguyễn Trung Hiếu 20159832 CN ĐTTT 02 K58 Đỗ Đức Anh 20159828 CN ĐTTT 01 K58 Giảng viên hướng dẫn TH S Đinh Thị Nhung Cán bộ phản biện Hà Nội, 092017 LỜI NÓI ĐẦU Từ xưa đến nay ,nhân loại đã không ngừng học hỏi, tìm tòi và nghiên cứu để tạo ra những sản phẩm nhằm phục vụ cho sinh hoạt hằng ngày, nh.
TÌM HIỂU LÝ THUYẾT
Mô hình nhà thông minh?
2.1.1 Nhà thông minh là gì?
Nhà thông minh, hay còn gọi là "Smart Home", là một ngôi nhà được trang bị hệ thống tự động tiên tiến cho phép điều khiển các yếu tố như đèn chiếu sáng, nhiệt độ, an ninh, và rèm cửa Hệ thống này không chỉ mang lại sự tiện nghi và an toàn cho cuộc sống hàng ngày, mà còn giúp tối ưu hóa việc sử dụng các nguồn tài nguyên.
Theo wiseGeek, một ngôi nhà thông minh được định nghĩa là nơi có hệ thống máy tính có khả năng theo dõi và quản lý nhiều khía cạnh của cuộc sống hàng ngày.
Một trong những ứng dụng nổi bật của nhà thông minh là hệ thống kiểm soát chiếu sáng, giúp tiết kiệm điện và tạo không gian phù hợp, như ánh sáng nhẹ cho bữa tiệc tối Ngoài ra, hệ thống còn có khả năng điều chỉnh rèm cửa, kiểm soát nhiệt độ, giám sát qua camera, tự động khóa cửa và phòng ngừa trộm, mang lại sự tiện nghi và an toàn cho người dùng.
Nhà thông minh không chỉ đơn thuần là việc tự động hóa mà còn bao gồm nhiều ứng dụng sáng tạo như hệ thống điều khiển giải trí tại gia với loa công suất khác nhau, hệ thống điện thoại và liên lạc nội bộ, cũng như hệ thống tưới nước Những chức năng này được thực hiện thông qua các thiết bị kết nối trong nhà, cho phép hệ thống máy tính trung tâm theo dõi trạng thái và đưa ra quyết định điều khiển phù hợp.
Nhà thông minh, một khái niệm đã xuất hiện trong các tác phẩm khoa học viễn tưởng từ lâu, chỉ trở thành hiện thực từ thế kỷ 20 nhờ vào sự phát triển mạnh mẽ của điện và công nghệ thông tin.
2.1.2 Các thành phần của nhà thông minh.
Hệ thống nhà thông minh bao gồm các cảm biến và thiết bị chấp hành, cho phép các bộ điều khiển và máy chủ theo dõi trạng thái bên trong ngôi nhà Nhờ vào hệ thống cảm biến, các thiết bị có thể hoạt động hiệu quả để đảm bảo môi trường sống tốt nhất cho con người.
Hình 2 1 Các thành phần cơ bản của hệ thống nhà thông minh
Hệ thống giám sát dùng cảm biến nhiệt độ, độ ẩm DHT11
Hệ thống giám sát bao gồm các thiết bị quản lý như sensor và camera, truyền tải thông tin về Cloud để lưu trữ các thông số như nhiệt độ, độ ẩm, ánh sáng, mưa và gió Nhờ đó, người dùng có thể dễ dàng quan sát và hiểu rõ hơn về điều kiện của địa điểm cần theo dõi.
Cảm biến DHT11 là một trong những cảm biến nhiệt độ và độ ẩm phổ biến nhờ vào chi phí thấp và khả năng thu thập dữ liệu dễ dàng qua giao tiếp 1 wire Với bộ tiền xử lý tín hiệu tích hợp, cảm biến này cung cấp dữ liệu chính xác mà không cần qua bất kỳ tính toán phức tạp nào.
Hình 2 2 Cảm biến nhiệt độ, độ ẩm DHT11
Điện áp hoạt động: 3-5.5V DC
Sai số nhiệt độ: ± 2 oC
Nguyên lý hoạt động: để giao tiếp được với DHT11 cần thực hiện theo hai bước:
Để bắt đầu giao tiếp với cảm biến DHT11, MCU cần gửi tín hiệu Start bằng cách thiết lập chân DATA thành output và kéo chân này xuống 0 trong hơn 18ms Khi đó, DHT11 nhận biết yêu cầu đo nhiệt độ và độ ẩm Sau khi MCU đưa chân DATA lên 1 và thiết lập lại thành đầu vào, DHT11 sẽ kéo chân DATA xuống mức thấp sau khoảng 20-40us Nếu sau 40ms mà chân DATA không được kéo xuống thấp, có nghĩa là không thể giao tiếp với DHT11 Tiếp theo, chân DATA sẽ ở mức thấp trong 80us và sau đó được kéo lên mức cao trong 80us, hoàn tất quá trình giao tiếp với DHT11.
Bước 2: Đọc giá trị từ cảm biến DHT11, bao gồm 5 byte dữ liệu: Byte 1 chứa giá trị phần nguyên của độ ẩm (%), Byte 2 là giá trị phần thập phân của độ ẩm (%), Byte 3 là giá trị phần nguyên của nhiệt độ (°C), Byte 4 là giá trị phần thập phân của nhiệt độ (°C), và Byte 5 dùng để kiểm tra tổng Nếu Byte 5 bằng tổng của Byte 1, Byte 2, Byte 3 và Byte 4, thì giá trị đo được coi là chính xác.
Hệ thống điều khiển
Tích hợp mạch điện tử với MCU là Esp8266 để thực hiện các công viêc cần làm.
Esp8266 là một SOC wifi do công ty Espressif Systems của Trung Quốc phát triển, nổi bật với kích thước nhỏ gọn và giá thành rẻ Thiết bị này tích hợp đầy đủ các tính năng internet và có sẵn lõi vi xử lý, cho phép lập trình trực tiếp mà không cần thêm vi xử lý ngoài.
Hình 2 3 Module wifi Esp8266 2.3.2 Thông số kỹ thuật
32-bit RISC CPU: Tensilica LX106 hoạt động với 80MHz
64 Kb instruction RAM, 96 Kb data RAM
WiFi 2.4 GHz, hỗ trợ WPA/WPA2
Hỗ trợ SPI, I2C, I2S, UART, ADC
Chuẩn điện áp hoạt động: 3.3V DC
Dải nhiệt độ hoạt động: -40 o C - 125 o C
Hình 2 4 Sơ đồ chân của Esp8266 2.3.3 Giao tiếp với Esp8266 Để giao tiếp giữa máy tính với Esp8266 cần chuẩn bị:
Bảng 2 1 Sơ đồ nối chân giữa Esp8266 và PL2303
Sử dụng tập lệnh AT Mở Serial trên Arduino IDE lên và chọn tốc độ Baud phù hợp Một vài lệnh AT cơ bản và quan trọng:
Bảng 2 2 Một số lệnh AT cơ bản của Esp8266
Cú pháp Mục đích Ghi chú
AT Kiểm tra lệnh, luôn trả về
AT+GMR Truy vấn phiên bản firmware
AT+CWMODE= Cài đặt chế độ 1 – station, 2 – access point, 3 – both
AT+CIPMUX Cài đặt số lượng kết nối 0 – 1 kênh, 1 – nhiều kênh AT+CWJAP=, Kết nối tới một mạng wifi AT+CWJAP=”bkfet”,”
AT+CWSAP=,,,
Cài đặt các thông số cho Access Point
Chan: channel Enc: encryption (0- Open, 1-WEP,2- WPA_PSK,3- WPA2_PSK, 4- WPA_WPA2_PSK) AT+CIFSR Xem địa chỉ IP của module
AT+CWQAP Đóng kết nối tới một Access
Ngoài những lệnh AT cơ bản, còn rất nhiều lệnh AT khác có sẵn Việc sử dụng tập lệnh AT giúp người dùng dễ dàng tương tác với module Esp8266.
Bộ giao thức truyền thông TCP/IP
2.4.1 Giới thiệu về TCP/IP
Bộ giao thức TCP/IP, phát triển từ mạng ARPANET và Internet, đóng vai trò quan trọng như giao thức mạng và vận chuyển trên Internet Trong mô hình OSI, TCP hoạt động ở tầng vận chuyển, trong khi IP thuộc tầng mạng.
Là giao thức hướng kết nối nghĩa là khi muốn truyền dữ liệu thì phải thiết lập kết nối trước.
Hỗ trợ cơ chế full-duplex ( truyền và nhận dữ liệu cùng một lúc)
Cung cấp cơ chế báo nhận dữ liệu giữa A và B, trong đó B sẽ gửi gói tin xác nhận cho A khi nhận được dữ liệu Nếu A không nhận được tin xác nhận từ B, quá trình sẽ được xem xét lại để đảm bảo tính toàn vẹn của dữ liệu.
A sẽ gửi cho đến khi B báo nhận thì thôi.
Phục hồi dữ liệu bị mất trên đường truyền (A gửi B mà không thấy xác nhận sẽ gửi lại).
Là giao thức với độ tin cậy cao nên TCP Header rất phức tạp.
Hình 2 5 Cấu trúc gói tin TCP Header
32 bit sequence number: dùng để đánh số thứ tự gói tin (từ số sequence nó sẽ tính ra được số byte đã được truyền).
32 bit acknowledgement number: dùng để báo nó đã nhận được gói tin nào và nó mong nhận được byte mang số thứ tự nào tiếp theo.
4 bit header length: cho biết toàn bộ header dài bao nhiêu Word(1 Word
Phần kí tự (trước 16 bit Window Size): là các bit dùng để điều khiển cờ (flag) ACK, cờ Sequence …
16 bit urgent pointer: được sử dụng trong trường hợp cần ưu tiên dữ liệu (kết hợp với bit điều khiển URG ở trên).
Là một giao thức kiểu không liên kết có nghĩa là không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu.
Mỗi giao diện trong 1 máy có hỗ trợ giao thức IP đều phải được gán 1 địa chỉ IP.
Địa chỉ IP gồm hai phần: địa chỉ mạng và địa chỉ máy.
Địa chỉ IP được chia thành 5 lớp: A, B, C, D, và E Trong đó, các lớp A, B, và C chứa những địa chỉ có thể gán được cho các thiết bị Lớp D được sử dụng cho kỹ thuật multicasting, trong khi lớp E được dành cho các ứng dụng tiềm năng trong tương lai.
Xét cấu trúc của các lớp địa chỉ có thể gán được là lớp A, lớp B, lớp C
110xxxxx xxxxxxxx xxxxx xxxxxxxx Đơn vị dữ liệu dùng trong IP được gọi là gói tin (datagram), có khuôn dạng như sau:
Phiên bản (4 bits) chỉ định phiên bản hiện tại của giao thức IP đang được cài đặt Việc có chỉ số phiên bản này cho phép các hệ thống sử dụng phiên bản cũ có thể trao đổi thông tin với các hệ thống sử dụng phiên bản mới.
IHL (4 bits): chỉ độ dài phần đầu của gói tin datagram, tính theo đơn vị từ
Trường này là bắt buộc vì phần đầu IP có độ dài thay đổi, với độ dài tối thiểu là 5 từ (20 bytes) và tối đa là 15 từ (60 bytes).
Dịch vụ 8 bits là một thông số quan trọng giúp mạng nhận biết yêu cầu của gói tin, bao gồm các yếu tố như ưu tiên, thời gian chậm trễ, năng suất truyền và độ tin cậy Những thông số này đảm bảo rằng gói tin được xử lý đúng cách theo nhu cầu cụ thể của dịch vụ.
Total Length (16 bits): chỉ độ dài toàn bộ gói tin, tối đa 65536 bytes.
Identification (16 bits): tham số này dùng để định danh duy nhất cho một datagram trong khoảng thời gian nó vẫn còn trên liên mạng.
Flags (3 bits): thể hiện sự phân đoạn (fragment) của datagram.
The fragment offset, which consists of 13 bits, indicates the position of a fragment within a datagram measured in 8-byte units This means that each packet's data, except for the last packet, must contain a data segment whose length is a multiple of 8 bytes.
Thời gian tồn tại (TTL) được quy định bởi 8 bit, xác định thời gian sống của gói tin trong mạng tính bằng giây Điều này nhằm ngăn chặn tình trạng gói tin bị lặp vô hạn, đảm bảo hiệu quả hoạt động của mạng.
Protocol (8 bits): chỉ giao thức tầng trên kế tiếp sẽ nhận vùng dữ liệu ở trạm đích (hiện tại thường là TCP hoặc UDP được cài đặt trên IP).
Source address (32 bits): địa chỉ của máy nguồn.
Destination address (32 bits): địa chỉ của máy đích.
Options (độ dài thay đổi): khai báo các lựa chọn do người gửi yêu cầu.
Padding (độ dài thay đổi): vùng đệm, được dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bits.
Data (độ dài thay đổi): vùng dữ liệu có độ dài là bội của 8 bits, tối đa là
Hiện nay, hầu hết các máy tính trong mạng đều sử dụng giao thức TCP/IP để kết nối qua nhiều hệ thống mạng khác nhau Giao thức TCP/IP là một tập hợp các giao thức cho phép các hệ thống mạng tương tác và truyền thông tin với nhau một cách hiệu quả.
2.4.2 Kiến trúc của TCP/IP
TCP/IP được xem là giản lược của mô hình tham chiếu OSI với bốn tầng như sau:
Hình 2 7 Các tầng của TCP/IP
Tầng liên kết mạng (Network Access Layer) là tầng thấp nhất trong mô hình TCP/IP, bao gồm các thiết bị giao tiếp mạng và chương trình cung cấp thông tin cần thiết cho hoạt động của chúng Tầng này đảm bảo việc truy cập vào đường truyền vật lý thông qua các thiết bị giao tiếp mạng.
Tầng Internet (Internet Layer): còn gọi là tầng mạng, xử lý qua trình truyền gói tin trên mạng Các giao thức của tầng này bao gồm: IP, ICMP,IGMP.
Tầng giao vận, hay còn gọi là Host-to-Host Transport Layer, đảm nhiệm việc quản lý luồng dữ liệu giữa hai trạm thực hiện các ứng dụng của tầng trên Hai giao thức chính được sử dụng trong tầng này là TCP và UDP.
Tầng ứng dụng (Application Layer) là tầng cao nhất trong mô hình TCP/IP, bao gồm các tiến trình và ứng dụng cho phép người dùng truy cập vào mạng một cách hiệu quả.
2.4.3 So sánh giữa TCP/IP và OSI
Hình 2 8 Sự khác nhau ở các tầng giữa TCP/IP và OSI
Ta thấy tại các tầng khác nhau dữ liệu được mang những thuật ngữ khác nhau.
Tầng ứng dụng (Application Layer) trong mô hình TCP/IP bao gồm luôn cả 3 tầng trên của mô hình OSI.
Tầng liên kết mạng (Network Access Layer) bao gồm 2 tầng dưới cùng của mô hình OSI.
Tầng giao vận trong mô hình TCP/IP không đảm bảo độ tin cậy trong việc truyền tin như tầng giao vận của mô hình OSI, dẫn đến việc TCP cần phải có các cơ chế để quản lý và đảm bảo tính toàn vẹn của dữ liệu.
IP cho phép truyền tin cậy TCP hoặc không tin cậy UDP.
Kết luận
Trong chương 2 của báo cáo, chúng tôi trình bày các cơ sở lý thuyết quan trọng như Công nghệ IoT, hệ thống giám sát và hệ thống điều khiển Những lý thuyết này không chỉ là nền tảng vững chắc cho đề tài mà còn đã được nghiên cứu kỹ lưỡng, phục vụ cho quá trình thực hiện Dựa trên các lý thuyết này, chúng tôi sẽ tiến hành xây dựng và thiết kế hệ thống phù hợp với yêu cầu đã đề ra.
TỔNG QUAN HỆ THỐNG
IoT Endpoint Device
Hình 3 2 Minh họa mô hình mạng không dây
Wi-Fi, viết tắt của Wireless Fidelity hay mạng 802.11, là một hệ thống mạng không dây sử dụng sóng vô tuyến, tương tự như điện thoại di động, truyền hình và radio Hệ thống này đã được triển khai tại nhiều địa điểm như sân bay, quán café, thư viện và khách sạn, cho phép người dùng truy cập Internet mà không cần cáp nối Ngoài các điểm kết nối công cộng, Wi-Fi cũng có thể được thiết lập tại nhà riêng, mang lại sự tiện lợi cho người sử dụng.
Sự tiện lợi của công nghệ mạng cho phép người dùng dễ dàng truy cập tài nguyên từ bất kỳ đâu trong khu vực triển khai, như nhà hoặc văn phòng Điều này trở nên quan trọng hơn bao giờ hết với sự gia tăng số lượng thiết bị kết nối và nhu cầu làm việc linh hoạt.
Khả năng di động: người dùng có thể duy trì kết nối mạng trong một phạm vi nhất định khi họ di chuyển từ nơi này sang nơi khác.
Triển khai mạng không dây rất đơn giản, chỉ cần một access point để thiết lập ban đầu So với mạng có dây, việc sử dụng cáp không chỉ tốn kém hơn mà còn có thể gặp nhiều khó khăn trong quá trình lắp đặt.
Khả năng mở rộng: có thể đáp ứng tức thì khi gia tăng số lượng người dùng Với hệ thống mạng cáp phải gắn thêm cáp.
Phạm vi của một mạng không dây thông thường thường chỉ đủ cho một căn nhà, nhưng không thể đáp ứng nhu cầu sử dụng trong các tòa nhà lớn.
Độ tin cậy của hệ thống truyền thông sử dụng sóng vô tuyến có thể bị ảnh hưởng bởi nhiễu và suy giảm tín hiệu từ các thiết bị khác.
Tốc độ: tốc độ của mạng không dây (1-125Mbs) là nhỏ hơn rất nhiều so với mạng sử dụng cáp (100Mpbs đến hàng Gpbs).
3.1.1.2 Các chuẩn wifi thông dụng
Wifi được phát triển bởi tổ chức IEEE, với tiêu chuẩn IEEE 802.11 để định hình thông số kỹ thuật của mạng không dây Chuẩn kết nối này bao gồm các phiên bản nhỏ như a, b, g, n, và ac, thường được mô tả chi tiết trong cấu hình của các thiết bị di động.
3.1.1.3 Bảo mật trong mạng không dây a Bảo mật bằng WEP
Hình 3 3 Bảo mật bằng WEP
Wired Equivalent Privacy (WEP) là thuật toán bảo mật WiFi phổ biến nhất toàn cầu, và là chuẩn mã hóa đầu tiên được tích hợp trong nhiều bộ định tuyến.
WEP, được phê chuẩn vào tháng 9/1999 như một phương thức bảo mật tiêu chuẩn cho WiFi, đã gặp phải nhiều vấn đề về độ mạnh mẽ ngay từ đầu Phiên bản đầu tiên chỉ sử dụng mã hóa 64 bit do lệnh cấm xuất khẩu công nghệ mã hóa của chính phủ Mỹ Sau khi lệnh cấm được dỡ bỏ, mã hóa 128 bit trở nên phổ biến hơn, mặc dù mã hóa WEP 256 bit sau này cũng được giới thiệu, nhưng 128 bit vẫn là chuẩn được áp dụng rộng rãi nhất.
Mặc dù đã có sự cải tiến trong các thuật toán và kích thước ký tự, chuẩn WEP vẫn gặp nhiều lỗ hổng bảo mật nghiêm trọng theo thời gian, khiến nó dễ bị tấn công khi sức mạnh máy tính ngày càng gia tăng Năm 2001, nhiều lỗ hổng này đã được phát hiện và công bố trên Internet, làm tăng mối lo ngại về độ an toàn của chuẩn WEP.
Năm 2005, FBI đã công khai trình diễn khả năng bẻ khóa WEP chỉ trong vài phút bằng phần mềm miễn phí, nhằm nâng cao nhận thức về những nguy hiểm liên quan đến việc sử dụng WEP.
Mặc dù đã có nhiều nỗ lực cải tiến để nâng cao hệ thống WEP, nhưng chuẩn này vẫn để người dùng gặp rủi ro lớn Tất cả các hệ thống sử dụng WEP nên được nâng cấp hoặc thay thế Năm 2004, tổ chức Liên minh WiFi đã chính thức "về hưu" chuẩn WEP Để đảm bảo an toàn, người dùng nên chuyển sang sử dụng bảo mật WPA.
Hình 3 4 Sơ đồ mã hóa bằng WPA
WiFi Protected Access (WPA) là một phương thức bảo mật được Liên minh WiFi giới thiệu nhằm thay thế WEP, khắc phục những nhược điểm nghiêm trọng của chuẩn cũ WPA chính thức được áp dụng vào năm 2003, một năm trước khi WEP bị loại bỏ hoàn toàn Phiên bản phổ biến nhất của WPA là WPA-PSK, sử dụng các ký tự đặc biệt để tăng cường bảo mật.
256 bit, tân tiến hơn rất nhiều so với kí tự 64 bit và 128 bit có trong hệ thống WEP.
Một trong những cải tiến quan trọng của WPA là khả năng kiểm tra tính toàn vẹn của gói tin, giúp phát hiện việc thu thập hoặc thay đổi gói tin giữa điểm truy cập và thiết bị WiFi Giao thức khóa toàn vẹn thời gian (TKIP) được sử dụng với hệ thống kí tự cho từng gói, mang lại mức độ an toàn cao hơn so với kí tự tĩnh của WEP Tuy nhiên, TKIP sau đó đã được thay thế bởi Advanced Encryption Standard (AES).
WPA, tương tự như WEP, đã trải qua nhiều cuộc trình diễn công khai để chứng minh những điểm yếu của nó trước các cuộc tấn công Phương pháp tấn công WPA không nhằm vào thuật toán trực tiếp mà tập trung vào hệ thống hỗ trợ WiFi Protected Setup (WPS), được thiết kế để dễ dàng kết nối thiết bị với các điểm truy cập Để tăng cường bảo mật, WPA2 đã được phát triển, cung cấp một giải pháp an toàn hơn cho người dùng.
Vào năm 2006, WPA2 đã chính thức thay thế WPA, mang đến nhiều cải tiến nổi bật, trong đó có sự bắt buộc sử dụng mã hóa AES thay cho TKIP Mặc dù vậy, TKIP vẫn được duy trì trong WPA2 như một phương án dự phòng nhằm đảm bảo khả năng tương tác với các thiết bị sử dụng WPA.
Tuy vẫn còn lỗ hổng bảo mật từ WPA để lại nhưng WPA2 vẫn là cách thức bảo mật wifi phổ biến nhất hiện nay.
Khả năng truy cập mạng internet không dây không chỉ là tiện ích duy nhất của wifi mà nó còn có các ứng dụng khác như:
Điều khiển các thiết bị từ xa
Chia sẻ dữ liệu trên các máy tính
Đồng bộ hóa dữ liệu
Ứng dụng phát triển cho các nghành ký thuật…
IoT Gateway Device
The Raspberry Pi is an affordable, compact computer model developed by the Raspberry Pi Foundation, with support from the University of Cambridge Computer Laboratory and Broadcom.
Dự án Raspberry Pi được thiết kế nhằm tạo ra một thiết bị dễ sử dụng cho mọi lứa tuổi, giúp trẻ em học lập trình và làm quen với điện tử cũng như máy tính Bên cạnh đó, Raspberry Pi còn có khả năng thực hiện các tác vụ như lướt web, xem video chất lượng cao, tạo trình chiếu văn bản và thậm chí chơi game, tương tự như một chiếc máy tính thông thường.
3.2.1.2 Thông số phần cứng của kit Raspberry Pi
Raspberry Pi hiện có bốn phiên bản phổ biến: Pi 1, Pi 2, Pi 3 và Pi Zero, với Pi Zero là phiên bản giá rẻ mới nhất Trong báo cáo này, chúng tôi sẽ tập trung chủ yếu vào phiên bản Raspberry Pi 3.
Cấu hình của Raspberry Pi 3:
Bảng 3 1 Cấu hình của Raspberry Pi 3
CPU Bộ xử lý Broadcom BCM2837 quad-core ARM Cortex A53
GPU Dual core Videocore IV Multimedia co-processor
Bộ nhớ trong Sử dụng microSD
Cổng audio Analog qua jack 3,5 mm, kỹ thuật số qua cổng HDMI
Nguồn điện 5V thông qua cổng MicroUSB hoặc GPIO, với dòng điện 1.5A
Kích thước 85.60mm x 56.5mm x 17mm
Để sử dụng Raspberry Pi như một máy tính thông thường, bạn chỉ cần chuẩn bị một bàn phím, một màn hình có cổng HDMI/DVI/VGA, một nguồn USB 5V và một dây micro USB.
Nguồn cấp cho Raspberry Pi 3 là 1.5A, nhưng chỉ đủ để hoạt động của Raspberry Pi Để sử dụng thêm các thiết bị như chuột, bàn phím, wifi và bluetooth, cần cung cấp nguồn tối thiểu 2.5A.
Ngoài ra Raspberry Pi còn có 40 chân vào ra với mục đích cơ bản GPIO,kèm theo các giao tiếp: I2C, SPI, UART, PWM và CLK.
Hình 3 8 Sơ đồ chân IO trên Kit Raspberry Pi 3
3.2.1.3 Hệ điều hành và phần mềm
Raspberry Pi 3 hỗ trợ nhiều hệ điều hành Linux, bao gồm Raspbian, Pidora, OpenELEC, Raspbmc và UbuntuMATE Ngoài ra, Windows cũng đã phát hành phiên bản Windows 10 IoT dành riêng cho Raspberry Pi.
Raspberry Pi 2 hỗ trợ nhiều hệ điều hành phổ biến, trong đó Raspbian là một lựa chọn hàng đầu Các phiên bản khác cũng được giới thiệu chi tiết trên trang chủ của Raspberry Pi.
Hình 3 9 Hệ điều hành raspbian
Raspbian là hệ điều hành dựa trên Debian (Linux), được ra mắt lần đầu năm 2012 và hiện đang được cải tiến liên tục Đây là hệ điều hành được Raspberry Pi Foundation khuyến nghị sử dụng và có cộng đồng người dùng lớn nhất toàn cầu.
Raspbian đi kèm với raspi-config, một menu tùy chọn giúp thiết lập các chức năng của Raspberry Pi, bao gồm điều khiển từ xa qua SSH, ép xung clock và bật tắt mô-đun camera.
Nếu bạn là người mới bắt đầu với các dự án Raspberry Pi và cần sự hỗ trợ từ cộng đồng, Raspbian là lựa chọn lý tưởng Trong dự án này, Raspbian được chọn làm hệ điều hành chính Bên cạnh đó, Ubuntu Mate cũng là một sự lựa chọn đáng cân nhắc.
Hình 3 10 Hệ điều hành Ubuntu MATE
Ubuntu MATE là một bản phân phối chính thức của hệ điều hành Ubuntu, cung cấp giao diện Desktop thân thiện và biến Raspberry Pi thành một máy tính để bàn hấp dẫn Hệ điều hành này đi kèm với nhiều phần mềm hữu ích được khuyên dùng, bao gồm ứng dụng xem ảnh Shotwell, trình email Mozilla Thunderbird, trình duyệt web Mozilla Firefox, phần mềm văn phòng LibreOffice, phần mềm nhắn tin Pidgin, và trình nghe nhạc Rhythmbox, cũng như Transmission để tải Torrent.
Hình 3 11 Hệ điều hành Window 10
Windows 10 là HĐH vốn được Microsoft phát triển đặc biệt nhằm mở rộng sự tương thích giữa nhiều nền tảng phần cứng khác nhau, từ PC, laptop, máy tính bảng, smartphone, máy chơi game Xbox cho đến cả những thiết bị IoT Lập trình ứng dụng cho Windows 10 IoT bằng Visual studio 2015. d Raspbmc (Một phiên bản được xây dựng từ XBMC)
XBMC là một phần mềm mã nguồn mở tương thích với nhiều hệ điều hành như Linux, OS X, Windows, iOS và Android Đây là một trung tâm giải trí lý tưởng, cho phép người dùng phát video, nhạc và hình ảnh từ ổ cứng gắn ngoài với hỗ trợ cho hầu hết các định dạng Ngoài ra, XBMC còn cho phép xem phim và nghe nhạc trực tuyến thông qua các add-on được cài đặt từ bên ngoài.
IoT Cloud & IoT Application
Khi một hệ sinh thái mới hình thành, hạ tầng là yếu tố tiên quyết, đặc biệt trong lĩnh vực máy tính cá nhân, nơi hệ điều hành phải được phát triển trước khi các ứng dụng bùng nổ Trong hệ thống IoT, việc giám sát môi trường và truyền tải dữ liệu liên tục đòi hỏi các giải pháp và kết nối tiết kiệm năng lượng Điều này thể hiện rõ qua các công ty cung cấp hạ tầng, nền tảng và thiết bị, đóng vai trò trung tâm trong hệ thống IoT hiện tại, giúp kết nối các thiết bị với hiệu suất năng lượng tối ưu.
Hiện nay, thiết bị di động thông minh, đặc biệt là smartphone và máy tính bảng chạy hệ điều hành Android, chiếm đến 80% thị phần Vì vậy, việc phát triển ứng dụng trên nền tảng Android mang lại nhiều cơ hội Với tính ứng dụng cao và khả năng phổ cập dễ dàng, nhóm đã quyết định xây dựng một ứng dụng dành cho các thiết bị sử dụng hệ điều hành Android, và dự kiến sẽ mở rộng sang các hệ điều hành khác như iOS trong tương lai.
3.3.1 Giới thiệu chung về hệ điều hành Android
Android là hệ điều hành di động dựa trên nền tảng Linux 2.6, được phát triển bởi Tổng công ty Android với sự hỗ trợ tài chính từ Google, và sau đó được Google mua lại vào năm 2005 Ra mắt vào năm 2007, Android đi kèm với việc thành lập Liên minh thiết bị cầm tay mở, nhằm thúc đẩy các tiêu chuẩn mở cho thiết bị di động Chiếc điện thoại đầu tiên chạy Android đã được bán vào tháng 10 năm 2008.
Android là một hệ điều hành mã nguồn mở do Google phát hành theo giấy phép Apache, cho phép các nhà phát triển tự do điều chỉnh và phân phối Cộng đồng lập trình viên lớn mạnh đã tạo ra hàng triệu ứng dụng, với khoảng 700.000 ứng dụng vào tháng 10 năm 2012 và ước tính 25 tỷ lượt tải từ Google Play Android đã trải qua nhiều phiên bản, với tên gọi theo thứ tự ABC, từ Aestro đến Nougat, tất cả đều mang tên các món tráng miệng hấp dẫn.
Các nhà phát triển ứng dụng có thể yên tâm phát triển trên nền tảng Android, nhờ vào sự phổ biến của hệ điều hành này Điều này giúp ứng dụng của họ có khả năng chạy trên nhiều dòng điện thoại từ các hãng khác nhau Các ứng dụng được viết bằng ngôn ngữ Java kết hợp với XML, mang lại tính khả chuyển cao.
Một số hãng sản xuất điện thoại android nôi tiếng:
SAMSUNG: các dòng máy Galaxy S, Galaxy Tab, Galxy Note…
LG: các dòng máy LG G, LG k…
SONY: các dòng máy Xperia…
HTC: các dòng máy HTC One, HTC Desire…
Và còn rất nhiều hãng sản xuất khác cũng sử dụng hệ điều hành android cho sản phẩm của mình.
3.3.2 Kiến trúc hệ điều hành Android
Hình 3 12 Các tầng của hệ điều hành Android
Hệ điều hành Android được xây dựng trên nền tảng hạt nhân Linux, cụ thể là phiên bản 2.6, cung cấp các chức năng hệ thống cơ bản như quản lý tiến trình, bộ nhớ, giao tiếp phần cứng và thực hiện bảo mật.
Dựa trên nền tảng Linux, hệ điều hành này đã trải qua nhiều cải tiến và điều chỉnh để tối ưu hóa cho các thiết bị cầm tay, đáp ứng các hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình và nhu cầu kết nối mạng không dây.
Tầng này chứa nhiều thư viện được viết bằng C/C++, phục vụ cho việc phát triển phần mềm Các thư viện này được phân loại thành một số nhóm khác nhau để người dùng dễ dàng truy cập và sử dụng.
Thư viện hệ thống: chỉ được sử dụng bởi hệ điều hành.
Thư viện media: hỗ trợ việc phát và ghi các loại định dạng hình ảnh, âm thanh, video.
Thư viện web là thành phần thiết yếu cho việc hiển thị nội dung trên internet, được sử dụng trong việc phát triển trình duyệt web và cho phép các ứng dụng khác tích hợp vào Nó rất mạnh mẽ, hỗ trợ nhiều công nghệ tiên tiến như HTML5, JavaScript, CSS và AJAX.
Thư viện SQLite: hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.
Tầng này bao gồm các thư viện cho phép chương trình viết bằng ngôn ngữ Java hoạt động hiệu quả Runtime được chia thành hai phần chính giống như mô hình chạy Java trên máy tính thông thường Phần đầu tiên là các thư viện lõi, bao gồm các lớp như Java IO, Collection và File Access Phần thứ hai là máy ảo Java, đảm bảo thực thi mã nguồn Java một cách chính xác.
Tầng này phát triển bộ công cụ với các phần tử cao cấp, giúp lập trình viên nhanh chóng xây dựng ứng dụng Được viết bằng Java, nền tảng này cho phép sử dụng chung để tiết kiệm tài nguyên Đây là một nền tảng mở, mang lại nhiều lợi ích cho người dùng.
Các hãng điện thoại có khả năng tùy biến hệ điều hành Android để phù hợp với cấu hình sản phẩm của họ, đồng thời tạo ra nhiều mẫu mã và kiểu dáng hấp dẫn theo thị hiếu người dùng Do đó, mặc dù cùng sử dụng nền tảng Android, mỗi hãng điện thoại lại sở hữu những đặc điểm riêng biệt.
Các lập trình viên có thể tận dụng các API ở tầng trên mà không cần hiểu rõ cấu trúc bên dưới, điều này giúp họ tự do sáng tạo và chỉ cần tập trung vào nội dung công việc của mình.
Tầng chứa một số dịch vụ quan trọng:
Activity Manager − Quản lý tất cả các phần của vòng đời ứng dụng và các hoạt động ngăn xếp.
Content Providers − Cho phép ứng dụng phát hành và chia sẻ dữ liệu với ứng dụng khác.
Resource Manager − Cho phép truy cập tới những tài nguyên không phải là mã nguồn như chuỗi, cài đặt màu, bố cục giao diện.
Notifications Manager − Giúp ứng dụng hiển thị thông báo và nhắc nhở người dùng.
View System − Một tập hợp mở rộng giúp tạo giao diện người dùng.
3.3.2.5 Tầng Application Đây là tầng giao tiếp với người sử dụng, bao gồm các ứng dụng như: danh bạ, tin nhắn, trò chơi …
3.3.3 Hệ thống tệp tin trong Android
3.3.3.1 Giới thiệu chung về hệ thống tệp tin trong Android
Hệ thống tệp tin trên Android được phát triển dựa trên nhân Linux, vì vậy nó có cấu trúc tổ chức và quyền hạn của người sử dụng tương tự như hệ thống tệp tin trên Linux.
Trong hệ điều hành Android, các tệp tin được sắp xếp theo một cấu trúc thư mục phân cấp, cho phép người dùng truy cập thông qua tên và đường dẫn của tệp Người dùng có thể thực hiện các thao tác như sao chép, di chuyển và xóa tệp tin một cách dễ dàng.
THIẾT KẾ HỆ THỐNG
Khối nguồn
Hình 4 2 Sơ đồ nguyên lý khối nguồn
Sử dụng bộ nguồn Hi – link 5V, IC LM1117
Có chức năng cung cấp nguồn cho toàn bộ mạch
Khối cảm biến
Sử dụng cảm biến DHT11/DHT22
Các cảm biến khác sẽ nối jump ra ngoài
Khối xử lý trung tâm
Hình 4 4 Sơ đồ nguyên lý khối xử lý trung tâm
Xử lý toàn bộ các hoạt động chức năng của hệ thống
Khối giao tiếp và hiển thị
Hiển thị: Giao diện của web server trên PC hoặc Smart phone.
Người dùng có khả năng theo dõi thông số thời gian thực của hệ thống thông qua web server, từ đó đưa ra yêu cầu cho hệ thống giảm độ sáng hoặc tắt đèn nhiệt độ.
Khối cơ cấu chấp hành
Hình 4 5 Sơ đồ nguyên lý khối cơ cấu chấp hành
Sử dụng để điều khiển thiết bị trong nhà.
Sơ đồ nguyên lý toàn mạch
Hình 4 6 Sơ đồ nguyên lý toàn mạch
Sơ đồ mạch in lớp bottom
Hình 4 8 Sơ đồ mạch in lớp bottom
Mạch thực tế đã hoàn thiện
Hình 4 10 Hình ảnh mạch thực tế
Thiết kế phầm mềm
Android Studio là một IDE được google xây dựng và cung cấp miễn phí cho các nhà phát triển ứng dụng Android.
Bộ công cụ Android Studio cung cấp các trình soạn thảo chuyên biệt cho hầu hết các file cấu hình và Layout của ứng dụng Android dưới định dạng XML Đặc biệt, với các file Layout giao diện, Android Studio cho phép lập trình viên dễ dàng chuyển đổi giữa chế độ chỉnh sửa nội dung XML và chế độ chỉnh sửa giao diện.
Ngoài ra, Android Studio còn tích hợp bên trong những tiện ích hỗ trợ phát triển ứng dụng như sau:
Bộ xây dựng ứng dụng Gradle với nhiều cấu hình linh động.
Trình biên soạn Layout GUI cho ứng dụng Android cung cấp sự phong phú và tiện lợi, cho phép người dùng dễ dàng tạo giao diện màn hình bằng cách kéo thả các thành phần mẫu có sẵn Người dùng cũng có khả năng tùy chỉnh giao diện themes, bao gồm kích thước, màu sắc và nhiều yếu tố khác theo ý muốn.
Bộ code mẫu giúp chúng ta xây dựng các chức năng phổ biến của các ứng dụng.
Bộ tích hợp hỗ trợ phát triển ứng dụng Android dễ dàng với các dịch vụ cùa nền tảng đám mây của Google.
Tích hợp lint là một ứng dụng hỗ trợ các nhà phát triển kiểm soát hiệu suất, tính khả dụng và khả năng tương thích của các phiên bản API Nó giúp phát hiện những vấn đề tiềm ẩn có thể xảy ra trong quá trình Runtime, từ đó nâng cao chất lượng và độ tin cậy của ứng dụng.
Cho phép xây dựng ứng dụng tùy biến và tự động tạo ra file apk tương thích với thông tin tùy biến.
4.11.2 Thiết kế ứng dụng Ứng dụng cần thiết kế sẽ có giao diện trực quan, dễ sử dụng và đẹp mắt. Người dùng nếu lần đầu tiên sử dụng ứng dụng thì cần tạo một tài khoản, sau khi tạo thì có thể đăng nhập ở những lần sau.
Hình 4 12 Tạo tài khoản( trái) và đăng nhập( phải) trên App
Hình 4 13 Điều khiển thiết bị phòng ngủ( Trái) và phòng khách ( Phải) Ứng dụng bao gồm các phần chính
Phần hiện thị các thông số nhiệt độ, độ ẩm
Phần điều khiển bằng tay: Mỗi client sẽ có 3 thiết bị tượng trưng
Nếu quá ngưỡng nhiệt độ độ ẩm thì sẽ phát tín hiệu cảnh báo.
Người dùng cũng có thể thông qua phần mềm gửi trạng thái của phòng qua tin nhắn tới số điện thoại đăng ký.
Hình 4 14 Gửi trạng thái phòng tới số điện thoại đã cài đặt
Phần cài đặt: o Cài đặt địa chỉ IP và Port của server o Cài đặt ngưỡng nhiệt độ và độ ẩm để điều khiển tự động
Hình 4 15 Giao diện đặt ngưỡng cảnh báo
ĐÁNH GIÁ VÀ THỰC NGHIỆM
Dự kiến
Đo các thông số: nhiệt độ,độ ẩm,
Truyền nhận giữa wifi và gateway IoT.
Hiển thị lên App Android, điều khiển bật tắt bóng đèn nhiệt độ, độ ẩm.
Đã đạt được
Với điều kiện nhiệt độ và ánh sáng ban ngày như hiện tại hệ thống đã đo được các thông số gửi lên và hiển thị như sau.
Đánh giá
Hệ thống IoT đạt độ chính xác 0.1 và truyền nhận ổn định giữa Wifi và gateway trong điều kiện lý tưởng, cho phép điều khiển các thiết bị trong nhà một cách hiệu quả Điều này chứng tỏ giá trị thực tiễn của IoT trong việc nâng cao sự phát triển của hệ thống.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Sau một thời gian nghiên cứu và học tập, chúng tôi đã phát triển một mô hình nhà thông minh hoàn thiện Prototype của hệ thống đã được xây dựng và kiểm thử thành công Các chức năng cơ bản của hệ thống đã được hoàn thiện, với hệ thống mạch nhúng truyền thông tin được cung cấp đến người dùng qua ứng dụng.
Tuy nhiên, đề tài còn những vấn đề chưa giải quyết được và sẽ được hoàn thiện và tối ưu trong tương lai:
Chức năng của mạch cứng mở rộng hiện chưa hoạt động ổn định, vì vậy chúng tôi sẽ tiến hành nâng cấp để tối ưu hóa tốc độ và hoàn thiện sản phẩm một cách thống nhất trong tương lai.
Hoàn thiện máy chủ cho ứng dụng web với các chức năng người dùng, đồng thời thiết kế giao diện linh hoạt để dễ dàng nâng cấp và chỉnh sửa khi cần thiết.
Trong thời gian tới, các thành phần của hệ thống được hoàn thiện về chức năng và được tối ưu để đáp ứng với nhu cầu thực tế.