Tải bản đầy đủ (.docx) (21 trang)

TIỂU LUẬN vẽ sơ đồ mạch điện (trên proteus…), viết chương trình trên arduino IDE mô phỏng mạch hiển thị “tên của bạn” và xây dựng một ứng dụng đếm số người ra vào phòng và hiển thị lên màn hình LED sử dụng mạch

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (469.32 KB, 21 trang )

TRƯỜNG ĐẠI HỌC MỎ – ĐỊA CHẤT
BỘ MÔN MẠNG MÁY TÍNH

TIỂU LUẬN MÔN HỌC
KIẾN TRÚC VÀ HẠ TẦNG MẠNG IOT - 7080713

Cán bộ giảng dạy

Sinh viên thực hiện

GV.Ths Trần Thị Thu Thúy

Họ và tên: Đào Thị Thắm

Bộ môn: Mạng máy tính

Mã số sinh viên: 1921050555
Lớp: CNPM A – K64
Nhóm mơn học: 04

HÀ NỘI – 2021
1


MỤC LỤC

I. MỞ ĐẦU

Trong quá trình phát triển của con người, những cuộc cách mạng về cơng
nghệ đóng một vai trò rất quan trọng, chúng làm thay đổi từng ngày từng giờ cuộc
sống của con người, theo hướng hiện đại hơn. Đi đơi với q trình phát triển của


con người, những thay đổi do chính tác động của con người trong tự nhiên, trong
2


môi trường sống cũng đang diễn ra, tác động trở lại chúng ta, như ơ nhiễm mơi
trường, khí hậu thay đổi….Dân số càng tăng, nhu cầu cũng tăng theo, các dịch vụ,
các tiện ích từ đó cũng được hình thành và phát triển theo. Đặc biệt là áp dụng các
công nghệ của các ngành điện tử, công nghệ thông tin và truyền thông vào trong
thực tiễn cuộc sống con người. Cơng nghệ Internet of Things (IoT) nói chung và
cơng nghệ cảm biến khơng dây (Wireless Sensor) nói riêng được tích hợp từ các kỹ
thuật điện tử, tin học và viễn thơng tiên tiến vào trong mục đích nghiên cứu, giải
trí, sản xuất, kinh doanh, v.v..., phạm vi này ngày càng được mở rộng, để tạo ra các
ứng dụng đáp ứng cho các nhu cầu trên các lĩnh vực khác nhau. Hiện nay, mặc dù
khái niệm IoT và công nghệ cảm biến không dây đã trở nên khá quen thuộc và
được ứng dụng khá nhiều trong các lĩnh vực của đời sống con người, đặc biệt ở các
nước phát triển có nền khoa học công nghệ tiên tiến. Tuy nhiên, những công nghệ
này chưa được áp dụng một cách rộng rãi ở nước ta, do những điều kiện về kỹ
thuật, kinh tế, nhu cầu sử dụng. Song nó vẫn hứa hẹn là một đích đến tiêu biểu cho
các nhà nghiên cứu, cho những mục đích phát triển đầy tiềm năng. Được sự định
hướng và chỉ dẫn của giảng viêng giảng day, em đã chọn đề bài “Vẽ sơ đồ mạch
điện (trên proteus…), viết chương trình trên arduino IDE ; mơ phỏng mạch hiển thị
“Tên của bạn” và Xây dựng một ứng dụng đếm số người ra vào phòng và hiển thị
lên màn hình LED sử dụng mạch Arduino”.
II. NỢI DUNG

II.1. Vẽ sơ đồ mạch điện (trên proeteus…), viết chương trình trên
arduino IDE; mô phỏng mạch hiển thị “Dao Thi Tham” hiển thị trên màn
hình tinh thể lỏng (LCD).
II.1.1. Viết chương trình trên Arduino IDE:
a. Viết chương trình:

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
3


void setup() {
lcd.begin(16, 2);
}
void loop(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Dao Thi Tham");
delay(2000);
}
b. Giải thích chương trình:
#include<LiquidCrystal.h>
// Khai báo thư viện
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // Thiết lập chân cho lcd
Void setup(){ // Hàm chỉ chạy một lần khi bắt đầu chương trình
lcd.begin(16, 2); //Thơng báo đây là LCD 1602
}
void loop(){
lcd.clear();
// Xóa màn hình cho vòng lặp kế tiếp
lcd.setCursor(0,0); // Hiển thị nội dung ở dòng thứ
lcd.print("Dao Thi Tham"); //In ra nội dung là “Dao Thi Tham
delay(2000); // Chậm trễ 2s
}
TieuluanC1.ino


