Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 55 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
55
Dung lượng
4,22 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA CÔNG NGHỆ THÔNG TIN MÔN: HỆ THỐNG NHÚNG ĐỀ TÀI NHÀ THÔNG MINH KẾT NỐI BLUETOOTH Giảng viên hướng dẫn : Ths Đinh Công Đoan NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN TP.Hồ Chí Minh, tháng 05 năm 2019 Giảng viên hướng dẫn (Ký tên) MỤC LỤC PHẦN MỞ ĐẦU Lời nói đầu Xuất từ năm đầu thập niên 1960, hệ thống nhúng dần trở thành ngành phát triển mạnh mẽ lĩnh vực công nghệ thông tin (CNTT), với ứng dụng rộng rãi công nghiệp đời sống Từ hệ thống phức tạp hàng khơng vũ trụ, phịng thủ qn sự, máy móc tự động cơng nghiệp, đến phương tiện di chuyển thông thường máy bay, xe điện, xe hơi, trang thiết bị y tế bệnh viện, thiết bị truyền hình điện thoại di động sử dụng ngày, có diện hệ thống nhúng Ngày với phát triển đó, ứng dụng hệ thống nhúng vào việc điều khiển hệ thống phức tạp, vận hành dây chuyền, … với xác, làm việc độc lập đạt hiệu ổn định Trong công nghệ nay, công nghệ truyền liệu không dây thiết bị điện tử phát triển Trong có cơng nghệ bluetooth, tích hợp thiết bị phổ biến smartphone, tablet, laptop,… Công nghệ hỗ trợ việc truyền liệu qua khoảng cách ngắn thiết bị với mà không cần sợi cáp để truyền tải Công nghệ bluetooth sử dụng hệ thống nhúng cho phép ta điều khiển thiết bị từ xa giúp tối ưu hóa mặt thời gian hiệu Đặt vấn đề 2.1 Tóm lược nghiên cứu nước liên quan đến đề tài Ngoài nước: Hệ thống nhúng (SoC) âm tích hợp Bluetooth Microchip https://trainghiemso.vn/he-thong-nhung-soc-am-thanh-tich-hop-bluetooth-moicua-microchip/ Trong nước: Xe điều khiển từ xa thông qua smartphone http://luanvan.net.vn/luan-van/xe-dieu-khien-tu-xa-thong-qua-smartphone-76631/ Điều khiển thiết bị thông qua bluetooth laptop sử dụng phần mềm processing https://tapit.vn/dieu-khien-thiet-bi-qua-bluetooth-laptop-su-dung-phan-memprocessing/ Ứng dụng điều khiển thiết bị điện nhà bluetooth (nhà thơng minh) https://baomoi.com/hai-nu-sinh-thiet-ke-ung-dung-dieu-khien-thiet-bi-dien-trongnha/c/25724365.epi 2.2 Một số tài liệu có liên quan Một số nguồn tham khảo: • Jonathan W Valvano, Embedded Systems: Introduction to Armđ ã Cortex(TM)-M Microcontrollers(Volume 1), 2012 Joseph Yiu, “The Definitive Guide to the ARM Cortex-M4”, Elsevier Newnes, 2007 • Ths Đinh Cơng Đoan, Bài giảng Hệ thống nhúng, khoa CNTT đại học SPKT TP.HCM Một số viết internet: • https://www.st.com/resource/en/datasheet/cd00161566.pdf • http://arduino.vn/bai-viet/1065-quan-ly-ngoi-nha-thong-qua-bluetooth-iot 2.3 Tính cấp thiết đề tài Ngày nay, thiết bị gia dụng, nâng cấp phát triển, song người phải tương tác vật lý với thiết bị ( dùng tay để bật, điều chỉnh thông số,…) sống thời đại với công nghệ thông tin phát triển vượt bậc, công nghệ 4.0 Một số thiết bị ngày điều khiển từ xa cách tiện lợi mà không cần phải tự đến chỗ đối tượng Chính vậy, tận dụng việc công nghệ bluetooth cho phép thiết bị thông minh nhận truyền liệu từ xa, chúng em kết hợp với hệ thống nhúng để tạo ứng dụng điều khiển đồ vật gia dụng từ xa thông qua smartphone giúp tăng tính thuận lợi tối ưu hóa thời gian cho người sử dụng 2.4 Mục tiêu đề tài Tạo ứng dụng điều khiển thiết bị gia dụng từ xa thông qua smartphone với công nghệ bluetooth kết hợp với hệ thống nhúng Hiểu cách thức mà bluetooth hoạt động thiết bị điện tử thông minh Hiểu cách thức hoạt động chip ARM Cortex M3 kit STM32F103C8CB hệ thống nhúng, từ kết hợp với thiết bị bluetooth để điều khiển thiết bị gia dụng từ xa 2.5 Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu: bluetooth, kit STM32F103C8CB, nhân xử lý ARM Cortex M3 Phạm vi nghiên cứu: • Tìm hiểu cấu trúc chung, nguyên lý hoạt động kit STM32F103C8CB, • • nhân xử lý ARM Cortex M3 Tìm hiểu nguyên lý hoạt động bluetooth Tìm hiểu cách thức giao tiếp bluetooth chip arm, kit từ viết code nạp vào kit 2.6 Phương pháp nghiên cứu Phương pháp đọc hiểu tài liệu: Tìm tài liệu bluetooth, hệ thống nhúng tài liệu liên quan, với kiến thức học lớp Từ lựa chọn tài liệu liên quan tới yêu cầu đặt để xây dựng đề tài Sau đọc hiểu đồng thời xây dựng đề tài dựa kiến thức tìm hiểu 2.7 Nội dung đề tài Ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo, nội dung đề cấu thành từ phần nội dung gồm chương sau: Chương 1: Giới thiệu vi xử lý Chương 2: Cấu trúc chung kit Chương 3: Những kiến thức liên quan Chương 4: Ứng dụng Chương 5: Kết luận PHẦN NỘI DUNG CHƯƠNG 1: GIỚI THIỆU VI XỬ LÝ 1.1 Giới thiệu vi xử lí ARM Dòng vi xử lý ARM Cortex dựa kiến trúc chuẩn đủ để đáp ứng hầu hết yêu cầu hiệu làm việc tất lĩnh vực Dòng ARM Cortex bao gồm ba cấu hình khác kiến trúc ARMv7: cấu hình A cho ứng dụng tinh vi, yêu cầu cao chạy hệ điều hành mở phức tạp Linux, Android…, cấu hình R dành cho hệ thống thời gian thực cấu hình M tối ưu cho ứng dụng vi điều khiển, cần tiết kiệm chi phí Bộ vi xử lý Cortex-M3 vi xử lý ARM dựa kiến trúc ARMv7-M thiết kế đặc biệt để đạt hiệu suất cao ứng dụng nhúng cần tiết kiệm lượng chi phí, chẳng hạn vi điều khiển, hệ thống ô tô, hệ thống kiểm sốt cơng nghiệp hệ thống mạng khơng dây Thêm vào việc lập trình đơn giản hóa đáng kể giúp kiến trúc ARM trở thành lựa chọn tốt cho ứng dụng đơn giản 1.2 Đặc điểm vi xử lí ARM 1.2.1 Hiệu suất cao Để đạt hiệu suất cao hơn, vi xử lý làm việc nhiều làm việc thông minh Đẩy tần số hoạt động cao làm tăng hiệu suất kèm với việc tiêu thụ lượng nhiều việc thiết kế phức tạp Nói cách khác, thực tác vụ cách nâng cao hiệu tính tốn hoạt động tần số thấp dẫn đến đơn giản hóa việc thiết kế tốn lượng Trung tâm vi xử lý Cortex-M3 lõi có cấu trúc đường ống tiên tiến tầng, dựa kiến trúc Harvard, kết hợp nhiều tính mạnh mẽ suy đoán việc rẽ nhánh, phép nhân thực thi chu kỳ phép chia thực phần cứng tạo nên hiệu vượt trội (điểm Dhrystone 1,25 DMIPS/MHz) Bộ vi xử lý Cortex-M3 hỗ trợ kiến trúc tập lệnh Thumb-2, giúp hoạt động hiệu 70% cho MHz so với vi xử lý ARM7TDMI-S thực thi với tập lệnh Thumb, hiệu 35% so với xử lý ARM7TDMI-S thực thi với tập lệnh ARM 1.2.2 Dễ sử dụng, phát triển ứng dụng nhanh chóng, hiệu Tiêu chí quan trọng việc lựa chọn vi xử lý giảm thời gian chi phí phát triển, đặc biệt khả phát triển ứng dụng phải thật nhanh chóng đơn giản Bộ vi xử lý Cortex-M3 thiết kế để đáp ứng mục tiêu Người lập trình khơng cần phải viết mã hợp ngữ (assembler code) cần phải có kiến thức sâu kiến trúc để tạo ứng dụng đơn giản Bộ vi xử lý có mơ hình lập trình dựa ngăn xếp đơn giản hố để tương thích với kiến trúc ARM truyền thống tương tự với hệ thống triển khai kiến trúc 16-bit, giúp việc chuyển tiếp đến kiến trúc 32-bit dễ dàng Ngoài mơ hình ngắt dựa phần cứng giúp việc viết chương trình xử lý ngắt trở nên đơn giản hết, chương trình khởi động viết trực tiếp ngơn ngữ C mà khơng cần lệnh assembly so với kiến trúc ARM truyền thống Các tính tập lệnh Thumb-2 bao gồm việc thực mã lệnh C cách tự nhiên hơn, thao tác trực tiếp bit, phép chia phần cứng lệnh If/Then Hơn nữa, nhìn từ góc độ phát triển ứng dụng, Thumb-2 tăng tốc độ phát triển, đơn giản hóa việc bảo trì, hỗ trợ đối tượng biên dịch thơng qua tối ưu hóa tự động cho hiệu suất mật độ mã mà không cần quan tâm đến việc mã biên dịch cho chế độ ARM Thumb Kết lập trình viên để mã nguồn họ ngơn ngữ C mà không cần tạo thư viện đối tượng biên dịch sẵn, có nghĩa khả tái sử dụng mã nguồn lớn nhiều 1.2.3 Giảm chi phí phát triển lượng tiêu thụ Chi phí rào cản lớn cho lựa chọn vi xử lý hiệu suất cao Bộ vi xử lý thiết kế diện tích nhỏ giảm chi phí đáng kể Bộ vi xử lý CortexM3 thực điều cách cài đặt lõi ARM nhỏ từ trước đến nay, với 33.000 cổng (cổng NAND NOR… tuỳ vào công nghệ sản xuất) lõi trung tâm (0.18um G) cách kết hợp hiệu quả, chặt chẽ thành phần hệ thống vi xử lý Bộ nhớ tối giản cách cài đặt nhớ không thẳng hàng (unaligned), thao tác bit dễ dàng với kĩ thuật bit banding Tập lệnh Thumb-2 tiết kiệm nhớ 25% so với tập lệnh ARM Để đáp ứng nhu cầu ngày tăng việc tiết kiệm lượng ứng dụng mạng không dây…, vi xử lý Cortex-M3 hỗ trợ mở rộng xung nhịp cho cổng (có thể ngừng cung cấp xung nhịp cho cổng để tiết kiệm lượng) tích hợp chế độ ngủ Kết vi xử lý tiêu thụ 4.5mW điện chiếm diện tích 0.3 mm2 (silicon footprint) triển khai tần số 50MHz q trình cơng nghệ TSMC 0.13G, sử dụng tế bào tiêu chuẩn ARM Metro 1.2.4 Tích hợp khả dò lỗi theo vết lập trình Hệ thống nhúng thường khơng có giao diện người dùng đồ họa (GUI) làm cho việc gỡ lỗi chương trình trở thành thách thức thật đối lập trình viên Ban đầu, ICE (In-circuit Emulator) sử dụng để tạo cửa sổ theo dõi hệ thống thông qua giao diện quen thuộc PC Tuy nhiên hệ thống ngày nhỏ phức tạp hơn, phương pháp khơng cịn khả thi Công nghệ gỡ lỗi vi xử lý Cortex-M3 cài đặt phần cứng (kết hợp với vài thành phần khác) giúp gỡ lỗi nhanh với tính trace & profiling, breakpoints, watchpoints vá lỗi giúp rút ngắn thời gian phát triển ứng dụng Ngoài ra, vi xử lý cịn cung cấp mức nhìn cao vào hệ thống thông qua cổng JTAG truyền thống cổng SWD (Serial Wire Debug) sử dụng đường tín hiệu, thích hợp cho thiết bị có kiểu đóng gói nhỏ gọn 10 CHƯƠNG 4: ỨNG DỤNG 4.1 Cách ghép mạch module để thực giao tiếp USART STM32 F103 C8 CB – CP2102 USB URT STM32 F103 C8 CB CP2102 USB URT PA10 PA9 RX TX 4.2 Truyền Code 4.2.1 Cài đặt Keli C Truy cập vào link: http://dammedientu.vn/download-keilc-5-bid7-html/ tải file download Chạy file cài đặt 41 Tick vào ô “I agree to all the tems of the preceding License Agreement”, sau dó chọn Next Tiếp theo, bạn chọn đường dẫn lưu thư mục cài đặt, sau chọn Next 42 Tiếp theo, bạn điền đầy đủ thơng tin, chọn Next Sau bạn chờ để máy tự động tiến hành cài đặt 43 Sau máy cài đặt xong, bạn chọn Finish Sau đó, hộp thoại Pack Installer xuất hiện, bạn nhấn OK 44 Sau trình Install kết thúc, bạn tắt hộp thoại Pack Installer Tạo Project cài đặt chương trình 45 4.2.2 Sơ đồ khối 4.2.3 Viết chương trình Thêm thư viện: Thư mục: CMSIS chứa thư viện: • core_cm3.c: chứa hàm thiết lập thao tác với ARM • system_stm32f10x.c: cấp xung clock cho Arm Thư mục: stdPeriph_Driver chứa thư viện • stm32f10x_gpio.c: chứa hàm thiết lập thao tác với GPIO • stm32f10x_rcc.c: chứa hàm thiết lập clock cho hệ thống 46 stm32f10x_usart.c: chứa hàm thiết lập thao tác với USART/UART misc.c: thứ tự ưu tiên ngắt Thư mục: Startup • startup_stm32f10x_hd.s: chạy tập lệnh Assembly ARM Thư mục: User • main.c: xử lý ngoại vi, ngắt thao tác liệu Hàm GPIO_Configuration() cấu hình GPIO o Khai báo biến GIOP: GPIO_InitTypeDef GPIO_InitStructure; o Cấp xung lock: • • RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB , ENABLE); o Cấu hình tham số: GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); Hàm USART_Init(); Cấu hình Usart o Khai báo Usart: USART_InitTypeDef usart1_init_struct; o Khai báo GPIO: GPIO_InitTypeDef gpioa_init_struct; o Cấp xung lock: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | o o o o o o RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE); Cấu hình Tx: gpioa_init_struct.GPIO_Pin = GPIO_Pin_9; gpioa_init_struct.GPIO_Speed = GPIO_Speed_50MHz; gpioa_init_struct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpioa_init_struct); Cấu hình Rx: gpioa_init_struct.GPIO_Pin = GPIO_Pin_10; gpioa_init_struct.GPIO_Speed = GPIO_Speed_50MHz; gpioa_init_struct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpioa_init_struct); Cấu hình Usart: usart1_init_struct.USART_BaudRate = 115200; // toc usart1_init_struct.USART_WordLength = USART_WordLength_8b; o o // dai bit usart1_init_struct.USART_StopBits = USART_StopBits_1; usart1_init_struct.USART_Parity = USART_Parity_No ; o o 47 o usart1_init_struct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; o usart1_init_struct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_Init(USART1, &usart1_init_struct); Gán GPIOB 12 _ 13: GPIO_SetBits(GPIOB, GPIO_Pin_12); USART1_ACTION() hàm kiểm tra có liệu nhận vào hay không USART1_getc() hàm nhận liệu từ Bluetooth Hàm main() chứa hàm kiểm tra liệu để gán giá trị c o Đặt bit cho cổng B12, B13 GPIO_SetBits(GPIOB, GPIO_Pin_12); o Một biến c kiểu char nhận liệu: c = “A” đặt lại bit cho cổng, o c = “L” dùng lệnh GPIO_WriteBit(GPIOB, GPIO_Pin_13,yy); để viết liệu với yy =! yy; có nghĩa đèn trạng thái bật thành tắt ngược lại Tương tự c “R” cho quạt • usart.c: cấu hình USART, TX, RX • stm32f10_it.c: chứa hàm xử lý ngắt 48 4.2.4 Code - main.c #include "stm32f10x.h" #include #include "usart.h" /* Private define */ extern char buffer[30]; /* Private function prototypes -*/ void RCC_Configuration(void); void GPIO_Configuration(void); void Delay (uint32_t num) { IO uint32_t index = 0; /* default system clock is 72MHz */ for(index = (72000 * num); index != 0; index ) { } } int USART1_ACTION(void) { if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE)!=0) return 1; else return 0; } unsigned char USART1_getc(void) { unsigned char RECEIVE; RECEIVE = USART_ReceiveData(USART1); return RECEIVE; } int main(void) { 49 char c,tt=1,xx=1,yy=1; GPIO_Configuration(); USART1_Init(); GPIO_SetBits(GPIOB, GPIO_Pin_12); GPIO_SetBits(GPIOB, GPIO_Pin_13); GPIO_SetBits(GPIOB, GPIO_Pin_14); GPIO_SetBits(GPIOC, GPIO_Pin_13); //GPIO_ResetBits(GPIOC, GPIO_Pin_14); //printf("\r\n**************UART*****************\r\n"); // /* Infinite loop */ while (1){ if (USART1_ACTION()) { c= USART1_getc(); }else{ c=0; } if(c=='A') { //GPIO_SetBits(GPIOC, GPIO_Pin_13); GPIO_SetBits(GPIOB, GPIO_Pin_12); GPIO_SetBits(GPIOB, GPIO_Pin_13); //GPIO_SetBits(GPIOB, GPIO_Pin_14); } else if(c=='L'){ yy=!yy; GPIO_WriteBit(GPIOB, GPIO_Pin_13,yy); } else if(c=='R'){ xx=!xx; GPIO_WriteBit(GPIOB, GPIO_Pin_12,xx); // } else if(c=='U'){ GPIO_ResetBits(GPIOB, GPIO_Pin_12); 50 // // // GPIO_ResetBits(GPIOB, GPIO_Pin_13); //GPIO_ResetBits(GPIOB, GPIO_Pin_14); GPIO_ResetBits(GPIOC, GPIO_Pin_13); } else if(c=='D'){ tt=!tt; GPIO_WriteBit(GPIOC, GPIO_Pin_13,tt); } } } void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; //Cap xung lock RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB , ENABLE); /** * LED -> PC13-14 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13|GPIO_Pin_14 | GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } } #endif 51 - usart.c #include "usart.h" #include #include #include //char state; //char buffer[12]; //////////////////////////////////////////////////////////////////// #ifdef GNUC /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf set to 'Yes') calls io_putchar() */ #define PUTCHAR_PROTOTYPE int io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif /* GNUC */ void USART1_Init(void) { /* USART configuration structure for USART1 */ USART_InitTypeDef usart1_init_struct; /* Bit configuration structure for GPIOA PIN9 and PIN10 */ GPIO_InitTypeDef gpioa_init_struct; /* Enalbe clock for USART1, AFIO and GPIOA */ // Cap xung lock RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOA, ENABLE); /* GPIOA PIN9 alternative function Tx */ gpioa_init_struct.GPIO_Pin = GPIO_Pin_9; gpioa_init_struct.GPIO_Speed = GPIO_Speed_50MHz; gpioa_init_struct.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &gpioa_init_struct); /* GPIOA PIN9 alternative function Rx */ gpioa_init_struct.GPIO_Pin = GPIO_Pin_10; 52 gpioa_init_struct.GPIO_Speed = GPIO_Speed_50MHz; gpioa_init_struct.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &gpioa_init_struct); /* Enable USART1 */ USART_Cmd(USART1, ENABLE); /* Baud rate 9600, 8-bit data, One stop bit * No parity, Do both Rx and Tx, No HW flow control */ // Cau hinh uart usart1_init_struct.USART_BaudRate = 115200; // toc usart1_init_struct.USART_WordLength = USART_WordLength_8b; // dai bit usart1_init_struct.USART_StopBits = USART_StopBits_1; usart1_init_struct.USART_Parity = USART_Parity_No ; usart1_init_struct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; usart1_init_struct.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /* Configure USART1 */ USART_Init(USART1, &usart1_init_struct); /* Enable RXNE interrupt */ USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /* Enable USART1 global interrupt */ //NVIC_EnableIRQ(USART1_IRQn); } } 4.3 Mô tả ứng dụng Ứng dụng sử dụng mạch chức năng: KIT STM32 F103 C8 CB, Bluetooth HC 05, Relay Nguyên lý hoạt động: Khi điện thoại có phần mềm kết nối bluetooth máy với HC 05 tương tác truyền liệu Nhấn button D1 App đồng nghĩa với việc gửi liệu “L” vào HC 05, tương tự với D2 “R” OFF “A” Khi HC 05 nhận liệu truyền liệu cổng USART1_Tx KIT Lúc USART1_Tx nhận liệu “A” gán bit cho cổng B12, B13 tắt thiết bị quạt đèn, nhận “L” gán bit cho cổng B13 đèn sáng ngược lại, tương tự cho quạt nhận liệu “R” 53 CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt Hiểu cấu trúc hoạt động KIT STM32 F103 C8 CB để vận dụng vào mô 5.2 hình nhúng Hiểu cách truyền tải liệu từ giao thức USART Hiểu cách truyền tải liệu kết nối bluetooth HC 05 Giao tiếp thành công KIT STM32 F103 C8 CB giao thức USART Giao tiếp thành công phần cứng mềm Ưu, nhược điểm 5.2.1 Ưu điểm Có thể ứng dụng vào thực tiễn Kết nối tiện lợi bluetooth HC 05 Giao tiếp USART gần khơng có trễ tiến độ 5.2.2 Nhược điểm Chưa hiểu biết nhiều board giao thức USART nên gặp lỗi thường gặp khó khăn việc tinh chỉnh code 5.3 Hướng phát triển Trong tương lai, nhóm cố gắng đưa mơ hình vào thực tế Đồng thời sữa lỗi liên quan đến vấn đề giao thức Thực nhiều thiết bị mơ hình lớn nhà 54 TÀI LIỆU THAM KHẢO - Giáo trình mơn Hệ thống nhúng, ThS Đinh Cơng Đoan, 2015 Các nguồn kham khảo Internet: [1]https://advancecad.edu.vn/khai-niem-co-ban-ve-truyen-thong-uart-so-do-khoiung-dung/ [2]http://laptrinharmst.blogspot.com/2018/02/bai-00-gioi-thieu-vestm32f103c8t6.html [3]https://hshop.vn/products/kit-ra-chon-stm32f103c8t6 [4]https://vi.wikipedia.org/wiki/Serial_Peripheral_Interface [5]https://kienltb.wordpress.com/2015/04/05/chuan-giao-tiep-spi/ [6]https://vi.wikipedia.org/wiki/I%C2%B2C Link full đồ an: https://drive.google.com/file/d/1UgniDgfHwrqm8YQ4cgJY-0ETX8njn1VU/view? usp=sharing 55 ... khiển thiết bị gia dụng từ xa thông qua smartphone với công nghệ bluetooth kết hợp với hệ thống nhúng Hiểu cách thức mà bluetooth hoạt động thiết bị điện tử thông minh Hiểu cách thức hoạt động... thiết bị thông qua bluetooth laptop sử dụng phần mềm processing https://tapit.vn/dieu-khien-thiet-bi-qua -bluetooth- laptop-su-dung-phan-memprocessing/ Ứng dụng điều khiển thiết bị điện nhà bluetooth. .. https://tapit.vn/dieu-khien-thiet-bi-qua -bluetooth- laptop-su-dung-phan-memprocessing/ Ứng dụng điều khiển thiết bị điện nhà bluetooth (nhà thông minh) https://baomoi.com/hai-nu-sinh-thiet-ke-ung-dung-dieu-khien-thiet-bi-dien-trongnha/c/25724365.epi