.Vùng viết chương trình trong Arduino IDE

Một phần của tài liệu Xây dựng mô hình hệ thống cổng rà soát nhân viên nhiễm covid, giúp tránh lây nhiễm chéo tại các doanh nghiệp (Trang 44)

- Vùng thông báo (debug): Những thông báo từ IDE sẽ được hiển thị tại đây.

Hình 4.15. Vùng thông báo trong Arduino IDE

4.3.2. Microsoft Visual Studio C#

Microsoft Visual Studio là một môi trường phát triển tích hợp từ Microsoft. Visual Studio cùng cấp cho người dùng những chức năng như:

- Đa nền tảng: Hỗ trợ sử dụng trên nhiều nền tảng khác nhau như Windows, Linux và Mac Systems.

36

- Đa ngôn ngữ: Phần mềm cho phép sử dụng nhiều ngơn ngữ lập trình khác nhau từ C#, F#/C++, HTML, CSS, Visual Basic, JavaScript… Bởi vậy, Visual Studio có thể dễ dàng phát hiện và thơng báo khi các chương trình có lỗi.

- Hỗ trợ website: Visual Studio hỗ trợ website, đặc biệt trong công việc soạn thảo và thiết kế web.

Về giao diện:

Hình 4.16. Giao diện của Microsoft Visual Studio C#

- Thanh menu (khung cam): Chứa các danh mục chức năng của Visual Studio. Khi người dùng cài thêm những trình cắm hỗ trợ Visual Studio (ví dụ như Visual Assist), thanh menu sẽ cập nhật thêm menu của các trình cắm đó.

- Toolbar (khung xanh lá): Với các công cụ hỗ trợ người dùng trong việt viết mã và debug (các công cụ trên thanh có thể thay đổi khi bắt đầu debug).

- Toolbox (khung vàng): Đây là vùng chứa tất cả các control mà chúng ta có thể sử dụng cho project.

- Khu vực code (khung đỏ): Đây là khu vực để viết mã nguồn cho chương trình. Cửa sổ lập trình cho một tập tin trong project sẽ hiển thị khi người dùng đúp chuột lên tập tin đó trong cửa sổ Solution Explorer.

37

- Solution Explorer (khung tím): Đây là vùng quản lý các file trong project mà chúng ta đang làm việc.

- Error List (khung xanh dương): Đây là cửa sổ hiển thị danh sách lỗi (Error) hoặc cảnh báo (Warning) phát sinh trong quá trình viết mã nguồn (source code). - Output: Đây là cửa sổ hiển thị các thông tin, trạng thái của Solution khi build hoặc

của chương trình khi debug.

- Vùng design (khung hồng): Đây là vùng thiết kế giao diện và hiển thị kết quả giao diện mà chúng ta đã viết mã giao diện ở khu vực code.

38

MÁY CHỦ

4.4. Tính tốn và thiết kế mạch 4.4.1. Thiết kế phần cứng 4.4.1. Thiết kế phần cứng

a. Sơ đồ khối

Hình 4.18. Sơ đồ khối mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid

giúp tránh lây nhiễm chéo tại các doanh nghiệp

KHỐI ĐIỀU KHIỂN TẠI CỔNG RÀ SOÁT (ARDUINO UNO) KHỐI CẢM BIẾN ĐO THÂN NHIỆT

KHỐI KẾT NỐI WIFI VÀ CAMERA NHẬN DIỆN KHUÔN MẶT (ESP32) KHỐI HIỂN THỊ LCD KHỐI ĐIỀU KHIỂN ĐỘNG CƠ ĐÓNG/MỞ CỔNG KHỐI LOA CẢNH BÁO TẠI CHỖ KHỐI THỜI GIAN THỰC

39

b. Chức năng từng khối

Khối camera OV2640 nhận dạng khuôn mặt và kết nối thu phát wifi BLE ESP-32 về máy tính chủ

Chức năng:

Khối nhận dạng khuôn mặt bằng cách chụp ảnh đối tượng bằng camera OV2640 được tích hợp sẵn trên module thu phát wifi ESP-32 và đọc dữ liệu từ khối cảm biến nhiệt độ từ khối điều khiển cổng rà soát, thu thập dữ liệu và lưu trữ vào thẻ SD được gắn thêm vào module.

Sau đó truyền lên máy chủ bằng giao thức wifi để người bảo vệ trực có thể theo dõi thơng tin và than nhiệt từ đối tượng khi đi qua cổng rà sốt.

Cách nối dây:

Vì ESP32-CAM khơng được tích hợp sẵn mạch giao tiếp serial với máy tính nên cần dùng 2 chân serial giao tiếp với một mạch giao tiếp serial trung gian mới có thể nạp chương trình từ máy tính.

- Chân 5V của linh kiện được nối với chân nguồn (5V) của Arduino. - Chân GND của linh kiện được nối với chân GND của Arduino.

- Chân GPIO 1 (đóng vai trị là TX) của linh kiện được nối với chân Serial 1 của Arduino.

- Chân GPIO 3 (đóng vai trò là RX) của linh kiện được nối với chân Serial 0 của Arduino.

Hình 4.19. Sơ đồ nguyên lý của khối camera OV2640 nhận dạng khuôn mặt

40 ➢ Khối cảm biến đo thân nhiệt

Chức năng:

- Gồm các cảm biến sau:

+ Cảm biến đo nhiệt độ không tiếp xúc MLX90614: Cảm biến này nhận thông tin bằng cách dùng tia IR để đo nhiệt độ cơ thể người.

+ Vì cần phải đo nhiệt độ ở một khoảng cách cố định để có giá trị chính xác cao nhất nên ta dùng thêm cảm biến đo khoảng cách siêu âm.

- Khối cảm biến đo thân nhiệt có chức năng đọc các dữ liệu của đối tượng và truyền về cho khối điều khiển tại cổng rà sốt xử lý.

Nguyên lý làm việc của khối cảm biến:

- Cảm biến đo nhiệt độ không tiếp xúc MLX90614:

+ Tất cả các vật thể và sinh vật đều phát ra năng lượng IR và cường độ của năng lượng IR phát ra này sẽ tỉ lệ thuận với nhiệt độ của vật thể hoặc sinh vật đó. + Vì lí do đó cảm biến tính tốn nhiệt độ của một đối tượng bằng cách đo năng

lượng IR phát ra từ nó.

+ Giá trị nhiệt độ của MLX90614 thay đổi khi khoảng cách giữa cảm biến và đối tượng thay đổi.

- Cảm biến đo khoảng cách siêu âm US-015:

+ Cảm biến gồm một bộ phát và một bộ thu sóng siêu âm có khả năng đo khoảng cách và có hai chế độ hoạt động. Cảm biến siêu âm tạo ra sóng âm tần có tần số cao truyền đi trong khơng khí, gặp vật cản sẽ phản xạ ngược lại và được ghi nhận ở phía đầu thu.

+ Sau đó sẽ tính tốn khoảng thời gian từ khi gửi tín hiệu đến khi nhận được tiếng vọng để xác định khoảng cách tới đối tượng.

+ Chế độ hoạt động tách biệt chân phản hồi (Echo) và kích hoạt (Trigger) được sử dụng trong quá trình nghiên cứu để tiến hành đo đạc khoảng cách. Đây là chế độ đơn giản khi chân kích hoạt và chân phản hồi được sử dụng một cách riêng biệt.

41

+ Khoảng cách được cài đặt cho phép đo nhiệt độ từ 12,5cm đến 14cm (tính từ cảm biến).

Các chân của cảm biến và cách nối dây:

- Cảm biến đo nhiệt độ không tiếp xúc MLX90614:

+ Chân Vcc (VIN) của cảm biến nối với chân nguồn 5V của Arduino. + Chân Ground (GND) của cảm biến nối với chân GND của Arduino.

