1. Trang chủ
  2. » Công Nghệ Thông Tin

Tiểu Luận Tốt Nghiệp Điều Khiển Thiết Bị Qua Mạng Internet

82 521 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 6,2 MB

Nội dung

Đề tài này được phát triển nhằm tạo ra phiên bản thử nghiệm cho việc xây dựng một hệ thống điều khiển tự động các thiết bị trong gia đình dựa trên các vi xử lý Arduino UNO, Arduino Mega 2560, và Arduino Promini. Hệ thống sẽ được điều khiển thông qua giao diện điều khiển trên trình duyệt web. Phần lớn các công việc tập trung vào việc thiết kế trên phần mềm thiết kế mạch, lập trình vi điều khiển dựa trên ngôn ngữ CC++ và thực hiện chế tạo các mạch điều khiển. Trong chương 4 của bài báo cáo này sẽ chỉ rõ làm thế nào để thiết kế các mạch điều khiển và mạch cảm biến. Phần cuối của bài báo cáo sẽ tổng hợp tất cả các mã lập trình được sử dụng cho đề tài.

Trang 1

TIỂU LUẬN TỐT NGHIỆP

THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN THIẾT BỊ ĐIỆN TRONG

NHÀ VỚI ARDUINO

MSSV: CM14V7K501

Trang 2

LỜI CẢM ƠN

Em xin gửi đến thầy cô ở khoa Công Nghệ Thông Tin &

Truyền Thông Trường Đại Học Cần Thơ lời biết ơn sâu sắc nhất,

những người đã cùng với tri thức và tâm huyết của mình để

truyền đạt vốn kiến thức quý báu cho chúng em trong thời gian

học tập vừa qua

Xin gửi lời cảm ơn chân thành đến gia đình, bè bạn, vàcộng đồng những người lập trình trên internet đã luôn là nguồn

động viên to lớn, giúp em vượt qua những khó khăn trong suốt

quá trình học tập và thực hiện đồ án này

Mặc dù đã rất cố gắng hoàn thiện đồ án với tất cả sự nỗlực, tuy nhiên do bước đầu đi vào thực tế, tìm hiểu và xây dựng

đồ án trong thời gian có hạn, và kiến thức còn hạn chế nên đồ

án “Thiết kế hệ thống điều khiển thiết bị điện trong nhà với

Arduino” chắc chắn sẽ không thể tránh khỏi những thiếu sót Em

rất mong nhận được sự quan tâm, thông cảm và những đóng

góp quý báu của các thầy cô và các bạn để đồ án này ngày càng

hoàn thiện hơn

Một lần nữa, em xin chân thành cám ơn và luôn mongnhận được sự đóng góp của mọi người

Sau cùng, em xin kính chúc các thầy cô trong Khoa Côngnghệ Thông Tin & Truyền Thông dồi dào sức khỏe, niềm tin để

tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến

thức cho thế hệ mai sau

Trân trọng !

Cà Mau, ngày 27 tháng 08 năm 2016

Sinh viên thực hiện

Trịnh Hải Đảo

Trang 3

MỤC LỤC

Trang 4

MỤC LỤC HÌNH

Trang 5

KÝ HIỆU VÀ TỪ VIẾT TẮT

Bảng từ viết tắt

Viết tắt Viết đầy đủ Diễn giải

IoT Internet ofThings “Vạn vật kết nối” tất cả mọi thứ điều kết nối với InternetShield Lá chắn kết nối Là bo mạch kết nối có khả năng mở rộngthêm các chức năng của vi xử lýRFID Radio FrequencyIdentification Là công nghệ nhận dạng đối tượng bằng sóng vô tuyếnDatasheet Tài liệu thông sốkỷ thuật Là một tài liệu tóm tắt việc thực hiện và đặc tính kỷ thuật của sản phẩm, máy

móc, linh kiệnI/O Input/Output Đầu vào/ra của vi điều khiển

IDE DevelopmentIntegrated

Environment Môi trường phát triển tích hợpDIY Do It Yourself Những người tự mình tạo ra sản phẩm

UART AsynchronousUniversal

Receiver Chuẩn giao tiếp dữ liệu nối tiếpSPI Serial PeripheralInterface Chuẩn giao tiếp đồng bộ song công

I2C Inter-IntergratedCircuit Chuẩn giao tiếp nối tiếp 2 dây

PWM Pulse WidthModulation Phương pháp điều xung, điều chỉnh điện áp ra tảiPCB Printer CircuitBoard Bảng mạch in

NFC CommunicationNear-Field

s

Công nghệ giao tiếp gần sử dụng cảm ứng từ trường

PIR Passive InfraRedsensor Cảm biến thụ động dùng nguồn kích thích là tia hồng ngoại

Op-Amp OperationalAmplifier Mạch khuếch đại tín hiệu thuật toán

AJAX AsynchronousJavascript and Javascript và XML không đồng bộ

Trang 6

Object Đối tượngMessage Thông điệp giữa các đối tượngMessage to self Thông điệp lặp có điều kiện

Trang 7

Op-amp Mạch khuếch đại thuật toán

TÓM TẮT VÀ TỪ KHÓA

Tóm tắt: Đề tài này được phát triển nhằm tạo ra phiên bản thử

nghiệm cho việc xây dựng một hệ thống điều khiển tự động các

thiết bị trong gia đình dựa trên các vi xử lý Arduino UNO, Arduino

Mega 2560, và Arduino Promini Hệ thống sẽ được điều khiển

thông qua giao diện điều khiển trên trình duyệt web Phần lớn

các công việc tập trung vào việc thiết kế trên phần mềm thiết kế

mạch, lập trình vi điều khiển dựa trên ngôn ngữ C/C++ và thực

hiện chế tạo các mạch điều khiển Trong chương 4 của bài báo

cáo này sẽ chỉ rõ làm thế nào để thiết kế các mạch điều khiển và

mạch cảm biến Phần cuối của bài báo cáo sẽ tổng hợp tất cả

các mã lập trình được sử dụng cho đề tài

Từ khóa: vi điều khiển, Arduino, điều khiển từ xa, máy chủ web.

Abstract: This project I would like to introducing a trial version

of an automatic controllable devices system in the home based

on the microprocessor Arduino UNO, Arduino Mega 2560 and

Arduino Promini The system will be controlled through the

console on the web browser Much of the work focuses on

software design on circuit design, microcontroller programming

language based on C/C++ and implement controllers

fabrication In Chapter 4 of this report will indicate how to design

Trang 8

Keyword: microcontroller, Arduino, remote control, web server.

Trang 9

CHƯƠNG 1: TỔNG QUAN

1 Đặt vấn đề

Ngày nay với sự phát triển của công nghệ thông tin và xuhướng “Vạn vật kết nối – Internet of Things (IoT)”, chúng ta luôn

muốn mọi đồ vật xung quanh ta điều có thể kết nối với internet

để có thể dễ dàng kiểm soát hoạt động cũng như điều khiển

chúng Và sự ra đời của các bo mạch vi xử lý như: Raspberry pi,

Intel Galileo hay Arduino… là một yếu tố tất yếu để đáp ứng nhu

cầu đó Những bo mạch vi xử lý này chỉ nhỏ hơn lòng bàn tay

của chúng ta nhưng sức mạnh tính toán thì không hề nhỏ, giá

của chúng cũng không thể nào cao hơn một chiếc máy vi tính

bình thường

Internet of Things là một kịch bản của thế giới, khi mà mỗi

đồ vật, con người được cung cấp một định danh của riêng mình,

và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua

một mạng duy nhất mà không cần đến sự tương tác trực tiếp

giữa người với người, hay người với máy tính IoT đã phát triển từ

sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và

Internet [18]

Theo khái niệm đó ta có thể hiểu IoT là mọi vật đều có thểkết nối với nhau qua internet, người dùng có thể kiểm soát đồ

vật của mình qua một thiết bị thông minh như laptop, máy tính

để bàn hay smatphone Các hãng công nghệ lớn như Samsung

hay LG đã cho ra đời những sản phẩm IoT đúng nghĩa như: tủ

lạnh máy giặt hay những chiếc ti vi thông minh, mục tiêu của

những sản phẩm này là hướng đến xây dựng một ngôi nhà thông

minh

Trong sự phát triển và xu thế chung của xã hội, việc làm chủđược công nghệ thiết kế mạch vi xử lý và xây dựng các thiết bị

có thể kết nối với internet để tạo ra một hệ sinh thái IoT mang

thương hiệu riêng là một điều hết sức cần thiết Mục tiêu của đề

tài này là xây dựng một hệ thống điều khiển thiết bị điện trong

gia đình thông qua internet, giúp kiểm soát tốt các vấn đề an

ninh, an toàn trong gia đình nhờ vào các cảm biến, hướng đến

xây dựng một căn hộ thông minh

Trang 10

2 Lịch sử vấn đề

Đề tài này được phát triển dựa trên nền tảng của đề tài

“Điều Khiển Thiết Bị Điện Qua Internet” của chính em trong bài

báo cáo môn Niên Luận năm 2015 do thầy Lê Văn Lâm giảng

dạy

Trong đề tài lần trước, em đã giải quyết được vấn đề điềukhiển thiết bị qua mạng internet nhưng còn nhiều thiếu sót trong

việc thiết kế mạch điều khiển và kỹ thuật chế tạo mạch chưa

cao, số lượng thiết bị mà hệ thống điều khiển được bị giới hạn,

độ bảo mật hệ thống không được đảm bảo do chưa có cơ chế

chứng thực người dùng hợp lý

3 Mục tiêu nhiệm vụ của đề tài

Như đã nói ở trên, mục tiêu của đề tài lần này là xây dựngmột hệ thống điều khiển thiết bị điện trong gia đình thông qua

internet, xây dựng giao diện điều khiển trên trình duyệt web và

thiết kế các cảm biến như: cảm biến chuyển động, nhiệt độ, độ

ẩm, phát hiện lửa - khí Gas… nhằm giúp người dùng phát hiện

sớm các vấn đề an ninh, an toàn trong gia đình

Nhiệm vụ cần thực hiện của đề tài là thiết kế các bo mạchkết nối (shield) dựa trên các bo mạch vi xử lý có sẵn, lập trình

cho các vi xử lý và thiết kế các mạch cảm biến mới phù hợp với

từng mục đích của người sử dụng

Nền tảng thực hiện đề tài dựa trên kiến thức đã học trongnhững môn học: Lập trình C, Lập trình Web cùng với những

kiến thức về vi xử lý được chia sẽ trên internet và hiểu biết của

em về thiết kế mạch điện, về các thiết bị điện - điện tử và sự

giúp đỡ từ cộng đồng những người lập trình Arduino trên toàn

thế giới

4 Phạm vi của đề tài

- Xây dựng và thiết kế một mạch điều khiển thiết bị điện có

thể điều khiển được 8 thiết bị cùng lúc

- Thiết kế một mạch mở khóa cửa bằng thẻ từ (RFID) và bàn

phím ma trận để điều khiển đóng/mở khóa cửa

- Thiết kế các bộ cảm biến chuyển động, cảm biến nhiệt độ

-độ ẩm, cảm biến khí Gas, cảm biến ánh sáng…

Trang 11

- Xây dựng một thiết bị điều khiển trung tâm có nhiệm vụ

nhận các tín hiệu điều khiển từ người dùng qua internet vàcác bộ cảm biến, tính toán và gữi tín hiệu điều khiển đếnmạch điều khiển thiết bị

- Xây dựng cơ chế giao tiếp không dây giữa các mạch điều

khiển thiết bị, các cảm biến và bộ điều khiển trung tâm

- Thiết kế giao diện giám sát điều khiển trên trình duyệt web

có cơ chế chứng thực người dùng cơ bản

5 Hướng giải quyết

- Tìm và tra bảng thông số kỹ thuật (datasheet) của các bo

mạch vi xử lý cũng như các linh kiện điện tử để tìm hiểu vềcách hoạt động cũng như chế độ làm việc vào ra (I/O) củacác chân

- Lập trình code cho vi xử lý để giải quyết các kịch bản đã

được định sẵn để giúp cho vi xử lý hoạt động đúng và chínhxác

- Thiết kế mạch điện bằng một số phần mềm thiết kế mạch

chuyên dụng: Proteus, EAGLE, Fritzing…

- Chạy mô phỏng các mạch điện đã thiết kế trên phần thiết kế

mạch để kiểm tra hoạt động của mạch điện

- Nạp code và test thử hoạt động của vi xử lý và các cảm biến

trên bo test mạch (Breadboard) để kiểm tra tính chính xáccủa mã lập trình

- In mạch và hoàn thiện các mạch điện đã thiết kế sau khi

kiểm tra trên phần mềm mô phỏng và kiểm tra trênbreadboard

Trang 12

CHƯƠNG 2: CÔNG CỤ XÂY DỰNG ĐỀ TÀI

1 Khái quát về Arduino

Arduino là một board mạch vi xử lý, nhằm xây dựng các ứngdụng tương tác với nhau hoặc với môi trường được thuận lợi hơn

Phần cứng bao gồm một board mạch nguồn mở được thiết kế

trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit

Được trang bị cổng giao tiếp nối tiếp RS-232 hoặc cổng USB,

giao động thạch anh, đầu vào analog, các chân I/O kỹ thuật số

tương thích với nhiều board mở rộng khác nhau

Hình 1: Phiên bản Arduino đầu tiên sử dụng giao tiếp RS-232

Được giới thiệu vào năm 2005, Những nhà thiết kế củaArduino cố gắng mang đến một phương thức dễ dàng, ít tốn kém

cho những người yêu thích lập trình, sinh viên và giới chuyên

nghiệp để tạo ra những thiết bị có khả năng tương tác với môi

trường thông qua các cảm biến và các cơ cấu chấp hành Những

ví dụ phổ biến mà hầu như những người mới bắt đầu học lập

trình vi điều khiển điều phải làm đó là bật tắt một đèn LED Đi

cùng với nó là một môi trường phát triển tích hợp (IDE) chạy trên

các máy tính cá nhân thông thường và cho phép người dùng viết

các chương trình cho Aduino bằng ngôn ngữ C hoặc C++ [19]

Ban đầu Arduino là một dự án dành cho sinh viên tạiInteraction Design Institute Ivrea (Viện thiết kế tương tác

Ivrea) tại Ivrea, Italy Vào thời điểm đó các sinh viên sử dụng một

"BASIC Stamp" (Con tem cơ bản) có giá khoảng $100, xem như

giá dành cho sinh viên Massimo Banzi là một trong những người

sáng lập, giảng dạy tại Ivrea Cái tên "Arduino" đến từ một quán

bar tại Ivrea, nơi một vài nhà sáng lập của dự án này thường

Trang 13

xuyên gặp mặt Bản thân quán này được lấy tên là Arduino, Bá

tước của Ivrea, và là vua của Italy từ năm 1002 đến 1014 [20]

Hình 2: Những người đầu tiên khởi xướng Arduino

Mặc dù hầu như không tiếp thị, không quảng bá nhưng tintức về Arduino vẫn lan truyền với tốc độ chóng mặc nhờ những

lời truyền miệng tốt đẹp từ những người dùng đầu tiên Arduino

thực sự đã gây sóng gió trên thị trường người dùng DIY trên toàn

thế giới trong vài năm gần đây, gần giống với những gì mà Apple

đã làm được trên thị trường thiết bị di động Số lượng người dùng

cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên

đến đại học đã làm cho ngay cả những người tạo ra chúng cũng

phải ngạc nhiên về mức độ phát triển

2 Phần cứng sử dụng trong đề tài

2.1 Vi điều khiển Arduino Mega 2560

Arduino Mega 2560 R3 sử dụng vi điều khiển ATmega2560 là

bo mạch vi điều khiển cho các giao tiếp ngoại vi và số chân

nhiều nhất, bộ nhớ rất lớn (256KB)

Trang 14

- Vi điều khiển ATmega2560

- Điện áp hoạt động 5V

- Điện áp nguồn 7-12V (khuyên dùng)

- Điện áp nguồn 6-20V (giới hạn)

- Số chân In/Out 54 (trong đó có 15 đầu ra PWM)

- Đầu vào analog 16

- Cường độ chân In/Out 40 mA

2.2 Vi điều khiển Arduino Pro Mini

Arduino Pro Mini là một phiên bản thu nhỏ vi điều khiển UNOR3, nó mang trên mình đầy đủ các kết nối UART, SPI cũng như

I2C và có thêm 2 đầu vào analog nâng lên tổng số đầu vào

- Số chân In/Out 14 (trong đó có 6 đầu ra PWM)

- Đầu vào analog 8

- Cường độ chân In/Out 40 mA

- Bộ nhớ Flash 32 KB, trong đó 2Kb củaBootloader

Trang 15

2.3 Mạch giao tiếp mạng Ethernet W5100

Ethernet Shield W5100 là một board mạch cho phép kết nốiArduino UNO/Mega với internet qua giao thức TCP/IP bằng một

cổng RJ45 trên board Để sử dụng board Ethernet Shield ta chỉ

cần gắn board này lên trên board Arduino sao cho các chân của

board Ethernet Shield trùng với các chân của board Arduino

Hình 5: Bo mở rộng Ethernet Shield W5100

2.4 Module đọc quét thẻ từ RFID RC522

Module RFID RC522 sử dụng IC MFRC522 của hãng Philipdùng để đọc và ghi dữ liệu cho thẻ NFC tần số 13.56Mhz

Hình 6: Mạch đọc thẻ từ RFID RC522

Thông số kỷ thuật:

- Điện áp hoạt động: 3.3V

- Dòng ở chế độ chờ: 1013mA

Trang 16

- Khoảng cách hoạt động: 0~60mm

- Chuẩn giao tiếp: SPI

- Tốc độ truyền dữ liệu tối đa: 10Mbit/s

2.5 Module thu phát sóng vô tuyến RF 315Mhz

Là mạch thu phát tín hiệu bằng sóng vô tuyến Module phátsử dụng thạch anh phát có tần số 315Mhz, module thu có chức

năng điều chế và lọc tín hiệu nhận được từ module phát

Hình 7: Module thu và phát của bộ thu/phát RF 315Mhz

- Tốc độ truyền dữ liệu tối đa: 4Kb/s

- Công suất truyền: 10mW

2.6 Module thời gian thực DS1307

Module thời gian thực DS1307 có chức năng lưu trữ thông tinngày tháng năm cũng như giờ phút giây, nó sẽ hoạt động như

một chiếc đồng hồ và có thể xuất dữ liệu ra ngoài qua giao thức

I2C

Hình 8: Module thời gian thực RTC DS1307

Thông số kỷ thuật:

Trang 17

3.1 Môi trường phát triển ứng dụng Arduino IDE

Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thôngdụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh

thực sự của Arduino nằm ở phần mềm Môi trường lập trình đơn

giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiểu và dựa trên

nền tảng C/C++ rất quen thuộc với người làm kỹ thuật, dễ học

đối với những người chưa biết ngôn ngữ lập trình Và quan trọng

là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng

nguồn mở là vô cùng lớn

Hình 9: Giao diện môi trường phát triển ứng dụng Arduino IDE

Arduino IDE là phần mềm dùng để lập trình cho Arduino Môitrường lập trình Arduino IDE có thể chạy trên các nền tảng phổ

biến nhất hiện nay là Windows, Mac và Linux Do có tính chất

nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và

có thể mở rộng thêm bởi người dùng có kinh nghiệm

Ngôn ngữ lập trình có thể được mở rộng thông qua các thưviện C++ Và do ngôn ngữ lập trình này dựa trên nền tảng C của

AVR nên người dùng hoàn toàn có thể nhúng thêm code viết

bằng AVR vào chương trình nếu muốn Arduino IDE được

Trang 18

3.2 Phần mềm thiết kế mạch

Phần mềm Proteus là phần mềm cho phép mô phỏng hoạtđộng của mạch điện tử bao gồm phần thiết kế mạch và viết

chương trình điều khiển cho các họ vi điều khiển như MCS-51,

PIC, AVR, … Proteus là phần mềm mô phỏng mạch điện tử của

Lancenter Electronics, mô phỏng cho hầu hết các linh kiên điện

tử thông dụng, đặc biệt hỗ trợ cho các MCU như PIC, 8051, AVR,

Motorola

Hình 10: Giao diện làm việc của phần mềm thiết kế mạch Proteus

Phần mềm bao gồm 2 chương trình: ISIS cho phép mô phỏngmạch và ARES dùng để vẽ mạch in Proteus là công cụ mô

phỏng cho các loại vi điều khiển khá tốt, nó hỗ trợ các dòng vi

điều khiển PIC, 8051, PIC, dsPIC, AVR, HC11,…các giao tiếp I2C,

SPI, CAN, USB, Ethenet…ngoài ra còn mô phỏng các mạch số,

mạch tương tự một cách hiệu quả

3.3 Thư viện Arduino trong Proteus

Thư viện Arduino là một bổ sung rất hay cho phần mềm môphỏng Proteus nó giúp cho việc mô phỏng Arduino được thuận

tiện và dễ dàng hơn thay vì chỉ mô phỏng được chip

ATmega328(nhân của Arduino), thư viện này được phát triển bởi

các kĩ sư Cesar Osaka, Daniel Cezar, Roberto Bauer

Thư viện bao gồm các linh kiện sau:

- Arduino Uno (Phiên bản chip ATmega328 chân DIP)

- Arduino Uno (Phiên bản chip ATmega328 chân SMD)

Trang 19

Hình 11: Các linh kiện trong thư viện Arduino cho Proteus

4 Công cụ phụ trợ

Breadboard là một loại board dùng để tạo mẩu thử nghiệmnhững mạch điện tử, có các lỗ cắm dây và linh kiện mà không

cần phải dùng mối hàn

Hình 12: Cấu tạo của một loại breadboard

Công cụ thiết kế mạch trực tuyến PCB – EasyEDA được sử

dụng như là một công cụ tham khảo các mạch nguyên lý cũng

như mạch in của các bo mạch vi điều khiển Arduino

Trang 20

Phần mềm xuất Gcode (FlatCAM) được sử dụng để tinh chỉnh

và xuất mã Gcode cho máy CNC Router trong quá trình thi công

mạch điện

Hình 14: Giao diện làm việc của phần mềm xuất Gcode FlatCAM

CHƯƠNG 3: ĐẶC TẢ HỆ THỐNG

1 Yêu cầu chức năng

Các yêu cầu chức năng của hệ thống bao gồm:

• Kết nối các thiết bị điện, điện tử, điện gia dụng vào hệthống điều khiển

• Giám sát trạng thái của các thiết bị thông qua Internet

• Kết nối các cảm biến và xử lý các vấn đề an ninh, an toàn

hệ thống

• Điều khiển các thiết bị đã kết nối vào hệ thống

