Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thê giao tiếp với các bảng mạch mở rộng khác nhau.. ® Clock Speed: 16 MHz b Cảm biến nhiệt độ DS18B20 Cảm biến n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG DAI HOC MO DIA CHAT
KHOA CO DIEN
BAO CAO DE TAI GIAM SAT NHIET DO
Sinh viên thực hiện: A
Trang 21 Giới thiệu linh kiện sử dụng
a) Arduino UNO chip cắm
Arduino Uno la mot bang mach vi diéu khién nguon mở dựa trên vi điều khiển
Microchip ATmega328 được phát triển bởi Arduino.cc Bảng mạch được trang bị các bộ chân đầu vào/ đầu ra Digital và Analog có thê giao tiếp với các bảng mạch mở rộng khác
nhau
ñ DIGT PwM~) E š
Hình 1 KTT mạch Arduino Thông số kỹ thuật:
e _ Chip điều khiến chính: ATmega328P
¢ Chip nap va giao tiếp UART: CH340
® - Điện áp hoạt động: SVDC qua công USB hoac chan Vin
e Dién ap vao Vin khuyén ding: <12V
¢ S6 chan Digital I/O: 14 (trong do 6 chan cé kha nang xuat xung PWM)
¢ Số chân PWM Digital I/O: 6
Trang 3¢ Số chân Analog Input: 6
® - Dòng trên mỗi chân I/O: 20 mA
e Dong ra chan 5V: 500 mA
® Dong ra chan 3.3V: 50 mA
® Flash Memory: 32 KB (ATmega328P), 0.5 KB dung cho bootloader
® Clock Speed: 16 MHz
b) Cảm biến nhiệt độ DS18B20
Cảm biến nhiệt độ DSI§B20 I-Wire Digital Temperature Probe la cam bién
DS18B20 duge thiét ké & dang day chéng nude véi vo thép bao vé chac chan dai Im, được sử dụng để đo nhiệt độ môi trường với chuân giao tiếp 1-Wire (1 chân Data duy nhất) với độ phân giải 12bit Cảm biến sử dụng giao tiếp l dây nên rất đễ kết nối và lập
trinh, cam biến có chât lượng tôt và có độ bên cao
Trang 4
Hình 2 Cảm biến nhiệt độ DS18B20
Thông số kỹ thuật:
®©- Dải đo nhiệt độ: -55 đến 125 độ C ( -67 đến 257 độ F)
© Sai sé: +- 0.5 độ C khi đo ở dải -10 - 85 độ C
® - Độ phân giải: người dùng có thê chọn từ 9 — 12 bits
¢ Chuan giao tiép: 1-Wire ( 1 day )
¢ Thoi gian chuyén d6i nhiệt độ tối đa : 750ms ( khi chọn độ phân giai 12bit )
© Méi IC cé mét mã riêng (lưu trên EEPROM của IC) nên có thể giao tiếp nhiều
DS18B20 trén cing | day
© Ong thép khéng gi (chống ẩm , nước) đường kính 6mm, dài 50mm
®_ Đường kính đầu đò: 6mm
© Chiều đài dây: Im
Trang 5c) Relay SV 1 kénh
Module Relay 1 Kénh 5V 12V véi opto cach ly nho gon, c6 opto va transistor cach
ly giúp cho việc sử đụng trở nén an toan voi board mach chinh, mach duge str dyng dé đóng ngắt nguồn điện công suất cao AC hoặc DC, có thê chọn đóng khi kích mức cao hoặc mức thấp bằng Jumpcr
Tiếp điểm đóng ngắt gồm 3 tiếp điểm NC (thường đóng), NO (thường mở) và COM(chân chung) được cách ly hoàn toàn với board mạch chính, ở trạng thái bình thường chưa kích NC sẽ nối với COM, khi có trạng thái kích COM sẽ chuyên sang nối với NO và mât kết nồi với NC
Hinh 3 Relay 5V 1 kênh Thông số kỹ thuật:
® Điện áp hoạt động: SV
® Dòng điện hoạt động: 5mA
© Tiếp điểm relay: NO/NC
® Dòng tải chịu đựng: max 1OA
® - Chọn mức kích tín hiệu qua Jumper
® Kích thước: 50x26xI§.5mm
Trang 6d) Nguồn Adapter 12V 1A
Nguồn adapter được sử dụng với chức năng chỉnh lưu điện áp xoay chiều (AC) thành điện áp một chiều (DC) Nguồn Adapter được dùng trong các mạch ôn áp, cung cấp dòng áp đủ, tránh trường hợp sụt áp, đòng ảnh hưởng đến mạch
Hinh 4 Adapter 12V 1A Thông số kỹ thuật:
® - Diện áp ngõ vào: 100 ~ 240VAC, 50/60Hz
® - Diện áp ngõ ra: 12 VDC
¢ Dong ngé ra: 1A (t6i da)
®_ Kiểu nguồn: nguồn xung
® Tich hop led hiển thị trạng thái nguồn
© - Kiểu giắc ngõ ra: Chuẩn Jack DC tròn 5.5*2.1~2.5mm
¢ Chiều dài dây dẫn: Im
Trang 7GND ‘| ——+—— GND —— vn 1010 IOII
a)
1 So do dau noi mach
——] IOREF SDA
—— RESET AREF
—] 9v: GND
+§VƑ—— 5V 1013
IIIIIIII
Arduino Uno
Arduino Uno SMD
Tín hiệu kích cho relay đóng/ngắt 5V sẽ được lấy từ chân số 4 của Arduino Tiếp điểm ngõ ra của relay ta sẽ sử dụng nguồn Adapter 12VDC dé cap dién cho quat
và được đầu nôi nôi tiếp như trên hình
Tín hiệu ngõ ra của cảm biến nhiệt độ DS18B20 sẽ được kéo trở 4k7 lên VCC như
trong datasheet va sé dua vao chan số 2 của Arduino đề xử lý tín hiệu
Ta sẽ sử dụng dây usb căm từ Arduino đến máy tính đề truyền nhận đữ liệu từ Arduino lên máy tính
2 Thiết kế giao diện điều khiến
Em lựa chọn sẽ thiết kế giao diện Windows form dùng ngôn ngữ C# đề lập trình Phần mềm dùng để thiết kế là Microsoft Visual Studio
Bắt đầu tạo các thành phần giao diện
Đầu tiên ta sẽ sử dụng hộp công cụ Toolbox đề lấy các thành phần như: label, groupBox, comboBox, textBox, button
Trang 8- - Tiếp theo, ta sẽ bố trí, thay đôi nội dung và điều chỉnh tính năng cho từng thành phân như ảnh:
Measuring and Display Temperatures?"
Communication Setup “hàData Receive
Fan /| |
textBox Connect Disconnect
7
b) Lập trình chức năng cho từng thành phần
- _ Ta kích đúp vào Form giao diện thì sẽ hiển thị giao diện lập trình:
Form1.cs [Design]
Susing System;
using System.Collections.Generic;
using System ComponentMadel ;
using System.Data;
using System.Drawing;
using System Ling;
using System Threading Tasks;
using System 10.Ports;
namespace WinForms
{
InitializeComponent() ;
string[] Baudrate = {"4800", "960@","115200"};
Control.CheckForIllegalCrossThreadCalls = false;
3 private void Fonmi Load(object senden, EventArgs e)
comboBox.DataSource = SerialPort.GetPortNames();
comboBox1.Text = "9600";
Trang 9Đầu tiên, ta khai báo thư viện IO Port để sử dụng
using System.1I0.Ports;
Trong hàm Ƒørzm1() ta khai báo biến giá trị Baudrate cho tốc độ Baud và thêm giá
trị Baudrate vào ô comboBoxI
public Form1()
{
InitializeComponent() ;
string[] Baudrate = {"4800", "9600","115200"};
comboBox1 Items AddRange(Baudrate) ;
Control.CheckForIllegalCrossThreadCalls = false;
}
Trong hàm Forzm1() load, sau khi mở giao diện thì hàm này sẽ chạy song song với nó Ta thêm đòng code đọc tất cả các công Port hiện có trong máy tính và sẽ
gan vào comboBox Mặc định tốc độ Baud ban dau ta sẽ cho hién thi téc d6 9600
private void Form1_Load(object sender, EventArgs e)
{
comboBox.DataSource = SerialPort.GetPortNames() ;
comboBox1.Text = "9600";
Ta tao lénh xt ly cho nut nhan “Connect” trong ham button 1_Click
+ Đầu tiên, ta kiểm tra công Senal đã được mở hay chưa, nêu chưa được mở thì
nút này khi được click mới có tác dụng
+ Khi nút này được nhấn, tên port được lấy từ comboBox sẽ được gán cho công
Serial để sử dụng Khi đó textBoxI hiển thị trạng thái sẽ hiển thị chữ “Connect”
màu xanh lime Ta sẽ chuyên đổi giá trị tốc độ Baud từ string sang integer va đặt tốc độ Baud cho công Serial Cuối cùng ta khóa thao tác 2 ô comboBox, comboBoxI và cho công Serial mở đề sử dụng
Trang 10{
if (!serialPort1.IsOpen)
{
serialPort1.PortName = comboBox.Text;
textBox1.BackColor = Color.Lime;
textBox1.Text = "Connected";
serialPort1.BaudRate = Convert.ToInt32(comboBox1 Text); comboBox.Enabled = false;
comboBox1.Enabled = false;
serialPort1.Open();
}
Đối với nút nhan “Disconnect” ta sé code xử lý trong hàm button2_Click va sé
ngugc lai voi nut “Connect”
+ Đầu tiên, ta kiểm tra cổng Serial đã đóng hay chưa, nếu chưa đóng thì nút này khi được click mới có tác dụng
+ Khi nút này được nhắn, công Serial sé được đóng lại Khi đó textBoxI sẽ hiển
thi trang thai “Disconnect” mau do Cudi cùng ta sẽ cho mở lại thao tác 2 ô comboBox và comboBox]
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1 IsOpen)
{
serialPort1.Close();
textBox1.BackColor = Color.Red;
textBox1.Text = "Disconnected";
comboBox.Enabled = true;
comboBox1.Enabled = true;
}
Trang 11Giao diện thiết kế hoàn thành:
al? Temperature Monitoring Interface — Oo x
Measuring and Display Temperature
Fan |
— Connected
[==] m—=I