Ngày nay khoa học ngày càng phát triển, lĩnh vực điều khiển ngày càng được hoàn thiện trong các thiết bị sản phẩm phục vụ cho nhu cầu sinh hoạt hằng ngày của con người như tivi , đồng hồ điện tử ….nhằm giúp cuộc sống con người ngày càng hiện đại và tiện lợi hơn. Đồng thời đòi hỏi ta phải biết cách sử dụng , nâng cao và tiếp thu mọi công nghệ từ đơn giản cho đến hiện đại nhất.
LỜI MỞ ĐẦU Ngày khoa học ngày phát triển, lĩnh vực điều khiển ngày hoàn thiện thiết bị sản phẩm phục vụ cho nhu cầu sinh hoạt ngày người tivi , đồng hồ điện tử ….nhằm giúp sống người ngày đại tiện lợi Đồng thời đòi hỏi ta phải biết cách sử dụng , nâng cao tiếp thu công nghệ từ đơn giản đại Đề tài ứng dụng vi điều khiển đời sống thực tế phong phú đa dạng nhăm đáp ứng sông tiện nghi cua người , dựa kiến thức tiếp thu mon học trường tìm hiểu thêm thiết bị điện tử Một ứng dụng quan trọng ngành công nghệ điện tử nhận biết nhiệt độ với Arduino UNO, ESP32, ESP3266 DHT11, DHT22, HC-SR501…được ứng dụng nhiều công nghiệp lĩnh vực khác sống đạt suất cao Bằng cách ứng dụng hệ điều hành thời gian thực FreeRTOS để tối ưu thời hiệu phần cứng Chúng em định thực chọn đề tài : “ Thiết kế module cảnh báo nhiệt độ chuyển động.” cho đồ án môn học I GIỚI THIỆU PHẦN CỨNG : Board Arduino UNO 1.1 Giới thiệu chung Arduino bo mạch vi điều khiển nhóm giáo sư sinh viên nước Ý thiết kế đưa vào năm 2005 Mạch Arduino sử dụng để cảm nhận điều khiển nhiều đối tượng khác Nó thực nhiều nhiệm vụ lấy tín hiệu từ cảm biến đến điều khiển đèn, động cơ, nhiều đối tượng khác Ngồi mạch cịn có khả liên kết với nhiều module khác module đọc thẻ từ, ethernet shield, sim900A, ….để tăng khả ứng dụng mạch Phần cứng bao gồm board mạch nguồn mở thiết kế tảng vi xử lý AVR Atmel 8bit, ARM, Atmel 32-bit,… Hiện phần cứng Arduino có tất phiên bản, Tuy nhiên phiên thường sử dụng nhiều Arduino Uno Arduino Mega Phần mềm để lập trình cho mạch Arduino phần mềm IDE 1.2 Cấu tạo Arduino UNO Hình 1: Board Arduino UNO * Một số thông số kỹ thuật quan trọng: - 5V: Cấp điện áp 5V (dòng điện tối đa chân 500mA) - 3V: Cấp điện áp 3,3V ( dòng điện tối đa chân 50mA) - GND: Chân điện âm board - Board Arduino UNO có nhớ Flash 32K ( bootloader chiếm 0,5KB) - SRAM có 2KB: Giá trị biến khai báo lưu Khai báo nhiều biến tốn nhiều nhớ RAM Khi nguồn liệu SRAM bị - EEPROM có KB: Nơi để đọc ghi liệu vào không bị liệu nguồn 1.3 Ứng dụng Arduino có nhiều ứng dụng đời sống, việc chế tạo thiết bị điện tử chất lượng cao Một số ứng dụng kể đến như: + Lập trình robot: Arduino phần quan trọng trung tâm xử lí giúp điều khiển hoạt động robot Lập trình máy bay khơng người lái Có thể nói ứng dụng có nhiều kì vọng tương lai + Game tương tác: dùng Arduino để tương tác với Joystick, hình,… để chơi trị Tetrix, phá gạch, Mario… nhiều game sáng tạo + Arduino điều khiển thiết bị ánh sáng cảm biến tốt Là phần quan trọng đèn giao thông, hiệu ứng đèn nháy cài đặt làm bật biển quảng cáo + Arduino ứng dụng máy in 3D nhiều ứng dụng khác tùy thuộc vào khả sáng tạo người sử dụng 2.Bộ cảm biên độ ẩm, nhiệt độ DHT11 2.1 Giới thiệu DHT11 cảm biến kỹ thuật số giá rẻ để cảm nhận nhiệt độ độ ẩm Cảm biến dễ dàng giao tiếp với vi điều khiển vi Arduino, Raspberry Pi, để đo độ ẩm nhiệt độ DHT11 cảm biến độ ẩm tương đối Để đo khơng khí xung quanh, cảm biến sử dụng điện trở nhiệt cảm biến độ ẩm điện dung 2.2 Cấu tạo Cảm biến DHT11 bao gồm phần tử cảm biến độ ẩm điện dung điện trở nhiệt để cảm nhận nhiệt độ Tụ điện cảm biến độ ẩm có hai điện cực với chất giữ ẩm làm chất điện môi chúng Thay đổi giá trị điện dung xảy với thay đổi mức độ ẩm IC đo, xử lý giá trị điện trở thay đổi chuyển chúng thành dạng kỹ thuật số Để đo nhiệt độ, cảm biến sử dụng nhiệt điện trở có hệ số nhiệt độ âm, làm giảm giá trị điện trở nhiệt độ tăng Để có giá trị điện trở lớn thay đổi nhỏ nhiệt độ, cảm biến thường làm gốm bán dẫn polymer Hình 2: Bộ cảm biến DHT11 * Một số thông số kỹ thuật quan trọng: - Nguồn cấp vào từ 3v đến 5v, dòng sử dụng tối đa 2,5mA (khi truyền liệu) - Khoảng đo độ ẩm: 20% - 90% RH (sai số 5%RH) - Khoảng đo nhiệt độ: đến 50 độ C ( sai số độ C) - Tần số lấy mẫu tối đa 1Hz (1s/lần) 2.3 Ứng dụng - Đo nhiệt độ độ ẩm - Trạm thời tiết cục - Kiểm sốt khí hậu tự động - Giám sát môi trường PIR SENSOR: 3.1 GIỚI THIỆU: Nó chữ viết tắt Passive InfraRed sensor (PIR sensor), tức cảm biến thụ động dùng nguồn kích thích tia hồng ngoại Tia hồng ngoại (IR) tia nhiệt phát từ vật thể nóng Trong thể sống, ln có thân nhiệt (thơng thường 37 độ C), từ thể ln phát tia nhiệt, hay cịn gọi tia hồng ngoại, người ta dùng tế bào điện để chuyển đổi tia nhiệt dạng tín hiệu điện nhờ mà làm cảm biến phát vật thể nóng chuyển động Cảm biến gọi thụ động khơng dùng nguồn nhiệt tự phát (làm nguồn tích cực, hay chủ động) mà phụ thuộc vào nguồn tha nhiệt, thân nhiệt thực thể khác, người vật… 3.2 Cấu tạo: - Trên đầu dò PIR, loại bên gắn cảm biến tia nhiệt, có chân ra, chân nối masse, chân nối với nguồn volt DC, mức áp làm việc từ đến 15V Góc dị lớn - Để tăng độ nhậy cho đầu dị, Bạn dùng kính Fresnel, thiết kế cho loại đầu có cảm biến, góc dị lớn, có tác dụng ngăn tia tử ngoại 4.Màn hình LCD 16x2 tích hợp I2C Màn hình LCD 16x2 có khả hiển thị dịng với dịng 16 ký tự, hình có độ bền cao, phổ biến Hình 3: Màn hình LCD 1602 tích hợp module chuyển đổi I2C * Một số thông số kỹ thuật quan trọng: - Điện áp hoạt động 5V - Hiển thị tối đa 16 kí tự dịng, tối đa dòng - Đối với mạch LCD 1602 có tích hợp module chuyển đổi I2C giúp tiếp kiệm dây nối vào chân vi mạch II Giới thiệu phần mềm : Arduino IDE Arduino IDE phần mềm mã nguồn mở, sử dụng chủ yếu để viết biên dịch mã vào module Arduino Nó bao gồm phần cứng phần mềm Phần cứng chứa đến 300000 board mạch thiết kế sẵn với cảm biến, linh kiên Phần mềm giúp bạn sử dụng cảm biến, linh kiện Arduino cách linh hoạt với mục đích sử dụng IDE Arduino IDE có nghĩa mã nguồn mở, nên phần mềm miễn phí phần tải quyền Người dùng có quyền sửa đổi, cải tiến, phát triển, nâng caps theo số nguyên tắc chung nhà phát hành cho phép mà không cần xin phép Tuy mã nguồn mở nhung khả bảo mật vô cao, phát lỗi nhà phát hành vá cập nhập nhanh khiến thông tin người dùng không bị rị ri bên ngồi Arduino IDE sử dụng ngơn ngữ lập trình C/C++ phổ biến giới lập trình Bất kỳ đoạn code C/C++ Arduino IDE nhận dạng giúp lập trình viên thuận tiện việc thiết kế chương trình lập cho bo mạch Arduino Arduino có module quản lý bo mạch, nơi người dùng chọn bo mạch mà họ muốn làm việc thay đổi bo mạch thơng qua Menu Q trình sửa đổi lựa chọn liên tục tự động cập nhật để liệu có sẵn bo mạch liệu sửa đổi đồng với Bên cạnh đó, Arduino IDE giúp bạn tìm lỗi từ code mà bạn viết, qua giúp bạn sửa lỗi kịp thời tránh tình trạng bo mạch Arduino làm việc với code lỗi lâu dẫn đến hư hỏng tốc độ xử lý bị giảm sút Arduino IDE tích hợp với 700 thư viện, viết chia sẻ nhà phát hành Arduino Software thành viên cộng đồng Arduino Mọi người tận dụng chúng cho dự án riêng mà khơng cần phải bỏ chi phí Hình 4: Bộ thư viện Arduino IDE Arduino IDE hoạt động hệ điều hành phổ biến Đó Windows, Mac OS Linux Nhờ vậy, người dùng truy cập vào phần mềm đâu, Ngồi ra, người dùng truy cập vào công cụ từ đám mây Điều cho phép nhà lập trình lựa chọn tạo lưu dự án đám mây Hoặc họ xây dựng chương trình máy tính upload lên bo mạch Arduino Phần mềm Proteus Phần mềm Proteus phần mềm thiết kế mạch in phát minh Labcenter Electronics Nó sử dụng để thiết kế cac mạch khác PCD (bo mạch in) mô mạch khác Việc sử dụng Protues cho dự án mạch điên tử làm cho dự án tiết kiệm chi phí sai sót cấu trúc sơ đồ Protues Hình 5: Phần mềm Protues * Các đặc tính phần mềm Proteus - ISIS phần mềm sử dụng để vẽ sơ đồ mô mạch thời gian thực, mô cho phép người truy cập thời gian chạy, cung cấp mơ thời gian thực ISIS có nhiều loại linh kiện thư viện Nó có nguồn, tạo tín hiệu, cơng cụ đo lường phân tích máy sóng, vơn kế, ampe kế, …, đầu dị để theo dõi thời gian thực thông số mạch, công tắc, hình, tải động đèn, thành phần rời rạc điện trở, tụ điện, cuộn cảm , máy biến áp, mạch tích hợp kỹ thuật số analog, công tắc bán dẫn, relay, vi điều khiển, xử lý, cảm biến, … - ARES sử dụng để thiết kế PCB, có tính xem đầu chế độ xem 3D PCB thiết kế với linh kiện ARES cung cấp thiết kế PCB lên đến 14 lớp bên trong, với gói gắn bề mặt xuyên lỗ Nó nhúng với in chân loại linh kiện khác IC, transistor, header, connector linh kiện rời rạc khác Nó cung cấp tùy chọn định tuyến tự động định tuyến thủ công cho người thiết kế PCB Schematic vẽ ISIS chuyển trực tiếp ARES FreeRTOS: FreeRTOS (Free Real-Time Operating System) hệ điều hành thời gian thực mã nguồn mở thiết kế để sử dụng cho hệ thống nhúng FreeRTOS cung cấp số tính quản lý tác vụ, quản lý nhớ, thời gian thực, hệ thống tập tin, hệ thống báo động nhiều tính khác FreeRTOS hệ điều hành nhỏ gọn, linh hoạt, có khả mở rộng sử dụng rộng rãi ứng dụng nhúng thiết bị điện tử tiêu dùng, thiết bị y tế, thiết bị đo lường điều khiển, hệ thống nhúng khác Các đặc điểm FreeRTOS bao gồm: Nhỏ gọn: FreeRTOS có kích thước nhỏ, số nhớ, phù hợp với ứng dụng có tài nguyên hạn chế Quản lý tác vụ: FreeRTOS cung cấp chức để quản lý tác vụ tạo, xóa, bắt đầu dừng tác vụ Thời gian thực: FreeRTOS hỗ trợ việc xử lý kiện theo thời gian thực Có khả mở rộng: FreeRTOS cho phép mở rộng hệ thống để phù hợp với nhu cầu người sử dụng Đa tảng: FreeRTOS triển khai nhiều tảng khác nhau, bao gồm vi điều khiển phổ biến ARM, AVR, PIC, MSP430 nhiều Bảo mật: FreeRTOS cung cấp tính bảo mật mã hóa chống tràn nhớ Tích hợp: FreeRTOS tích hợp với ứng dụng đa nhiệm khác Linux Windows để cung cấp tính thời gian thực Cộng đồng phát triển lớn: FreeRTOS có cộng đồng phát triển lớn, đảm bảo phát triển liên tục hệ thống hỗ trợ nhiều cho người dùng So sánh HĐH thông thường HĐH thời gian thực: HĐH thời gian thực HĐH thông thường Phức tạp Đơn giản Nỗ lực tối đa Phản hồi đảm bảo Tính cơng Ràng buộc thời gian nghiêm ngặt Băng thơng trung bình Giới hạn băng thơng lớn nhỏ Các thành phần không xác định Các thành phần xác định Hành vi khơng thể đốn trước Hành vi đốn trước Cắm chạy (Plug and Play) Có thể nâng cấp Kiến trúc RTOS: Bộ lập lịch (Scheduler): Thành phần RTOS xác định thứ tự thực tác vụ luồng thường dựa sơ đồ ưu tiên theo kiểu RoundRobin completion Đa xử lý đối xứng (SMP – Symmetric Multiprocessing): RTOS có khả xử lý phân tách nhiều tác vụ luồng để chúng chạy nhiều lõi phép xử lý mã song song (nghĩa đa nhiệm) Thư viện chức (Function library): Là giao diện tiêu chuẩn chứa giao diện chương trình ứng dụng (API) để gọi thường trình bên nó, giao diện kết nối mã ứng dụng kernel Thời gian chuyển đổi ngữ cảnh/độ trễ điều chỉnh nhanh (Fast dispatch latency/context switch time): Độ trễ điều chỉnh biểu thị thời gian kể từ hệ điều hành xác định tác vụ hoàn thành luồng sẵn sàng chạy bắt đầu kiện kích hoạt khiến cho tác vụ ưu tiên cao thực trước tác vụ chạy III/ Kết Kết cho thấy chương trình hoạt động ổn đinh, lấy liệu nhiệt độ, hoạt động, hiển thị nhiệt độ cảm biến DHT11 cảnh báo cảm biến HC-SR501 lên hình LCD , đồng thời LED sáng theo điều kiện thiết lập sẳn Bảng mạch đấu nối sau (PCB Layout mơ Proteus): Hình PCB Layout Proteus Hình ảnh thực tế: Hình PCB Layout thực tế kết thị hệ thống chạy (Nhiệt độ hình khơng xác sensor DHT11 nhóm bị chập trình xây dựng hệ thống) 10 Kịch bản: Hệ thống điều kiện bình thường xuất kết nhiệt độ, độ ẩm mơ trường lên hình LCD, PIR Sensor phát chuyển động có cảnh báo xuất hình LCD đèn LED sáng Hình Khi hệ thống phát chuyển động xuất cảnh báo LCD LED sáng IV/ Tài liệu tham khảo http://arduino.vn/bai-viet/91-doc-nhiet-do-do-am-va-xuat-ra-man-hinh-lcd https://dientutuonglai.com/phan-mem-proteus.html https://hourofcode.vn/cau-truc-cua-mot-chuong-trinh-arduino-ide/ https://tek4.vn/tong-quan-he-dieu-hanh-nhung-thoi-gian-thuc-esp32freertos 11