• Điều khiển hệ thống bằng các thiết bị như: máy tính, điệnthoại thông minh…

• Xây dựng một web server để thực hiện yêu cầu điềukhiển từ người dùng

• Sử dụng chuẩn giao tiếp TCP/IP để kết nối với hệ thống

• Người dùng điều khiển hệ thống thông qua trình duyệtweb

• Xây dựng cơ chế chứng thực cơ bản cho người sử dụng

• Hệ thống điều khiển và xử lý sau khi lắp ráp phải đảmbảo tính nhỏ gọn

• Đảm bảo tính an toàn về điện cho người dùng khi sử dụng

hệ thống

Trang 21

Cảm biến sẽ thu thập dữ liệu của môi trường (nhiệt độ, độ

ẩm, ánh sáng, khí gas, báo cháy…) và gửi dữ liệu thô về bộ xử lý

trung tâm

Bộ xử lý trung tâm có nhiệm vụ nhận dữ liệu được gửi từmạch điều khiển và các cảm biến, tính toán và cập nhật giá trị

lên web server

Bộ xử lý trung tâm cũng là nơi nhận tín hiệu điều khiển từngười dùng và gửi tín hiệu đến mạch điều khiển để bật/tắt thiết

bị

Các tín hiệu gửi và nhận trên bộ xử lý trung tâm, mạch điềukhiển, các cảm biến và hệ thống mở/khóa cửa RFID được truyền

đi thông qua sóng vô tuyến bằng module RF315Mhz

Hình 15: Sơ đồ khối nguyên lý kết nối của hệ thống

Trang 22

3 Phân tích yêu cầu chức năng

3.1 Biểu đồ trường hợp sử dụng

Để điều khiển hệ thống, việc đầu tiên người dùng phải làm

là chứng thực người dùng bằng cách nhập tên đăng nhập và mật

khẩu vào màn hình đăng nhập khi người dùng truy cập vào địa

chỉ IP của hệ thống trên trình duyệt Sau khi đăng nhập người

dùng sẽ được đưa đến màn hình điều khiển và giám sát các hoạt

động của hệ thống Từ đây người dùng có quyền điều khiển

bật/tắt các thiết bị, đóng/mở cửa, hay xem lại lịch sử các hoạt

động của hệ thống

Hình 16: Sơ đồ trường hợp sử dụng

3.2 Phân tích các trường hợp sử dụng

Để điều khiển được tất cả các tính năng hệ thống trêninternet, máy tính hay thiết bị di động của người dùng phải kết

nối với internet Người dùng truy cập địa chỉ IP của hệ thống trên

trình duyệt web, sau đó hệ thống yêu cầu người dùng nhập tên

người dùng và mật khẩu đăng nhập Nếu người nhập sai tên

đăng nhập hoặc mật khẩu, người dùng sẽ được yêu cầu nhập lại

Nếu hủy bỏ đăng nhập trình duyệt sẽ hiện thông báo lỗi đăng

nhập Nếu nhập đúng tên đăng nhập và mật khẩu, trình duyệt sẽ

vào màn hình chính của hệ thống

- Cách bước thực hiện:

B1: Người dùng mở trình duyệt web

Trang 23

B2: Nhập địa chỉ IP của hệ thốngB3: Nhập tên người dùng và mật khẩuB4: Hệ thống thông báo chứng thực thành công

- Trình tự thực hiện đăng nhập:

Hình 17: Biểu đồ trình tự của thao tác đăng nhập

- Thiết kế form đăng nhập:

Hình 18: Thiết kế form đăng nhập

3.2.2 Use case giám sát cảm biến

Sau khi đăng nhập thành công, trình duyệt sẽ đưa ngườidùng đến màn hình giám sát hoạt động của các thiết bị cũng

như hoạt động của các cảm biến Các cảm biến nhiệt độ - độ ẩm

sẽ được hiển thị giá trị thay đổi theo thời gian thực Cảm biến

chuyển động sẽ thay đổi trạng thái khi có chuyển động, và các

trạng thái này sẽ được lưu lại trong lịch sử hoạt động của hệ

thống

- Thiết kế khung nhìn hiển thị cảm biến nhiệt độ, độ ẩm:

Trang 24

Hình 19: Thiết kế khung nhìn hiển thị nhiệt độ, độ ẩm

- Thiết kế khung nhìn hiển thị cảm biến chuyển động và các

cảm biến tương tự:

Hình 20: Thiết kế khung nhìn cảm biến chuyển động

3.2.3 Use case điều khiển thiết bị

Để điều khiển thiết bị, người dùng sử dụng switch chuyểnđổi qua lại giữa trạng thái “ON” hoặc “OFF” Tại một thời điểm

chỉ có một trạng thái duy nhất được kích hoạt

- Cách bước thực hiện:

B1: Người dùng chọn thiết bị cần điều khiểnB2: Nhấn chọn nút ON/OFF trên màn hình điều khiển B3: Hệ thống ra lệnh điều khiển thiết bị

Trang 25

- Trình tự điều khiển thiết bị:

Hình 21: Biểu đồ trình tự của thao tác điều khiển thiết bị

- Thiết kế form điều khiển thiết bị:

Hình 22: Thiết kế form điều khiển thiết bị

Người dùng có thể đóng/mở cửa ngay trên trình duyệt của

hệ thống Giám sát việc đóng mở cửa hay xem các cảnh báo

truy cập trái phép, lịch sử đóng mở cửa

- Cách bước thực hiện:

B1: Người dùng đi đến form điều khiểnB2: Nhấn chọn nút “Mở” hoặc “Đóng” trên formB3: Hệ thống ra lệnh điều khiển đóng/mở cửa

Trang 27

- Trình tự điều khiển đóng mở cửa

Hình 23: Biểu đồ trình tự của thao tác điều khiển đóng/mở cửa

- Thiết kế form điều khiển đóng mở cửa