+ Chân SCL (Serial Clock) và chân SDA (Serial Data): hỗ trợ giao tiếp I2C: Chân SCL (Serial Clock) được nối với chân A5 của Arduino và chân SDA (Serial Data) được nối với chân A4 của Arduino.

Hình 4.20. Sơ đồ nguyên lý của cảm biến thân nhiệt không tiếp xúc MLX90614 MLX90614

- Cảm biến đo khoảng cách siêu âm US-015:

+ Chân Vcc (chân nguồn) được nối với chân nguồn 5V của Arduino. + Chân Trig (Trigger Input Pin) được nối với chân 3 của Arduino. + Chân Echo (Receiver Output Pin) được nối với chân 4 của Arduino. + Chân GND được nối với chân GND của Arduino.

42

Hình 4.21. Sơ đồ nguyên lý của cảm biến đo khoảng cách siêu âm US-015

Khối điều khiển tại cổng rà sốt (Arduino Uno R3)

Chức năng:

- Khối điều khiển tại cổng rà sốt đọc tín hiệu từ khối cảm biến đo thân nhiệt và đọc dữ liệu từ camera nhận dạng để đưa lên khối hiển thị. Khi thân nhiệt trên 37,5oC thì khối cảnh báo là buzzer sẽ hú và sẽ điều khiển khối động cơ đóng cửa. - Nếu nhiệt độ đo được nhỏ hơn 37,5oC thì khối điều khiển tại cổng rà sốt sẽ đọc dữ liệu camera so sánh khn mặt nhân viên đúng nhân viên cơng ty thì khối động cơ sẽ điều khiển mở cửa và cập nhật dữ liệu từ khối cảm biến nhiệt độ đưa lên khối hiển thị kèm thông tin nhân viên.

- Khi nhận được những thông tin trên khối điều khiển tại cổng rà soát sẽ truyền dữ liệu kết nối qua wifi và gửi về máy chủ.

Arduino Uno R3 đọc tín hiệu từ các cảm biến và động cơ bằng:

- GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO.

- 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.

- Chân A4, A5 của Arduino nối với 2 chân SDA và SCL của cảm biến thân nhiệt không tiếp xúc MLX90614, I2C, module đồng hồ thời gian thực RTC DS3231. - Chân 2, 3 của Arduino nối với 2 chân Trigger và Echo của cảm biến khoảng cách

43

- Chân 0,1 của Arduino nối với 2 chân RX và TX của module thu phát wifi ESP- 32 CAM OV2640.

- Chân 4 của Arduino nối với chân Vin của buzzer.

- Chân 7 của Arduino nối với chân PWM của động cơ servo MG996R. ➢ Khối điều khiển động cơ đóng/mở cổng

Chức năng:

- Khối điều khiển động cơ đóng/mở cổng sử dụng động cơ RC MG996R để điều khiển cổng đóng mở tự động theo tín hiệu nhận được từ khối điều khiển tại cổng rà sốt.

- Nếu nhiệt độ trên 37,5oC hoặc khơng nhận được dữ liệu từ khối nhận dạng khuôn mặt, động cơ RC MG996R đóng cửa.

- Và ngược lại, nếu nhiệt độ dưới 37,5oC và nhận được dữ liệu từ khối nhận dạng khuôn mặt, động cơ RC MG996R mở cửa.

Nguyên lý hoạt động:

- Để làm cho động cơ MG996G hoạt động, ta cần phải cấp nguồn cho động cơ bằng dây đỏ và nâu, và gửi tín hiệu PWM đến dây màu cam.

- Do đó, ta cần sử dụng nền tảng Arduino có thể tạo ra tín hiệu PWM để làm cho động cơ này hoạt động.

44

- Từ ảnh trên ta có thể thấy rằng tín hiệu PWM tạo ra nên có tần số 50Hz và chu kì PWM phải là 20ms. Khi on-time có thể thay đổi từ 1ms đến 2ms.