c. Các thiết bị được chọn trong bài:
STT
1

TÊN THIẾT BỊ
Arduino Uno R3

SÓ LƯỢNG
1

2

LM016L

1

3

Output

2

4

Ground

1
4



Bảng II.1.1.c. Các thiết bị trong bài
d. Chương trình viết trên Arduino IDE:

Hình II.1.1.d – Chương trình viết trên Arduino IDE

II.1.2. Vẽ sơ đồ mạch và kết quả trên proteus:
a. Vẽ sơ đồ mạch

5


Hình II.1.2.a. Sơ đồ mạch trên proteus
b. Kết quả hiển thị:

Hình II.1.2.b. Kết quả hiển thị trên Proteus
II.2. Xây dựng một ứng dụng đếm sớ người ra vào phịng và hiển thị lên
màn hình LED sử dụng mạch arduino mà em lựa chọn.
* Cách hiểu 1: Đếm số người ra vào phịng và hiển thị trên Led.
II.2.1. Viết chương trình trên Arduino IDE:
6


a. Viết chương trình
#define sensor 5
int mysensor;
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
const int Seg[10] =
{

0b11000000,
0b11111001,
0b10100100,
0b10110000,
0b10011001,
0b10010010,
0b10000010,
0b11111000,
0b10000000,
0b10010000,
};
void setup()
{
pinMode(sensor, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
mysensor = digitalRead(sensor);
static int point = 0;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, Seg[point]);
digitalWrite(latchPin, HIGH);
if(mysensor == 1){
point = (point + 1) % 10;
delay(1000);
}
7



}
b.Giải thích chương trình:
#define sensor 5
int mysensor;
int latchPin = 8; //chân ST_CP của 74HC595
int clockPin = 12; //chân SH_CP của 74HC595
int dataPin = 11; //Chân DS của 74HC595
const int Seg[10] = //Mảng có 10 sơ từ (0-9)
{
0b11000000,//0 //sángthanh từ a-f sáng
0b11111001,//1 //chỉ có 2 thanh b,c sáng
0b10100100,//2 // chỉ sáng 5 thanh a,b,d,e,g
0b10110000,//3 // chỉ sáng 5 thanh a,b,c,d,g
0b10011001,//4 // chỉ sáng 4 thanh b,c,f,g
0b10010010,//5 // chỉ sáng 5 thanh a,c,d,f,g
0b10000010,//6 // chỉ sáng 6 thanh a,c,d,e,f,g
0b11111000,//7 // chỉ sáng 3 thanh a,b,c
0b10000000,//8 // sáng từ thanh a-f
0b10010000,//9 // chỉ 6 thanh a,b,c,d,f,g
};
void setup()
{
pinMode(sensor, INPUT);
//Thiết đặt chân sensor là INPUT
pinMode(latchPin, OUTPUT); //Thiết đặt chân latch là OUTPUT
pinMode(clockPin, OUTPUT);
//Thiết đặt chân clockPin là
OUTPUT
pinMode(dataPin, OUTPUT); //Thiết đặt chân dataPin là OUTPUT

}
void loop() {
mysensor = digitalRead(sensor); // Câu lệnh dùng để đọc tín hiệu
điện từ tại chân sensor
static int point = 0;
digitalWrite(latchPin, LOW); // Đọc tín hiệu từ digital latchPin trả
về giá tri LOW
shiftOut(dataPin, clockPin, MSBFIRST, Seg[point]); //Xuất ký tự ra
cho Module LED
8


digitalWrite(latchPin, HIGH); //Đọc tín hiệu từ digital latchPin trả về
giá tri HIGH
if(mysensor == 1)
{
point = (point + 1) % 10; // Vịng tuần hồn từ 0--9
delay(1000);
//Đợi 0.5 s cho mỗi lần tăng số
}
}

TieuluanC2.ino

c. Các thiết bị được chọn trong bài:
* Các thiết bị được lựa chọn sử dụng trong bài:

Hình II.2.1.c:Các thiết bị trong bài

* Giải thích sự lựa chọn

Arduino UNO R3: là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình
cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại
bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có
khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa
9