Hình 24: Thiết kế form điều khiển đóng/mở cửa

3.2.5 Use case chọn chế độ hoạt động

Người dùng chọn chế độ hoạt động của các thiết bị cũng nhưchế độ làm việc của các cảm biến Có các chế độ như: tùy chỉnh,

ban đêm, có người trong nhà, đi vắng… Tùy theo các chế độ

hoạt động mà các cảm biến sẽ được kích hoạt ở các mức khác

nhau

- Cách bước thực hiện:

B1: Người dùng đi đến form chọn chế độ hoạt độngB2: Nhấn chọn nút chế độ hoạt động trên form

Trang 29

- Trình tự chọn chế độ hoạt động:

Hình 25: Biểu đồ trình tự thao tác chọn chế độ hoạt động

- Thiết kế form chọn chế độ hoạt động:

Hình 26: Thiết kế form chọn chế độ hoạt động

Trang 30

CHƯƠNG 4: THIẾT KẾ HỆ THỐNG

1 Mạch điều khiển thiết bị

1.1 Ví dụ đầu tiên bật/tắt một đèn led

Một tính năng quan trọng của Arduino là các vi điều khiển cómột bộ nạp khởi động cài đặt sẵn, mà không cần có sự can thiệp

của lập trình viên Các phần cứng Arduino được lập trình với một

ngôn ngữ lập trình dựa trên ngôn ngữ tương tự như C ++, và

thông qua một môi trường phát triển IDE Các chương trình

Arduino nếu chúng được biên dịch và chạy, phải xác định hai

} void loop() { digitalWrite(13, HIGH);

Trang 31

pinMode(13, OUTPUT);

Trong vòng lập chính, bật đèn bằng cách sử dụng dòng lệnh:

digitalWrite(13, HIGH);

Sử dụng dòng lệnh trên vi điều khiển sẽ cung cấp 5 volt điện

áp lên chân 13 Điều này tạo ra sự chênh lệch về mặt điện áp

giữa các chân của đèn và làm cho đèn sáng Để tắt đèn ta sử

không có gì hoạt động trong thời gian đó [3]

Hình 28: Ví dụ bật/tắt LED sử dụng lệnh digitalWrite().

Ta có thể thêm nút nhấn và thay đổi một chút về cấu trúclệnh cho ví dụ trên để thấy được sự tương tác vật lý dẫn đến sự

thay đổi trạng thái của đèn led

Trang 32

Hình 29: Thêm nút nhấn vào cho ví dụ bật/tắt led

Một chân của nút nhấn được thêm vào chân số 8 và châncòn lại được nối với 5 volt Ta sẽ thay đổi mã lệnh để khi có điện

áp cao vào chân 8 thì vi điều khiển sẽ kiểm tra trạng thái của led

và thay đổi trạng thái đó

const int buttonPin = 8;

const int ledPin = 13;

pinMode(buttonPin, INPUT);

} void loop() { int readingbnt = digitalRead(buttonPin);

lastbntState = readingbnt;

}

Bằng việc sử dụng thêm một số hàm kiểm tra tình trạng củanút nhấn và thời gian nhấn ta có thể thay đổi trạng thái của led

mỗi khi nhấn nút Từ đây ta có thể phát triển được một hệ thống

đơn giản để điều khiển một thiết bị bằng nút nhấn bằng việc

thay đổi led thành relay

Trang 33

1.2 Tăng số lượng thiết bị điều khiển

Có một vấn đề xảy ra khi ta tăng số lượng led và nút nhấn ở

ví dụ trên lên đến một mức nào đó thì sẽ không đủ chân trên vi

xử lý để có thể điều khiển, cụ thể là trên bo mạch Arduino Pro

Mini chỉ có 14 chân I/O nên ta chỉ có thể điều khiển tối đa là 7

thiết bị

Để giải quyết vấn đề trên ta sử dụng IC 74HC595, là ic ghidịch 8bit kết hợp chốt dữ liệu, đầu vào nối tiếp đầu ra song

song Được dùng trong các mạch quét led 7 đoạn, led matrix…

để tiết kiệm số chân vi điều khiển [12]

Hình 30: Sơ đồ chân và hình ảnh thực tế của IC 74HC595

Sử dụng 3 chân trên ic (DS, ST_CP, SM_CP) để giao tiếp, giúp

vi điều khiển tiết kiệm được các chân I/O nhưng nó lại có thể

điều khiển được cùng lúc 8 thiết bị nhờ vào 8 ngỏ ra trên ic và

nếu được nối tiếp với các ic trên thì số lượng thiết bị có thể được

tăng lên đáng kể

Trang 34

Hình 31:Ví dụ điều khiển 8 led với nút nhấn và ic 74HC595

Để điều khiển ta truyền vào IC 1 byte (8 bit) tương đươngvới 8 thiết bị mà ta cần điều khiển Trong ví dụ trên, để xác định

giá trị cho từng led ta chuyển từ hệ thập phân sang hệ nhị phân

Ví dụ 1 byte có giá trị là 5 thì các chân từ Q0 → Q7 sẽ có giá trị

như sau:

Với các chân có giá trị 0 tương ứng chân đó có hiệu điện thế

là 0V, còn các chân có giá trị 1 sẽ có hiệu điện thế là 5V

ledState[0]*pow(2,7) );

Serial.print(ledStatus);

shiftOutHC595(dataPin,clockPin,ledStatus);

Đoạn mã trên dùng để khai báo chân các của ic kết nối với

vi điều khiển, hàm shiftOutHC595() dùng để dịch các bit ra

chân ic với giá trị ledStatus được chuyển từ hệ nhị phân là

Trang 35

trạng thái của nút nhấn được thực hiện trong ví dụ trước sang hệ

thập phân

1.3 Mô hình nguyên lý mạch điều khiển

