Cùng với sự phát triển mạnh mẽ của khoa học và côngnghệ, đặc biệt là trong lĩnh vực điện tử và vi điều khiển, việcnghiên cứu và thiết kế các hệ thống đồng hồ báo thức thôngminh, chính xá
TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Trong bối cảnh hiện nay, việc thức dậy muộn, đi làm trễ hay trì hoãn giờ giấc là tình trạng khá phổ biến, đặc biệt đối với học sinh, sinh viên và người đi làm Điều này không chỉ ảnh hưởng đến hiệu suất công việc, học tập mà còn tạo thói quen thiếu kỷ luật, làm giảm năng suất và chất lượng cuộc sống
Mục đích nghiên cứu
Vì vậy, việc thiết kế một hệ thống đồng hồ báo thức thông minh giúp người dùng quản lý thời gian tốt hơn, tạo động lực thức dậy đúng giờ là rất cần thiết Đề tài không chỉ mang tính thực tế cao mà còn giúp em rèn luyện kỹ năng lập trình, thiết kế mạch điện tử và ứng dụng công nghệ vào đời sống hằng ngày
Cụ thể nghiên cứu hướng đến các mục tiêu sau:
Phát triển hệ thống đồng hồ báo thức tự động có khả năng hiển thị thời gian chính xác và cài đặt báo thức linh hoạt, giúp người dùng quản lý thời gian hiệu quả hơn trong học tập và làm việc.
Tích hợp các cảm biến và vi điều khiển để xử lý tín hiệu, hiển thị thời gian thực, đồng thời cho phép người dùng thiết lập nhiều chế độ báo thức khác nhau theo nhu cầu. Đánh giá hiệu quả hoạt động của hệ thống thông qua các thử nghiệm thực tế, so sánh với đồng hồ báo thức thông thường về độ chính xác, tính tiện dụng và khả năng mở rộng chức năng.
Nghiên cứu này không chỉ mang ý nghĩa khoa học mà còn có giá trị thực tiễn, góp phần ứng dụng công nghệ vi điều khiển vào đời sống hằng ngày, giúp người dùng hình thành thói quen sinh hoạt đúng giờ, nâng cao tính kỷ luật và hiệu quả công việc.
Phạm vi nghiên cứu
Đề tài này tập trung nghiên cứu và phát triển hệ thống đồng hồ báo thức điện tử sử dụng vi điều khiển, với các phạm vi cụ thể như sau: Đối tượng nghiên cứu:
Hệ thống đồng hồ báo thức có khả năng hiển thị thời gian thực và cài đặt báo thức linh hoạt. Ứng dụng vi điều khiển trong việc xử lý tín hiệu thời gian và điều khiển thiết bị hiển thị, còi báo.
Các linh kiện điện tử liên quan như mô-đun hiển thị, còi, nút nhấn và cảm biến thời gian (RTC).
Lựa chọn và tích hợp vi điều khiển phù hợp để thực hiện các chức năng đo, hiển thị và báo thức.
Thiết kế mạch nguyên lý, mạch in (PCB) và lập trình điều khiển hệ thống bằng ngôn ngữ C hoặc STM32F103C8T6
Hiển thị thời gian bằng màn hình LCD/LED và cài đặt báo thức thông qua các nút điều khiển.
Thử nghiệm hoạt động của hệ thống trong các điều kiện khác nhau để đánh giá độ ổn định và độ chính xác của thời gian hiển thị.
Kiểm tra khả năng hoạt động của chức năng báo thức, độ tin cậy và mức tiêu thụ điện năng của hệ thống. Đề tài không đi sâu vào các yếu tố như đồng bộ thời gian qua Internet (NTP), kết nối Bluetooth/Wi-Fi hay tích hợp điều khiển qua ứng dụng di động Thay vào đó, nghiên cứu tập trung chủ yếu vào thiết kế và vận hành cơ bản của hệ thống đồng hồ báo thức nhằm đảm bảo tính chính xác, ổn định và dễ sử dụng.
Ứng dụng
Hệ thống đồng hồ báo thức điện tử có nhiều ứng dụng thực tiễn trong đời sống, học tập và nghiên cứu, nhờ khả năng hiển thị thời gian chính xác và hỗ trợ người dùng quản lý thời gian hiệu quả Cụ thể, hệ thống này có thể được ứng dụng trong các lĩnh vực sau: Ứng dụng trong đời sống hằng ngày:
Quản lý thời gian cá nhân: Hỗ trợ người dùng sắp xếp lịch trình, thức dậy đúng giờ, hạn chế tình trạng trễ học, trễ làm, góp phần hình thành thói quen sinh hoạt khoa học.
Báo nhắc công việc: Ngoài chức năng báo thức thông thường, hệ thống có thể được mở rộng để nhắc lịch làm việc, học tập, nghỉ ngơi hoặc uống thuốc định kỳ. Ứng dụng trong giáo dục và đào tạo:
Thực hành vi điều khiển và điện tử: Là mô hình học tập hữu ích cho sinh viên ngành điện – điện tử, tự động hóa, giúp thực hành các nội dung về cảm biến thời gian (RTC), thiết kế mạch, hiển thị và lập trình điều khiển.
Rèn luyện kỹ năng ứng dụng công nghệ: Giúp sinh viên hiểu rõ mối liên hệ giữa phần cứng và phần mềm, từ đó phát triển tư duy logic, sáng tạo và khả năng thiết kế hệ thống nhúng. Ứng dụng trong nghiên cứu và phát triển:
Nền tảng cho hệ thống thông minh: Có thể làm cơ sở để phát triển các thiết bị thông minh hơn, như đồng hồ báo thức có kết nối Bluetooth/Wi-Fi, đồng bộ thời gian qua Internet, hoặc tích hợp chức năng điều khiển thiết bị điện trong nhà.
Phát triển công nghệ IoT: Là mô hình khởi đầu cho việc nghiên cứu và mở rộng các ứng dụng IoT trong lĩnh vực tự động hóa gia đình và quản lý thời gian cá nhân.
Hệ thống đồng hồ báo thức không chỉ mang lại tiện ích cho người dùng trong sinh hoạt hằng ngày mà còn có giá trị trong giảng dạy, nghiên cứu và phát triển công nghệ Việc thiết kế và ứng dụng mô hình này góp phần nâng cao kỹ năng thực hành,khả năng tư duy kỹ thuật và khuyến khích sáng tạo trong lĩnh vực điện tử – tự động hóa.
CƠ SỞ LÝ THUYẾT
Sơ đồ khối
Trong một hệ thống giám sát nhiệt độ môi trường sơ đồ khối thường bao gồm: Khối nguồn, khối điều khiển trung tâm (vi điều khiển), khối điều nút bấm, khối cảm biến, khối hiển thị Để thực hiện được thiết kế và chế tạo hệ thống giám sát nhiệt độ môi trường chúng em đã đưa ra sơ đồ như sau:
Hình 2.1 Sơ đồ khối của hệ thống
Khối nguồn: Đóng vai trò cung cấp năng lượng cho toàn bộ hệ thống Việc sử dụng nguồn điện ổn định là rất quan trọng để đảm bảo các thành phần như vi điều khiển, module thời gian thực và màn hình hiển thị hoạt động chính xác và liên tục.
Khối thời gian thực: Là khối có chức năng duy trì và cung cấp thời gian chính xác cho hệ thống DS3231 là module đồng hồ thời gian thực (RTC), có khả năng lưu giữ thời gian kể cả khi mất nguồn nhờ pin dự phòng Dữ liệu thời gian từ DS3231 được gửi đến vi điều khiển để hiển thị và so sánh với thời gian báo thức đã cài đặt.
Khối vi điều khiển: Là trung tâm điều khiển của hệ thống, có nhiệm vụ nhận dữ liệu từ cảm biến, phân tích và so sánh với ngưỡng tiêu chuẩn, từ đó đưa ra quyết định điều khiển các thiết bị liên quan như bộ tạo nhiệt hoặc quạt thông gió để duy trì điều kiện tối ưu.
Khối hiển thị: Cung cấp giao diện trực quan cho người dùng, giúp theo dõi các thông tin như giờ, phút, giây và trạng thái báo thức Thông thường sử dụng màn hình LCD hoặc LED 7 đoạn để hiển thị dữ liệu do vi điều khiển gửi tới
Khối loa : Được sử dụng để phát ra âm thanh cảnh báo khi đến thời gian báo thức Tín hiệu điều khiển loa được vi điều khiển kích hoạt dựa trên việc so sánh giữa thời gian thực và thời gian hẹn giờ.
Khối nút nhấn : Dùng để người dùng cài đặt các thông số như giờ hiện tại, giờ báo thức hoặc bật/tắt chế độ báo thức Các nút nhấn gửi tín hiệu về vi điều khiển để hệ thống ghi nhận và xử lý lệnh điều chỉnh.
Mối liên kết giữa các khối:
Khối nguồn: Cung cấp năng lượng cho toàn bộ hệ thống, bao gồm vi điều khiển, module thời gian thực, màn hình hiển thị, nút nhấn và loa.
Khối thời gian thực: Kết nối với vi điều khiển để truyền dữ liệu thời gian thực, giúp hệ thống biết chính xác giờ, phút, giây hiện tại.
Vi điều khiển: Nhận dữ liệu thời gian từ DS3231, xử lý tín hiệu từ các nút nhấn, điều khiển màn hình hiển thị để hiển thị thông tin và kích hoạt loa khi đến thời gian báo thức
Khối hiển thị: Nhận tín hiệu điều khiển từ vi điều khiển để hiển thị giờ hiện tại, giờ báo thức và các trạng thái hoạt động của hệ thống
Khối loa: Được cấp nguồn từ khối nguồn và nhận tín hiệu điều khiển từ vi điều khiển để phát ra âm thanh cảnh báo khi đến giờ báo thức.
Khối nút nhấn : Kết nối với vi điều khiển để gửi các tín hiệu cài đặt, cho phép người dùng điều chỉnh thời gian hiện tại, thời gian báo thức hoặc bật/tắt chế độ báo thức.
Sơ đồ khối của hệ thống đồng hồ báo thức thể hiện một thiết kế tự động hóa đơn giản nhưng hiệu quả, trong đó các khối chức năng được liên kết chặt chẽ để đảm bảo khả năng hiển thị và cảnh báo thời gian chính xác trong mọi điều kiện.
Hệ thống hoạt động dựa trên nguyên tắc điều khiển thời gian thực, với sự phối hợp giữa vi điều khiển STM32, module thời gian thực DS3231, màn hình hiển thị, loa báo và các nút nhấn điều khiển Module DS3231 liên tục duy trì và cung cấp dữ liệu thời gian cho vi điều khiển, vi điều khiển xử lý thông tin, hiển thị lên màn hình và kích hoạt loa khi đến thời gian báo thức đã cài đặt Người dùng có thể dễ dàng cài đặt, điều chỉnh giờ hoặc bật/tắt báo thức thông qua các nút nhấn tích hợp
Với sự phối hợp nhịp nhàng giữa các khối chức năng, hệ thống đồng hồ báo thức đảm bảo hoạt động chính xác, ổn định và thân thiện với người dùng Thiết kế này không chỉ giúp quản lý thời gian hiệu quả mà còn có thể được mở rộng, ứng dụng trong các mô hình tự động hóa nhỏ, thiết bị nhắc nhở hay hệ thống điều khiển thông minh.
Khối nguồn
Khối nguồn là một phần của hệ thống điện tử, chịu trách nhiệm cung cấp, chuyển đổi, hoặc ổn định năng lượng điện (điện áp và dòng điện) để đảm bảo các linh kiện như vi điều khiển, module, màn hình, hoặc thiết bị ngoại vi hoạt động đúng cách Nó nhận năng lượng từ nguồn đầu vào (như pin, lưới điện, hoặc năng lượng tái tạo) và điều chỉnh thành các mức điện áp/dòng điện phù hợp (ví dụ: 3.3V, 5V, 12V).
Khối nguồn đóng vai trò cung cấp điện áp ổn định cho toàn bộ hệ thống giám sát nhiệt độ môi trường, bao gồm vi điều khiển, cảm biến, mạch công suất và các thiết bị ngoại vi khác. Một nguồn điện ổn định giúp đảm bảo hoạt động chính xác của các thành phần, tránh hỏng hóc do điện áp không ổn định.
2.2.3 Yêu cầu Ổn định điện áp: Đầu ra phải duy trì ở mức 5V DC tùy theo yêu cầu của từng linh kiện.
Công suất đủ lớn: Đáp ứng được tổng công suất tiêu thụ của hệ thống.
Bảo vệ quá tải, ngắn mạch: Tích hợp cầu chì, IC ổn áp hoặc mạch bảo vệ tự ngắt.
Hiệu suất cao: Giảm tổn hao nhiệt, tiết kiệm điện năng.
Nguồn adapter 5V 1A là bộ chuyển đổi điện năng có nhiệm vụ cung cấp điện áp một chiều ổn định 5V cho các thiết bị điện tử Về bản chất, adapter 5V 1A chuyển đổi từ nguồn điện xoay chiều 220V sang dòng điện một chiều, phù hợp cho các mạch vi điều khiển, module cảm biến, màn hình hoặc thiết bị ngoại vi khác Loại nguồn này được sử dụng phổ biến trong các sản phẩm như router WiFi, camera an ninh, mạch Arduino, STM32, thiết bị IoT hay các dự án điện tử học tập nhờ tính ổn định, an toàn và dễ sử dụng.
Thông số kĩ thuật Điện áp ngõ vào:100~240VAC, 50/60Hz. Điện áp ngõ ra: 5VDC
Dòng điện ngõ ra tối đa: 1A (nếu sử dụng liên tục nên cung cấp ở mức 70% công suất).
Kiểu giắc ngõ ra: Chuẩn Jack DC tròn 5.5*2.1~2.5mm
Chiều dài dây dẫn: 150cm
Khối vi điều khiển
Vi điều khiển (Microcontroller) là một mạch tích hợp (IC) nhỏ gọn, được thiết kế để thực hiện các nhiệm vụ điều khiển cụ thể trong các hệ thống điện tử Nó tích hợp một bộ vi xử lý (CPU), bộ nhớ (RAM, ROM hoặc Flash), và các ngoại vi (như cổng I/O, bộ định thời, ADC, giao tiếp UART/SPI/I2C) trên cùng một con chip.
2.3.2 Một số loại vi điều khiển
Arduino Uno (dễ lập trình, thư viện đa dạng).
ESP32 (có WiFi/Bluetooth, phù hợp giám sát từ xa).
Bảng 2.3 Các vi điều khiển thông dụng
Tiêu chí ESP32 STM32 Arduino
Hiệu năng Cao( dual - core,tốc độ cao)
Rất cao ( tùy dòng , phù hợp công nghiệp )
Thấp đến trung bình Ứng dụng phổ biến
IoT, kết nối không dây, dự án thông minh
Công nghiệp thiết bị nhúng phức tạp
Học tập , dự án DIY ,prototype
Vi xử lý (CPU) là trung tâm của máy tính hoặc thiết bị điện tử, hoạt động như "bộ não" với các chức năng cốt lõi: thực thi lệnh thông qua chu trình lấy, giải mã và thực hiện; thực hiện phép toán số học, logic để xử lý dữ liệu; điều phối luồng dữ liệu giữa bộ nhớ, thiết bị ngoại vi và các thành phần khác; đọc/ghi dữ liệu từ RAM hoặc bộ nhớ đệm; quản lý đa nhiệm để xử lý nhiều tác vụ đồng thời; và tối ưu năng lượng với các chế độ tiết kiệm điện trên vi xử lý hiện đại, đảm bảo hiệu suất và tốc độ của hệ thống.
STM32F103C8T6 được chọn cho hệ thống giám sát nhiệt độ vì nó sở hữu hiệu năng cao với vi điều khiển ARM Cortex-M3 32-bit, tốc độ 72 MHz, đảm bảo xử lý dữ liệu nhanh và ổn định. Với 20 KB SRAM và 64 KB Flash, nó đủ sức lưu trữ và xử lý dữ liệu từ các cảm biến nhiệt độ Module này có nhiều kênh ADC 12-bit chính xác, phù hợp để đọc tín hiệu analog từ cảm biến. Ngoài ra, STM32F103C8T6 hỗ trợ giao tiếp UART/SPI/I2C, dễ dàng kết nối với màn hình hoặc module truyền dữ liệu
STM32F103C8T6 là một trong những vi điều khiển tầm trung thuộc họ STM32F103x8 theo kiến trúc vi mạch RISC Bo mạch Blue Pill có chi phí thấp có thể thay thế cho các bo mạchSTM khác của hãng STMicroelectronics Trong hệ thống này ,STM32F103C8T6 sẽ đóng vai trò là vi điều khiển trong sơ đồ khối, chịu trách nhiệm điều phối hoạt động của các thành phần khác để duy trì các điều kiện lý tưởng cho quá trình giám sát(nhiệt độ).
Hình 2.3 2 Vi điều khiển STM32F103C8T6
Bộ vi điều khiển STM32F103C8T6 có các chân GPIO, bộ xử lý, bộ nhớ, cổng USB, bộ chuyển đổi tín hiệu Analog sang tín hiệu Digital và các thiết bị ngoại vi khác Một lõi ARM Cortex với tốc độ đáng kinh ngạc 72 MHz và hiệu suất năng lượng tương đối.
Bo mạch STM32F103C8T6 blue-pill có lõi ARM 32-bit Cortex- M3 RISC với bộ dao động bên trong 4 -16 MHz Nó là một chip công nghệ flash CMOS Chip này có 37 chân GPIO và 10 chân Analog Nó có một số giao thức giao tiếp hiện đại như CAN và USB
Các thiết bị ngoại vi cung cấp khả năng điều khiển vượt trội bo mạch vì nó hoạt động với điện áp rất thấp, vì vậy nó phù hợp cho các ứng dụng công suất thấp Nó có một bộ watchdog và window watchdog timer để bo mạch vận hành chính xác các dòng lệnh.
Hình 2.4 3 Sơ đồ chân vi điều khiển STM32F103C8T6
Sơ lược về vi điều khiển
1 cổng mini USB dùng dể cấp nguồn , nạp cũng như debug.
2 MCU bao gồm 1 MCU nạp và 1 MCU dùng để lập trình
Có chân output riêng cho các mạch nap trên MCU1
Có chân output đầy đủ cho các chân MCU2
Chân cấp nguồn ngoài riêng cho MCU2 nếu không sử dụng nguồn từ USB
Thạch anh 32,768khz dùng cho RTC và Backup.
Chân nạp dùng cho chế độ nạp boot loader.
Nút reset ngoài và 1 led hiển thị trên chân PB9 , 1 led báo nguồn cho MCU2
Bảng 2.4 Thông số vi điều khiển STM32F103C8T6
Kiểu chân Tên chân Mô tả
1 Điện áp hoạt động đầu ra
2 Chân cấp nguồn ở cổng USB hoặc nguồn 5V bên ngoài
3 Chân nối đất Chân Analog PA0-PA7, PB0-PB1 Chân ADC độ phân giải
PA0-PA15, PB0-PB15, PC13-PC15
Ngắt ngoài PA0-PA15, PB0-PB15,
PWM PA0-PA3, PA6-PA10,
15 chân điều chế độ rộng xung Giao tiếp dữ liệu nối tiếp
Chân dữ liệu I2C và chân xung nhịp Đèn LED tích hợp PC13 Đèn LED chỉ thị
Ngắt ngoài: Ngắt phần cứng được thực thi khi phát hiện sự thay đổi của các tín hiệu bên ngoài.
PWM: Tổng cộng 15 chân điều chế độ rộng xung để tạo tín hiệu điện áp tương tự analog từ các đầu ra PWM digital.
RTS / CTS: Request-to-Send / Clear-to-Send là một giao thức đảm bảo kiểm soát việc truyền và nhận dữ liệu.
SPI : giao thức để giao tiếp giữa bộ vi điều khiển và thiết bị ngoại vi.
CAN: đường bus truyền dữ liệu theo hai hướng.
I2C : Một giao thức truyền dữ liệu nối tiếp khác để truyền dữ liệu đồng bộ.
Khối thời gian thực
Khối thời gian thực là một phần tử trong hệ thống điện tử có nhiệm vụ quản lý và lưu trữ thời gian thực (giờ, phút, giây, ngày, tháng, năm) Về bản chất, đây là một mạch đồng hồ điện tử độc lập, thường được tích hợp dưới dạng module RTC (Real Time Clock) như DS3231, sử dụng thạch anh dao động và pin dự phòng để duy trì hoạt động liên tục Khối này giúp hệ thống có thể theo dõi và ghi nhận thời gian một cách chính xác, ngay cả khi nguồn chính bị ngắt.
Có, khối thời gian thực (RTC – Real Time Clock) có thể được phân loại dựa trên cấu tạo và nguyên lý hoạt động như sau: Theo cấu tạo phần cứng :
RTC tích hợp trong vi điều khiển ( STM32,ESP32,…) có sẵn bộ RTC bên trong , giúp theo dõi thời gian mà không cần module rời Ưu điểm : gọn gàng , tiết kiệm , dễ lập trình
Nhược điểm : mất thời gian khi tắt nguồn
RTC rời (DS3231, DS3232,DS1307,…) là các IC chuyên dụng đi kèm pin Ưu điểm : Chính xác cao , lưu được thời gian khi mất nguồn.
Nhược điểm : Cần giao tiếp qua I2C hay SPI với vi điều khiển.
Theo nguyên lí dao động thời gian
Loại dùng thạch anh : Sử dụng thạch anh 32.768 kHz làm chuẩn dao động, cho độ chính xác cao (sai số vài giây mỗi tháng) VD : DS1307,DS3231
Loại dùng mạch RC nội (Internal RC Oscillartor): Sử dụng mạch RC bên trong để tạo dao động, ít chính xác hơn và bị ảnh hưởng bởi nhiệt độ.
Thường thấy trong các vi điều khiển giá rẻ
Khối thời gian thực là bộ phận có chức năng duy trì và cung cấp thông tin về thời gian thực (giờ, phút, giây, ngày, tháng, năm) cho hệ thống Thiết bị này thường sử dụng module RTC như DS3231, có khả năng hoạt động ổn định và chính xác nhờ tích hợp thạch anh dao động và pin dự phòng, giúp lưu giữ thời gian ngay cả khi hệ thống mất điện Dữ liệu thời gian được truyền đến vi điều khiển để hiển thị hoặc sử dụng trong các chức năng hẹn giờ, báo thức và đồng bộ thời gian.
Module Thời Gian Thực RTC DS3231 là IC thời gian thực giá rẻ, rất chính xác với thạch anh tích hợp sẵn có khả năng điều chỉnh nhiệt IC có đầu vào cho pin riêng, tách biệt khỏi nguồn chính đảm bảo cho việc giữ thời gian chính xác Thạch anh tích hợp sẵn giúp tăng độ chính xác trong thời gian dài hoạt động và giảm số lượng linh kiện cần thiết khi làm board.
Thời gian trong IC được giữ ở dạng: giờ, phút, giây, ngày, thứ, tháng, năm Các tháng có ít hơn 31 ngày sẽ tự động được điều chỉnh, các năm Nhuận cũng được chỉnh đúng số ngày Thời gian có thể hoạt động ở chế độ 24h hoặc 12h AmPM IC còn có chức năng báo động, có thể cài đặt 2 thời gian báo và lịch, có tín hiệu ra là xung vuông Giao tiếp với IC được thực hiện thông qua I2C bus.
Moule thời gian thực DS3231 có cấu tạo gồm mạch dao động tinh thể thạch anh, bộ bù nhiệt độ (TCXO), mạch đo nhiệt độ tích hợp, mạch logic thời gian thực, bộ nhớ SRAM nhỏ, và nguồn pin dự phòng Dao động tinh thể tạo xung nhịp cho đồng hồ, còn bộ bù nhiệt độ và mạch đo nhiệt độ giúp hiệu chỉnh sai số do thay đổi nhiệt độ môi trường Toàn bộ các thành phần này được tích hợp trong một chip duy nhất, giao tiếp với vi điều khiển qua chuẩn I2C, giúp DS3231 duy trì và cung cấp thời gian chính xác cao.
Bảng 2.5 Các chân của DS3231
2 INT/SQW Chân cung cấp tín hiệu ngắt (do điều kiện cảnh báo) hoặc đầu ra sóng vuông ở tần số 1Hz, 4kHz, 8kHz hoặc 32kHz
4 32K Chân xuất ra đồng hồ tham chiếu chính xác (bù nhiệt độ) và ổn định.
5 SCL Chân xung nhịp đồng hồ
Thông số kĩ thuật DS3231 Điện áp hoạt động của MODULE DS3231: 2.3V - 5.5V
Có thể hoạt động trên điện áp THẤP
Tiêu thụ 500nA khi pin dự phòng Điện áp tối đa tại SDA, SCL: VCC + 0,3V
Nhiệt độ hoạt động: -45ºC đến + 80ºC Để điều khiển module DS3231 ta phải thông qua giao tiếp với I2C Dữ liệu được gửi đến mô-đun hoặc nhận từ mô-đun thông qua giao diện I2C Vì vậy chúng ta phải lấy thông tin NGÀY và GIỜ qua giao diện này Sơ đồ mạch mặc định của giao diện mô-đun DS3231 RTC được hiển thị bên dưới.
Hình 2.6 Sơ đồ chân DS3231
Như thể hiện trong sơ đồ mạch, mô-đun được kết nối với nguồn điện + 5V Mô-đun có thể hoạt động trên nguồn quy định + 5V và điện áp cao hơn có thể làm hỏng mô-đun Giao diện I2C được thiết lập như trong hình Tất cả những gì bạn cần làm là kết nối SDA của mô-đun với SDA của bộ điều khiển và SCL được kết nối với SCL của bộ điều khiển.
Giao tiếp giữa bộ điều khiển và mô-đun thực sự phức tạp Thông thường thông tin được gửi hoặc nhận từng byte Vì vậy, sử dụng các thư viện được viết cho mô-đun DS3231 là lý tưởng Sử dụng thư viện làm cho việc liên lạc trở nên dễ dàng Tất cả những gì bạn cần làm là tải xuống các thư viện này và gọi chúng trong các chương trình Khi tệp tiêu đề được bao gồm, bộ điều khiển tự thực hiện giao tiếp và cung cấp ngày và giờ cho bạn Đồng hồ báo thức cũng có thể được đặt hoặc thay đổi dễ dàng bằng cách sử dụng các thư viện.
Và khi mất điện, chip mô-đun RTC sẽ tự động lấy điện từ nguồn pin được kết nối với nó Vì vậy, thời gian sẽ được cập nhật Và khi hệ thống khởi động lại bộ điều khiển có thể nhận được thời gian thực từ mô-đun mà không bị lỗi.
Nguyên lí hoạt động của DS3231
Bước 1 : Tạo xung chuẩn thời gian
DS3231 sử dụng bộ dao động thạch anh nội 32.768 kHz để tạo ra xung clock chuẩn cho toàn bộ hệ thống thời gian.
Bước 2 : Chia tần và đếm thời gian
Các bộ đếm tăng dần (modulo) theo xung clock:
Khi hết tháng , năm , mạch tự động cập nhật ngày ( có tính năm nhuận ).
Bước 3 : Lưu trữ dữ liệu thời gian
Thời gian thực được lưu trong các thanh ghi BCD (Binary- Coded Decimal) Vi điều khiển có thể đọc hoặc ghi các giá trị này qua giao tiếp I2C (địa chỉ 0x68).
Bước 4 : Tự động bù sai số có nhiệt độ
DS3231 có cảm biến nhiệt độ tích hợp, định kỳ đo và tự điều chỉnh tần số dao động để đảm bảo độ chính xác cao (sai số chỉ ±2 ppm)
Bước 5 : Chức năng báo thức và xung vuông
Chip có 2 ngõ báo thức có thể cài đặt thời điểm kích hoạt. Ngoài ra, chân SQW có thể xuất xung vuông ở tần số 1Hz, 4kHz, 8kHz hoặc 32kHz.
Bước 6 : Duy trì thời gian khi mất nguồn.
Khi mất nguồn chính (VCC), DS3231 tự động chuyển sang dùng nguồn pin dự phòng (VBAT) để giữ cho đồng hồ tiếp tục chạy mà không mất dữ liệu.
Khối hiển thị
Khối hiển thị là một phần của hệ thống điện tử, chịu trách nhiệm trình bày thông tin (dữ liệu, trạng thái, hoặc thông báo) dưới dạng trực quan để người dùng dễ dàng quan sát và tương tác Nó nhận tín hiệu từ vi điều khiển hoặc bộ xử lý, chuyển đổi thành hình ảnh, văn bản, hoặc biểu tượng trên các thiết bị như màn hình LCD, OLED, LED, hoặc màn hình cảm ứng Khối hiển thị đóng vai trò giao diện người dùng, giúp theo dõi các thông số (như nhiệt độ, độ ẩm trong hệ thống giám sát môi trường) hoặc trạng thái hệ thống (như bật/tắt quạt).
Dễ đọc: Màn hình rõ nét ngay trong môi trường thiếu sáng. Tiết kiệm điện: Ít ảnh hưởng đến thời gian dùng pin (nếu có).
Giao tiếp đơn giản: I2C hoặc SPI để tiết kiệm chân vi điều khiển.
Khối hiển thị có chức năng cung cấp giao diện trực quan để trình bày thông tin thời gian thực như giờ, phút, giây và ngày tháng được lấy từ module DS3231 Màn hình LCD 1602 giao tiếp I2C giúp hiển thị dữ liệu rõ ràng, tiết kiệm chân kết nối và dễ lập trình Nhờ khối hiển thị, người dùng có thể quan sát thời gian, theo dõi trạng thái báo thức và thao tác cài đặt thông qua các nút nhấn, góp phần tăng tính tiện dụng và trực quan cho toàn bộ hệ thống.
Màn hình LCD 1602 là một loại màn hình tinh thể lỏng (Liquid Crystal Display) phổ biến, có khả năng hiển thị 16 ký tự trên 2 dòng (16x2) Màn hình này thường được sử dụng trong các dự án điện tử để hiển thị thông tin như nhiệt độ, độ ẩm, hoặc trạng thái hệ thống Trong hệ thống giám sát nhiệt độ môi trường, LCD 1602 sẽ hiển thị các thông số môi trường (nhiệt độ và ngưỡng) để người dùng dễ dàng theo dõi và điều chỉnh nếu cần.
- Thông Số Kỹ Thuật Chính Của LCD 1602
Kích Thước Hiển Thị: 16 ký tự x 2 dòng. Điện Áp Hoạt Động: 5V (thường sử dụng).
Dòng Điện Tiêu Thụ: Khoảng 20-40mA (tùy thuộc vào độ sáng đèn nền).
Sử dụng giao tiếp song song 4-bit hoặc 8-bit.
Trong dự án này, sẽ sử dụng giao tiếp 4-bit để tiết kiệm chân I/O của STM32. Đèn Nền (Backlight): Có đèn nền LED, có thể điều chỉnh độ sáng thông qua biến trở.
Kích Thước: Khoảng 80mm x 36mm x 12mm (phù hợp với các hệ thống nhỏ gọn).
Hình 2.7 Sơ đồ chân LCD 1602
Bảng 2.6 Chức năng các chân của LCD1602
3 V0 Độ tương phản RS=0 (mức thấp) chọn thanh ghi lệnh RS=1 (mức cao) chọn thanh ghi dữ liệu
4 RS Lựa chọn thanh ghi R/W=0 thanh ghi viết
5 R/W Chọn thanh ghi đọc/viết dữ liệu
11 DB4 Chân truyền dữ liệu
15 A Cực dương led nền 0V đến 5V
Hình 2.8 Một số lệnh điều khiển LCD
Khối báo thức
Khối báo thức là một phần của hệ thống điện tử, có nhiệm vụ tạo tín hiệu cảnh báo bằng âm thanh khi thời gian thực đạt đến giá trị được cài đặt trước Khối này thường bao gồm loa (buzzer) để phát ra âm thanh và mạch điều khiển (sử dụng transistor hoặc vi điều khiển) để kích hoạt hoặc tắt tiếng báo dựa trên tín hiệu từ module DS3231 Khi đến thời điểm báo thức, vi điều khiển so sánh thời gian hiện tại với thời gian đặt trước và gửi tín hiệu điều khiển để loa hoạt động Trong hệ thống đồng hồ báo thức, khối này giúp người dùng nhận biết chính xác thời điểm cần báo, tăng tính tiện ích và tương tác của thiết bị.
Khối báo thức có chức năng phát tín hiệu cảnh báo bằng âm thanh khi thời gian thực trùng với thời gian đã cài đặt trước Nó giúp nhắc nhở người dùng về các mốc thời gian quan trọng Vi điều khiển sẽ so sánh thời gian hiện tại từ module DS3231 với thời gian báo thức, khi trùng khớp sẽ kích hoạt loa (buzzer) phát ra âm thanh Ngoài ra, người dùng có thể bật/tắt hoặc điều chỉnh thời gian báo thức thông qua các nút nhấn trên hệ thống, giúp thiết bị hoạt động linh hoạt và tiện lợi.
Buzzer thụ động : Khác với buzz chủ động có mạch dao động bên trong nên chỉ cần cấp nguồn là mạch phát một âm thanh dài, còn còi buzz thụ động không có bộ dao động bên trong nên khi cấp một tần số từ 2khz – 5khz còi sẽ phát âm thanh thanh tùy theo tần số và thời gian, còi buzz thụ động với những ưu điểm như: giá rẻ, tần số âm thanh có thể được kiểm soát giúp tạo ra nhiều hiệu ứng âm thanh.
Thông số kỹ thuật Điện áp: 5Vdc
Tần số hoạt động: 2Khz -5Khz
Khối nút nhấn
Khối nút nhấn là một thành phần trong hệ thống đồng hồ báo thức, bao gồm các nút nhấn (push buttons) và mạch giao tiếp với vi điều khiển, dùng để tạo tín hiệu điều khiển cho việc thiết lập và thao tác thời gian Mỗi nút nhấn hoạt động như một công tắc cơ học, khi được nhấn sẽ tạo tín hiệu logic (HIGH hoặc LOW) để vi điều khiển nhận biết và thực hiện lệnh tương ứng. Trong hệ thống đồng hồ, các nút nhấn được sử dụng để chỉnh giờ, phút, cài đặt báo thức, tắt chuông hoặc thay đổi chế độ hiển thị, giúp người dùng dễ dàng tương tác và điều khiển thiết bị.
Khối nút nhấn trong hệ thống đồng hồ báo thức có chức năng tương tác và cài đặt các thông số hoạt động thông qua bốn nút điều khiển chính Cụ thể, hệ thống có 4 nút nhấn gồm: Mode: chuyển đổi giữa các chế độ hiển thị (giờ, phút, ngày, tháng, cài đặt báo thức…).
Setting: cho phép vào hoặc thoát chế độ cài đặt.
Tăng (Up): dùng để tăng giá trị thời gian hoặc thông số cần điều chỉnh.
Giảm (Down): dùng để giảm giá trị tương ứng.
Nhờ đó, người dùng có thể thay đổi và điều chỉnh các thông số như thời gian, giờ báo thức hoặc ngưỡng kích hoạt báo thức một cách linh hoạt, không cần sửa đổi mã nguồn hay sử dụng công cụ lập trình Cách thiết kế này giúp hệ thống dễ sử dụng,thân thiện và phù hợp với nhiều ứng dụng thực tế.
Loại: Nút nhấn tạm thời (momentary switch) Kích thước: 6 mm × 6 mm × 6 mm
Số chân: 4 chân (2 cặp nối thông khi nhấn) Điện áp định mức: 12V DC (tối đa)
Dòng điện định mức: 50 mA (tối đa) Điện trở tiếp xúc: ≤ 100 mΩ
Tuổi thọ: Khoảng 100.000 lần nhấn
Nhiệt độ làm việc: -25°C đến +70°C
Kiểu gắn: Hàn chân trực tiếp lên bo mạch PCB
Hình 2.14 Sơ đồ chân nút nhấn
Giao tiếp I2C
I2C viết tắt của Inter- Integrated Circuit là một phương thức giao tiếp được phát triển bởi hãng Philips Semiconductors. Dùng để truyền tín hiệu giữa vi xử lý và các IC trên các bus nối tiếp. Đặc điểm :
Thường sử dụng onboard với đường truyền ngắn
Nối được nhiều thiết bị trên cùng một bus
Giao tiếp đồng bộ, sử dụng Clock từ master
Sử dụng 7 bit hoặc 10 bit địa chỉ
Chỉ sử dụng 2 chân tín hiệu SDA, SCL
Có 2 tốc độ tiêu chuẩn là Standard mode (100 kb/s)và Low mode (10 kbit/s).
2.3.2 Kết nối vật lý của giao thức I2C
Bus I2C sử dụng 2 dây tín hiệu là SDA (Serial Data Line) vàSCL (Serial Clock Line) Dữ liệu truyền trên SDA được đồng bộ với mỗi xung SCL Đường SCL chỉ master mới có quyền điều khiển.
Tất cả các thiết bị đều dùng chung 2 đường tín hiệu này.
Hình 2.15 Sơ đồ giao tiếp I2C (Inter-Integrated Circuit)
Hai đường bus SDA và SCL hoạt động ở chế độ Open Drain hay cực máng hở Nghĩa là tất cả các thiết bị trong mạng đều chỉ có thể lái 2 chân này về 0 chứ không thể kéo lên 1 Để tránh việc sảy ra ngắn mạch khi thiết bị này kéo lên cao, thiết bị kia kéo xuống thấp. Để giữ mức logic là 1 ở trạng thái mặc định phải mắc thêm
2 điện trở treo lên Vcc (thường từ 1k – 4k7).
Mỗi Bus I2C sẽ có 3 chế độ chính:
Hình 2.16 Sơ đồ một Master , nhiều Slave
Hình 2.17 Sơ đồ nhiều Master , nhiều Slave
Tại một thời điểm truyền nhận dữ liệu chỉ có một Master được hoạt động, điều khiển dây SCL và phát tín hiệu bắt đầu tới các Slave.
Tất cả các thiết bị đáp ứng sự điều hướng của Master gọi là Slave Giữa các Slave với nhau, phân biệt bằng 7bit địa chỉ.
2.8.3 Cách truyền dữ liệu của giao thức I2C
Giao thức (phương thức giao tiếp) là cách các thiết bị đã thống nhất với nhau khi sử dụng một chuẩn nào đó để truyền và nhận tín hiệu.
Dữ liệu được truyền đi trên dây SDA được thực hiện như sau:
1 Master thực hiện điều kiện bắt đầu I2C (Start Condition)
2 Gửi địa chỉ 7 bit + 1bitĐọc/Ghi (R/W) để giao tiếp muốn đọc hoặc ghi dữ liệu tại Slave có địa chỉ trên
3 Nhận phải hồi từ Bus, nếu có một bit ACK (Kéo SDA xuống thấp) Master sẽ gửi dữ liệu
4 Nếu là đọc dữ liệu R/W bit = 1, chân SDA của master sẽ là input, đọc dữ liệu từ Slave gửi về Nếu là ghi dữ liệu R/W 0, chân SDA sẽ là output ghi dữ liệu vào Slave
5 Truyền điều khiện kết thúc (Stop Condition)
Mỗi lần giao tiếp có cấu trúc như sau:
Hình 2.18 Cấu trúc khung truyền dữ liệu trong giao tiếp I2C
Start condition( Điều khiện bắt đầu)
Bất cứ khi nào một thiết bị chủ / IC quyết định bắt đầu một giao dịch, nó sẽ chuyển mạch SDA từ mức điện áp cao xuống mức điện áp thấp trước khi đường SCL chuyển từ cao xuống thấp.
Khi điều kiện bắt đầu được gửi bởi thiết bị Master, tất cả các thiết bị Slave đều hoạt động ngay cả khi chúng ở chế độ ngủ(sleep mode) và đợi bit địa chỉ.
Hình 2.19 Tín hiệu Start Condition trong giao tiếp I2C
Bit này xác định hướng truyền dữ liệu Nếu thiết bị Master /
IC cần gửi dữ liệu đến thiết bị Slave, bit này được thiết lập là ‘0’. Nếu IC Master cần nhận dữ liệu từ thiết bị Slave, bit này được thiết lập là ‘1’.
ACK / NACK là viết tắt của Acknowledged/Not- Acknowledged Nếu địa chỉ vật lý của bất kỳ thiết bị Slave nào trùng với địa chỉ được thiết bị Master phát, giá trị của bit này được set là ‘0’ bởi thiết bị Slave Ngược lại, nó vẫn ở mức logic
Nó bao gồm 8 bit và chúng được thiết lập bởi bên gửi, với các bit dữ liệu cần truyền tới bên nhận Khối này được theo sau bởi một bit ACK / NACK và được set thành ‘0’ bởi bên nhận nếu nó nhận thành công dữ liệu Ngược lại, nó vẫn ở mức logic ‘1’.
Sự kết hợp của khối dữ liệu theo sau bởi bit ACK / NACK được lặp lại cho đến quá trình truyền dữ liệu được hoàn tất. Điều kiện kết thúc (Stop condition)
Sau khi các khung dữ liệu cần thiết được truyền qua đường SDA, thiết bị Master chuyển đường SDA từ mức điện áp thấp sang mức điện áp cao trước khi đường SCL chuyển từ cao xuống thấp.
Hình 2.20 Tín hiệu Stop Condition trong giao tiếp I2C
Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn
2 chân (SCL, SDA) để kết nối.
Module I2C hỗ trợ các loại LCD sử dụng driverHD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.
Hình 2.21 Module I2C LCD1602 Ưu điểm
Tiết kiệm chân cho vi điều khiển.
Dễ dàng kết nối với LCD.
Thông số kĩ thuật Điện áp hoạt động: 2.5-6V DC.
Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780). Giao tiếp: I2C. Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2).
Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt. Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.
Hình 2.22 5 Sơ đồ khối của Module I2C
Vai Trò Trong Hệ Thống
Hiển Thị Thông Số: Hiển thị nhiệt độ (độ C) đo được từ cảm biến (như DHT11) và ngưỡng tối đa do mình đặt.
Cung Cấp Thông Tin Trực Quan: Giúp người dùng theo dõi tình trạng môi trường mà không cần kết nối với máy tính hoặc thiết bị khác.
Bảng 2.7 Phân bố chân PCF8574
INT 13 1 Ngõ ra ngắt ( active LOW )
SCL 14 2 Đường dây đồng hồ nối tiếp
SDA 15 4 Đường dây dữ liệu nối tiếp
I2C ( Inter – Inter Circuit ) là 1 giao thức giao tiếp nối tiếp đồng bộ được phát triển bởi Philips Semiconductors , sử dụng để truyền nhận dữ liệu giữa các IC với nhau chỉ sử dụng hai đường truyền tín hiệu.
I2C sử dụng 2 đường truyền tín hiệu
SCL – Serial Clock Line : Tạo xung nhịp đồng hồ cdo Master phát đi
SDA - Serial Data Line : Đường truyền nhận dữ liệu
Hình 2.23 Sơ đồ I2C Master-Slave
Bước 1 : Master gửi tín hiệu start I2C
Bước 2 : Master gửi địa chỉ của thiết bị I2C (7bit) kèm bit Write ( bit 0)
Bước 3 : Master gửi địa chỉ thanh ghi của Slave mà muốn đọc dữ liệu
Bước 4 : Master gửi tín hiệu Repeated Start
Bước 5 : Master gửi địa chỉ của thiết bị I2C( 7bit) kèm bit Read ( bit1).
Bước 6 : Master đọc dữ liệu chứa trong thanh ghi ở bước 3 từ Slave gửi về.
Bước 7 : Master tạo tín hiệu Stop.
DS3231 là chip thời gian thực, giao tiếp thông qua giao thức I2C Làm việc tại dải điện áp từ 2.3 đến 5.5V, tích hợp sẵn thạch anh nội nên rất nhỏ gọn.
Có 2 chế độ hẹn giờ có thể Config từng giây tới ngày trong tháng.
DS3231 có địa chỉ 7bit là 0x68 Cách đọc và truyền được mô tả như trong hình
Hình 2.24 Ghi dữ liệu – Chế độ Slave nhận
Hình 2.25 Đọc dữ liệu – Chế độ Slave truyền
Bảng sau mô ta địa chỉ lưu các giá trị ngày tháng năm đó là từ 0x00 tới 0x06.
Các byte từ 0x07 tới 0x0D lưu giá trị Hẹn giờ A1M và A2MCác byte từ 0x0E tới 0x12 là các thanh ghi điều khiểnDS3231
Hình 2.26 Bảng thanh ghi DS3231
THIẾT KẾ, THI CÔNG HỆ THỐNG
Cấu hình trên STM32 CubeMX
Hình 3.1 Cấu hình chân CubeMX
Ta tiến hành Setting cơ bản để lập trình trên KeilC Để giao tiếp với LCD và DS3231 ta dùng giao tiếp I2C , có 2 chân PB7 và PB6 để kết nối SDA và SCL
Hình 3.2 Cấu hình giao tiếp I2C
Tiếp theo đến 4 nút với 4 lệnh khác nhau Mode là chỉnh chế độ set giờ hay set báo thức Up,down để chỉnh giá trị thời gian hoặc chỉnh báo thức Nút Ok là để tắt báo thức Tất cả đều để ở INPUT và để mặc định
Hình 3.3 Cấu hình chân GPIO Đây là còi thụ động nên nó không tự kêu , ta phải tín hiệu dao động (PWM), phải tạo sóng vuông liên tục nên ta sử dụng Timer PWM
Dưới đây là công thức tính tần số timer
Hình 3.4 Công thức tần số timer
Trong đó: PSC: cơ số bộ chia tần; ARR: giá trị đếm cực đại; Fs: tần số hệ thống.
Còi nghe ở mức bình thường khoảng 2kHz
Nên ta có Ft=2kHz Áp vào công thức FsrMHz ( đã cấu hình ở cubeMX) ta có PSC = 71
Hình 3.5 Thông số cổng TIM3
Vì ta đã xác định tần số chu kì là thứ quyết định độ cao của tiếng kêu
Ta có thể cài độ to của còi để cho phù hợp
Như trên hình thì ta đang để Duty Cylce = 50% Đây là độ to phù hợp , nếu ta để là 0 thì còi không kêu , 100 thì còi kêu nhỏ không đủ để đánh thức ta dậy , 400 thì còi sẽ bị rè khó nghe Nên 250 là mức phù hợp mà ta nên chọn
Hình 3.7 Cấu hình Clock Còniguation
Lưu đồ thuật toán
Hình 3.8 Lưu đồ thuật toán
Chương trình bắt đầu bằng việc khởi tạo các thành phần phần cứng và thư viện như HAL, Clock, GPIO, I2C, TIM3, LCD vàDS3231, sau đó đọc thời gian thực từ module DS3231 để hiển thị Trong vòng lặp chính, chương trình kiểm tra nút MODE; khi người dùng nhấn nút này, chế độ hoạt động sẽ thay đổi giữa các chế độ hiển thị và cài đặt Ở chế độ cài đặt (Mode = 1), người dùng có thể sử dụng các nút UP và DOWN để tăng hoặc giảm giá trị của từng trường thời gian như giờ, phút, giây Khi hoàn tất việc chỉnh sửa và nhấn nút OK, chương trình sẽ cập nhật lại dữ liệu vào DS3231 và có thể bật hoặc tắt báo thức Ở chế độ hiển thị, nếu đến thời điểm báo thức, còi sẽ được kích hoạt để báo hiệu Người dùng có thể tắt còi thủ công bằng cách nhấn nút PA3 Trên màn hình LCD sẽ hiển thị thông tin phù hợp, chẳng hạn khi còi đang kêu sẽ hiển thị “ALARM! Press OK…”, còn khi bình thường sẽ hiển thị thời gian thực hoặc trạng thái báo thức. Cuối cùng, chương trình lặp lại liên tục với một khoảng trễ ngắn để cập nhật và phản hồi các thao tác của người dùng.
Sơ đồ kết nối
Để hiện thực hóa phần cứng của hệ thống đồng hồ báo thức sử dụng DS3231, việc thiết kế sơ đồ nguyên lý và mạch in (PCB) là một bước quan trọng nhằm đảm bảo kết nối chính xác giữa các linh kiện, đồng thời tối ưu bố trí phần cứng để hệ thống hoạt động ổn định và chính xác Trong quá trình này, nhóm em sử dụng phần mềm EasyEDA làm công cụ chính để :
Vẽ sơ đồ nguyên lý (schematic diagram) nhằm xác định mối liên kết giữa các thành phần như vi điều khiển, module thời gian thực DS3231, màn hình hiển thị LCD I2C , các nút điều khiển và loa bác thức.
Thiết kế mạch in PCB (Printed Circuit Board) với bố trí linh kiện hợp lý, đảm bảo tính thẩm mỹ, dễ dàng thi công và thuận tiện cho việc sửa chữa, bảo trì.
Phần này trình bày chi tiết quá trình thiết kế sơ đồ nguyên lý và bố trí mạch in PCB cho hệ thống, bao gồm các thành phần chính và nguyên tắc thiết kế nhằm đảm bảo hiệu quả hoạt động, độ ổn định và độ tin cậy cao.
Hình 3.9 Sơ đồ kết nối
Mạch PCB
Sau khi thiết kế sơ đồ kết nối EasyEda , ta vẽ mạch PCB, kết quả như hình vẽ sau
Sản phẩm trên mô phỏng 3D trên EasyEda:
Hình 3.11 Hình ảnh mô phỏng 3D
Sản phầm thực tế
Sau khi thiết kế, thi công ta được sẩn phẩm như hình
Hình 3.12 Hình ảnh thực tế sản phẩm
Kết luận và định hướng phát triển
Qua đề tài “Thiết kế đồng hồ báo thức sử dụng DS3231”, nhóm đã tiến hành nghiên cứu và triển khai các nội dung theo mục tiêu đề ra, bao gồm:
Chương 1 : Trình bày tổng quan về đề tài, mục đích, phạm vi và các ứng dụng thực tiễn của hệ thống đồng hồ báo thức trong đời sống.
Chương 2 : Phân tích cơ sở lý thuyết của các linh kiện chính như module thời gian thực DS3231, vi điều khiển, màn hình LCD I²C, 4 nút nhấn điều khiển, và loa báo thức.
Chương 3 : Thiết kế sơ đồ nguyên lý, mạch nguyên lý và bố trí mạch in PCB bằng phần mềm EasyEDA.
Trong quá trình thực hiện, nhóm đã tích lũy thêm nhiều kiến thức và kỹ năng chuyên môn như:
- Lập trình vi điều khiển STM32 và sử dụng các giao thức như I2C.
- Thiết kế và lập trình chức năng cài đặt, chỉnh giờ, báo thức thông qua 4 nút nhấn.
- Điều khiển hiển thị thông số trên màn hình LCD
- Điều khiển và phát âm thanh báo thức bằng loa
(buzzer) thông qua tín hiệu từ vi điều khiển
- Thiết kế và hoàn thiện mạch nguyên lý, mạch in
PCB đảm bảo tính ổn định, thẩm mỹ và dễ dàng thi công.
2 Về thiết bị Ưu điểm
Hệ thống hoạt động ổn định, thực hiện tốt các chức năng hiển thị thời gian, cài đặt giờ và báo thức chính xác nhờ module thời gian thực DS3231.
Sử dụng các linh kiện phổ biến như vi điều khiển, DS3231, LCD I²C, loa (buzzer) và nút nhấn, giúp dễ dàng lắp ráp, bảo trì và thay thế khi cần.
Thiết kế đơn giản, nhỏ gọn, chi phí thấp, phù hợp cho các ứng dụng học tập, nghiên cứu và thực hành vi điều khiển.
Màn hình LCD I²C hiển thị rõ ràng các thông tin giờ, phút, giây và trạng thái báo thức.
Có thể dễ dàng mở rộng thêm các tính năng khác nhờ hệ thống phần cứng được thiết kế linh hoạt.
Giao diện LCD còn đơn giản, chỉ hiển thị thông tin cơ bản, chưa có biểu tượng hoặc hiệu ứng trực quan.
Chưa có chức năng lưu thời gian báo thức khi mất điện(nếu không dùng pin backup hoặc EEPROM). Âm báo từ loa (buzzer) còn đơn điệu, chưa có khả năng điều chỉnh âm lượng hoặc kiểu chuông.
Hệ thống chưa hỗ trợ đồng bộ thời gian tự động qua mạng hoặc nguồn thời gian ngoài.
Thiết bị được chế tạo thủ công nên độ bền cơ khí và tính thẩm mỹ chưa cao.
3 Hướng phát triển Để nâng cao hiệu quả và mở rộng ứng dụng của hệ thống, nhóm đề xuất các hướng phát triển sau:
Cải thiện thiết kế phần cứng: Nâng cấp bố cục PCB, sử dụng vỏ bảo vệ chuyên dụng nhằm tăng độ bền và tính thẩm mỹ. Nâng cấp giao diện hiển thị: Sử dụng màn hình OLED hoặc TFT để hiển thị thông tin trực quan và sinh động hơn.
Tích hợp lưu trữ dữ liệu: Lưu thời gian báo thức và lịch sử hoạt động vào EEPROM hoặc thẻ nhớ SD.
Kết nối không dây: Tích hợp module WiFi (ESP8266/ESP32) hoặc Bluetooth để đồng bộ thời gian tự động và điều khiển qua điện thoại.
Tối ưu tiêu thụ năng lượng: Sử dụng chế độ sleep mode cho vi điều khiển và tắt màn hình khi không sử dụng để kéo dài thời gian hoạt động.
Tăng tính năng cảnh báo: Thêm đèn LED hoặc hiệu ứng âm thanh khác để nâng cao trải nghiệm người dùng.