- Vì vậy khi on-time là 1ms, động cơ sẽ ở 0o và khi 1,5ms động cơ sẽ ở 90o. Tương tự khi ở 2ms động cơ sẽ quay 180o. Vì vậy, bằng cách thay đổi thời gian on-time từ 1ms đến 2ms động cơ có thể được điều khiển từ 0o đến 180o.

Các chân của động cơ và cách nối dây:

- Chân GND (màu nâu): cực âm của nguồn được nối vào chân GND của Arduino. - Chân 5V (màu đỏ): Nguồn động cơ thường được sử dụng là +5V. Được nối vào

chân nguồn 5V của Arduino.

- Chân PWM (màu cam): Tín hiệu PWM được đưa vào qua dây này để điều khiển động cơ được nối vào chân 9 của Arduino.

Hình 4.23. Sơ đồ nguyên lý của động cơ servo MG996R

Khối cảnh báo loa hú

Chức năng:

- Khối cảnh báo loa hú sử dụng buzzer để cảnh báo theo tín hiệu nhận được từ khối điều khiển tại cổng rà soát. Cảnh báo cho đối tượng cũng như bảo vệ biết khi nhiệt độ vượt mức đã cài đặt.

- Buzzer là một loại linh kiện phát âm thanh có thể chuyển tín hiệu điện thành tín hiệu âm thanh.

45

Cách nối dây:

- Dây nguồn (dây đỏ) được nối với chân 4 của Arduino. - Dây GND (dây đen) được nối với chân GND của Arduino.

Hình 4.24. Sơ đồ nguyên lý của buzzer

Khối hiển thị tại chỗ

Chức năng:

- Sử dụng LCD và giao tiếp I2C nhận dữ liệu của khối điều khiển cổng rà soát từ khối cảm biết đo thân nhiệt để hiển thị thông số nhiệt độ đo được.

- Một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C.

- Một giao tiếp I2C gồm 2 dây: Serial Data (SDA) và Serial Clock (SCL).

+ SDA là đường truyền cho master và slave để gửi và nhận tín hiệu, vì vậy dữ liệu được truyền từng bit dọc theo một đường duy nhất.

+ SDL là đường truyền xung nhịp để đồng bộ và chỉ theo 1 hướng.

46

Mạch chuyển đổi I2C cho LCD:

Hình 4.26. Sơ đồ nguyên lý giữa LCD 1602 và giao tiếp I2C (Nguồn: Internet)

- Vì LCD có q nhiều chân gây khó khăn trong quá trình kết nối với Arduino nên ta sử dụng I2C để giải quyết vấn đề này.

- Thay vì sử dụng tối thiểu 6 chân của Arduino để kể nối với LCD (RS, EN, D7, D6, D5, D4) thì khi dùng I2C chỉ cần sử dụng 2 chân (SCL, SDA) để kết nối.

- Chân Vcc được nối với chân nguồn 5V của Arduino. - Chân GND được nối với chân GND của Arduino. - Chân SCL được nối với chân A5 của Arduino. - Chân SDA được nối với chân A4 của Arduino.

47 ➢ Khối thời gian thực

Chức năng:

- Khối thời gian thực sử dụng module đồng hồ thời gian thực RTC DS3231 để đăng kí thời gian chính xác với nhiệt độ khi nhân viên đo nhiệt độ.

Cách cài đặt thời gian lên RTC:

- Mở ứng dụng Arduino IDE → File → Examples → DS3231RTC → Set time và tải mã lên và thời gian thực đã được cài đặt.

Cách nối dây:

- Chân GND được nối với chân GND của Arduino. - Chân Vcc được nối với chân 5V của Arduino. - Chân SCL được nối với chân A5 của Arduino. - Chân SDA được nối với chân A4 của Arduino.

Khối máy chủ

- Khối máy chủ nhận các dữ liệu đã được thu thập từ giao thức truyền wifi bằng cách kết nối wifi bằng ESP-32.