Từ ví dụ bật/tắt led trên ta thấy, nếu muốn bật một led thì viđiều khiển phải xuất một tín hiệu mức cao lên chân được điều

khiển, tạo sự chênh lệch điện áp giữa 2 đầu của led dẫn tới led

sáng Cũng theo nguyên lý trên để điều khiển được các thiết bị

điện ta xây dựng một khối relay kích dẫn điện cho dòng diện lớn

có thể đi qua mà không gây ảnh hưởng tới vi điều khiển

Hình 32: Sơ đồ khối mạch điều khiển thiết bị

Việc xây dựng một khối relay kích dẫn dòng điện hiện nay córất nhiều cách như: kích dẫn bằng tranzitor, fet công suất, hay

opto quang cách ly Nhưng ta nhận thấy rằng việc kích relay

bằng các cách kể trên điều tốn khá nhiều linh kiện và không

gian trên mạch PCB Để giải quyết vấn đề trên, ta sử dụng IC

ULN2803

ULN2803 là một vi mạch đệm, bản chất cấu tạo là các mảngdarlington chịu được dòng đện lớn và điện áp cao, trong đó có

chứa 8 cặp transistor NPN ghép darlington cực góp hở với cực

phát chung Mỗi kênh của ULN2803 có một diode chặn có thể sử

dụng trong trường hợp tải có tính cảm ứng, ví dụ như các relay

ULN2803 có khả năng điều khiển 8 kênh riêng biệt, có thể nối

Trang 36

2803 có thể chịu được dòng điện lớn trong một khoảng thời gian

dài lên tới 500mA với biên độ đỉnh lên tới 600mA [7]

Hình 33: Cấu tạo của IC đệm dòng ULN2803

Bản chất của ULN2803 là các cổng NOT nên khi ta đưa tínhiệu mức thấp (0) vào đầu vào của IC thì đầu ra thả nổi, khi ta

đưa tín hiệu mức cao (1) thì đầu ra bằng 0

Hình 34: Kết nối 1 relay với ULN2803

Khi ta xuất tín hiệu mức cao vào chân số 1 của IC tín hiệuđầu ra ở chân 18 sẽ ở mức thấp, tương ứng với giá trị điện áp 0V

Do đó sẽ tạo chênh lệch điện áp giữa hai đầu cuộn dây bên

trong relay, giúp relay hút đóng tiếp điểm thường mở dẫn dòng

điện chạy qua

Trang 37

Hình 35: Sơ đồ nguyên lý của mạch điều khiển thiết bị

Kết nối các chân đầu ra của IC 74HC595 với các chân đầuvào IC ULN2803 thay cho led ở ví dụ trước Khi vi điều khiển dịch

các bit mức cao vào 74HC595 thì các chân ở đầu ra sẽ xuất tín

hiệu vào ULN2803 làm cho các chân đầu ra xuất tín hiệu mức

thấp

1.4 Thiết kế mạch điều khiển trên phần mềm

Từ sơ đồ nguyên lý của mạch điều khiển thiết bị, ta xâydựng mạch PCB trên phần mềm Proteus Bổ sung thêm các led

báo trạng thái của thiết bị, tụ lọc nguồn, diot tránh ngược dòng,

điện trở thanh gắn vào các chân vào ra của IC 74HC595 và

ULN2803

Trang 38

Hình 36: Schematic của mạch điều khiển thiết bị

Các chân kết nối vi điều khiển và module thu phát RF đượcđổi thành các connecter để khi ta làm mạch in, chỉ cần gắn bo

mạch vi điều khiển và module RF vào là có thể hoạt động được

Các điện trở thanh kéo xuống sau 74HC595 và kéo lên sau

ULN2803, có nhiệm vụ làm điện trở treo tránh tình trạng nhiễu

tín hiệu điều khiển

Sử dụng phần mềm Proteus(ISIS) để chuyển mạch nguyên lý

mà ta đã thiết kế từ trước sang chương trình Proteus(ARES) để

thiết kế và vẽ mạch PCB Toàn bộ các linh kiện có trong mạch

nguyên lý sẽ được chuyển sang ARES Sau khi sắp xếp các linh

kiện hợp lý trên diện tích nhất định

Hình 37: Vị trí các linh kiện sau khi được sắp xếp

Trang 39

Tiến hành đi đây và đổ đồng sau khi đã sắp xếp các linhkiện Thông thường khi đi dây người ta thường sử dụng cách đi

dây tự động nhưng đối với những mạch có nhiều linh kiện và yêu

cầu tiết diện đi dây nhỏ thì cần phải đi dây bằng tay Dựa vào vị

trí của linh kiện và hướng của các liên kết, ta đi dây sao cho

mạch các đường đi của mạch ngắn nhất để đạt được hiệu suất

cao nhất

Hình 38: Mạch điều khiển sau khi đi dây đường mạch

Từ đây ta có thể xuất mạch in ra file ảnh bitmap, pdf để inmạch hoặc xuất ra file gerber để phay mạch trên máy CNC

Hình 39: Hình mô phỏng mạch điều khiển thiết bị

2 Mạch mở/khóa cửa bằng RFID

2.1 Giao tiếp SPI

SPI (tiếng Anh: Serial Peripheral Interface, SPI bus — Giaodiện Ngoại vi Nối tiếp, bus SPI) là một chuẩn đồng bộ nối tiếp để

