Một trong những ứng dụng tiêu biểu đó là điều khiển các thiết bị trong toà nhà thông minh với những đặc tính nổi bật như: Có tính thực dụng cao mang lại hiệu quả kinh tế.. Xây dựng
Trang 1ĐẠI HỌC CÔNG NGHIỆP TP.HCM
KHOA CÔNG NGHỆ ĐIỆN
KHÓA LUẬN TỐT NGHIỆP
ĐIỀU KHIỂN THIẾT BỊ NHÀ THÔNG MINH THÔNG QUA WIFI VÀ VISUAL BASIC
SINH VIÊN : LÝ AN NGHIỆP 15025761
NGUYỄN HỮU DANH 15030931
LỚP : DHDKTD11A
GVHD : ThS HÀ CHÍ KIÊN
TP Hồ Chí Minh, NĂM 2019
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Trang 3Xin trân trọng cảm ơn thầy giáo ThS Hà Chí Kiên đã tận tình chỉ bảo và giúp đỡ chúng em trong suốt thời gian vừa qua Xin bày tỏ lòng biết ơn sâu sắc tới các thầy cô trong khoa Công Nghệ Điện Trường Đại học Công Nghiệp TPHCM đã luôn nhiệt tình dạy dỗ và tạo điều kiện cho chúng em học tập và nghiên cứu trong suốt những năm học tập tại trường
Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của cả nhóm, nhưng đề tài cũng không tránh khỏi được những sai sót Kính mong nhận được sự góp ý tận tình của thầy cô để nhóm có thể rút kinh nghiệm hoàn thiện sản phẩm của mình hơn
Cuối cùng nhóm thực hiện đề tài xin chúc quý thầy cô lời chúc sức khỏe và lời cảm
ơn chân thành nhất!
Trang 4MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN i
MỤC LỤC iii
DANH SÁCH CÁC HÌNH VẼ vi
CHƯƠNG 1: MỤC TIÊU KHOÁ LUẬN 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu khoá luận 1
CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG NHÀ THÔNG MINH 2
2.1 Khái niệm về nhà thông minh 2
2.2 Tính năng chính, ưu – nhược điểm của nhà thông minh 2
2.2.1 Tính năng chính của nhà thông minh 2
2.2.2 Ưu – nhược điểm của nhà thông minh 3
2.3 Giới thiệu các thành phần trong nhà thông minh 4
CHƯƠNG 3: MẠNG KHÔNG DÂY WIFI (WIRELESS FIDELITY) VÀ CHUẨN TRUYỀN THÔNG UART 6
3.1 Khái niệm mạng WiFi 6
3.2 Nguyên lý hoạt động của WiFi 6
3.3 Các Phương Pháp Bảo Mật WiFi 7
3.4 Chuẩn Truyền Thông Uart 7
3.4.1 Khái niệm về UART 7
3.4.2 Truyền thông nối tiếp và truyền thông song song 8
3.4.3 Sơ đồ khối UART 8
3.4.4 Truyền thông UART 9
3.4.5 Giao diện UART 10
Trang 53.4.7 Ưu và nhược điểm của UART 11
CHƯƠNG 4: CÁC PHẦN MỀM SỬ DỤNG TRONG ĐỀ TÀI 12
4.1 Arduino IDE 12
4.1.1 Những phần cơ bản của giao diện phần mềm Arduino IDE 12
4.1.2 Các chức năng cơ bản của các biểu tượng trên phần mềm 12
4.2 Visual Studio 2015 15
4.2.1 Visual Basic 15
4.2.2 Tạo một project Windows Forms Application 15
CHƯƠNG 5: CÁC THIẾT BỊ SỬ DỤNG TRONG ĐỀ TÀI 21
5.1 Sơ đồ khối tổng quát 21
5.2 Khối xử lý 21
5.2.1 NodeMCU ESP8266 V12E 21
5.2.2 ADRUINO UNO R3 25
5.3 Khối mạch công suất 25
5.3.1 Relay 25
5.3.2 Quạt tản nhiệt 26
5.3.3 LED dây 27
5.3.4 Bơm 27
5.3.5 Động cơ Servo 28
5.3.6 LCD 16x2 28
5.3.7 Mạch chuyển đổi I2C cho LCD 29
5.4 Khối cảm biến 30
5.4.1 Cảm biến nhiệt độ, độ ẩm DHT11 30
Trang 6NODEMCU ESP8266 31
6.1 Thiết lập phần mềm Arduino IDE 31
6.2 Chương trình điều khiển trên NodeMCU ESP8266 32
6.2.1 Lưu đồ giải thuật NodeMCU ESP8266 32
6.2.2 Giao diện điều khiển trên NodeMCU ESP8266 34
6.2.3 Chương trình trên NodeMCU ESP8266 35
6.3 Chương trình điều khiển Arduino Uno R3 47
6.4 Chương trình điều khiển trên Arduino Uno R3 và Visual Basic 51
6.4.1 Lưu đồ giải thuật Visual Basic 51
6.4.2 Giao diện điều khiển trên Visual Basic 53
6.4.3 Chương trình trên Visual Basic 53
CHƯƠNG 7: TỔNG KẾT VÀ ĐÁNH GIÁ 61
7.1 Kết quả 61
7.2 Hạn chế 62
7.3 Hướng phát triển đề tài 62
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 64
Trang 7DANH SÁCH CÁC HÌNH VẼ
Hình 2.1 Một hệ thống điều khiển Nhà Thông Minh (Smart Home) 2
Hình 2.2 Ứng dụng Google Asisstant có thể giao tiếp với người sử dụng bằng trợ lý ảo AI (Alex) thông qua Internet 3
Hình 2.3 Bộ điều khiển trung tâm có tên là Broadlink RM Pro 4
Hình 2.4 Công tắc, ổ cắm thông minh 5
Hình 3.1 Mạng không dây WiFi kết nối 2 máy tính với nhau 6
Hình 3.2 Sơ đồ nguyên lý hoạt động mang WiFi 7
Hình 3.3 Sơ đồ giao tiếp giữa 2 thiết bị thông qua giao tiếp UART 8
Hình 3.4 Giao tiếp song song 8
Hình 3.5 Sơ đồ khối UART 9
Hình 3.6 Truyền thông UART 10
Hình 3.7 Giao diện UART 11
Hình 4.1 Giao diện phần mềm Arduino IDE 12
Hình 4.2 Minh họa chọn led chớp tắt (blink) nạp cho mạch Arduino 13
Hình 4.3 Minh họa chọn menu Tools nạp cho mạch Arduino 14
Hình 4.4 Minh họa chọn cổng COM nạp cho mạch Arduino 14
Hình 4.5 Giao diện phần mềm Visual Studio 2015 15
Hình 4.6 Giao diện tạo 1 file Project 16
Hình 4.7 Giao diện New Project 16
Hình 4.8 Giao diện chọn ngôn ngữ lập trình và tạo Project 17
Hình 4.9 Giao diện thiết kế trên Visual Studio 2015 17
Hình 4.10 Thanh công cụ 17
Hình 4.11 Giao diện ToolsBox 18
Hình 4.12 Giao diện thiết kế chính 18
Hình 4.13 Giao diện Proproties 19
Hình 4.14 Giao diện View Code 19
Hình 4.15 Giao diện lập trình 20
Hình 5.1 Sơ đồ khối 21
Trang 8Hình 5.3 Module ESP-12E 22
Hình 5.4 Sơ đồ yêu cầu năng lượng 22
Hình 5.5 Các chân tín hiệu I/O 23
Hình 5.6 Công tắc và đèn trên board 24
Hình 5.7 Bộ chuyển đổi USB-to-UART CP2102 24
Hình 5.8 ADRUINO UNO R3 25
Hình 5.9 Relay 8 kênh 26
Hình 5.10 Quạt tản nhiệt 27
Hình 5.11 Bơm 27
Hình 5.12 Động cơ servo 28
Hình 5.13 Màn hình LCD 16x2 29
Hình 5.14 Mạch chuyển đổi I2C 29
Hình 5.15 Cảm biến DHT11 30
Hình 6.1 Cửa sổ Preferences 31
Hình 6.2 Board Manager đã cài đặt ESP8266 32
Hình 6.3 Board Manager cài đặt ESP8266 32
Hình 6.4 Giao diện điều khiển trên NodeMCU ESP8266 34
Hình 6.5 Giao diện điều khiển trên Visual Basic 53
Hình 7.1 Mặt trước mô hình (LCD hiển thị địa chỉ IP) 61
Hình 7.2 Mô hình nhìn từ trên xuống 61
Hình 7.3 Hộp chứa vi điều điều khiển và nguồn 62
Trang 9CHƯƠNG 1: MỤC TIÊU KHOÁ LUẬN
1.1 Đặt vấn đề
Tự động hoá – trong những năm gần đây cụm từ này đã trở nên quen thuộc chứ không còn là khái niệm chỉ được sử dụng trong những lĩnh vực chuyên môn kỹ thuật đặc thù Tự động hoá đã góp mặt trong mọi lĩnh vực từ sản xuất cho đến phục vụ cuộc sống hằng ngày Trên thế giới, các hệ thống thông minh, tự động điều khiển đã đáp ứng từ rất sớm và đến nay đã cho thấy những đóng góp quan trọng không thể phủ nhận Một trong những ứng dụng tiêu biểu đó là điều khiển các thiết bị trong toà nhà thông minh với những đặc tính nổi bật như:
Có tính thực dụng cao mang lại hiệu quả kinh tế
Có tính hiện đại, hướng tới tương lai
Đảm bảo các yêu cầu an toàn
Nâng cao sự thuận tiện cho người sử dụng toà nhà
Chính vì vậy nhóm chúng em đã chọn đề tài nghiên cứu là “Điều khiển các
thiết bị điện trong toà nhà thông minh thông qua WiFi và Visual Basic”
1.2 Mục tiêu khoá luận
Nội dung đồ án nhóm thực hiện là tạo ra một mô hình căn phòng trong ngôi nhà thông minh Để có phương hướng rõ rang khi thực hiện đề tài, nhóm đã đặt ra những mục tiêu cần giải quyết sau:
Tìm hiểu mô hình căn nhà thông minh
Xây dựng mô hình mô phỏng căn phòng trong nhà thông minh
Xây dựng một chuẩn truyền thông
Giao tiếp và điều khiển các thiết bị được sử dụng trong hệ thống
Lập trình điều khiển hệ thống
Trang 10CHƯƠNG 2: TỔNG QUAN VỀ HỆ THỐNG NHÀ
THÔNG MINH
2.1 Khái niệm về nhà thông minh
Nhà thông minh (Home Automation, domotics, smart home hoặc Intellihome)
là kiểu nhà được lắp đặt các thiết bị điện, điện tử có thể được điều khiển tự động hoá hoặc bán tự động, thay thế con người thực hiện trong một hoặc một số thao tác quản
lý, điều khiển Hệ thống điện tử này giao tiếp với người dùng thông qua bảng điện tử đặt trong nhà, ứng dụng trên máy tính, điện thoại bảng hoặc một giao diện web
Trong nhà thông minh, các thiết bị điện trong nhà từ phòng ngủ, phòng khách đến toilet đều được gắn các bộ điều khiển điện tử có thể kết nối với Internet hoặc điện thoại di động Cho phép người dùng điều khiển các thiết bị từ xa hoặc lập trình cho các thiết bị ở nhà hoạt động theo lịch trình
2.2 Tính năng chính, ưu – nhược điểm của nhà thông minh
2.2.1 Tính năng chính của nhà thông minh
Hệ thống nhà thông minh cho phép:
Cho phép các tiện ích (thiết bị thông minh) trong toà nhà hoạt động một cách đồng bộ, chính xác theo đúng yêu cầu của người điều hành
Cho phép điều khiển các ứng dụng trong toà nhà thông qua Internet
Giám sát được môi trường không khí, môi trường làm việc của con người
Hình 2.1 Một hệ thống điều khiển Nhà Thông Minh (Smart Home)
Trang 11 Cảnh báo sự cố, đưa ra những tín hiệu cảnh báo kịp thời trước khi có những sự
cố
Hệ thống nhà thông minh linh hoạt, có khả năng mở rộng với các giải pháp sẵn sàng đáp ứng mọi yêu cầu
2.2.2 Ưu – nhược điểm của nhà thông minh
Hiện nay, các kỹ sư vẫn đang tiếp tục sáng tạo để tạo ra nhiều tiện ích hơn nữa, cũng như tối ưu hoá về việc triển khai lắp đặt một ngôi nhà thông minh Cùng với sự phát triển của các thiết bị điện tử cá nhân như máy tính bảng, điện thoại thông minh cùng cơ sở hạ tầng thông tin ngày càng tiên tiến như internet hoặc các mạng thông tin
di động như 3G, 4G, 5G các hệ thống nhà thông minh còn cung cấp khả năng tương tác với người sử dụng thông qua các thiết bị điện tử cá nhân cho phép con người có thể giám sát, giao tiếp điều khiển ngôi nhà từ bất cứ đâu Hiện tại, Google đã phát triển một mảng về hệ thống nhà thông minh với ứng dụng Google Assistant Nó có khả năng cho phép người sử dụng có thể giao tiếp với trợ lý AI ảo (Alex) để điều khiển các thiết bị điện trong ngôi nhà thông qua Internet
Hình 2.2 Ứng dụng Google Asisstant có thể giao tiếp với người sử dụng bằng trợ lý ảo AI (Alex)
thông qua Internet
Tuy nhiên, vì thực tế rất nhiều thương hiệu khác nhau cùng nghiên cứu phát triển giải pháp nhà thông minh, vây nên dù đã có nhiều nỗ lực để tiêu chuẩn hoá các dạng phần cứng, phần mềm, điện tử và giao diện giao tiếp cần thiết để xây dựng hệ thống nhà thông minh, tuy vậy chưa có chuẩn công nghiệp nào được đặt ra cho nó và
do thị trường nhà thông minh rất phân mảnh Các gói nhà thông minh hiện nay sử
Trang 12Giá thành còn quá vì nhiều hệ thống Smart Home từ Âu – Mỹ nếu lắp trọn bộ cho một căn biệt thự có khi đến 1 tỷ đồng Vì thế giá cả là thứ cản trở Smart Home chưa được phổ cập
2.3 Giới thiệu các thành phần trong nhà thông minh
Có 4 thành phần thiết yếu của nhà thông mình:
Bộ điều khiển trung tâm: Đây là thiết bị đầu não của ngôi nhà thông minh,
là nơi kết nối các thiết bị điện khác trong nhà vào cùng một hệ thống hoàn chỉnh cho phép người dùng điều khiển, quản lý ngôi nhà qua smartphone, máy tính tại bất cứ nơi đâu có Internet Thiết bị này cũng cho phép bạn phối ghép hoạt động của nhiều thiết bị khác nhau tạo thành các ngữ cảnh thông
minh
Các ổ cắm, công tắc điều khiển từ xa: Đây là thiết bị không thể thiếu đối
với giải pháp nhà thông minh không yêu cầu đi lại đường dây điện trong gia đình Chỉ cần thay thế các ổ cắm, công tắc thông minh thay cho loại truyền thống thì người dùng dễ dàng biến các thiết bị điện gia dụng trong nhà thành thiết bị thông minh Các ổ cắm, công tắc này được điều khiển từ xa bằng
remote hoặc bằng smartphone
Trang 13 Các loại cảm biến: Thiết bị này có khả năng tự điều khiển hoạt động phát
hiện dấu hiệu có nghĩa Các loại thường được sử dụng trong nhà thông minh như cảm biến nhiệt độ, độ ẩm, cảm biến ánh sáng, cảm biến mưa, cảm biến
khói,… Ứng dụng vào hệ thống đèn, báo cháy, an ninh,…
Hình 2.4 Công tắc, ổ cắm thông minh
Trang 14CHƯƠNG 3: MẠNG KHÔNG DÂY WIFI (WIRELESS FIDELITY) VÀ CHUẨN TRUYỀN THÔNG UART
3.1 Khái niệm mạng WiFi.
WiFi (Wireless Fidelity) là phương thức kết nối không dây sử dụng sóng vô tuyến WiFi được triển khai trên hầu hết các thiết bị điện tử thông minh hiện nay để có thể kết nối với nhau và kết nối Internet WiFi được triển khai với mục đích truyền dữ liệu không dây với tốc độ cao, không cần đầu nối dây hay cáp mạng, triển khai hạ tầng một cách nhanh chóng
Kết nối WiFi được sử dụng trong việc kết nối Internet và chia sẻ kết nối đến các
thiết bị không dây nhanh nhất WiFi hiện tại đang sử dụng chuẩn kết nối IEEE 802.11
được đặt hầu hết trên các thiết bị điện tử thông minh với ngày càng nhiều các ứng dụng được phát triển dựa trên chuẩn kết nối này
3.2 Nguyên lý hoạt động của WiFi
Mạng Internet sẽ được các ISP (nhà cung cấp dịch vụ Internet – Internet Services Provider) truyền đến bộ giải mã tín hiệu số (Modem) thông qua bộ định tuyến (Router) hay chúng ta thường gọi là “bộ phát WiFi” chuyển tín hiệu hữu tuyến thành kết nối vô tuyến và đưa đến các thiết bị di động không dây thông qua chuẩn kết nối WiFi
Các thiết bị không dây tiếp nhận sóng WiFi thông qua một thiết bị chuyển đổi tín hiệu gọi là Adapter (card WiFi) được cài đặt trực tiếp trên các thiết bị Tín hiệu vô
Hình 3.1 Mạng không dây WiFi kết nối 2 máy tính với nhau
Trang 15tuyến sẽ được giải mã ngay trên thiết bị, từ đây người dùng có thể trực tiếp truy cập Internet bình thường
3.3 Các phương pháp bảo mật Wifi
Ngoài tính năng bảo mật phổ biến là AES (Advanced Encrypiton Standard) là
chuẩn mã hoá tín hiệu nâng cao được quy chuẩn, WiFi còn được bảo mật bởi các mật
khẩu WPA hoặc WPA2 có nhiệm vụ bảo đảm an ninh truy cập cho các hệ thống WiFi WPA2 được phát triển để thay thế cho hệ thống WEP bị lỗi thời và hay bị giải mã
Với các tính năng này, tuy không phải thực sự an toàm đối với mọi hình thức tấn công nhưng người dùng cũng đã có thể yên tâm sử dụng do việc giải mã các chuẩn bảo mật này vô cùng phức tạp
WiFi là một chuẩn kết nối phổ biến, việc hiễu rõ hơn về WiFi sẽ giúp chúng ta tiếp cận nhiều hơn đến những ứng dụng sử dụng chuẩn kết nối này Các bạn cũng có thể tự đổi mật khẩu WiFi ở nhà hay cơ quan với những nguyên tắc bảo mật phức tạp hơn để đảm bảo an toàn cho hệ thống mạng mình đang sử dụng, với mỗi một modem thì có cách đổi mật khẩu WiFi khác nhau và chúng ta cần nắm rõ cách sử dụng để tránh thiết lập sai đường truyền
3.4 Chuẩn truyền thông Uart
3.4.1 Khái niệm về UART
UART (Universal Asynchronous Receiver Transmitter) là một vi mạch sẵn có trong một vi điều khiển nhưng không giống như một giao thức truyền thồng (I2C và SPI) Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách giao tiếp đó là giao tiếp dữ liệu
Hình 3.2 Sơ đồ nguyên lý hoạt động mang WiFi
Trang 163.4.2 Truyền thông nối tiếp và truyền thông song song
Trong giao tiếp dữ liệu nối tiếp, dữ liệu có thể được truyền qua một capble hoặc một đường dây ở dạng bit – bit và nó chỉ cần hai capble Truyền thông dữ liệu nối tiếp không đắt khi chúng ta so sáng với giao tiếp song song Nó đòi hỏi rất ít mạch cũng như dây Vì vậy, giao tiếp hữu ích trong các mạch ghép so với giao tiếp song song,
Trong giao tiếp dữ liệu song song, dữ liệu có thể được truyền qua nhiều capble cùng một lúc Truyền dữ liệu song song tốn kém nhưng rất nhanh, vì nó đòi hỏi phần cứng và capble bổ sung như máy in cũ, PCI, RAM,…
3.4.3 Sơ đồ khối UART
Sơ đồ khối UART bao gồm hai thành phần là máy phát và máy thu được hiển thị bên dưới Phần máy phát bao gồm ba khối là thanh ghi giữ truyền, thanh ghi dịch chuyển và logic điều khiển Tương tụ ở phần máy thu bao gồm một thanh gh giữ, thanh ghi thay đổi và logic điều khiển Hai phần này thường được cung cấp bởi một bộ
Hình 3.3 Sơ đồ giao tiếp giữa 2 thiết bị thông qua giao tiếp UART
Hình 3.4 Giao tiếp song song
Trang 17tạo tốc độ baud Trình tạo này được sử dụng để tạo tốc độ khi phần máy phát và phần máy thu phải truyền hoặc nhận dữ liệu
Thanh ghi giữ trong máy phát bao gồm byte dữ liệu được truyền Các thanh ghi thay đổi trong máy phát và máy thu di chuyển các bit sang phải hoặc trái cho đến khi một byte dữ liệu được truyền hoặc nhận Một logic điều khiển đọc hoặc ghi được sử dụng để biết khi nào nên đọc hoặc viết
Máy phát tốc độ baud giữa máy phát và máy thu tạo ra tốc độ dao động từ 110bps đến 230400bps Thông thường, tốc độ truyền của vi điều khiển là 9600 đến
115200
Hình 3.5 Sơ đồ khối UART
3.4.4 Truyền thông UART
Trong giao tiếp này, có hai loại UART có sẵn là truyền UART và nhận UART
và giao tiếp giữa hai loại này có thể được thực hiện trực tiếp với nhau Đối với điều này, chỉ cần hai cáp để giao tiếp giữa hai UART Luồng dữ liệu tử cả hao chân truyền (Tx) và nhận (Rx) của UART Trong UART, việc truyền dữ liệu từ Tx sang Rx có thể được thực hiện không đồng bộ (không có tín hiệu CLK để đồng bộ hoá các bit o/p)
Việc truyền dữ liệu của UART có thể được thực hiện bằng cách sử dụng bus dữ liệu ở dạng song song bởi các thiết bị khác như vi điều khiển, bộ nhớ, CPU,… Sau hi
Trang 18như bắt đầu, dừng lại và trung bình Nó đọc từng bit gói dữ liệu và chuyển đổi dữ liệu nhận được thành dạng song song để loại bỏ ba bit của gói dữ liệu
Hình 3.6 Truyền thông UART
Các bit dữ liệu bao gồm dữ liệu thực được truyền từ người gửi đến người nhận
Độ dài khung dữ liệu có thể nằm trong khoảng 5 & 8 Nếu bit chẵn lẻ không được sử dụng thì chiều dài khung dữ liệu có thể dài 9 bit
3.4.5 Giao diện UART
Hình dưới đây cho thấy UART giao tiếp với vi điều khiển Giao tiếp UART có thể được thực hiện bằng ba tín hiệu như TXD, RXD và GND
Trang 19Bằng cách sử dụng điều này, chúng ta có thể hiển thị một văn bản trong máy tính cá nhân từ board vi điều khiển cũng như mô-đun UART Trong board 8051, có hai giao diện nối tiếp như UART0 và UART1 Ở đây, giao diện UART0 được sử dụng Chân Tx truyền thông tin đến chân PC & Rx nhận thông tin từ PC Tốc độ baud
có thể được sử dụng để biểu thi tốc độ của cả vi điều khiển và PC Việc truyền và nhận
dữ liệu có thể được thực hiện đúng khi tốc độ truyền của cả vi điều khiển và PC là
Các tiêu chuẩn truyền thông như RS422 & TIA được sử dụng trong UART ngoại trừ RS232 Thông thường, UART là một IC riêng được sử dụng trong giao tiếp UART
3.4.7 Ưu và nhược điểm của UART
Nó chỉ cần hai dây để truyền dữ liệu, kích thước khung dữ liệu tối đa là 9 bit
Tín hiệu CLK là không cần thiết, tốc độ truyền của UART phải ở mức 10% của nhau
Nó bao gồm một bit chẵn lẻ để cho phép kiểm tra lỗi
Trang 20CHƯƠNG 4: CÁC PHẦN MỀM SỬ DỤNG TRONG ĐỀ
TÀI
4.1 Arduino IDE
4.1.1 Những phần cơ bản của giao diện phần mềm Arduino IDE
Giao diện phần mềm Arduino IDE gồm 3 phần chính:
Menu lệnh
Các nút lệnh
Vùng lập trình
Hình 4.1 Giao diện phần mềm Arduino IDE
4.1.2 Các chức năng cơ bản của các biểu tượng trên phần mềm
NÚT KIỂM TRA CHƯƠNG TRÌNH: Dùng để kiểm tra xem chương trình được
viết có lỗi không Nếu chương trình bị lỗi thì phần mềm Arduino IDE sẽ hiển thị thông tin lỗi ở vùng thông báo thông tin
NÚT NẠP CHƯƠNG TRÌNH XUỐNG BO ARDUINO: Dùng để nạp chương
trình được viết xuống mạch Arduino Trong quá trình nạp, chương trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống mạch Arduino
HIỂN THỊ MÀN HÌNH GIAO TIẾP VỚI MÁY TÍNH: Khi nhấp vào biểu tượng
cái kính lúp thì phần giao tiếp với máy tính sẽ được mở ra Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên màn hình Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa thông số cần hiển thị lên màn hình
VÙNG LẬP TRÌNH: Vùng này để người lập trình thực hiện việc lập trình cho
chương trình của mình
Trang 21 VÙNG THÔNG BÁO THÔNG TIN: Có chức năng thông báo các thông tin lỗi
của chương trình hoặc các vấn đề liên quan đến chương trình được lập
SỬ DỤNG MỘT SỐ MENU THÔNG DỤNG TRÊN PHẦN MỀM ARDUINO IDE: Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là
menu File, ngoài những tính năng như mở một file mới hay lưu một file, phần menu này có một mục đáng chú ý là Example Phần Example (ví dụ) đưa ra các
ví dụ sẵn để người lập trình có thể tham khảo, giảm bớt thời gian lập trình Hình bên dưới thể hiện việc chọn một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino Ví dụ về led chớp tắt này thường được dùng để kiểm tra bo khi mới mua về
Hình 4.2 Minh họa chọn led chớp tắt (blink) nạp cho mạch Arduino
Một menu thường được sử dụng khác là menu Tools Khi mới kết nối bo
Arduino với máy tính ta click vào Tools->board để chọn loại board sử dụng Phần mềm chọn sẵn kiểu bo là bo Arduino Uno, nếu người dùng dùng kiểu bo khác thì
chọn kiểu bo đang dùng
Trang 22Hình 4.3 Minh họa chọn menu Tools nạp cho mạch Arduino
Bên cạnh việc chọn bo thì một phần quan trọng nữa là chọn cổng COM Hình bên dưới minh họa cho việc chọn cổng COM Khi lần đầu gắn mạch Arduino vào máy
tính, người sử dụng cần nhấn chọn cổng COM bằng cách vào Tools -> Serial Port (một số phiên bản dùng từ Port) sau đó nhấn chọn cổng COM, ví dụ như COM5
Những lần sau khi đưa chính board Arduino đó vào máy tính thì không cần chọn cổng COM, nếu đưa bo Arduino khác vào máy thì cần phải chọn lại cổng COM, quy trình thực hiện cũng tương tự
Hình 4.4 Minh họa chọn cổng COM nạp cho mạch Arduino
Sau khi thực hiện các bước trên xong, người dùng có thể bắt tay vào việc lập trình
Trang 234.2 Visual Studio 2015
4.2.1 Visual Basic
Phần Visual (có nghĩa là hình ảnh trực quan) đề cập đến phương pháp được sử
dụng để tạo giao diện đồ họa người dùng (Graphical User Interface hay viết tắt là GUI) Với những bộ phận hình ảnh (gọi là controls), bạn có thể sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình, gọi là form (giống form trong Access) Nếu bạn đă từng sử dụng chương trình vẽ chẳng hạn như Paint, bạn đă
có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6 Sau này, Microsoft phát triển thêm VB.NET để hổ trợ cho người sử dụng quản lý với một hệ thống lớn
Để lập trình Visual Basic, chúng ta sử dụng phần mềm do Microsoft phát hành: Visual Studio 2015
Chúng ta có thể download phần mềm Visual Studio 2015 tại:
https://www.fshare.vn/file/ZW984OPA23ZJ?token=1559134050
4.2.2 Tạo một project Windows Forms Application
Đầu tiên, chúng ta mở ứng dụng Visusal Studio 2015 từ màn hình Desktop
Để tạo 1 file Windows Forms Application, ta click vào File -> New -> Project
Hình 4.5 Giao diện phần mềm Visual Studio 2015
Trang 24 Sau đó, bảng New Project sẽ hiện ra
Hình 4.7 Giao diện New Project
Sau đó, ta click vào Windows Froms Application Phần bên trái giao diện (vùng khoanh đỏ) đó là phần cho ta chọn ngôn ngữ lập trình
Hình 4.6 Giao diện tạo 1 file Project
Trang 25Hình 4.8 Giao diện chọn ngôn ngữ lập trình và tạo Project
Ta tiến hành đặt tên cho project của chúng ta ở phần Name Sau đó, ta có 1 giao diện
thiết kế như sau:
Trang 26 Phần 2 (Vùng khoanh đỏ): Thanh ToolBox chọn các sự kiện như Button,
TextBox, GroupBox, Timer, SerialPort…
Hình 4.11 Giao diện ToolsBox
Phần 3 (Vùng khoanh màu xanh lá): Giao diện chính mà chúng ta có thể lấy các button, text… Từ thanh ToolsBox bên trái để thiết kế giao diện
Hình 4.12 Giao diện thiết kế chính
Trang 27 Phần 4 (Vùng khoanh màu vàng): Thể hiện Properties của các thanh Button, text…ta đặt tên cho Button, tuỳ chỉnh màu cho Button,…
Hình 4.13 Giao diện Proproties
Để lập trình Visual Basic cho giao diện thiết kế Tại phần giao diện thiết kế, ta
click chuột phải vào giao diện và chọn View Code hoặc ta nhấn F7
Hình 4.14 Giao diện View Code
Trang 28Hình 4.15 Giao diện lập trình
Trang 29CHƯƠNG 5: CÁC THIẾT BỊ SỬ DỤNG TRONG ĐỀ
Khối mạch công suất
Khối cảm
biến
VISUAL BASIC Web app
Hình 5.1 Sơ đồ khối
Hình 5.2 NodeMCU ESP8266 v12E
Trang 30 Module ESP-12E
Module ESP-12E chứa chip ESP8266 có bộ vi xử lý RISC 32-bit LX106 RISC hoạt động ở tần số xung nhịp 80 đến 160 MHz và hỗ trợ RTOS
Ngoài ra còn có 128 KB RAM và 4 MB bộ nhớ Flash (để lưu trữ chương trình
và dữ liệu) vừa đủ để đối phó với các chuỗi lớn tạo nên các trang web, dữ liệu JSON / XML và mọi thứ chúng ta hiện có trên các thiết bị IoT
ESP8266 Tích hợp bộ thu phát Wi-Fi 802.1140 / g / n HT40, do đó, nó không chỉ có thể kết nối với mạng WiFi và tương tác với Internet mà còn có thể thiết lập một mạng riêng, cho phép các thiết bị khác kết nối trực tiếp với nó điều này làm cho ESP8266 NodeMCU trở nên linh hoạt hơn
Yêu cầu năng lượng
Vì dải điện áp hoạt động của
ESP8266 là 3V đến 3,6V, bo mạch đi kèm với bộ ổn áp LDO để giữ điện áp ổn định ở mức 3,3V Nó có thể cung cấp đáng tin cậy tới 600mA, mức này là quá đủ khi
Trang 31ESP8266 kéo tối đa 80mA trong khi truyền RF Đầu ra của bộ điều chỉnh cũng được chia ra một trong các cạnh của bảng và được dán nhãn là 3V3 Pin này có thể được sử dụng để cung cấp năng lượng cho các thành phần bên ngoài
Cấp nguồn cho NodeMCU ESP8266 được cung cấp qua đầu nối MicroB USB trên bo mạch Ngoài ra, nếu bạn có nguồn điện áp 5V được quy định, chân VIN có thể được sử dụng để cung cấp trực tiếp cho ESP8266 và các thiết bị ngoại vi của nó
*Chú ý:
ESP8266 yêu cầu nguồn điện 3,3V và mức logic 3,3V để liên lạc Các chân GPIO không chịu được 5V! Nếu bạn muốn giao diện bảng với các thành phần 5V (hoặc cao hơn), bạn sẽ cần thực hiện một số thay đổi cấp độ
Thiết bị ngoại vi và I/O
ESP8266 NodeMCU có tổng số 17 chân GPIO được chia ra cho các tiêu đề pin
ở cả hai phía của bảng phát triển Các chân này có thể được gán cho tất cả các loại nhiệm vụ ngoại vi, bao gồm:
- Kênh ADC - Kênh ADC 10 bit
- Giao diện UART - Giao diện UART được sử dụng để tải mã seri
- Đầu ra PWM - Chân PWM để làm mờ đèn LED hoặc điều khiển động cơ Giao diện SPI, I2C & I2S - Giao diện SPI và I2C để kết nối tất cả các loại cảm biến và thiết bị ngoại vi
Giao diện I2S - Giao diện I2S nếu bạn muốn thêm âm thanh vào dự án của mình Nhờ tính năng ghép kênh pin của ESP8266 (Nhiều thiết bị ngoại vi được ghép kênh trên một pin GPIO duy nhất) Có nghĩa là một chân GPIO duy nhất có thể hoạt động như PWM / UART / SPI
Trang 32 Công tắc và đèn led trên board
ESP8266 NodeMCU có hai nút Một đánh dấu là RST nằm ở góc trên cùng bên trái là nút Reset, tất nhiên được sử dụng để đặt lại chip ESP8266 Nút FLASH khác ở góc dưới bên trái là nút tải xuống được sử dụng trong khi nâng cấp chương trình cơ sở
Bảng cũng có đèn LED được người dùng lập trình và được kết nối với chân D0 của bảng
Truyền thông nối tiếp
Bảng mạch bao gồm Bộ điều khiển cầu nối USB-to-UART CP2102 của Silicon Labs , giúp chuyển đổi tín hiệu USB thành nối tiếp và cho phép máy tính của bạn lập trình và giao tiếp với chip ESP8266
Công tắc & chỉ báo
RST - Đặt lại chip ESP8266
FLASH - Tải xuống chương
trình mới
Blue LED - Lập trình người
dùng
Truyền thông nối tiếp
Bộ chuyển đổi USB-to-UART
CP2102
Tốc độ truyền thông 4,5 Mb / giây
Hỗ trợ kiểm soát dòng chảy
Hình 5.6 Công tắc và đèn trên board
Hình 5.7 Bộ chuyển đổi USB-to-UART CP2102
Trang 335.2.2 ADRUINO UNO R3
Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3)
Hình 5.8 ADRUINO UNO R3
Một vài thông số của Arduino UNO R3:
- Vi điều khiển: ATmega328 họ 8bit
- Điện áp hoạt động: 5V DC (chỉ được cấp qua cổng USB)
- Tần số hoạt động: 16 MHz
- Dòng tiêu thụ: khoảng 30mA
- Điện áp vào khuyên dùng: 7-12V DC
- Điện áp vào giới hạn: 6-20V DC
- Số chân Digital I/O: 14 (6 chân hardware PWM)
- Số chân Analog: 6 (độ phân giải 10bit)
- Dòng tối đa trên mỗi chân I/O: 30 mA
Trang 34 Thông số kỹ thuật:
- Màu sắc: Đỏ
- Sử dụng điện áp nuôi DC 5V
- Đầu ra điện thế đóng ngắt tối đa DC 30V/10A, AC 250V/10A
- Có đèn báo đóng ngắt trên relay
- Thông số điện:
- Điện áp cung cấp: 5V DC
- Dòng điện hoạt động: >100mA
- Tải max: 250V 10A AC hoặc DC 30V 10A
Trang 35- Đầu Hút Nước Vào: 5mm
- Đầu Nước Ra:
- Đầu Chui 45mm
- Đầu Bao Ngoài: 75mm
Hình 5.11 Bơm Hình 5.10 Quạt tản nhiệt
Trang 365.3.5 Động cơ Servo
Động cơ RC Servo 9G là động phổ biến dùng trong các mô hình điều khiển nhỏ
và đơn giản như cánh tay robot Động cơ có tốc độ phản ứng nhanh, được tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM