TỔNG QUAN
Giới thiệu tình hình nghiên cứu hiện nay
Trong những năm gần đây, khái niệm Internet of Things (IoT) và các sản phẩm phục vụ cho nhu cầu "Smart Home" (Nhà thông minh) đã trở nên phổ biến Vậy IoT và Smart Home là gì, chúng bao gồm những gì và cách hoạt động của chúng ra sao?
Internet of Things (IoT) là khái niệm chưa có định nghĩa thống nhất, nhưng có thể hiểu là việc mỗi đồ vật và con người được gán một định danh riêng, cho phép chúng trao đổi thông tin và dữ liệu qua một mạng duy nhất mà không cần 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) là khái niệm chỉ việc kết nối mọi thứ với nhau qua mạng Internet, cho phép người dùng kiểm soát các đồ vật của mình thông qua các thiết bị thông minh như smartphone, PC, laptop, tablet và các thiết bị điện tử cầm tay.
Internet of Things (IoT) được định nghĩa là hệ thống mà trong đó mỗi đồ vật và con người đều có một định danh riêng, cho phép chúng truyền tải và trao đổi thông tin qua một mạng duy nhất mà không cần sự tương tác trực tiếp giữa người với người hay giữa người với máy tính Sự phát triển của IoT xuất phát từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet.
Internet of Things (IoT) hay còn gọi là vạn vật kết nối Internet, là khái niệm mô tả việc kết nối các thiết bị thông minh trong cuộc sống hàng ngày Smart Home, một ứng dụng cụ thể của IoT, cho phép các thiết bị trong nhà như đèn, nhiệt độ, và an ninh được điều khiển từ xa qua điện thoại di động Chủ nhà có thể lập trình các thiết bị hoạt động theo các kịch bản đã được thiết lập sẵn, mang lại sự tiện lợi và hiệu quả trong quản lý không gian sống.
Nhà thông minh (Smart Home) là loại hình nhà ở được trang bị các thiết bị điện và điện tử cùng với cảm biến, giúp tự động hóa hoàn toàn hoặc bán tự động các thao tác quản lý và điều khiển, thay thế sự can thiệp của con người.
Điều làm nên sự khác biệt cho Smart Home và Internet of Things chính là cảm biến Tất cả các thiết bị trong hệ thống IoT đều được trang bị cảm biến để nhận diện sự 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 thiết bị điều khiển chuyên dụng, cùng với các thiết bị chấp hành như công tắc, động cơ và van điều khiển, sẽ trở thành "đôi mắt" và "đôi tay" điện tử của người dùng, giúp phát hiện và phản ứng với các biến đổi trong môi trường sống.
Các cảm biến hiện đại ghi lại mọi thay đổi trong môi trường xung quanh và được kết hợp với các mạch tích hợp, cho phép lập trình viên điều chỉnh một số thông số nhất định Khi kết hợp với bộ vi xử lý và các module giao tiếp, chúng tạo thành một hệ thống điều khiển hoàn chỉnh, sẵn sàng kết nối các thiết bị 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:
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
7 Hệ Thống Bảo vệ nguồn điện
8 Các tiện ích và ứng dụng khác
Tính cấp thiết đề tài
Nhà thông minh, xu hướng của nhà ở hiện đại
Trong những năm gần đây, khi thế giới bước vào kỷ nguyên Internet of Things (IoT), nhà thông minh đã trở thành xu hướng công nghệ tất yếu và tiêu chuẩn cho nhà ở hiện đại Tại triển lãm công nghệ điện tử và tiêu dùng lớn nhất thế giới diễn ra vào tháng 1/2015 tại Las Vegas, nhà thông minh là một trong những chủ đề nổi bật Theo dự báo của Gartner, công nghệ IoT sẽ bùng nổ từ năm 2015 với sự tham gia của nhiều hãng công nghệ hàng đầu.
Việt Nam đang theo xu hướng toàn cầu với sự phát triển của nhà thông minh, như thể hiện qua các dự án lớn như Phú Mỹ Hưng và Vinhomes Central Park vào năm 2014, mang lại tiện nghi và đẳng cấp cho người dân Năm học 2016, Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh đã chọn chủ đề “ứ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”, nhấn mạnh tầm quan trọng của IoT trong đời sống hiện đại Nhóm nghiên cứu đã lựa chọn đề tài Smart Home vì tính thực tiễn cao và sự quan tâm ngày càng tăng từ xã hội.
Mục tiêu nghiên cứu
Mục tiêu của đề tài là nghiên cứu nguyên lý hoạt động của linh kiện và thiết bị điện- điện tử, từ đó thiết kế hệ thống quản lý thiết bị điện tử trong nhà qua Internet Hệ thống này cho phép điều khiển thiết bị điện, đọc dữ liệu từ cảm biến và mở cửa bằng mật khẩu thông qua giao diện web hoặc điện thoại SmartPhone Người dùng có thể điều khiển thiết bị điện từ xa bằng bất kỳ thiết bị nào có kết nối Internet, đồng thời thiết kế hệ thống giá phơi đồ thông minh.
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 thông qua bất kỳ thiết bị nào có kết nối Internet, đồng thời theo dõi và kiểm soát trạng thái ngôi nhà trên một trang web.
- Điều khiển thiết bị bằng giọng nói.
Đối tượng và phạm vi nghiên cứu
- 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
- 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
- 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
- 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
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.
Bố cục đồ án
Đồ án gồm 5 chương với các nội dung như sau
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
Trong bài viết này, chúng tôi sẽ trình bày sơ đồ hệ thống và giải thích cách thức hoạt động của nó Đồng thời, chúng tôi sẽ đưa ra các phương pháp để lựa chọn phần cứng, từ đó xác định những lựa chọn phù hợp nhất 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ế
CƠ SỞ LÝ THUYẾT
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
Bảng mạch Intel Galileo Gen 1 đã được Intel Corporation phát hành vào ngày 17/10/2013 với mức giá 99 USD Hiện tại, dòng sản phẩm Intel Galileo bao gồm hai thế hệ: Intel Galileo Gen 1 và Intel Galileo Gen 2.
Galileo là sản phẩm đầu tiên tích hợp chip Intel Quark X1000, thuộc dòng "Santa Clara" và được sản xuất trên công nghệ 14nm, giúp tiết kiệm điện năng hiệu quả Vi xử lý 400MHz của X1000 được xây dựng trên nền tảng Intel Penti, mang lại hiệu suất cao cho các ứng dụng.
Trong chương này, chúng ta sẽ khám phá cấu trúc và các đặc điểm nổi bật của chip Intel Quark SoC X1000, cũng như cách thức hoạt động và vận hành 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 tối ưu hóa cho các ứng dụng yêu cầu tiết kiệm điện năng và kích thước nhỏ gọn, ưu tiên hơn hiệu năng Các bộ xử lý Intel Quark sẽ mang đến những giải pháp đổi mới cho thị trường điện toán toàn cầu và khái niệm "Internet of Things", ứng dụng trong nhiều lĩnh vực từ ô tô, công nghiệp đến thiết bị điện tử.
Sản phẩm đầu tiên trong dòng mới của Intel là Quark SoC X1000, mang đến sự linh hoạt và khả năng tích hợp cao hơn.
Các thiết bị kết nối thông minh thế hệ mới đang hướng tới việc giảm năng lượng tiêu thụ và tiết kiệm chi phí, đồng thời vẫn đảm bảo 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
Bộ vi xử lý 32-bit nhận tín hiệu qua các bus, kết nối với các đơn vị bên trong và bộ nhớ cache thông qua một bus 32-bit Dữ liệu được truyền từ bộ nhớ cache đến các đơn vị bus qua bus dữ liệu 32-bit Bộ nhớ cache không chỉ lưu trữ các toán hạng mà còn các kiểu dữ liệu khác, cho phép truy cập đến các đơn vị nạp trước câu lệnh, bao gồm hàng đợi các câu lệnh 32-bit chờ thực thi.
Bộ nhớ cache sử dụng hai bus dữ liệu 32-bit để kết nối với các đơn vị segment, số nguyên và dấu chấm động Hai bus này có thể kết hợp thành một bus 64-bit, cho phép truyền tải hiệu quả hơn Khi một segment 64-bit được chuyển từ bộ nhớ cache tới các đơn vị segment, 32 bit đầu tiên được truyền trực tiếp qua một bus dữ liệu, trong khi 32 bit còn lại được chuyển qua các đơn vị khác.
Các Intel® Quark Core hoạt động với bốn chế độ: địa chỉ thực, bảo vệ, ảo và quản lý hệ thống (SMM) Chế độ địa chỉ thực là cần thiết để thiết lập bảo vệ cho Intel® Quark Core, trong khi chế độ 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 cho bộ vi xử lý Trong chế độ bảo vệ, phần mềm có thể thực hiện chuyển đổi để tham gia vào các chức năng chỉ định, tương tự như chức năng của chế độ 8086 ảo.
Chế độ quản lý hệ thống (SMM) là phần mềm điều khiển dành cho các sản phẩm máy tính, giúp các nhà thiết kế hệ thống hoạt động minh bạch với 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, không áp dụng cho các ứng dụng phần mềm hoặc hệ thống phần mềm chung.
Hình 2.2: Intel Quarlk Core Block Diagram Bảng 2.1: Thông Số Bộ Nhớ của Intel Quark x1000
Tần số cơ sở của bộ xử lý 400MHZ
Dung lượng bộ nhớ tối đa 2GB
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.6GB/s
Phần mở rộng địa chỉ vật lý 32-bit
Cấu hình CPU tối đa 1
Phạm vi nhiệt độ vận hành 0 o C -70 o C
Kích thước gói 15mm x 15mm
CÁC TÙY CHỌN MỞ RỘNG
Hỗ trợ PCI PCI Express
Số cổng PCI Express tối đa 2
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 các đơn vị khác trong các giai đoạn thực thi khác nhau Mặc dù các lệnh được xử lý tuần tự, nhưng một số lệnh có thể được thực hiện đồng thời tại các giai đoạn khác nhau trong bộ xử lý Quá trình này được gọi là pipelining, trong đó các câu lệnh nạp trước, giải mã, thực thi vi mã, toán hạng thập phân, toán hạng floating-point, phân trang, quản lý bộ nhớ cache và toán hạng giao diện bus được thực hiện song song.
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 write-back
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
Vận chuyển từ và I/O đị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ữ - I/O đọc không bao giờ được lưu trữ
Đọc lại đặt hàng trong I/O không cho phép tái đặt hàng trước của đệm nhằm đảm bảo bộ vi xử lý đã hoàn tất việc cập nhật tất cả các địa điểm bộ nhớ trước khi đọc trạng thái từ thiết bị Điều này giúp duy trì tính nhất quán và chính xác trong quá trình xử lý dữ liệu.
Các Intel®Quark Core không đệm đơn các bộ ghi I/O; đọc không được thực hiện cho đến khi các bộ ghi I/O được hoàn thành
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 shield Arduino UNO và hoạt động hiệu quả với các shield ở mức điện áp 3.3V và 5V Tương tự như phiên bản 3 của Arduino UNO, Galileo cũng sở hữu nhiều tính năng nổi bật.
Bảng điều khiển có 14 chân Digital I/O, trong đó 6 chân hỗ trợ phát xung PWM Các chân này có thể hoạt động ở cả chế độ INPUT và OUTPUT, tương thích với các hàm pinMode(), digitalWrite() và digitalRead() giống như trên các mạch Arduino.
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 Analog-toDigital)
-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)
Chân VIN trên Galileo cho phép cấp nguồn khi sử dụng nguồn ngoài, khác với điện áp chuẩn 5V từ chân cắm nguồn Người dùng có thể cung cấp nguồn cho Galileo qua chân này, hoặc nếu nguồn được cấp từ chân cắm phía trước, có thể lấy ra điện áp chuẩn 5V từ chân VIN.
-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
Cảm biến mưa
Mưa có thể được nhận biết dễ dàng bằng mắt thường hoặc cảm nhận qua da Trong lĩnh vực điện tử, các hệ thống phát hiện mưa cũng được chia thành hai loại: loại sử dụng camera để nhận diện và loại sử dụng cảm biến giống như cảm giác của da người Nhóm chúng tôi sử dụng cảm biến mưa như hình 2.9.
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ế giữa cảm biến ngoài trời và giá trị định trước, có thể điều chỉnh thông qua biến trở màu xanh Khi không có mưa, chân D0 giữ ở mức cao (5V-12V), trong khi khi có nước, đèn LED đỏ sáng lên và chân D0 hạ xuống 0V, phát ra tín hiệu đóng/ngắt rơ le.
Hình 2.10: Sơ đồ mạch cảm biến mưa
- 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
- Kích thước tấm cảm biến mưa: 54 x 40mm
- Kích thước board PCB: 30 x 16mm
- Đầ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
D0 Đầu ra tín hiệu TTL chuyển đổi
A0 Đầu ra tín hiệu Analog
Cảm biến Gas
MQ2 là cảm biến khí chuyên dụng để phát hiện các khí có khả năng gây cháy, được chế tạo từ chất bán dẫn SnO2 Chất này có độ nhạy thấp với không khí sạch, nhưng khi tiếp xúc với môi trường có chất dễ cháy, độ dẫn điện của nó sẽ thay đổi đáng kể Nhờ vào đặc điểm này, người ta đã tích hợp thêm vào mạch đơn giản để chuyển đổi sự thay đổi độ nhạy thành tín hiệu điện áp.
Hình ảnh thực tế Sơ đồ chân
Hình 2.11: Cảm biến Gas MQ2 Thông số kỹ thuật:
- Hai dạng tín hiệu đầu ra: digital và analog
- Công suất tiêu thụ: khoảng 350mW
- Nhiệt độ hoạt động: -10C đến 50C
Trong môi trường sạch, điện áp đầu ra của cảm biến MQ2 sẽ thấp Khi nồng độ khí gây cháy tăng lên, giá trị điện áp đầu ra cũng sẽ tăng theo.
Cảm biến MQ2 hoạt động hiệu quả trong môi trường khí hóa lỏng như LPG, H2 và các loại khí dễ cháy khác Với mạch thiết kế đơn giản và chi phí thấp, nó được ứng dụng rộng rãi trong cả lĩnh vực công nghiệp và dân dụng.
Khóa Solenoid Lock
Hình 2.12: Khóa Solenoid lock Thông số kỹ thuật:
- Hoạt động ở mức điện áp 12-24 VDC, 0.35A
- Nhiệt độ hoạt động ổn định: -5 0 C đến 55 0 C
- Chiều dài chốt khóa: 14mm
Khóa hoạt động dựa trên nguyên lý của nam châm điện từ, cho phép khóa tự động đóng lại khi được cấp nguồn điện và trở về trạng thái ban đầu khi mất nguồn điện.
KeyPad
Ma trận phím 4x4 bao gồm 16 nút bấm được sắp xếp thành 4 hàng và 4 cột Các nút bấm trong cùng một hàng và cột được kết nối, tạo ra tổng cộng 8 ngõ ra cho ma trận này.
Ma trận phím 4x4 cho phép người dùng nhập chữ số, chữ cái và ký hiệu vào bộ điều khiển, từ đó điều khiển các thiết bị ngoại vi một cách hiệu quả.
Ta có thể mắc thêm trở treo (thông thường là 10K) cho các nút bấm để nút bấm hoạt động ổn định hơn
NGUYÊN LÝ HOẠT ĐỘNG CỦA MA TRẬN PHÍM
Để giao tiếp với ma trận phím 4x4, chúng ta áp dụng phương pháp "Quét" để xác định nút nào được nhấn Cách quét này được thực hiện theo cột.
Các chân ROWA, ROWB, ROWC, ROWD được định nghĩa là các chân INPUT, trong khi các chân COL1, COL2, COL3, COL4 được xác định là các chân OUTPUT với mức logic '0'.
-Giả sử SW9 được bấm:
• Cho COL1 = 0 (COL[2 4] = 1), kiểm tra trạng thái của các hàng:
ROWA= ROWB= ROWC= ROWD=1: vậy kết luận không có nút được bấm trên COL1
• Cho COL2 = 0 (COL[1,3,4] = 1), kiểm tra trạng thái của các hàng:
ROWA=ROWB=ROWD=1, ROWC =0: vậy kết luận có nút nằm trên hàng C, cột 2 được bấm (SW9)
• Cho COL3 = 0 (COL[1,2,4]=1): ROWA = ROWB = ROWC= ROWD=1: vậy kết luận không có nút được bấm trên COL3
• Cho COL4 = 0 (COL[1,2,3]=1): ROWA= ROWB= ROWC= ROWD=1: vậy kết luận không có nút được bấm trên COL4
Quét tương tự đối với những nút bấm khác.
Động cơ bước
Động cơ bước, với khả năng chuyển động góc quay chính xác và khả năng cố định roto tại vị trí mong muốn, cùng với việc điều khiển tốc độ và chiều quay, được ứng dụng làm động cơ quay cho hệ thống giá phơi đồ.
Các động cơ bước trên thị trường có góc quay 0.9º, 1.8º, 3.6º,… với số dây: 4, 5, 6, 8 dây Thông dụng nhất là loại 1.8º, 6 dây như hình 2.16
Bảng 2.5: Thông số kỹ thuật động cơ bước
Chiều dài động cơ 35.5mm
Số pha 2 Điện áp 12-36VDC
Chiều dài trục 19 mm Đường kính trục 5 mm Điện trở 5.0Ω/Phase Điện áp định mức 2.52V
Động cơ bước có góc quay 1.8º yêu cầu 200 bước để hoàn thành một vòng (Fullstep) Để nâng cao "độ phân giải" của động cơ, người dùng có thể chuyển sang chế độ Halfstep hoặc Microstep thông qua driver động cơ bước Cụ thể, khi điều khiển động cơ bước 1.8º ở chế độ Halfstep, cần 400 bước để quay một vòng, với mỗi bước tương ứng là 0.9º.
Chức năng: Đóng vai trò là động cơ có thể quay thuận nghịch để quấn dây vào/ra để kéo hệ thống phơi đồ trong đề tài
Bảng 2.6: Thiết bị đi kèm với động cơ bước
Tên thiết bị Puli 20 răng Dây curoa 6mm
Chức năng Truyền động cho dây curoa Biến chuyển động quay của động cơ bước thành chuyển động tịnh tiến theo trục ngang.
A4988 Step Driver
A4988 là một driver điều khiển động cơ bước nhỏ gọn, hỗ trợ nhiều chế độ điều khiển như Full step, half step, 1/4, 1/16 và 1/18 Thiết bị này cho phép điều chỉnh dòng ra cho động cơ và tự động ngắt điện khi quá nhiệt, đảm bảo an toàn và hiệu suất tối ưu.
- Điện áp động cơ: 8 – 35V DC
- Chế độ điều khiển: Full step, half step, 1/4, 1/8, 1/16
- Tự ngắt điện khi quá nhiệt
Hình 2.17: Sơ đồ nguyên lý A4988 Step Driver
Bảng 2.7: Bảng lựa chọn chế độ điều khiển cho driver A4988
MS1 MS2 MS3 Chế độ điều khiển
Quạt
Hình 2.18: Quạt Điện áp hoạt động: 12V DC
Khối thiết bị công suất
Dòng điện ngõ ra của board rất nhỏ, không đủ để điều khiển tải công suất như bóng đèn, quạt 12VDC hay khóa 24VDC Do đó, cần sử dụng module relay để thực hiện việc điều khiển này một cách hiệu quả.
Relay có tác dụng như một công tắc có thể lập trình đóng/mở với nguồn điện cấp bên ngoài
10A-250VAC: dòng tải tối đa với nguồn 250V xoay chiều là 10A, công suất tối đa là 2500W
10A-125VAC: dòng tải tối đa với nguồn 125V xoay chiều là 10A, công suất tối đa là 1250W
10A-30VAC: dòng tải tối đa với nguồn 30V xoay chiều là 10A, công suất tối đa là 300W
10A-28VAC: dòng tải tối đa với nguồn 28V xoay chiều là 10A, công suất tối đa là 280W
Relay có thể hoạt động ở hai chế độ: chế độ kích mức thấp, trong đó relay hoạt động khi tín hiệu kích ở mức thấp và đóng tiếp điểm thường mở; và chế độ kích mức cao, khi relay hoạt động với tín hiệu kích ở mức cao và cũng đóng tiếp điểm thường mở.
Hai chân IN1, IN2: Chọn relay 1 hay relay 2
Module Bluetooth HC05
Hình ảnh thực tế Sơ đồ chân
Module Bluetooth HC-05 cho phép thiết lập kết nối Serial giữa hai thiết bị theo chuẩn Bluetooth với hai chế độ hoạt động: MASTER và SLAVE Ở chế độ SLAVE, người dùng cần kết nối từ smartphone, laptop hoặc USB Bluetooth để dò tìm module và nhập mã PIN 1234 để bắt cặp Sau khi kết nối thành công, một cổng serial từ xa với baud rate 9600 sẽ được thiết lập Trong khi đó, ở chế độ MASTER, module tự động dò tìm và kết nối với các thiết bị Bluetooth khác mà không cần thiết lập từ máy tính hay smartphone.
Điện thế hoạt động của UART 3.3 - 5V
Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền nhận bình thường 8 mA
Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400,
Kích thước của module chính: 28 mm x 15 mm x 2.35 mm
Dải tần sóng hoạt động: 2.4GHz
Bluetooth protocol: Bluetooth Specification v2.0+EDRo
Kích thước: 26.9mm x 13mm x 2.2 mm
Module I2C
I2C, viết tắt của Inter-Integrated Circuit, là một giao thức bus dùng để giao tiếp giữa các IC Dù được phát triển bởi Philips, I2C đã được nhiều nhà sản xuất IC trên toàn thế giới áp dụng rộng rãi Hiện nay, I2C đã trở thành chuẩn công nghiệp cho các giao tiếp điều khiển.
There are thousands of devices that utilize I2C communication, including real-time clocks, digital potentiometers, temperature sensors, digital compasses, memory chips, FM radio circuits, I/O expanders, and LCD controllers Our Arduino board can control up to 112 I2C devices simultaneously However, using an LCD requires at least six MCU pins to connect to the RS, EN, D7, D6, D5, and D4 pins, which can lead to complications such as incorrect wiring, cluttered circuits, and difficulties in coding.
Với module chuyển giao tiếp LCD sang I2C, chỉ cần sử dụng 2 chân SDA và SCL để hiển thị thông tin, cùng với 2 chân VCC và GND để cấp nguồn cho LCD Module này còn được trang bị một biến trở để điều chỉnh độ tương phản Các board như Intel Galileo và Arduino Uno hỗ trợ thư viện LiquidCrystal_I2C, giúp việc giao tiếp với LCD trở nên dễ dàng hơn.
Hình ảnh thực tế Sơ đồ chân
Hình 2.21: Module I2C giao tiếp LCD
I2C là một bus giao tiếp hai chiều, cho phép truyền thông giữa hai IC hoặc hai module khác nhau Dữ liệu được truyền theo dạng nối tiếp qua đường SDA, trong khi xung đồng hồ được truyền qua đường SCL để đồng bộ hóa Cả hai đường SDA và SCL cần được kết nối với nguồn cấp tích cực thông qua một trở pull-up khi kết nối với các thiết bị Việc truyền dữ liệu chỉ có thể thực hiện khi bus không bận.
Mạch điều khiển màn hình 20x04 sử dụng giao tiếp I2C với IC điều khiển màn hình ký tự, bao gồm 20 cột và 4 dòng Giải pháp này giúp tiết kiệm dây nối với board, đồng thời nâng cao khả năng hiển thị nhanh và tích hợp nhiều chức năng.
Giao tiếp I2C giúp giảm số lượng dây tín hiệu xuống chỉ còn 2 dây, hoàn toàn khắc phục vấn đề điều khiển màn hình Việc điều khiển trực tiếp màn hình được chuyển giao cho IC xử lý trên mạch, cho phép bạn chỉ cần gửi mã lệnh và nội dung hiển thị Điều này giúp vi điều khiển có thêm thời gian để xử lý các tiến trình phức tạp khác, mang lại nhiều lợi ích cho hệ thống.
Giao tiếp I2C chỉ sử dụng duy nhất 2 dây tín hiệu: SDA và SCL giúp tiết kiệm chân trên board intel galileo
Tốc độ truyền dữ liệu lên đến 400Kbps
Dữ liệu truyền nhận đảm bảo tính toàn vẹn vì sử dụng cơ chế phản hồi (ACK) trên mỗi byte dữ liệu
Module có khả năng kết nối tối đa 8 thiết bị thông qua các mối hàn A0, A1, A2 để thay đổi địa chỉ, với địa chỉ mặc định là 0x27 Điện áp hoạt động của module dao động từ 3V đến 6V, phù hợp cho nhiều ứng dụng khác nhau.
Hình 2.22: Quá trình giao tiếp giữa 2 thiết bị sử dụng bus I2C
Arduino
Arduino UNO hiện nay đang được sử dụng rất phổ biến Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3) đó là Arduino Uno R3
Dây cáp USB là thiết bị cần thiết để nạp chương trình cho bo Arduino và cung cấp nguồn điện từ máy tính qua cổng USB Ngoài chức năng cấp nguồn, cáp USB còn được sử dụng để truyền dữ liệu từ bo Arduino lên máy tính Cáp này có hai đầu: một đầu cắm vào cổng USB trên bo Arduino và đầu còn lại cắm vào cổng USB trên máy tính.
IC này được lập trình như một bộ chuyển đổi USB –to-Serial dùng để giao tiếp với máy tính thông qua giao thức Serial (dùng cổng COM)
Cổng nguồn ngoài cho phép bo Arduino hoạt động bằng cách sử dụng nguồn điện từ pin, bình acquy hoặc các adapter Nguồn điện cấp vào cổng này cần là nguồn DC với hiệu điện thế từ 6V đến 20V, trong đó hiệu điện thế tối ưu được nhà sản xuất khuyến nghị là từ 7V đến 12V.
Cổng USB trên bo Arduino dùng để kết nối với cáp USB
Nút reset được sử dụng để reset lại chương trình đang chạy
ICSP (In-Circuit Serial Programming) đây là các chân giao tiếp SPI của chip Atmega 16U2
7 Các nhân xuất tín hiệu ngõ ra
Có tất cả 14 chân xuất tín hiệu ra trong Arduino Uno, những chân có dấu ~ là những chân có thể điều chế độ rộng xung (PWM)
IC Atmega 328 là vi điều khiển chính của bo mạch Arduino Uno, đóng vai trò quan trọng trong việc thu thập dữ liệu từ cảm biến, xử lý thông tin và xuất tín hiệu ra ngoài.
Các chân ICSP của Atmega 328 được sử dụng cho các giao tiếp SPI (Serial Peripheral Interface)
10 Chân lấy tín hiệu analog
Các chân này lấy tín hiệu Analog (tín hiệu tương tự) từ cảm biến để IC Atmega
328 xử lý Có tất cả 6 chân lấy tín hiệu Analog, từ A0 đến A5
Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như role, cảm biến,
RC servo,…trên khu vực này có sẵn các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V
Bảng 2.8: Thông số kỹ thuật của board Arduino UNO R3 Đặc tính Giá trị
Vi điều khiển Atmega328 (8bit) Điện áp hoạt động 5VDC ( cấp qua cổng USB)
Tần số hoạt động 16Mhz
Dòng tiêu thụ 30Ma Điện áp vào lý tưởng 7-12 VDC Điện áp giới hạn 6-20 VDC
Số chân I/O số 14 (6 chân PWM)
Số chân I/O tương tự 6 (độ phân giải 10 bit)
Dòng tối đa trên mỗi chân 30Ma
Dòng ra tối đa (5V) 500Ma
Dòng ra tối đa (3V) 50Ma
Bộ nhớ flash 32KB với 0.5KB dùng bởi bootloader
THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Sơ đồ khối hệ thống
3.1.1 Yêu cầu của hệ thống
Hệ thống hoạt động có khả năng:
- Khóa cửa bằng mật khẩu sử dụng ma trận phím 4x4
- Giàn phơi có thể điều chỉnh bằng tay hoặc tự động thông qua cảm biến phát hiện mưa
- Điều khiển thiết bị bằng giọng nói thông qua Module Buethooth và ứng dụng Android trên SmartPhone chạy hệ điều hành Android
- Xây dựng trang Web Server bao gồm:
Hình 3.1: Sơ đồ khối hệ thống 1
3.1.2 Sơ đồ khối và chức năng mỗi khối
Hình 3.2: Sơ đồ khối hệ thống 2 Chức năng các khối
Khối nguồn: Chuyển đổi điện áp từ 220V AC sang 5V DC, 12V DC, 24V Dc cung cấp cho các khối khác
Khối xử lý trung tâm 1: Dùng Board Intel Galileo Gen1 với vi điều khiển Intel
Quark SoC x1000 nhận tín hiệu từ cảm biến, thực hiện xử lý và tính toán, đồng thời hiển thị thông tin xuất dữ liệu lên web Ngoài ra, nó còn cho phép điều khiển các thiết bị thông qua nền tảng web.
Khối nút nhấn: Bao gồm 3 nút nhấn (ra/vào/mode) để điều khiển hệ thống phơi đồ
Khối điều khiển: Sử dụng module 2 relay dùng để điều khiển bật tắt khối tải
Khối tải: Bao gồm các thiết bị được điều khiển thông qua khối điều khiển
Khối Router: Kết nối với môi trường internet, làm trung gian giao tiếp giữa PC,
WEB, smartphone… với kit Intel Galileo
Khối công suất: bao gồm module điều khiển động cơ, cấp nguồn cho động cơ
Khối cảm biến: thực hiện công việc lấy thông tin từ cảm biến mưa, gas đưa về khối xử lý trung tâm
Khối xử lý trung tâm 2: Sử dụng kit arduino để tiếp nhận thông tin và xử lý tất cả các tín hiệu điều khiển
Khối nhận diện giọng nói: có nhiệm vụ phân tích âm thanh (giọng nói thu được) thành dữ liệu và truyền theo chuẩn Bluetooth
Khối chuyển đổi: Nhận dữ liệu từ khối phân tích giọng nói và gửi dữ liệu theo chuẩn Bluetooth và đưa đến khối điều khiển trung tâm
Khối hiển thị: Dùng LCD 20x4 để hiện thị các thông số cần thiết
3.1.3 Hoạt động của hệ thống
Giá phơi đồ thông minh được trang bị công tắc tùy chỉnh cho phép phơi đồ tự động hoặc bằng tay, với nút nhấn dễ sử dụng Khi trời mưa, cảm biến mưa sẽ tự động kéo giá phơi về vị trí che chắn, trong khi chế độ tay cho phép người dùng tùy chỉnh theo ý muốn Đối với hệ thống cửa, khóa Solenoid Lock kết hợp với ma trận phím 4x4 cho phép mở cửa bằng mật khẩu đã được lập trình trước, đảm bảo an toàn khi nhập sai mật khẩu Hệ thống cũng hỗ trợ giám sát và phát hiện rò rỉ gas, mưa qua Web Server, cùng với khả năng điều khiển thiết bị bằng giọng nói.
Thiết kế, tính toán hệ thống
- Yêu cầu: Vì hệ thống sử dụng nhiều thiết bị với các yêu cầu mức điện áp khác nhau từ nhà sản xuất, cụ thể:
Bảng 3.1: Dòng điện và điện áp hoạt động của các thiết bị
STT Tên thiết bị Điện áp (V) Dòng điện (A)
- Phương án: Thi công mạch nguồn, nguồn từ cổng USB máy tính, sử dụng nguồn có sẳn trên thị trường hay do nhà sản xuất cung cấp kèm theo
- Lựa chọn: Thi công mạch nguồn, sử dụng nguồn nhà sản xuất cung cấp kèm theo thiết bị
IC 7805, 7812 và LM317 có thể chịu áp vào tối đa khoảng 40V, với khả năng điều chỉnh áp ra từ 1.25 đến 37V Để đảm bảo các IC hoạt động hiệu quả và đáp ứng yêu cầu ổn áp, nên chọn biến áp 220V/24V, loại 1A.
Theo công thức tính độ gợn sóng: r% = 1
Trong mạch điện, giá trị tụ lọc C và trở mắc song song RL có ảnh hưởng lớn đến độ gợn sóng và áp ổn định Khi tần số f và RL cố định, việc tăng giá trị C sẽ giúp giảm độ gợn sóng, từ đó cải thiện độ ổn định của áp Với biến áp 220V/24V, tụ lọc thích hợp có thể là loại 2200uF/50V.
Xét điện áp ngõ ra của IC LM317, ta có:
R ) (2) Chọn R bằng 270 Ohm, vì V i − V o ≥ 3V nên:
Với Vo min = 1.25V, VR = 0 Ohm
Với Vo max = 37V, VR 7722 Ohm
Vậy biến trở VR loại 10K Ohm là phù hợp với yêu cầu thiết kế
Hình 3.2: Sơ đồ mạch nguồn 3.2.2 Khối cảm biến
- Yêu cầu: Yêu cầu đặt ra của đề tài là sử dụng cảm biến phát hiện mưa, phát hiện độ rò rỉ gas
- Lựa chọn: Sử dụng cảm biến mưa, cảm biến Gas MQ2 vì phổ biến trên thị trường, chi phí thấp và phù hợp mới mô hình hiện tại
Hình 3.3: Sơ đồ kết nối cảm biến Gas và Board 3.2.3 Khối hiển thị LCD
- Yêu cầu: Hiển thị được các thông tin và các thông số
- Phương án: Có thể dùng LED 7 đoạn, LED ma trận, , LCD16x2, LCD 20x4
- Lựa chọn: Sử dụng LCD vì sản phẩm này phổ biến, dễ tìm kiếm thông tin và giá thành rẻ và phù hợp với yêu cầu đặt ra
Hình 3.4: Sơ kết nối LCD và module I2C 3.2.4 Khối xử lý trung tâm
Yêu cầu hệ thống bao gồm nhận tín hiệu ngõ vào từ cảm biến, thực hiện xử lý và tính toán dữ liệu, hiển thị kết quả trên màn hình LCD, cũng như khả năng truyền và nhận dữ liệu từ web.
- Phương án: Ta có thể sử dụng Kit Rraspberry Pi, PIC16F887, Board Intel Galileo,
Arduino, Kit Arm… để làm khối xử lý trung tâm
Board Intel Galileo với bộ xử lý Intel Quart Soc X1000 mang đến trải nghiệm công nghệ tiên tiến Đây là một bo mạch mới với nhiều tính năng nổi bật, cho phép cài đặt hệ điều hành Linux và Windows.
Board Arduino đơn giản, tiện dụng, dễ dàng lắp đặt và lập trình
Hình 3.5: Khối xử lý trung tâm 1
Hình 3.6: Khối xử lý trung tâm 2
Hình 3.7: Lưu đồ giải thuật trên Board Intel glileo gen1
Hình 3.8: Lưu đồ giải thuật trên Arduino
3.2.6 Giao tiếp mạng Internet Để kết nối hệ thống ra mạng Internet cần phải kết nối board Intel Galileo với một Router thông qua đó mới có thể kết nối tới mạng Internet Trên board Intel Galileo có hỗ trợ hai cách để kết nối tới mạng Internet đó là: sử dụng card Wifi thông qua cổng PCI Express 2.0 hoặc sử dụng cáp RJ45 để kết nối với cổng Ethernet trên board Nhóm quyết định chọn cáp RJ45 để kết nối ra mạng Internet do chi phí thấp, dễ dàng lắp đặt.
Công cụ phần mềm
Giới thiệu về phần mềm lập trình IDE
Trình biên dịch Arduino IDE là công cụ hỗ trợ lập trình ngôn ngữ C cho các board Arduino Intel Galileo có khả năng chạy đồng thời hai chế độ: chế độ Arduino và hệ điều hành Linux, do đó chúng ta sẽ sử dụng Arduino IDE để lập trình cho board bằng ngôn ngữ C.
Để bắt đầu, chúng ta cần cài đặt phần mềm Arduino 1.6.0 từ diễn đàn Arduino Việt Nam hoặc trang chủ của Arduino Sau khi cài đặt xong, phần mềm sẽ không mặc định hỗ trợ Galileo, vì vậy chúng ta cần truy cập vào Tools => Board => Boards Manager để thêm hỗ trợ cho Galileo.
Hình 3.9: Tìm gói hỡ trợ cho board điều khiển
Sau khi truy cập vào boards Manager, hãy tìm gói intel i586 Boards và tiến hành cài đặt Gói này hỗ trợ lập trình cho hai board Intel Galileo Gen 1 và Gen 2.
48 thể tải phần mềm arduino 1.6.0 portable từ intel mà không cần phải tìm gói hỗ trợ như trên theo link sau: https://downloadmirror.intel.com/24355/eng/IntelArduino-1.6.0- Windows.7z
Hình 3.10: Chọn gói hỗ trợ cho board Intel Galileo
Sau khi cài đặt các gói hỗ trợ, chúng ta bắt đầu tạo một project mới bằng cách chọn File => New, và một project mới sẽ được tạo ra Tiếp theo, chúng ta cần include thư viện và khai báo biến, mảng trong phần trước hàm setup Trong hàm setup, chúng ta sẽ khởi tạo và thiết lập chiều của các port cũng như khởi tạo các ngoại vi khác Chương trình chính sẽ được đặt trong hàm loop.
Sau khi hoàn thành việc tạo và lập trình một dự án, bạn cần lưu lại dự án bằng cách chọn File => Save Tiếp theo, để biên dịch chương trình, hãy nhấn vào nút biên dịch.
Để biên dịch chương trình, hãy kiểm tra cửa sổ console màu đen phía dưới màn hình để xác nhận quá trình biên dịch thành công Để tải chương trình xuống board, kết nối board với máy tính qua cáp micro USB, sau đó cài đặt driver và cập nhật firmware cho kit (đối với kit mới) Để cài đặt driver, vào Computer Management => Device Manager, chọn Port và tìm cổng COM kết nối với kit, nhấn chuột phải và chọn Install Driver Sau đó, trong IDE, vào Tools => Port, chọn cổng COM phù hợp và nhấn vào biểu tượng Upload để nạp chương trình xuống board.
Hình 3.11: Cấu trúc một project trong IDE
Hình 3.12: Ví dụ một chương trình trên IDE
Nạp chương trình thành công
Hình 3.13: Cài đặt driver cho Intel Galileo
Intel Galileo không chỉ hỗ trợ lập trình trên Arduino IDE với ngôn ngữ C mà còn có khả năng chạy hệ điều hành Linux Yocto Hệ điều hành này được Intel tích hợp sẵn thư viện MRAA, cho phép giao tiếp I/O với nhiều ngôn ngữ lập trình như Python, C, C++ và JavaScript.
Thiết kế giao diện web:
Nhóm đã thiết kế một webserver để giám sát và điều khiển hệ thống qua Internet, bên cạnh việc sử dụng các nút nhấn và LCD trên mô hình Để phát triển web, nhóm sử dụng nhiều ngôn ngữ lập trình như HTML, CSS và JavaScript, cùng với phần mềm INTEL XDK để hỗ trợ quá trình lập trình.
Giới thiệu về phần mềm lập trình INTEL XDK:
- Cũng như IDE phần mềm lập trình INTEL XDK hỗ trợ cho việc lập trình cho board Galileo đơn giản hơn
- Giao diện dễ sử dụng
- Có nhiều tính năng được tích hợp sẵn
Các bước để lập trình với INTEL XDK:
Bước 1: o Cắm nguồn cho board intel Galileo o Kết nối router với board
Bước 2: o Dò địa chỉ ip của Kit (như hình)
Hình 3.14: Địa chỉ IP của Kit
Bước 3: o Mở phần mềm putty để truy cập vào board o Chạy 3 dòng lệnh để cập nhập phần mềm cho board
Hình 3.15: Dòng lệnh khởi động
Bước 4: o Mở phần mềm INTEL XDK (Link download: https://software.intel.com/en-us/intel-xdk) o Chọn địa chỉ ip của Board
Hình 3.16: Trang địa chỉ truy cập Board
Bước 5: o Chọn giao thức (ở đây do dùng phần mềm để hỗ trợ cho việc thiết lập mạng ta chọn Server -> Client)
Hình 3.17: Màn hình thiết lập
Bước 6: o Viết code cho chương trình và tiến hành tải dữ liệu xuống board
Bước 7: o Sau đó ta cho chạy hệ thống cũng như web bằng cách nhấn vào nút RUN
Để truy cập vào giao diện web của kit, bạn cần mở trình duyệt và nhập địa chỉ IP của kit trên router, chọn cổng kết nối 2112, do đó địa chỉ web sẽ là 192.168.100.3:2112 Tiếp theo, để tạo giao diện cho website, hãy chọn thẻ Client ở bên trái và sau đó chọn file index.html.
54 Để lập trình cũng như tạo giao diện cho website ta cần dùng 1 ngôn ngữ để viết Ở đây ta sử dụng ngôn ngữ PHP
Việc đầu tiên ta cần làm là tạo giao diện đăng nhập để quản lý Website bằng cách viết lệnh như sau: