Là sinh viên Trường Điện- Điện tử Đại học Bách Khoa Hà Nội, bằng những kiến thức đã được học và mongmuốn thiết kế được một bộ điều khiển thiết bị điện từ xa đáp ứng được nhu cầu sinh hoạ
Trang 1Giảng viên hướng dẫn: TS Nguyễn Văn Ánh
Sinh viên thực hiện:
1 Đoàn Trung Long 20181198 Điện 02 - K63
2 Nguyễn Mạnh Hùng 20181167 Điện 02 - K63
Hà Nội, 02/2022
Trang 2MỤC LỤC
LỜI NÓI ĐẦU
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
A Tổng quan về Arduino
1 Giới thiệu chung
2 Cấu trúc phần cứng
B Tìm hiểu về Module blutooth HC-05
1 Giới thiệu về Module blutooth HC-05
2 Cấu tạo của Module blutooth HC-05
3 Nguyên lý hoạt động của Module blutooth HC-05
4 Thông số kỹ thuật Module blutooth HC-05
5 Giao tiếp với Module bluetooth HC-05
C Tìm hiểu Module Relay 1 kênh 5V
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ BỘ ĐIỀU KHIỂN BÓNG ĐÈN TỪ XA
1 Mô tả hoạt động của hệ thống
2 Yêu cầu của hệ thống
CHƯƠNG III: MÔ PHỎNG VÀ XÂY DỰNG BỘ ĐIỀU KHIỂN BÓNG ĐÈN THỰC NGHIỆM
Trang 3LỜI NÓI ĐẦU
Trong xu thế phát triển hiện nay, với sự bùng nổ của các ngành công nghệ thông tin, điện tử, tự động hóa,… Đã làm cho đời sống của con người ngày càng hoàn thiện Các thiết bị tự động hóa đã ngày càng xâm lấn vào trong sản xuất và thậm chí là vào cuộc sống sinh hoạt hàng ngày của mỗi con người Do đó một bộ điều khiển thiết bị điện tử từ xa đã trở nên quan trọng Là sinh viên Trường Điện-
Điện tử Đại học Bách Khoa Hà Nội, bằng những kiến thức đã được học và mongmuốn thiết kế được một bộ điều khiển thiết bị điện từ xa đáp ứng được nhu cầu
sinh hoạt hàng ngày, nhóm em đã mạnh dạn chọn “Thiết kế bộ điều khiển thiết
bị điện từ xa bằng Arduino uno r3 + Modul blutooth HC-05 + Relay 1 kênh 5V” làm đề tài cho đồ án này.
Trong quá trình thực hiện đồ án của mình, dưới sự hướng dẫn của thầy Nguyễn Văn Ánh chúng em đã cố gắng hết sức để hoàn thiện một cách tốt nhất Nhưng với kiến thức và sự hiểu biết có hạn chế nên sẽ không tránh khỏi những thiếu sót mongthầy cô và các bạn đóng góp ý kiến đề tài của chúng em có thể hoàn thiện hơn
Trang 4CHƯƠNG I: CƠ SỞ LÝ THUYẾT
A Tổng quan về Arduino
1 Giới thiệu chung
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à phần mềm Về mặt kĩ thuật có thể coi Arduino là một bộ điều khiển
logic có thể lập trình đượ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 ráp và điều khiển các 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 điều khiển và đa 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ễ 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 Arduino có thể thực hiện trên các hệ điều
hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên diđộng
- Ngôn ngữ lập trình đơn giản dễ 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ễ 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ử dụng theo dạng modul nên
việc mở rộng phần cứng cũng dễ 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
Arduino đượ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 Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp
Arduino được biết đến nhiều nhất là phần cứng của nó, nhưng phải có phần
Trang 5mềm để lập trình phần cứng Cả phần cứng và phần mềm gọi chung là Arduino.
Phần mềm Arduino:
Phần mềm Arduino được gọi là sketches, được tạo 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 dịch và nạp vào Arduino (quá trinh xử lý này gọi là UPLOAD)
Phần cứng 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 để đ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ó chip 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 I/O, 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ư Ethernet 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 Ethernet, Wireless, điều khiển động cơ,…
- Sử dụng một dao động thạch anh tần số dao độ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
Trang 6mạch và một chân cấp nguồn cho mạch và 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: Cấu trúc phần cứng của Arduino Uno
Thông số kỹ thuật 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-12V
- Đ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à 40mA
- Dòng điện một chiều cho chân 3.3V là 50mA
- Clock Speed 16 MHz
- Flash Memory 16 Kb (ATmega 168) hoặc 32 Kb (ATmega 328), SRAM 1 Kb(ATmega 168) hoặc 2 Kb (ATmega 328), EEPROM 512 bytes (ATmega 168)hoặc 1 Kb (AT mega 328)
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ềukhiển có thể hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V Nêncung 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
Trang 7vi đ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
- 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 đất
B Tìm hiểu về Module blutooth HC-05
1 Giới thiệu về Module blutooth HC-05
Bluetooth là chuẩn truyền thông không dây để trao đổi dữ liệu ở khoảng cách ngắn Chuẩn truyền thông này sử dụng sóng radio ngắn(UHF radio) trong dải tần
số ISM (2.4 tới 2.485 GHz) Khoảng cách truyền của module này vào khoảng 10m
Module blutooth HC-05 này được thiết kế dựa trên chip BC417 Con chip này
khá phức tạp và sử dụng bộ nhớ flash ngoài 8Mbit Nhưng việc sử dụng module này hoàn toàn đơn giản bởi nhà sản xuất đã tích hợp mọi thứ trên module HC-05
- Ứng dụng của HC-05:
• HC-05 thường được sử dụng trong các dự án nhúng, nơi dữ liệu cần được truyền không dây trong một khoảng cách nhỏ
• Có thể truyền dữ liệu giữa hai mô-đun 05 và cũng có thể gửi dữ liệu từ
HC-05 đến bất kỳ thiết bị Bluetooth nào, chẳng hạn như điện thoại di động, máy tính xách tay, v.v
Hình 2: Hình ảnh thực tế module thu phát
HC-05
Trang 82 Cấu tạo của Module blutooth HC-05
a, Linh kiện trên bo mạch
- BT_Board: bo mạch blutooth
- Chip CSR Blutooth radio để kết nối blutooth
- Bộ nhớ flash 8Mb đọc/ghi dữ liệu
- Bộ giao động 26 Mhz Xtal
- 5V Regulator : Bộ điều chỉnh điện áp thành 5V cho bo mạch
- Ăng-ten: thu phát sóng blutooth
Hình 3: Cấu tạo module thu phát HC-05
b, Sơ đồ chân đấu nối
Trang 9Hình 4a,b : Sơ đồ chân HC-05
- KEY/ENABLE: Chân Enable / Key là chân thay đổi chế độ giữa chế độ dữ
liệu(Data Mode) và chế độ dòng lệnh(Command Mode) bằng cách cấp tín hiệu bênngoài Cấp logic cao sẽ chuyển sang chế độ dòng lệnh và trạng thái logic thấp sẽ chuyển sang chế độ dữ liệu Chế độ thiết bị mặc định là chế độ dữ liệu
- VCC: Giống như mọi thiết bị khác, HC-05 cũng phụ thuộc vào nguồn điện để
hoạt động và chân VCC cấp nguồn điện từ bên ngoài Chân này có thể cấp nguồn
từ 3.6V đến 6V bên trong module đã có một ic nguồn chuyển về điện áp 3.3V và cấp cho IC BC417
- GND (Mass): Chân nối đất module.
- TXD,RXD: Chân truyền dữ liệu giao thức UART, Chân nhận dữ liệu giao thức
UART Đây là hai chân UART để truyền dẫn dữ liệu nối tiếp, module hoạt động ở mức logic 3.3V
- STATE: Báo trạng thái kết nối của Bluetooth
- Chân LED: Đèn LED hiển thị trạng thái của Module HC-05.
3 Nguyên lý hoạt động của Module blutooth HC-05
HC-05 có hai chế độ hoạt động là Command Mode và Data Mode
Ở chế độ Command Mode ta có thể giao tiếp với module thông qua cổng serial trên module bằng tập lệnh AT
Ở chế độ Data Mode module có thể truyền nhận dữ liệu tới module
bluetooth khác Chân KEY dùng để chuyển đổi qua lại giữa hai chế độ này
Có hai cách để có thể chuyển đổi module hoạt động giữa các chế độ:
- Nếu đưa chân KEY lên mức logic cao trước khi cấp nguồn module sẽ đưa vào chế độ Command Mode với baudrate mặc định 38400 Chế độ này khá hữu ích khi không biết baudrate trong module được thiết lập ở tốc độ bao nhiêu Khi chuyển sang chế độ này đèn led trên module sẽ nháy chậm (khoảng 2s) và ngược lại khi
Trang 10chân KEY nối với mức logic thấp trước khi cấp nguồn module sẽ hoạt động chế độData Mode.
- Nếu module đang hoạt động ở chế Data Mode để có thể đưa module vào hoạt động ở chế độ Command Mode cần đưa chân KEY lên mức cao Lúc này module
sẽ vào chế độ Command Mode nhưng với tốc độ BaudRate được thiết lập lần cuối cùng Vì thế phải biết baudrate hiện tại của thiết bị để có thể tương tác được với
nó Chú ý nếu module chưa thiết lập lại lần nào thì mặc định của nó như sau:
Baudrate 9600, data 8 bits, stop bits 1, parity : none, handshake: none
Passkey: 1234
Device Name: HC-05
Ở chế độ Data Mode HC-05 có thể hoạt động như một master hoặc slave tùy vào việc cấu hình
1 Chế độ SLAVE: cần thiết lập kết nối từ smartphone, laptop, usb bluetooth để dò
tìm module sau đó ghép cặp với mã PIN là 1234 Sau khi kết nối thành công, ta đã
có 1 cổng serial từ xa hoạt động ở baud rate 9600
2 Chế độ MASTER: module sẽ tự động dò tìm thiết bị bluetooth khác (1 module
bluetooth HC-06, usb bluetooth, bluetooth của laptop ) và tiến hành pair chủ động
mà không cần thiết lập gì từ máy tính hoặc smartphone
4 Thông số kỹ thuật Module blutooth HC-05
Điện áp hoạt động : +3.3VDC 30mA(hỗ trợ IC 5.0V)
Dòng điện khi hoạt động : Khi Pairing 30mA , sau khi pairing hoạt động truyền nhận bình thường 8mA
Trang 12Bước 2: Cắm USB vào máy tính sau đó rút chân EN (hoặc chân KEY) từ chân GND sang chân VCC 5V
Hình 6 Rút chân EN (hoặc chân KEY) từ chân GND sang chân VCC 5V
Trang 13Bước 3: Mở phần mềm giao tiếp với máy tính tên Heculus lên thực hiện các bước sau:
Trang 14Các tập lệnh AT cơ bản:
AT<CR><LF> // kiểm tra giao tiếp, trả về OK
AT+NAME?<CR><LF> // kiểm tra tên bluetooth, trả về tên bluetooth
AT+NAME=””<CR><LF> // đặt lại tên bluetooth, thêm dữ liệu vào 2 dấu “ “AT+PSWD?<CR><LF> // kiểm tra mật khẩu, trả về mật khẩu của bluetooth
AT+PSWD=””<CR><LF> // đặt lại mật khẩu, thêm dữ liệu vào 2 dấu “ ”
AT+ADDR?<CR><LF> // kiểm tra địa chỉ bluetooth, trả về địa chỉ bluetoothAT+ROLE?<CR><LF> // kiểm tra chế độ hoạt động
AT+VERSION?<CR><LF> // trả về firmware hiện tại của bluetooth
AT+UART=9600,0,0?<CR><LF> // ( thiết lập baudrate 9600,1 bit stop, no parity)
Các lệnh ở chế độ Master:
AT+RMAAD?<CR><LF> // ngắt kết nối với các thiết bị đã ghép
AT+ROLE=1<CR><LF> // đặt là module ở master
AT+RESET<CR><LF> // reset lại thiết bị
AT+CMODE=0<CR><LF> // Cho phép kết nối với bất kì địa chỉ nào
AT+INQM=0,5,5<CR><LF> // Dừng tìm kiếm thiết bị khi đã tìm được 5 thiết bị hoặc sau 5s
AT+INQ<CR><LF> // Bắt đầu tìm kiếm thiết bị để ghép nối Sau lệnh này một loạtcác thiết bị tìm thấy được hiện thị Định ra kết quả sau lệnh này như sau
Trang 15Các lệnh ở chế độ Slave:
AT+ORGL<CR><LF> // Reset lại cài đặt mặc định
AT+RMAAD<CR><LF> // Xóa mọi thiết bị đã ghép nối
AT+ROLE=0<CR><LF> // Đặt là chế độ SLAVE
AT+ADDR<CR><LF> // Hiển thị địa chỉ của SLAVE
C Tìm hiểu Module Relay 1 kênh 5V
Rơ le (relay) là một chuyển mạch hoạt động bằng điện Dòng điện chạy quacuộn dây của rơ-le tạo ra một từ trường hút lõi sắt non làm thay đổi công tắcchuyển mạch Dòng điện qua cuộn dây có thể được bật hoặc tắt, vì thế rơ-le có hai
vị trí chuyển mạch qua lại
Rơ le được sử dụng phổ biến ở các bo mạch điều khiển tự động, chuyên dụng
để đóng cắt những cái dòng điện lớn mà những hệ thống mạch điều khiển khôngthể trực tiếp can thiệp thì người ta sẽ sử dụng rơ le để đóng cắt dòng điện cao rơ le
có rất nhiều hình dáng và kích thước và chân cắm khác nhau
Trên thị trường chúng ta có 2 loại module rơ-le: module rơ-le đóng ở mức
thấp (nối cực âm vào chân tín hiệu rơ-le sẽ đóng), module rơ-le đóng ở mức cao (nối cực dương vào chân tín hiệu rơ-le sẽ đóng) Nếu so sánh giữa 2 module
rơ-le có cùng thông số kỹ thuật thì hầu hết mọi kinh kiện của nó đều giống nhau, chỉ khác nhau ở chỗ cái transister của mỗi module(có 2 loại transistor là NPN - kích ở mức cao, và PNP - kích ở mức thấp)
Trang 16Relay 1 kênh 5V là một module relay kích ở mức thấp dùng để đóng cắt dòng
Có tiếp điểm thường mở và thường đóng:
o NO : thường mở (khi kích tiếp điểm đóng lại)
+ VCC, GND là nguồn nuôi Relay
+ IN là chân tín hiệu điều khiển
Trang 17CHƯƠNG II: PHÂN TÍCH THIẾT KẾ BỘ ĐIỀU KHIỂN TỪ XA
CHƯƠNG III: MÔ PHỎNG VÀ XÂY DỰNG BỘ ĐIỀU KHIỂN BÓNG ĐÈN THỰC NGHIỆM
1 Bài toán đặt ra
Trong quá trình hiện đại hóa, công nghiệp hóa ngày nay người tiêu dùng
ưa thích sự tiện lợi, phát triển nhất, người dân đang có xu hướng áp dụng các kĩthuật điều khiển từ xa cho các thiết bị trong nhà của mình và điển hình là điều khiển bóng đèn chiếu sáng Vì vậy nhóm em quyết định lấy bóng đèn làm thiết
bị điện để mô phỏng bộ điều khiển thiết bị điện từ xa Yêu cầu của mô phỏng làphải điều khiển bật/tắt bóng đèn thông qua điện thoại có kết nối blutooth
2 Thiết kế bộ điều khiển
Trang 18if(Bluetooth.available()) {
c=Bluetooth.read(); Serial.write(c);
}
if(Serial.available()) {
c=Serial.read();
Bluetooth.write(c); }
}
Trang 19Bước 2: Sau đó rút usb ra đấu nối như hình vẽ:
Cấp nguồn 5V cho module bluetooth
Chân D2 nối chân TX BL
Chân D3 nối với RX
Chân KEY( hay EN) khi chưa cắm vào máy tính thì nối vào GND
Trang 20Bước 3: Cắm USB vào máy tính ta đổi chân KEY( hay EN) qua VCC 5V
Trang 21Bước 4: Mở serialvà chuyển Baud thành 38400 sau đó lại chuyển về 9600
Trang 22Bước 5: Tiến hành test
Gửi các tập lệnh cơ bản như ở trên đã test với phần mềm Heculus bên trên chỉ có điều là không thêm hậu tố <CR><LF>, chú ý không để dư khoảng trắng
AT // kiểm tra giao tiếp, trả về OK
AT+NAME? // kiểm tra tên bluetooth, trả về tên bluetooth
AT+NAME=”” // đặt lại tên bluetooth, thêm dữ liệu vào 2 dấu “ “
AT+PSWD? // kiểm tra mật khẩu, trả về mật khẩu của bluetooth
AT+PSWD=”” // đặt lại mật khẩu, thêm dữ liệu vào 2 dấu “ ”