48

c. Sơ đồ nguyên lý – Nguyên lý hoạt động

Sơ đồ nguyên lý:

Hình 4.29. Sơ đồ nguyên lý mơ hình hệ thống cổng rà sốt nhân viên nhiễm COVID, giúp tránh lây nhiễm chéo tại các doanh nghiệp

49 ❖ Nguyên lý hoạt động:

Mơ hình hệ thống cổng rà sốt nhân viên nhiễm Covid giúp tránh lây nhiễm chéo tại các doanh nghiệp gồm:

Hệ thống giám sát được lắp đặt tại cổng chính:

- Hệ thống giám sát được lắp đặt tại cổng chính bao gồm ESP32 và camera OV2640 để nhận dạng khuôn mặt nhân viên thông qua cơ sở dữ liệu đã được cập nhật trên máy chủ và được đo nhiệt độ cơ thể thông qua cảm biến nhiệt hồng ngoại không tiếp xúc MLX90614.

- Hệ thống này sử dụng cảm biến siêu âm US015 để nhận biết khoảng cách từ nhân viên đến cảm biến nhờ sóng siêu âm giúp kích hoạt cảm biến nhiệt hồng ngoại đo trong một khoảng cách đã được cài đặt sẵn.

- Đồng thời cửa tự động được điều khiển bằng động cơ servo MG996G sẽ mở khi đã nhận diện được nhân viên của cơng ty và khơng có dấu hiệu thân nhiệt cao một cách tự động.

Hệ thống máy chủ:

- Hệ thống máy chủ kết nối wifi bằng ESP32 và thu ảnh nhân viên bằng Cam OV2640 tích hợp trên ESP32 ở hệ thống giám sát ngay cổng.

- Sau khi dữ liệu được truyền về máy chủ sẽ nhận diện khuôn mặt nhân viên bằng cơ sở dữ liệu đã được cập nhật trước.

- Khi thân nhiệt của nhân viên cao trên 37,5oC, hệ thống cổng rà sốt sẽ điều khiển tự động đóng cổng và đèn cảnh báo được bật, dữ liệu sẽ được truyền về máy chủ ngay chốt bảo vệ. Tại đây, máy chủ sẽ hiển thị thông tin nhân viên, nhiệt độ đo được và truy xuất được các thông tin cần thiết liên quan đến nhân viên như thơng tin cá nhân, phịng/ban làm việc để truy xuất được những người liên quan.

- Sau đó, bảo vệ sẽ yêu cầu nhân viên này kiểm tra sức khoẻ hoặc xét nghiệm nhanh tại phòng cách ly của doanh nghiệp, tránh lây lan sang các nhân viên khác.

50

- Điều này cũng giúp doanh nghiệp xác định F1, F2 nhanh chóng trong doanh nghiệp.

4.4.2. Thiết kế phần mềm a. Lưu đồ giải thuật a. Lưu đồ giải thuật

Hình 4.30. Lưu đồ giải thuật

Bắt đầu Kiểm tra nhiệt độ Đóng cổng Mở cổng Cảnh báo Kết thúc Sai Sai Đúng Có Kiểm tra có người đứng trước camera Khơng Dữ liệu nhận dạng

51 ❖ Giải thích lưu đồ giải thuật

Khi chương trình bắt đầu sẽ kiểm tra xem đã có người đứng ở trước camera hay chưa, nếu chưa sẽ quay lại kiểm tra. Nếu có sẽ chuyển sang đọc dữ liệu nhận dạng khuôn mặt và so sánh trên cơ sở dữ liệu là khuôn mặt và thông tin của nhân viên đã được lưu trên

Một phần của tài liệu Xây dựng mô hình hệ thống cổng rà soát nhân viên nhiễm covid, giúp tránh lây nhiễm chéo tại các doanh nghiệp (Trang 44)

Tải bản đầy đủ (PDF)

(85 trang)