Ở đồ án này, nhóm lựa chọn phương án dùng giao tiếp Uart vì âm thanh chỉ được phát khi nhận được sự điều khiển của bộ điều khiển qua cảm biến, và sự đơn giản của chúng khi phương pháp này được hỗ trợ phần lớn qua các thư viện phần mềm có sẵn.
Giao tiếp UART:
UART hay bộ thu-phát không đồng bộ đa năng là một trong những hình thức giao tiếp kỹ thuật số giữa thiết bị với thiết bị đơn giản và lâu đời nhất. Bạn có thể tìm thấy các thiết bị UART trong một phần của mạch tích hợp (IC) hoặc dưới dạng các thành phần riêng lẻ. Các UART giao tiếp giữa hai nút riêng biệt bằng cách sử dụng một cặp dẫn và một nối đất chung.
o Hướng dẫn giao tiếp UART
Vì nó là thiết lập phổ quát nên chúng ta có thể định cấu hình UART để hoạt động với nhiều loại giao thức nối tiếp khác nhau. UART đã được điều chỉnh thành các đơn vị chip đơn vào đầu những năm 1970, bắt đầu với Western Digital’s WD1402A.
Trong một sơ đồ giao tiếp UART:
- Chân Tx (truyền) của một chip kết nối trực tiếp với chân Rx (nhận) của chip kia và ngược lại. Thông thường, quá trình truyền sẽ diễn ra ở 3.3V hoặc 5V. UART là một giao thức một master, một slave, trong đó một thiết bị được thiết lập để giao tiếp với duy nhất một thiết bị khác.
- Dữ liệu truyền đến và đi từ UART song song với thiết bị điều khiển (ví dụ: CPU).
- Khi gửi trên chân Tx, UART đầu tiên sẽ dịch thông tin song song này thành nối tiếp và truyền đến thiết bị nhận.
- UART thứ hai nhận dữ liệu này trên chân Rx của nó và biến đổi nó trở lại thành song song để giao tiếp với thiết bị điều khiển của nó.
23
3.5.3.2. Loa phát âm thanh
Hình 3.14 Loa phát âm thanh
Hình 3.15 Sơ đồ kết nối Loa với module DF mini Player
Mạch phát âm thanh MP3 UART tích hợp Amply DFPlayer Mini có thiết kế nhỏ gọn được sử dụng để phát âm thanh MP3 qua thẻ nhớ MicroSD giao tiếp với Vi điều khiển qua giao tiếp UART, mạch có tích hợp Amply công suất nhỏ nên có thể kết nối trực tiếp với loa (< 2W) để thực hiện một số ứng dụng về phát âm thanh đơn giản.
Thông số kỹ thuật:
24
Chuẩn giao tiếp: UART hoặc có thể điều khiển trực tiếp qua các chân IO
Tích hợp IC Amply công suất nhỏ YX8002A nên có thể nối trực tiếp với loa < 2W.
Định dạng âm thanh hỗ trợ: MP3 và WAV
Tốc độ lấy mẫu (Khz) ; 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 với ngõ ra 24bit
Hỗ trợ đầy đủ FAT16, FAT32, thẻ TF hỗ trợ tối đa 32Gb.
Các file âm thanh có thể sắp xếp theo thư mục ( tối đa 100 mục ) , mỗi mục chứa tối đa 255 bài hát.
Có thể điều chỉnh 30 mức Volume và 6 mức EQ.
3.5.4 Khối hiển thị
Màn hình LCD1602 xanh lá sử dụng driver HD44780, có khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự. Màn hình LCD có độ bền cao, rất phổ biến, nhiều code mẫu và dễ sử dụng thích hợp cho những người mới học và làm dự án.
Hình 3.16 Module LCD1602
Thông Số Kỹ Thuật Màn hình LCD1602:
- Điện áp hoạt động: 5V
- Kích thước của màn hình LCD 1602: 8 x 3.6 x 0.8 cm - Màu nền: xanh lá hoặc xanh dương
25
- Khoảng cách giữa hai chân kết nối: 0.1 inch - Tiện dụng khi kết nối với Breadboard.
Hình 3.17 Kích thước màn hình LCD
Ưu Điểm Của Màn hình LCD1602:
Tên các chân được ghi ở mặt sau của màn hình LCD hỗ trợ việc kết nối, đi dây điện.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chỉnh độ sáng để sử dụng ít điện năng hơn.
Có thể được điều khiển với 6 dây tín hiệu.
Có bộ ký tự được xây dựng hỗ trợ tiếng Anh và tiếng Nhật.
Sơ Đồ Kết Nối Của Màn Hình LCD1602:
Chân số 1 - VSS: Chân nối đất cho LCD được nối với GND của mạch điều khiển.
Chân số 2 - VDD: Chân cấp nguồn cho LCD, được nối với VCC 5V của mạch điều khiển
Chân số 3 - VE: Điều chỉnh độ tương phản của LCD
Chân số 4 - RS: chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":
o Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
26
o Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để ghi hoặc nối với logic “1” đọc
Chân số 6 - E : chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau:
o Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
o Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp
Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7)
Chân số 15 - A : nguồn dương cho đèn nền
Chân số 16 - K : nguồn âm cho đèn nền
3.5.5 Khối thẻ nhớ
Micro SD/Micro SDHC SPI là modun đọc và ghi thẻ Micro SD/ Micro SDHC với giao tiếp chuẩn SPI. Người dùng Arduino có thể dễ dàng đọc và ghi tệp dữ liệu vào thẻ Micro Sd/SDHC qua sử dụng giao tiếp SPI và thư viện Arduino có sẵn.
27
Hình 3.18Micro SD/Micro SDHC SPI
Bảng 3.1 Thông Số kỹ thuật thẻ nhớ Micro SD
Loại thẻ hỗ trợ Thẻ Micro SD (<= 2G), thẻ
Micro SDHC (<= 32G)
Kích thước 42X24X12 mm
Trọng lượng 5 g
Đặc Điểm Nổi Bật:
Hỗ trợ Micro SD Card, thẻ Micro SDHC (thẻ tốc độ cao)
điện áp module Micro SD card/Micro SDHC : 4.5V ~ 5.5V, 3.3V điện áp mạch điều
28 M2 lỗ định vị vít để lắp đặt dễ dàng
3.5.6 Khối nguồn - Mạch Giảm Áp DC LM2596
Mạch giảm áp DC LM2596 3A nhỏ gọn có khả năng giảm áp từ 30V xuống 1.5V mà vẫn đạt hiệu suất cao (92%) . Thích hợp cho các ứng dụng chia nguồn, hạ áp, cấp cho các thiết bị như camera, motor, robot,…
Hình 3.19Mạch nguyên lý mạch LM2596
Thông số kỹ thuật:
- Điện áp đầu vào: Từ 3V đến 36V.
- Điện áp đầu ra: Điều chỉnh được trong khoảng 1.5V đến 30V.
- Dòng đáp ứng tối đa là 3A.
- Hiệu suất: 92%
- Công suất: 15W
- Kích thước: 45 (dài) * 20 (rộng) * 14 (cao) mm
3.3.7 Thiết kế khối xử lý trung tâm 3.3.7.1 Esp32 DevBoard
DEVBOARD phát triển dựa trên Module ESP32-WROOM bao gồm: + Trên board sử dụng module ESP-WROOM-32.
+ Sử dụng chip CH340 cho chức năng chuyển đổi USB to UART. + Cổng MicroUSB để cấp nguồn, nạp code hoặc debug UART. + 2x19 chân GPIO.
29
Hình 3.20Esp32 Devboard
Hình 3.21DevBoard Pinout
Thông Số Kỹ Thuật
- WIFI module: ESP-WROOM-32 + Processor: ESP32-D0WDQ6 - Built-in Flash: 32Mbit
- Antenna: Onboard PCB antenna
30
- WiFi protocol: IEEE 802.11 b/g/n - Bluetooth: Bluetooth 4.2
- Frequency range: 2.4G ~ 2.5G (2400M ~ 2483.5M) - WIFI mode: Station / SoftAP / SoftAP+Station - Điện áp hoạt động: 5V
- Mức logic: 3.3V
- Kích thước: 48.26mm x 25.4mm
3.5.7.2 Lập trình trên phần mềm Arduino
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng. Ngôn ngữ này dựa trên ngôn ngữ Wiring được viết cho phần cứng. Và Wiring là một biến thể của C/C++. Một số người gọi đó là Wiring một số khác thì gọi là C hay C++.
Để lập trình cũng như gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cung cấp đến cho người dùng một môi trường lập trình cho Arduino được gọi là Arduino IDE như hình bên dưới.
31
CHƯƠNG 4 THI CÔNG HỆ THỐNG 4.1 Thi công hệ thống
Sau khi đã kiểm tra và hoàn thiện hệ thống bằng phần mềm thiết kế Solidworks. Bước tiếp theo là gia công mô hình. Vì chi phí hạn chế, nhóm quyết định chọn phương pháp in 3D các khối của mô hình, và hơn hết là test các chức năng hoạt động của mô hình trước khi phổ biến hệ thống ra ngoài thị trường.
Hình 4.1 Mô hình cửa bệnh viện sau khi gia công
4.2 Nguyên lý hoạt động của hệ thống
- Phát hiện khi người đứng trước cảm biến nhiệt độ không tiếp xúc
- Đo thân nhiệt của khách hàng, hiển thị lên màn hình LCD và thông báo qua loa
- Mở barrier chắn bên phải nếu khách hàng có nhiệt độ cao hơn 37 độ
32
- Lưu trữ lịch sử người nghi nhiễm covid và nhiệt độ của họ vào thẻ nhớ theo thời gian thực.
- Đếm số lượng người nghi nhiễm và hiển thị lên màn hình.
4.3 Lập trình cho hệ thống
4.3.1 Phần mềm lập trình
Môi trường phát triển tích hợp (IDE) Arduino là một ứng dụng đa nền tảng được viết bằng Java, và được dẫn xuất từ IDE cho ngôn ngữ lập trình xử lý và các dự án lắp ráp. Nó được thiết kế để làm nhập môn lập trình cho các nhà lập trình và những người mới sử dụng khác không quen thuộc với phát triển phần mềm. Nó bao gồm một trình soạn thảo mã với các tính năng như làm nổi bật cú pháp, khớp dấu ngặc khối chương trình, và thụt đầu dòng tự động, và cũng có khả năng biên dịch và tải lên các chương trình vào bo mạch với một nhấp chuột duy nhất. Một chương trình hoặc mã viết cho Arduino được gọi là "sketch" . Chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với một thư viện phần mềm được gọi là "Wiring" từ dự án lắp ráp ban đầu, cho hoạt động đầu vào/đầu ra phổ biến trở nên dễ dàng hơn nhiều. Người sử dụng chỉ cần định nghĩa hai hàm để thực hiện một chương trình điều hành theo chu kỳ : setup() : hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình dùng để khởi tạo các thiết lập. loop() : hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt đi.
Khi các bạn bật điện bảng mạch Arduino, reset hay nạp chương trình mới, hàm setup() sẽ được gọi đến đầu tiên. Sau khi xử lý xong hàm setup(), Arduino sẽ nhảy đến hàm loop() và lặp vô hạn hàm này cho đến khi bạn tắt điện bo mạch Arduino. Chu trình đó có thể mô tả trong hình dưới đây:
Arduino IDE sử dụng GNU toolchain và AVR libc để biên dịch chương trình, và sử dụng avrdude để tải lên các chương trình vào bo mạch chủ. Do nền tảng Arduino sử dụng vi điều khiển Atmel, môi trường phát triển của Atmel, AVR Studio hoặc Atmel Studio mới hơn, cũng có thể được sử dụng để phát triển phần mềm cho các Arduino.
33
Giao diện phần mềm IDE Phần này nói về giao diện của phần mềm IDE, hình bên dưới thể hiện những phần cơ bản của giao diện.
Hình 4.2 Giao diện lập trình IDE
Sử dụng một số menu thông dụng trên phần mềm IDE
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu File, ngoài những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có thể tham khảo, giảm bớt thời gian lập trình. Hình bên dưới thể hiện việc chọn một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino.
34
Hình 4.3 Menu file trên phần mềm IDE
Bên cạnh việc chọn bo thì một phần quan trọng nữa là chọn cổng COM. Hình bên dưới minh họa cho việc chọn cổng COM. Khi lần đầu gắn mạch Arduino vào máy tính, người sử dụng cần nhấn chọn cổng COM bằng cách vào Tools -> Serial Port (một số phiên bản dùng từ Port) sau đó nhấn chọn cổng COM, ví dụ như COM1. Những lần sau khi đưa chính board Arduino đó vào máy tính thì không cần chọn cổng COM, nếu đưa board Arduino khác vào máy thì cần phải chọn lại cổng COM, quy trình thực hiện cũng tương tự.
35
Hình 4.4 Cách chọn cổng COM trên màn hình IDE
4.3.2 Lưu đồ thuật toán
36
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết quả đạt được
Sau hơn 2 tháng tìm tòi, nghiên cứu, cùng với sự giúp đỡ của quý thầy, cô trong khoa Cơ Điện – Điện Tử, trường đại học Lạc Hồng và đặc biệt là thầy Phan Như Quân đã tận tình hướng dẫn, tạo điều kiện thuận lợi để nhóm hoàn thành bài nghiên cứu khoa học “Hệ thống phân luồng bệnh nhân covid”.
37
5.2 Kết luận
Qua quá trình nghiên cứu và chế tạo thành công mô hình phân luồng bệnh nhân covid, nhóm chúng em nhận thấy rằng nhóm vẫn còn thiếu sót, xong bên cạnh đó nhóm đã học được thêm nhiều kỹ năng cũng như nâng cao được tay nghề và hiểu được nguyên lý hoạt động của hệ thống phân luồng bệnh nhân covid, nâng cao khả năng làm việc nhóm, khả năng sử dụng phần mềm.
Một lần nữa nhóm em xin được cảm ơn Quý thầy, cô trong khoa Cơ Điện – Điện Tử, trường đại học Lạc Hồng, cùng quý bạn bè và đặc biệt là thầy Ts Phan Như Quân đã tận tình hướng dẫn, tạo điều kiện để nhóm hoàn thành đề tài nghiên cứu “Hệ thống phân luồng bệnh nhân covid”.
5.3 Hướng phát triển
Đề tài mới chỉ dừng ở việc thiết kế mô hình hệ thống nhỏ nên các thông số chưa phản ánh được môi trường thực tế. Vì vậy để hệ thống có thể phát triển hơn trong đời sống, nhóm xin được đề xuất một vài phương án để cải thiện đề tài này:
Sử dụng những cảm biến chuyên dụng để đo cho độ chính xác cao.
Sử dụng sử dụng thêm nhiều loại cảm biến.
Thêm tính năng theo dõi online với các dữ liệu thu về từ mô hình.
Sử dụng nguồn dự phòng cho mô hình.
Thêm các thiết bị bảo vệ khi mô hình hoạt động thực tế, vì dễ có nguy cơ bị phá hủy.
38
DANH MỤC TÀI LIỆU THAM KHẢO
Tham khảo sách :
[1] Lập trình điều khiển với Arduino – Phạm Quang Huy & Lê Cảnh Trung. [2] Lập trình IoT với Arduino – Phạm Quang Huy & Lê Mỹ Hà
[3] Hướng dẫn sử dụng Arduino – Phạm Quang Huy & Trương Đình Nhơn [4] Nhà xuất bản Thời Đại. Solidworks Essentials 2010.
Tham khảo trang web:
[5] http://arduino.vn/ [6]http://tapit.vn/dong-bo-giua-dieu-khien-bang-tay-va-tu-xa-su-dung-ung-dung- Blynk/ [7] https://letdiy.net/dieu-khien-bat-tat-den-led-tren-esp32-bang-Blynk [8] https://advancecad.edu.vn/ [9] https://arduinokit.vn/
39
PHỤ LỤC Lập trình code cho chương trình.
Esp32
* right servo : open 110, close 178 straight servo: open 110, close 44
#include <Wire.h> #include <Adafruit_MLX90614.h> Adafruit_MLX90614 mlx = Adafruit_MLX90614(); #include <Servo.h> Servo sv_right,sv_straight; #include <LiquidCrystal.h> LiquidCrystal lcd(4, 2, 25, 26, 27, 14); #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(33,32); // RX, TX