dạng như UART, SPI, TWI (I2C). Arduino Uno R3 bạn có thể ứng dụng vào những
mạch đơn giản như mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động
cơ,... hoặc cao hơn nữa bạn có thể làm những sản phẩm như: máy in 3D, Robot,
khinh khí cầu, máy bay không người lái, và các ứng dụng lớn khác.
74HC595: là một thanh ghi dịch (shift register) hoạt động trên giao thức nối
tiếp vào song song ra (Serial IN Parallel OUT). Nó nhận dữ liệu nối tiếp từ vi điều
khiển và sau đó gửi dữ liệu này qua các chân song song. Có thể tăng 8 chân đầu ra
bằng cách sử dụng chip đơn.
7SEG-COM-ANODE (hay còn được gọi là led 7 đoạn): được thiết kế
để hiển thị số và một số ký hiệu khác. Sự phát xạ của các photon xảy ra
khi mà tiếp giáp diode bị lệch về phía trước bởi một nguồn điện áp bên
ngồi cho phép dịng điện có thể chạy qua và chúng ta gọi đó là quá trình
phát quang.
IR OBSTACLE SENSOR: Cảm biến vật cản hồng ngoại được sử dụng để
nhận biết vật cản bằng ánh sáng hồng ngoại, cảm biến có cách sử dụng đơn giản
với biến trở chỉnh khoảng cách nhận biết vật cản, ngõ ra dạng Digital dễ dàng giao
tiếp và lập trình với Vi điều khiển, thích hợp để làm các ứng dụng Robot tránh vật
cản, báo trộm, mơ hình cửa tự động,...
LOGICSTATE: là cổng logic thực hiện một hàm Boole lý tưởng hóa. Có
nghĩa là, nó thực hiện một phép toán logic trên một hoặc nhiều logic đầu vào, và
tạo ra một kết quả logic ra duy nhất, với thời gian thực hiện lý tưởng hóa là khơng
có trễ.


d. Chương trình viết trên Arduino IDE

10


Hình II.2.1.d: Chương trình viết trên Arduino IDE

II.1.2. Vẽ sơ đồ mạch và kết quả trên proteus:
11


a. Vẽ sơ đồ mạch

Hình II.2.2.a. Sơ đồ mạch trên proteus
b. Kết quả hiển thị:

Hình II.1.2.b. Kết quả hiển thị trên Proteus
c. Nguyên lý hoạt động

12


II.3. Xây dựng một hệ thống chống trộm sử dụng mạch Arduino mà em
lựa chọn.
- Mơ tả bài tốn và các chức năng ( u cầu tới thiểu có chức
năng): phát hiện chuyển động thì báo cịi và nháy đèn báo hiệu người ra
khuyến khích sáng tạo và xây dựng các module hợp lý khác.
- Lựa chọn các thiết bị, giải thích sự lựa chọn đó.
- Vẽ sơ đồ đấu nối chi tiết, mô tả nguyên tắc hoạt động của sơ đồ.
Giải thích hoạt động.

- Viết chương trình trên Arduino IDE và giải thích code.
II.3.1. Viết chương trình trên Arduino IDE:
a. Viết chương trình
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define CAMBIEN 7
13


#define LOA 1
#define LED 6
void setup() {
lcd.begin(16, 2);
pinMode(CAMBIEN, INPUT);
pinMode(LED, OUTPUT);
pinMode(LOA, OUTPUT);
lcd.clear();
lcd.setCursor(1,1);
lcd.print("Xin chao!");
delay(100);
}
void loop(){
int status = digitalRead(CAMBIEN);
if (status == HIGH) {
lcd.setCursor(1,1); lcd.print("Hien dang co nguoi vao");
digitalWrite(LOA, HIGH);
digitalWrite(LED, HIGH);
delay(100);
lcd.clear();
delay(100);

}
else {
lcd.setCursor(1,1);
digitalWrite(LOA, LOW);
digitalWrite(LED, LOW);
}
}
b. Giải thích chương trình:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Thiết lập chân 12, 11, 5, 4, 3, 2 lcd
#define CAMBIEN 7 // Cambien được kết nối với chân digital 7
#define LOA 1 // Loa được kết nối với chân digital 1
#define LED 6 // LED được kết nối với chân digital 6
14


