Đơn giản hơn, Arduino là thiết bị có thể tương tác với ngoại cảnh thông qua các cảm biến và hành vi được lập trình sản.. Song Arduino đã giải quyết được vấn đề này, Arduino được phát tri
Trang 1TRUONG DAI HOC MO HA NOI
KHOA DIEN - DIEN TU
BAO CAO
Đề tài: THIẾT BỊ ĐO NHIỆT ĐỘ HỎNG NGOẠI TỰ ĐỘNG
KHÔNG TIẾP XÚC Giáng viên hướng dẫn: Trịnh Đình Cường
Sinh viên thực hiện: Nguyễn Thị Thanh Xuân
Trần Quốc Trường
Khoa: Điện — Diện tử
Trường: Đại học Mở Hà Nội
Ngành học: CNKT - Điện tử viễn thông
Hà Nội, tháng 03 năm 2024
Trang 2MUC LUC
CHƯƠNG I: LÝ THUYẾT CƠ SỞ -2 22 222 212221121122712112212122 2 cre 3
I,./), VÀ cece ccc c eee ec esse tent deeeeetniseeescrssseeeeneeeee 3
2 LCD 1602 0c cece ccc cessesssecssessssessessssessessssssseesssssssessssassaiesssreasesiesseseessesans 6
3 Giao tiếp L2G ooo cecccccccecccccesceseessestessessesecssssesecssessesuessessessesevseessesevssiseteevseseteen 8
4 CAm bién nhiét hong ngoai khong tiép xtic MLX90614 000ooo cece 9
CHƯƠNG II: THIẾT KẾ PHẢN CỨNG 252221 2212212221211 1 xe 11
1 Thiét ké mach hién thi nbiét dO cccccccccecccsscsecsccssessvesesvesesessesveseees ll CHƯƠNG III: THIẾT KẾ PHẢN MÈM 222 2S 2222212221121 xe 12
2 Code mach hién thi mhiét dO 0 0 00.0 ccccccccccccccssesscscessesseestesessesessesvessevsseevseeees 13
3 Sơ đồ khối 2S 22222 221222222222 erree 15
4 Thiết kế sơ đồ nguyên lý SE E1 21121 1E222tcngHgrggrgrgrgre l6 CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN -5- 5c 18 5.1 Kết luận ĂẶ 22L nh TH gen ưện 18
Trang 3CHUONG I: LY THUYET CO SO
1 VDK Arduino
Arduino cơ bản là một mã nguồn mở về điện tử được tạo thành từ phần cứng và phan mềm Về mặt kĩ thuật có thể coi Arduino là một bộ điều khiển logic có thé lap trinh được Đơn giản hơn, Arduino là thiết bị có thể tương tác với ngoại cảnh thông qua các cảm biến và hành vi được lập trình sản Với thiết bị này viéc lắp rap va diéu khién cac
thiết bị điện tử sẽ dễ dàng hơn bao giờ hết Hiện tại có rất nhiều loại vi diéu khién va da
số được lập trình bằng ngôn ngữ C/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiến thức sâu về điện tử và lập trình Nó là trở ngại cho mọi người muốn tạo riêng cho mình một món đồ mang tính công nghệ Song Arduino đã giải quyết được vấn
đề này, Arduino được phát triển nhằm đơn giản hóa việc thiết ké, lắp ráp linh kiện điện
tử cũng như lập trình trên vi điều khiên và mọi người có thê tiếp cận đễ dàng hơn với
thiết bị điện tử mà không cần nhiều về kiến thức điện tử và thời gian Những thế mạnh
của Arduino so với các nền tảng vi điều khiến khác:
- Chạy trên đa nền táng: Việc lập trình Ardumo có thể thực hiện trên các hệ điều hành khác nhau như Windows, Mac Òs, Linux trên Desktop, Android trên di động
- Ngôn ngữ lập trình đơn gián để hiểu
- Mã nguồn mở: Arduino được phát triển dựa trên nguồn mở nên phần mềm chạy trên Arduino được chia sẻ dễ đàng và tích hợp vào các nền tảng khác nhau
- Mở rộng phần cứng: Arduino được thiết kế và sử đụng theo đạng modul nên việc
mở rộng phần cứng cũng để dàng hơn
- Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị
- Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không lo lắng
về ngôn ngữ hay hệ điều hành mình đang sử dụng
+ Ardumno được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Ardumo do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp
Trang 4+ Arduino được biết đến nhiều nhất là phần cửng của nó, nhưng phải có phần mềm để lập trình phần cứng Cả phần cửng và phần mềm goi chung la Arduino
4 Phan mém Arduino:
Phần mềm Arduino được gọi la sketches, duoc tao ra trên máy tính có tích hợp môi trường phát triển (IDE) IDE cho phép viết, chỉnh sửa code và chuyền đôi sao cho phần cứng có thê hiểu IDE dùng để biên dich va nap vao Arduino (qua trình xử lý này gọi là UPLOAD)
4 Phan ctmg Arduino:
Phần cứng Arduino là các board Arduino, nơi thực thi các chương trình lập trình Các board này có thể điều khiển hoặc đáp trả các tín hiệu điện, vì vậy các thành phần được ghép trực tiếp vào nó nhằm tương tác với thế giới thực để cảm nhận và truyền thông Ví
dụ các cảm biến bao gồm các thiết bị chuyên mạch, cảm biến siêu âm, gia tốc Các thiết
bị truyền động bao gồm đèn, motor, loa và các thiết bị hiển thị
Có rất nhiều ứng dụng sử dụng Arduino dé điều khiển Arduino có rất nhiều module, mỗi module được phát triển cho một ứng dụng Về mặt chức năng, các bo mạch Arduino được chia thành hai loại: loại bo mạch chính có chíp Atmega và loại mở rộng thêm chức năng cho bo mạch chính Các bo mạch chính về cơ bản là giống nhau về chức năng, tuy nhiên về mặt cầu hình như số lượng LO, dung lượng bộ nhớ, hay kích thước có
sự khác nhau Một số bo mạch có trang bị thêm các tính năng kết nối như Internet và Bluetooth Các bo mở rộng chủ yếu mở rộng thêm một số tính năng cho bo mạch chính ví
dụ như tính năng kết nối Internet, Wireless, điều khiển động cơ
+ Cấu trúc chung Đề tài:
Arduino Uno là một bo mach vi diéu khién dira trén chip ATmegal68 hoặc ATmega
328 Cầu trúc chung bao gồm:
- 14 chân vào ra bằng tín hiệu số, trong đó có 6 chân có thê sử dụng đề điều chế độ rộng xung
Trang 5- Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các bộ cảm biến bên ngoài đề thu thập số liệu
- Sử dụng một dao động thạch anh tần số đao động 16MHz
- Có một công kết nối bằng chuân USB để chúng ta nạp chương trình vào bo mạch
và một chân cấp nguồn cho mạch, một nút reset
- Nó chứa tất cả mọi thứ cần thiết đê hỗ trợ các vi điều khiến, nguồn cung cấp cho Arduino có thể là từ máy tính thông qua công USB hoặc là từ bộ nguồn chuyên dụng được biến đôi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin
Hình 1.1 Câu trúc phần cứng của Arduino Uno
Khối xử lý trung tâm là vi điều khiến Atmega328
Điện áp hoạt động 5V
Điện áp đầu vào khuyến nghị là 5-l2V
Điện áp đầu vào giới hạn 6-20V
Dòng điện một chiều trên các chân vào ra là 4mA
Dòng điện một chiều cho chân 3.3V là 50mA
Clock Speed 16 MHz
Trường Đại học Mở Hà Nội 5 Khoa Điện — Điện tử
Trang 6v¥ Flash Memory 16 Kb (ATmega 168) hoặc 32 Kb (ATmega 328), SRAM 1
Kb (ATmega 168) hoac 2 Kb (ATmega 328), EEPROM 512 bytes (ATmega 168) hoặc 1 Kb (AT mega 328)
o_ Nguồn nuôi Arduino có thê được hỗ trợ thông qua kết nỗi USB hoặc với một nguồn cung cấp điện bên ngoài Các nguồn năng lượng được lựa chọn tự động Hệ thống VI điều khiển có thể hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V Nên cung cấp với ít hơn 7V, tuy nhiên pin 5V có thê cung cấp ít hơn 5V và hệ thống
vi điều khiển có thê không ổn định Nếu sử dụng nhiều hơn 12V điều chỉnh điện áp
có thể quá nóng Phạm vi khuyến nghị là 7V đến 12V
¥ Chan Vin: Dién ap dau vao Arduino khi chúng ta đùng nguồn điện bên ngoài Chúng
ta có thê cung cấp nguồn thông qua chân này
v Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mạch và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch
* Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến
Chân GND : Chân nối dat
2 LCD1602
Man hình text LCDI602 xanh lá sử dụng driver HD44780, có khá năng hiện thi 2 dong với mỗi dòng 16 ký tự, màn hình 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
THÔNG SÓ KỸ THUẬT
Điện áp hoạt động là 5 V
Kích thước: 80 x 36 x 12.5 mm
Chữ đen, nền xanh lá
Khoảng cách giữa hai chân kết nối là 0.1 ¡inch tiện dụng khi kết nối với
Breadboard
+ 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, di dây điện
Trang 74 Có đèn led nền, có thể dùng biến trở hoặc PWM diéu chinh d6 sang dé str dung it điện năng hơn
+ Có thể được điều khiến với 6 dây tín hiệu
% SƠ ĐỎ CHÂN LCD
Sô chân Ký hiệu chân Mô tả chân
1 Vss Câp điện 0V
2 Vcc Câp điện 5V
4 RS Lựa chọn thanh ghi địa chỉ hay dữ liệu
5 RW Lựa chọn thanh ghi đọc hay việt
7 D0 Đường truyền dữ liệu 0
8 DI Đường truyền dữ liệu I
9 D2 Đường truyền dữ liệu 2
10 D3 Đường truyền dữ liệu 3
Trang 815 A Chan duong dén man hinh
Trong 16 chân của LCD được chia ra làm 3 dạng tín hiệu như sau:
- Các chân cấp nguồn: Chân số I là chân nối mass (OV), chân thứ 2 là Vdd nồi với nguồn+5V Chân thử 3 dùng đề chỉnh contrast thường nối với biến trở
- Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiên lựa chọn thanh ghi ChânR/W dùng để điều khiển quá trình đọc và ghi Chân E là chân cho phép
dạng xung chốt
- Các chân dữ liệu D7+D0: Chân số 7 đến chân số 14 là 8 chân dùng đê trao đôi
đữ liệu giữa thiết bị điều khiển và LCD
3 Giao tiếp 2C
I2C ( Inter — Integrated Circuit) la l 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 đữ liệu giữa các IC với nhau chỉ sử dụng hai đường truyền tin hiéu.Cac bit đữ liệu sẽ được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi I tín hiệu đồng hồ Bus I2C thường được sử dụng đề giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại vi diéu khién, cam bién, EEPROM,
Dé str dung cac loai LCD cé driver 14 HD44780 (LCD 1602, LCD 2004 )
cần có ít nhất 6 chân của MCU kết nói với các chan R , EN, D7, D6, D5 va D4 dé c6
thê giao tiếp với LCD
Nhưng với mạch chuyền đôi giao tiếp I2C cho LCD, chỉ cần 2 chân ( DA va
CL) của MCU kết nối với 2 chân ( DA và CL) của module là đã có thể hiển thị thông
tin lên LCD Ngoài ra có thể điều chính được độ tương phản bởi biến trở gắn trên module
Trang 9THONG SO MACH CHUYEN DOI GIAO TIEP 22C
Kích thuéc: 41.5mm(L)X19mm(W)X15.3MM(H)
Trọng lượng: 5g
Điện áp hoạt động: 2.5v-6v
Jump chốt: Cung cấp đèn cho LCD hoặc ngắt
Biến trở xoay độ tương phản cho LCD
Module được thiết kế dễ dàng cắm vào màn hình LCD theo các chân định sẵn
Sơ đồ chân:
16 chân kết nối LCD
Jumper dén
Nguồn tương phản màn — LED bio Điều chỉnh độ
Hinh 1.2 Modul I2C
4 Cảm biến nhiệt hồng ngoại không tiếp xúc MLX90614
Hình 1.3 Cảm biến nhiệt độ
nhiệt độ hồng ngoại không MXL90614 str dung giao
4 La loai cam bién do
tiếp xúc dùng chip
tiếp I2C co thé dé dang kết nối với bất cứ vi điều
khiển nào Cảm biến nhiệt độ hồng ngoại đo nhiệt
độ bằng cách phát hiện năng lượng hồng ngoại phát ra từ tất cả các vật liệu có nhiệt
độ trên độ không tuyệt đối (0 ° Kelvin)
Trường Đại học Mở Hà Nội 9 Khoa Điện — Điện tử
Trang 10+ Thiết kế cơ bản nhất bao gồm một thấu kính để tập trung năng lượng hồng ngoại (IR) vào đầu đo, giúp chuyên đôi năng lượng thành tín hiệu điện có thê được hiển thị theo đơn vị nhiệt độ sau khi được bù nhiệt cho sự thay đôi nhiệt độ môi trường + Thiết kế này tạo điều kiện cho phép đo nhiệt độ từ khoảng cách xa mà không tiếp xúc với đối tượng cần đo
THONG SO KY THUAT MLX90614
Kích thước nhỏ, chỉ phí thấp
10k Kéo điện trở lên cho giao diện [2C với các 1umper hàn tùy chọn
Dễ tích hợp
Nhiệt độ hoạt động :
-40 + 125 ° C cho nhiệt độ cảm biến
-70 + 380 ° C đối với nhiệt độ đối tượng
Độ chính xác cao 0.5 ° C trên nhiệt độ rộng (0 + 50°®C )
Độ phân giải đo lường la 0,02 ° C
Tùy chính đầu ra PWM dé liên tục
Chế độ ngủ đề giảm tiêu thụ điện năng
Trang 115 Module coi bip 5V
Hinh 1.4 Coi Bip 5v
Thông số kỹ thuật:
+ Sử dung transistor 9012
+ Điện ap hoat dong : 3v3 - SVDC
4 C63 chan GND, VCC, 1/0 tién cho việc giao việc giao tiếp bên ngoài, gắn vào các
Module điều khiển
+ Kích thước: 3.3mm x 1.3mm
4 Module str dung coi chip 3V3 hoac 5V
Trường Đại học Mở Hà Nội 11 Khoa Điện — Điện tử
Trang 12CHUONG I: THIET KE PHAN CUNG
1 Thiết kế mạch hiện thị nhiệt độ
Trang 13
* Đầu vào: MLX90614 và HCSR04
* Bộ xử lý: Adruino
*Đâu ra: màn hình hiền thị LCD 16x2 và giao tiếp I2C LCD, Module còi bíp 5V
CHUONG III: THIET KE PHAN MEM
1 Bai toan dwa ra
Bài toán: Thiết kế, mô phỏng, lắp rắp thiết bị đo thân nhiệt từ xa, không chạm hoàn toàn từ dộng
Cách làm:
- Đo nhiệt độ từ xa, không chạm bằng cảm biến nhiệt độ MLX906 14
- Đo khoảng cách thích hợp với vật thé dé có thé thu được kết quả chính xác
- Tự động hóa bằng thiết bị điều khiển Adruino
- Kết quả được hiển thị qua man hinh led LCD 16x2
2 Code mach hién thị nhiệt độ
// Thư viện cần thiết
#include <Wire.h>
#include <Adafruit_ MLX906 14.h>
#include <LiquidCrystal_ I2C.h>
#include <NewPing.h>
Trang 14// Dinh nghia cac chan va gia tri
#define TRIGGER PIN 7 // Chan Trig của HC-SR04
#define ECHO PIN — 8 // Chan Echo cla HC-SRO4
#define MAX DISTANCE 8 // Khoảng cách tối đa dé do (cm)
#define BUZZER PIN 2 // Chan I/O cua module coi
#define TEMP LIMIT 37.5 // Nhiệt độ tối đa cho phép (độ C)
// Khởi tạo các đối tượng
Adafruit MLX90614 mlx = Adafruit MLX906140; // Cam biến nhiệt độ MLX90614 LiquidCrystal I2C lcd(0x27, 16, 2); Màn hình LCD I2C
NewPing sonar(TRIGGER PIN, ECHO PIN, MAX DISTANCE); // Cam bién khoang cach HC-SR04
void setup() {
mlx.beginQ; // Khởi động cảm biến nhiệt độ
lcd.begm(16, 2); / Khởi động màn hình LCD
pinMode(BUZZER_ PIN, OUTPUT); // Dat chan cua module cé1 la OUTPUT
}
void loop() {
double temp = mlx.readObjectTempCQ; // Đọc nhiệt độ từ cảm biến nhiệt độ
unsigned int distance = sonar.ping cm(); // Đọc khoảng cách từ cảm biến khoảng cách