truyền dữ liệu ở chế độ song công toàn phần full-duplex (hai

Trang 40

giản và giá rẻ Đôi khi SPI còn được gọi là giao diện bốn-dây

(tiếng Anh: four-wire)

Khác với cổng nối tiếp chuẩn (tiếng Anh: standard serialport), SPI là giao diện đồng bộ, trong đó bất cứ quá trình truyền

nào cũng được đồng bộ hóa với tín hiệu đồng hồ tăctơ chung, tín

hiệu này sinh ra bởi thiết bị chủ động (bộ vi xử lí) Thiết bị ngoại

vi bên phía nhận (bị động) làm đồng bộ quá trình nhận chuỗi bit

với tín hiệu đồng hồ tăctơ Có thể kết nối một số vi mạch vào

mỗi giao diện ngoại vi nối tiếp của vi mạch-thiết bị chủ động

Thiết bị chủ động chọn thiết bị bị động để truyền dữ liệu bằng

cách kích hoạt tín hiệu "chọn chip" (tiếng Anh: chip select) trên

vi mạch bị động Thiết bị ngoại vi nếu không được chọn bởi bộ vi

xử lí sẽ không tham gia vào quá trình truyền theo giao diện SPI

[16]

Trong giao diện SPI có sử dụng bốn tín hiệu số:

- MOSI hay SI - cổng ra của bên chủ động, cổng vào của bên

bị động (tiếng Anh: Master Out Slave In), dành cho việctruyền dữ liệu từ thiết bị chủ động đến thiết bị bị động

- MISO hay SO - cổng vào của bên chủ động, cổng ra củabên bị động (tiếng Anh: Master In Slave Out), dành choviệc truyền dữ liệu từ thiết bị bị động đến thiết bị chủđộng

- SCLK hay SCK - tín hiệu đồng hồ tăctơ nối tiếp (tiếng Anh:

Serial Clock), dành cho việc truyền tín hiệu đồng hồ tăctơdành cho thiết bị bị động

- CS hay SS - chọn vi mạch, chọn bên bị động (tiếng Anh:

Chip Select, Slave Select)

Hình 40: Chuẩn giao tiếp SPI

2.2 Mạch đọc thẻ từ RFID

Như đã giới thiệu ở chương 2, RFID RC522 sử dụng chuẩngiao tiếp SPI để giao tiếp với vi xử lý Nó có thể đọc được các loại

thẻ có kết nối không dây như NFC, thẻ từ (loại dùng làm thẻ

giảm giá, thẻ xe bus, thẻ thành viên )

Ngày đăng: 21/03/2019, 21:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Arduino. Referencehttp://arduino.vn/reference Sách, tạp chí
Tiêu đề: Reference
[2] Arduino Tutorial. Tutorial https://www.arduino.cc/en/Tutorial/HomePage Sách, tạp chí
Tiêu đề: Tutorial
[3] Arduino Tutorial. Blink.https://www.arduino.cc/en/Tutorial/Blink Sách, tạp chí
Tiêu đề: Blink
[4] Arduino.vn. PIR sensor alarm.http://arduino.vn/bai-viet/522-pir-sensor-alarm Sách, tạp chí
Tiêu đề: PIR sensor alarm
[5] Base64encode. Khái niệmhttps://www.base64encode.org/ Sách, tạp chí
Tiêu đề: Khái niệm
[6] Circuitbasics.com. How to Set Up the DHT11 HumiditySensor on an Arduino.http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-an-arduino/ Sách, tạp chí
Tiêu đề: How to Set Up the DHT11 Humidity"Sensor on an Arduino
[7] Datasheet. ULN2803https://cdn-shop.adafruit.com/datasheets/ULN2803A.pdf Sách, tạp chí
Tiêu đề: ULN2803
[8] Đặng Văn Đức. Phân Tích Thiết Kế Hướng Đối Tường Bằng UML. Chương 3, 4 và 6. Nhà xuất bản giáo dục Sách, tạp chí
Tiêu đề: Phân Tích Thiết Kế Hướng Đối Tường BằngUML
Nhà XB: Nhà xuất bản giáo dục
[9] GitHub. Libary:VirtualWire.hhttps://github.com/digistump/DigisparkArduinoIntegration/blob/master/libraries/DigisparkVirtualWire/VirtualWire.h Sách, tạp chí
Tiêu đề: Libary:VirtualWire.h
[10] GitHub. Libary:MFRC522.hhttps://github.com/miguelbalboa/rfid Sách, tạp chí
Tiêu đề: Libary:MFRC522.h
[11] GitHub. Libary:Keypad.hhttps://github.com/Chris--A/Keypad Sách, tạp chí
Tiêu đề: Libary:Keypad.h
[12] NXP. 74HC595https://www.nxp.com/documents/data_sheet/74HC_HCT595.pdf Sách, tạp chí
Tiêu đề: 74HC595
[13] TS.Phan Thượng Cang. Giáo trình Lập Trình Web. 2008- 2015 Sách, tạp chí
Tiêu đề: Giáo trình Lập Trình Web
[14] Wikipedia. Mạch so sánh.https://vi.wikipedia.org/wiki/Mạch_so_sánh Sách, tạp chí
Tiêu đề: Mạch so sánh
[15] Wikipedia. Ajax (lập trình)https://vi.wikipedia.org/wiki/Ajax_(lập_trình) Sách, tạp chí
Tiêu đề: Ajax (lập trình)
[17] Wikipedia. Động cơ Servo.https://vi.wikipedia.org/wiki/Động_cơ _servo Sách, tạp chí
Tiêu đề: Động cơ Servo
[18] Wikipedia. Khái niệm mạng lưới vạn vật kết nối. https://vi.wikipedia.org/wiki/Mạng_lưới_vạn_vật_kết_nối_Internet Sách, tạp chí
Tiêu đề: Khái niệm mạng lưới vạn vật kết nối
[19] Wikipedia. Khái quát về Arduino. https://vi.wikipedia.org/wiki/Arduino Sách, tạp chí
Tiêu đề: hái quát về Arduino
[20] Wikipedia. Lịch sử phát triển Arduino.https://vi.wikipedia.org/wiki/Arduino#L.E1.BB.8Bch_s.E1.BB.AD Sách, tạp chí
Tiêu đề: Lịch sử phát triển Arduino

TỪ KHÓA LIÊN QUAN

w