void setup() {
lcd.begin(16, 2); // Thông báo đây là LCD 1602
pinMode(CAMBIEN, INPUT); // thiết đặt chân Cambien là INPUT
pinMode(LED, OUTPUT);// thiết đặt chân buzzer là OUTPUT
pinMode(LOA, OUTPUT);// thiết đặt chân buzzer là OUTPUT
lcd.clear(); // Xóa màn hình cho vịng lặp tiếp
lcd.setCursor(1,1); // Đặt con trỏ tại hàng 1, cột 1
lcd.print("Xin chao!");// In ra màn lcd
delay(100); // Thời gian trễ là 100s
}
void loop(){
int status = digitalRead(CAMBIEN);
if (status == HIGH) { // Trạng thái của chân Cambien ở mức HIGH thì có
người

lcd.setCursor(1,1);// Đặt con trỏ ở hàng 1 cột 1
lcd.print("Hien dang co nguoi vao"); // lcd hiển thị Co Nguoi
digitalWrite(LOA, HIGH); // Loa phát cảnh báo khi có nguoi
digitalWrite(LED, HIGH); // Đèn sáng khi có nguoi
delay(100); // Thời gian trễ là 100s
lcd.clear();
delay(100); // Thời gian trễ là 100s
}
else {
lcd.setCursor(1,1);
digitalWrite(LOA, LOW); // Loa tắt khi khơng có người
digitalWrite(LED, LOW); // Đèn tắt khi khơng có người
}
}
TieuluanC2-2.ino

15


c. Các thiết bị được chọn trong bài:
* Các thiết bị được lựa chọn sử dụng trong bài:

Hình II.3.1.c:Các thiết bị trong bài
* Giải thích sự lựa chọn
Arduino UNO R3: là kit Arduino UNO thế hệ thứ 3, với khả năng lập trình
cho các ứng dụng điều khiển phức tạp do được trang bị cấu hình mạnh cho các loại
bộ nhớ ROM, RAM và Flash, các ngõ vào ra digital I/O trong đó có nhiều ngõ có
khả năng xuất tín hiệu PWM, các ngõ đọc tín hiệu analog và các chuẩn giao tiếp đa
dạng như UART, SPI, TWI (I2C). Arduino Uno R3 bạn có thể ứng dụng vào những
mạch đơn giản như mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động

cơ,... hoặc cao hơn nữa bạn có thể làm những sản phẩm như: máy in 3D, Robot,
khinh khí cầu, máy bay khơng người lái, và các ứng dụng lớn khác.
PIR SENSOR: ( cảm biến hồng ngoại) đo ánh sáng hồng ngoại phát ra từ
các vật thể, Pir sensor hoạt động dựa vào việc nhân biết bức xạ hồng ngoại từ cơ
thể người để báo động……
LCD (Liquid Crystal Display): là màn hình tinh thể lỏng được cấu tạo nên
bởi các tế bào ( các điểm ảnh) chứa tinh thể lỏng với khả năng thay đổi tính phân
cực của ánh sáng và thay đổi cường độ ánh sáng truyền qua khi kết hợp với các
loại kính lọc phân cực.

16


LOGICSTATE: là cổng logic thực hiện một hàm Boole lý tưởng hóa. Có
nghĩa là, nó thực hiện một phép tốn logic trên một hoặc nhiều logic đầu vào, và
tạo ra một kết quả logic ra duy nhất, với thời gian thực hiện lý tưởng hóa là khơng
có trễ.
LED: là cơng cụ phát sáng khi có tín hiệu báo động.
RES: là linh kiện điện trở.
SOUNDER: là công cụ dùng để phát ra tiếng báo động khi có tín hiêu
d. Chương trình viết trên Arduino IDE

17


Hình II.3.1.d: Chương trình viết trên Arduino IDE

II.1.2. Vẽ sơ đồ mạch và kết quả trên proteus:
a. Vẽ sơ đồ mạch


18


Hình II.3.2.a. Sơ đồ mạch trên proteus
b. Kết quả hiển thị:

Hình II.3.2.b. Kết quả hiển thị trên Proteus

19


c. Nguyên lý hoạt động

III. KẾT LUẬN
IoT (Internet of Things) - hứa hẹn tạo ra những ứng dụng đầy tiềm năng, có
thể áp dụng trong nhiều lĩnh vực khác nhau, mà đối với các cơng nghệ khác cịn
nhiều hạn chế. Trên cơ sở nghiên cứu tổng quan về IoT, công nghệ cảm biến không
dây và các ứng dụng trong thực tiễn, em đã xây dựng thành cơng một chương trình
thực nghiệm (như đã trình bày trong bài và có kết quả chạy thử nghiệm). Tuy
nhiên, do thời gian hạn chế, chương trình chạy thử nghiệm bài chưa thật sự tốt em
mong thầy/cô thông cảm giúp em. Em xin trân thành cảm ơn!
IV. TÀI LIỆU THAM KHẢO
1. Https://linhkiendientutphcm.com.
2. Http://arduino.vn
20


3. />4. />
21




×