Mục tiêu nghiên cứuThiết kế mạch điều khiển thiết bị từ xa bằng điện thoại di động về nhiệt độ, độ ẩm thông qua Module Wifi Essp8266.. Sử dụng ngôn ngữ lập trình BASIC, Stampgiống như mộ
Trang 1KHOA VẬT LÍ -
NGUYỄN THỊ KIM ANH
ĐIỀU KHIỂN THIẾT BỊ QUA MODULE WIFI
ESP8266
KHÓA LUẬN TỐT NGHIỆP
Huế, khóa học 2014 - 2018
Trang 2KHOA VẬT LÍ -
NGUYỄN THỊ KIM ANH
ĐIỀU KHIỂN THIẾT BỊ QUA MODULE WIFI ESP8266
KHÓA LUẬN TỐT NGHIỆP
GIẢNG VIÊN HƯỚNG DẪN
Th.S HOÀNG ĐÌNH LONG
Huế, khóa học 2014 - 2018
Trang 3Lời Cảm Ơn
Trong thời gian làm khóa luận tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ bảo tận tình của thầy cô, gia đình, bạn bè.
Em xin gửi lời cảm ơn chân thành đến Th.S thầy Hoàng Đình Long, giảng viên tổ Vật lí kĩ thuật – trường Đại học sư phạm Huế người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình làm khóa luận.
Em cũng chân thành cảm ơn các thầy cô giáo trong trường Đại học sư phạm Huế nói chung, các thầy cô trong khoa vật lí nói riêng đã dạy dỗ em Đồng thời, các thầy cô đã truyền cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em
có được cơ sở lí thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập
Cuối cùng, em xin chân thành cảm ơn đến gia đình
và bạn bè đã luôn tạo điều kiện, quan tâm, giúp đỡ và động viên em trong suốt quá trình học tập và hoàn thành khóa luận tốt nghiệp.
Mặc dù đã có nhiều cố gắng trong quá trình làm khóa luận tốt nghiệp, nhưng không thể tránh khỏi những thiếu sót Em mong quý thầy cô cùng các bạn đọc nhận xét, góp ý thêm để bài khóa luận của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!
Huế, ngày 5 tháng 5 năm 2018
Trang 4Sinh viên thực hiện
Nguyễn Thị Kim Anh
Trang 5MỤC LỤC
PHẦN I MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 2
3 Nhiệm vụ nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Đối tượng nghiên cứu 2
6 Phạm vi nghiên cứu 2
7 Cấu trúc khóa luận 2
PHẦN II NỘI DUNG 3
CHƯƠNG 1 TỔNG QUAN 3
1.1 Giới thiệu vi điều khiển Arduino Uno 3
1.1.1 Lịch sử hình thành Arduino 3
1.1.2 Tổng quan về Arduino 4
1.1.2.1 Định nghĩa về vi điều khiển Arduino 4
1.1.2.2 Một số board Arduino 5
1.1.3 Giới thiệu về Board Arduino Uno 5
1.1.3.1 Cấu tạo chung 5
1.1.3.2 Các thông số kĩ thuật của Arduino Uno 7
1.1.3.3 Vi điều khiển 7
1.1.3.4 Bộ nhớ 8
1.1.3.5 Đặc điểm và chức năng các chân của Arduino Uno 9
1.1.3.6 Ứng dụng của Arduino 11
1.2 Giới thiệu Module Wifi ESP8266 13
1.2.1 Giới thiệu về Module Wifi ESP8266 V1 13
1.2.2 Thông số kỹ thuật 13
1.2.3 Chân kết nối của Module Wifi Esp8266 V1 14
1.2.4 Giao tiếp của module wifi ESP8266 với Arduino Uno 15
1.3 Giới thiệu về Apps Virtuino trên Android 15
1.4 Cảm biến nhiệt độ và độ ẩm DHT11 17
1.4.1 Giới thiệu chung 17
Trang 61.4.2 Thông số kĩ thuật 17
1.4.3 Giao tiếp giữa DHT11 với Arduino Uno 18
CHƯƠNG 2 MÔ PHỎNG VÀ LẬP TRÌNH CHO ARDUINO 19
2.1 Phần mềm mô phỏng Proteus 19
2.1.1 Tổng quan về phần mềm 19
2.1.2 Cách sử dụng phần mềm Proteus 19
2.1.3 Thư viện Arduino trong Proteus 22
2.2 Giới thiệu về môi trường tích hợp Arduino IDE 22
2.3 Lập trình điều khiển với Arduino 25
2.3.1 Cấu trúc của một chương trình 25
2.3.2 Ngôn ngữ lập trình cho Arduino 26
2.3.2.1 Giới thiệu ngôn ngữ C 26
2.3.2.2 Các lệnh cơ bản trong C 26
CHƯƠNG 3 THIẾT KẾ, LẬP TRÌNH VÀ LẮP ĐẶT MẠCH ĐIỀU KHIỂN TỪ XA VỀ NHIỆT ĐỘ, ĐỘ ẨM TRÊN ĐIỆN THOẠI DI ĐỘNG THÔNG QUA MODULE WIFI ESP8266 35
3.1 Phân tích mạch điều khiển 35
3.1.1 Sơ đồ khối tổng quát 35
3.1.2 Nguyên lý hoạt động của hệ thống 36
3.1.3 Lưu đồ thuật toán 36
3.1.4 Nạp code và chạy chương trình 37
3.2 Thiết kế mạch và thi công mạch điều khiển 40
3.2.1 Xác định mạch điều khiển 40
3.2.2 Giải pháp công nghệ 41
3.2.3 Giải pháp thiết kế 41
3.2.4 Yêu cầu của mạch điều khiển 41
3.2.5 Thi công mạch điều khiển 41
3.2.5.1 Kết nối phần cứng và nạp chương trình mạch điều khiển 41
3.2.5.2 Hoạt động của mạch điều khiển 44
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 46
TÀI LIỆU THAM KHẢO 47
Trang 7DANH MỤC BẢNG
Bảng 1.1 Các thông số kĩ thuật của board ArduinoUno 7
Bảng 1.2 Sơ đồ nối dây 15
Bảng 1.3 Sơ đồ nối chân 18
Bảng 2.1 Thanh công cụ chuẩn 20
Bảng 2.2 Thanh linh kiện 21
Bảng 2.3 các chức năng trong vùng Toolbar 23
Bảng 2.4 Các toán tử so sánh 29
Bảng 2.5 Các toán tử logic 29
Trang 8DANH MỤC HÌNH
Hình 1.1 Mẫu thử nghiệm ban đầu 3
Hình 1.2 Một số board Arduino thông dụng 5
Hình 1.3 Board Arduino Uno 6
Hình 1.4 Vi điều khiển ATMega328P của Arduino Uno 8
Hình 1.5 Sơ đồ chân của vi điều khiển ATMega328P 8
Hình 1.6 Các chân Digital của Arduino Uno 9
Hình 1.7 Các chân Analog của Arduino Uno 10
Hình 1.8 Các chân năng lượng của Arduino Uno 10
Hình 1.9 Robot dò line điều khiển qua điện thoại 12
Hình 1.10 Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng và hiển thị thông tin tốc độ gió, điện năng trong ắc quy 13
Hình 1.11 Module Wifi ESP8266 V1 13
Hình 1.12 Sơ đồ chân của Module Wifi Esp8266 V1 14
Hình 1.13 Sơ đồ nối chân của Arduino Uno với Module Wifi ESP8266 V1 15
Hình 1.14 Địa chỉ ID trên Thingspeak 16
Hình 1.15 Cài đặt IoT Server trên điện thoại 16
Hình 1.16 Thiết lập nhiệt độ và độ ẩm trên điện thoại 17
Hình 1.17 Cảm biến nhiệt độ và độ ẩm DHT11 17
Hình 1.18 Sơ đồ nối chân giữa Arduino Uno với cảm biến DHT11 18
Hình 2.1 Khung làm việc chung của phần mềm Proteus 20
Hình 2.2 Giao diện của Arduino IDE 22
Hình 2.3 Vùng Toolbar của Arduino IDE 23
Hình 2.4 Minh họa vùng viết chương trình 24
Hình 2.5 Minh họa các bước thực hiện một chương trình 25
Hình 2.6 Minh họa vùng thông báo 25
Hình 3.1 Sơ đồ khối tổng quát 35
Hình 3.3 Kết nối phần cứng của mạch điều khiển 42
Hình 3.4 Đèn trên Arduino mà module wifi Esp8266 sáng khi cấp nguồn 42
Hình 3.5 Kiểm tra lỗi của chương trình phát tín hiệu 43
Hình 3.6 Nạp chương trình xuống cho mạch điều khiển 43
Hình 3.7 Quá trình nạp thành công 44
Hình 3.8 Kết quả đo nhiệt độ, độ ẩm hiển thị trên máy tính 44
Hình 3.9 Kết quả đo nhiệt độ và độ ẩm được đưa lên thingSpeak 45
Hình 3.10 Kết quả nhiệt độ và độ ẩm hiển thị trên Smartphone 45
Trang 10PHẦN I MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay cùng với sự phát triển của xã hội, cuộc sống ngày càng được nângcao thì việc áp dụng công nghệ khoa học kỹ thuật vào đời sống công việc càng cầnthiết hơn Cùng với sự phát triển của các ngành khoa học kỹ thuật, công nghệ kỹthuật điện tử mà trong đó đặc biệt là kỹ thuật điều khiển tự động đóng vai trò quantrọng trong mọi lĩnh vực đời sống như khoa học kỹ thuật, quản lý, công nghiêp,nông nghiệp, đời sống, quản lý thông tin
Trong thời kỳ phát triển hiện nay, điện thoại di động là một thiết bị không thểthiếu trong cuộc sống Ngoài chức năng nghe và nhận cuộc gọi, nhắn tin, xem phim,chơi game, chụp ảnh… điện thoại còn có khả năng giám sát và điều khiển thiết bị từkhoảng cách xa thông qua kết nối Internet/Wifi [13]
Từ nhu cầu thực tế cần có một thiết bị điều khiển, giám sát nhiệt độ độ ẩmtrong gia đình, phòng máy chủ, trung tâm dữ liệu, kho dữ liệu, tủ lạnh vắc xin, tủlạnh thực phẩm, trong nhà kính… bằng điện thoại di động, thông qua Module WifiEsp8266 Từ đó, có tính linh động cao, cập nhật các dữ liệu 24/24h nhằm tăng hiệuquả quản lý [13]
Bên cạnh đó cùng với sự xuất hiện của Arduino vào năm 2005 tại Italia đã gópphần không nhỏ cho nền kinh tế tự động hóa Sự xuất hiện của Arduino đã hỗ trợcho con người rất nhiều trong việc lập trình và thiết kế, nhất là đối với những ngườimới bắt đầu tìm tòi về vi điều khiển mà không có quá nhiều kiến thức, hiểu biết sâusắc về vật lý và điện tử Phần cứng của thiết bị đã được tích hợp nhiều chức năng cơbản và mã nguồn mở Ngôn ngữ lập trình lại vô cùng dễ sử dụng và được chia sẻmiễn phí nên Arduino đang ngày càng phổ biến và được phát triển mạnh mẽ trêntoàn thế giới [1]
Xuất phát từ những lý do trên em chọn đề tài: “ĐIỀU KHIỂN THIẾT BỊ QUAMODULE WIFI ESP8266” làm đề tài khóa luận tốt nghiệp Trong quá trình thựchiện đề tài không tránh khỏi những thiếu sót, em rất mong nhận được sự góp ý củacác thầy cô và các bạn để đề tài được hoàn thiện hơn
Trang 112 Mục tiêu nghiên cứu
Thiết kế mạch điều khiển thiết bị từ xa bằng điện thoại di động về nhiệt độ, độ
ẩm thông qua Module Wifi Essp8266
3 Nhiệm vụ nghiên cứu
- Nghiên cứu về vi điều khiển Arduino, cảm biến nhiệt độ và độ ẩm DHT11,phần mềm mô phỏng proteus, ngôn ngữ C và môi trường phát triển tích hợpArduino IDE
- Nghiên cứu Module Wifi Esp8266, phần mềm Virtuino trên điện thoại
4 Phương pháp nghiên cứu
Trong đề tài này em đã sử dụng các phương pháp nghiên cứu:
- Phương pháp nghiên cứu lí thuyết: tìm hiểu khái niệm, cấu tạo, các thông số
kĩ thuật, sơ đồ nối chân giữa Arduino Uno với DHT11 và Esp8266 Tìm hiểu cách
sử dụng Apps Virtuino, proteus, ngôn ngữ C và Arduino IDE
- Phương pháp nghiên cứu thực nghiệm: thiết kế mạch điều khiển từ xa vềnhiệt độ và độ ẩm trên điện thoại di động thông qua Module Wifi Esp8266
5 Đối tượng nghiên cứu
Vi điều khiển Arduino Uno, Module Wifi Esp8266 và cảm biến nhiệt độ và độ
ẩm DHT11
6 Phạm vi nghiên cứu
Điều khiển thiết bị nhiệt độ, độ ẩm từ xa bằng điện thoại di dộng thông quaModule Wifi Esp8266
7 Cấu trúc khóa luận
Ngoài phần mở đầu, kết luận, hướng phát triển và tài liệu tham khảo Khóaluận còn có phần nội dung được chia làm 3 chương
Chương 1 Tổng quan
Chương 2 Mô phỏng và lập trình cho Arduino
Chương 3 Thiết kế, lập trình và lắp đặt mạch điều khiển từ xa về nhiệt độ, độ
ẩm trên điện thoại di động thông qua Module Wifi Esp8266
Trang 12PHẦN II NỘI DUNG CHƯƠNG 1 TỔNG QUAN
1.1 Giới thiệu vi điều khiển Arduino Uno
1.1.1 Lịch sử hình thành Arduino
Arduino có một lịch sử ra đời rất thú vị Mới đầu Arduino được tạo ra để giảiquyết bài toán: làm thế nào để sinh viên có thể tạo ra được một thiết bị điện tử mộtcách nhanh chóng Vào năm 2002, Massimo Banzi, một giáo sư phần mềm đã đượcđưa về IDII (Interaction Design Institute Ivrea – Viện thiết kế tương tác Ivrea) đểthúc đẩy một lĩnh vực còn non trẻ gọi là “máy tính vật lí” với một ngân sách hạnhẹp, thời gian hạn chế và rất ít các công cụ [1]
Vào thời điểm đó, sinh viên sử dụng Stamp BASIC, một vi điều khiển đượctạo ra bởi công ti California Parallax Sử dụng ngôn ngữ lập trình BASIC, Stampgiống như một bo mạch nhỏ gọn gàng, gồm các yếu tố cần thiết như nguồn cungcấp năng lượng, một vi điều khiển, bộ nhớ và cổng vào – ra để nối với các phầncứng khác
Banzi phát hiện ra hai vấn đề ở Stamp BASIC [1]:
Không có đủ khả năng xử lý cho một số dự án của sinh viên
Có giá khoảng 100 USD khá cao so với sinh viên
Mẫu thử nghiệm ban đầu được thực hiện vào năm 2005, là một thiết kế đơngiản và chưa được gọi Arduino Massimo Banzi sử dụng cái tên Arduino vào mộtnăm sau đó
Hình 1.1 Mẫu thử nghiệm ban đầu [1]
Trang 131.1.2 Tổng quan về Arduino
1.1.2.1 Định nghĩa về vi điều khiển Arduino
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với cácthiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác [2]
Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng rất dễ dàng
sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng Một điềulàm cho Arduino phổ biến nhanh chóng là mức giá rất thấp và tính chất nguồn mở
từ phần cứng tới phần mềm
Arduino là một nền tảng thiết bị điện tử mã nguồn mở được sử dụng để xâydựng các ứng dụng điện tử Arduino gồm có board mạch có thể lập trình được(thường gọi là vi điều khiển) và các phần mềm hỗ trợ phát triển tích hợp IDE(Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạpchương trình cho board [2]
Một hệ thống Arduino có thể có rất nhiều sự tương tác với các thiết bị khác, đó
là các hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, vận tốc,màu sắc vật thể, ), các thiết bị hiển thị (màn hình LCD, đèn LED, ), các modulechức năng hỗ trợ kết nối có dây với các thiết bị khác hoặc các kết nối không dâythông dụng (3G, Wifi, Bluetooth, ) và cả định vị GPS, nhắn tin SMS
Như vậy, tuy chỉ là một board mạch nhỏ nhưng Arduino có thể dùng vào rấtnhiều ứng dụng khác nhau, chỉ cần một phần mềm Arduino IDE, một kết nối USB
và một board mạch Arduino, ta có thể phát triển các ứng dụng trên board
Về mặt chức năng, các board mạch Arduino được chia làm hai loại: loại boardmạch chính có chip ATMega và loại mở rộng thêm các chức năng cho board mạchchính (thường được gọi là Shield) [2]
Arduino từ khi ra đời là một thứ cực kì phức tạp gồm rất nhiều linh kiện, bóngđèn LED, cổng kết nối,… nay đã trở thành một mạch nhỏ gọn trong lòng bàn tay vớicác kết nối phổ biến và sự tiện lợi trong việc điều khiển thiết bị Hiện nay, Arduinođược rất nhiều hãng điện tử trên thế giới nghiên cứu và chế tạo Arduino cũng có rấtnhiều loại và có nhiều kích thước khác nhau
Trang 141.1.2.2 Một số board Arduino
Hình 1.2 Một số board Arduino thông dụng [1]
Các board Arduino và Arduino – compatible sử dụng các shield – các boardmạch in mở rộng được dùng bằng cách cắm vào các chân header của Arduino Cácshield có thể là module điều khiển động cơ, GPS, Ethernet, LCD hoặc có thể làbreadboard
1.1.3 Giới thiệu về Board Arduino Uno
Arduino có rất nhiều phiên bản với các chức năng và mục đích khác nhau.Trong đó, Arduino Uno là một trong những phiên bản được ứng dụng rộng rãi nhấtbởi chi phí và tính linh động của nó Hiện dòng này đã được phát triển tới thế hệ thứ
3 (R3) [3]
1.1.3.1 Cấu tạo chung
Có rất nhiều thành phần cấu tạo nên một board Arduino Uno, nhưng để dễdàng hiểu rõ và sử dụng Arduino Uno đúng cách, đầu tiên ta quan tâm đến cácthành phần được đánh số trên hình 1.3
Trang 15Hình 1.3 Board Arduino Uno [3]
1 Cổng USB là cổng giao tiếp để nạp chương trình điều khiển từ máy vi tính
lên vi điều khiển Đồng thời nó cũng là giao tiếp nối tiếp để truyền dữ liệu giữa viđiều khiển với máy tính [3]
2 Jack nguồn để cung cấp nguồn từ 9V đến 12V lấy năng lượng trực tiếp từ
pin hoặc Ắc – quy trong trường hợp không thể lấy nguồn từ cổng USB như đã nói ởtrên [3]
3 Hàng chân thứ nhất được đánh số từ 0 đến 13 là các chân Digital, nhận
vào hoặc xuất ra các tín hiệu số Ngoài ra có một chân đất (GND) và chân điện áptham chiếu (AREF) [3]
4 Hàng chân thứ hai là các chân năng lượng, chủ yếu liên quan đến điện áp
đất, nguồn [3]
5 Hàng chân thứ ba là các chân Analog được kí hiệu từ A0 đến A5 để nhận
vào hoặc xuất ra các tín hiệu tương tự (ví dụ như đọc thông tin của các thiết bị cảmbiến) [3]
6 Vi điều khiển là bộ xử lí trung tâm của toàn board mạch Với mỗi mẫu
Arduino khác nhau thì con vi điều khiển này khác nhau Ở board Arduino Uno này
sử dụng ATMega328P [3]
Trang 16Ngoài ra trên board còn có một nút Reset để đặt lại chương trình đang chạy Đôikhi chương trình đang chạy gặp lỗi, người dùng có thể Reset lại chương trình [3].
1.1.3.2 Các thông số kĩ thuật của Arduino Uno
Bảng 1.1 Các thông số kĩ thuật của board ArduinoUno [3]
Vi điều khiển ATMega328P (họ 8bit)
Điện áp hoạt động 5V-DC (chỉ được cấp qua cổng USB)Đ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 vào/ra 14 (có 6 chân điều chế độ xung PWM)
Số chân Analog Input 6 (độ phân giải bit)
Dòng ra tối đa trên mỗi chân vào/ra 30mA
Dòng ra tối đa (5V) 500mA
Dòng ra tối đa (3.3V) 50mA
Flash Memory 32 KB (ATMega328P) với 0.5KB được
từ cảm biến, xử lí dữ liệu và xuất ra, xử lí tín hiệu cho đèn điều khiển từ xa,
Arduino Uno có thể sử dụng 3 vi điều khiển họ 8 bit AVR là ATMega8,ATMega168, ATMega328 Với vi điều khiển ATMega328 sử dụng thạch anh có chu
kì dao động 16MHz [3]
Hình 1.4 Vi điều khiển ATMega328P của Arduino Uno [3]
Sơ đồ chân của vi điều khiển ATMega328P
Trang 17Hình 1.5 Sơ đồ chân của vi điều khiển ATMega328P [3]
1.1.3.4 Bộ nhớ
Vi điều khiển ATMega328P tiêu chuẩn có ba loại bộ nhớ với dung lượngtương ứng là 32KB cho bộ nhớ Flash, 2KB cho SRAM và 1KB cho EEPROM
* Flash Memory là bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi
ngắt điện Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệutrên board Chương trình viết cho Arduino sẽ được lưu ở đây Kích thước của vùngnhớ này thông thường dựa vào vi điều khiển được sử dụng Loại bộ nhớ này có thểchịu được khoảng 10.000 lần ghi/xóa [3]
* SRAM (Static Random Access Memory) tương tự như RAM của máy tính,
bộ nhớ này sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi/xóa rấtnhanh Kích thưởng nhỏ hơn Flash Memory nhiều lần [3]
* EEPROM (Electrically Eraseble Programmable Read Only Memory) là một
dạng bộ nhớ như Flash Memory nhưng có chu kì ghi/xóa cao hơn (khoảng 100.000lần) và có kích thước rất nhỏ Để đọc/ghi dữ liệu, ta có thể dùng thư viện EEPROMcủa Arduino [3]
Trang 181.1.3.5 Đặc điểm và chức năng các chân của Arduino Uno
1.1.3.5.1 Các cổng vào và ra
Arduino Uno có tổng cộng 14 chân (pin) Digital dùng để đọc hoặc xuất tínhiệu số được đánh số từ 0 đến 13 như trên hình 1.6 Chúng chỉ có hai mức điện áp
là 0V và 5V với dòng điện vào/ra tối đa trên mỗi chân là 40mA [3]
Hình 1.6 Các chân Digital của Arduino Uno [3]
Các chức năng đặc biệt của một số chân Digital [3]:
+ 2 chân nối tiếp 0 (RX) và 1 (TX) dùng để gửi (transmit – TX) và để nhận(receive – RX) dữ liệu Arduino Uno có thể giao tiếp với các thiết bị khác thông quahai chân này Kết nối Bluetooth thường thấy chính là kết nối nối tiếp không dây.Nếu không sử dụng giao thức này, không nên sử dụng hai chân RX và TX nếukhông cần thiết
+ 6 chân PWM (Pulse Width Modulation) hay chân có khả năng điều chế độrộng xung, gồm có 3, 5, 6, 9, 10 và 11 được đánh dấu ~ trước mã số chân, cho phépxuất ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite ( ) Một cách đơngiản, ta có thể điều chỉnh chế độ điện áp đầu ra ở các chân này từ mức 0V đến 5Vthay vì cố định ở mức 0V và 5V như các chân khác
+ Chân giao tiếp SPI là 10 (SS), 11 (MOSI), 12 (MOSI), 13 (SCK) Ngoài cácchưc năng thông thường, 4 chân này còn được dùng để truyền phát dữ liệu bằnggiao thức SPI với các thiết bị khác
+ LED 13 có màu da cam được kí hiệu bằng chữ L trên Arduino Uno Khibấm nút Reset, đèn này sẽ nhấp nháy để báo hiệu Nó được nối với chân số 13 Khichân này được sử dụng thì đèn LED sẽ sáng
Arduino Uno còn có thêm 6 chân Analog nhận kí hiệu tương tự được kí hiệu
từ A0 đến A5 như trên hình 1.7 Các chân này cung cấp độ phân giải 10 bit để đọc
Trang 19giá trị điện áp trong khoảng 0V đến 5V Với chân AREF trên board, có thể đưa vàođiện áp tham chiếu khi sử dụng các chân Analog Tức là nếu ta cấp điện áp 2.5Vvào các chân này thì có thể dùng các chân Analog để đo điện áp trong khoảng từ 0Vđến 5V với độ phân giải là 10 bit.
Hình 1.7 Các chân Analog của Arduino Uno [3]
1.1.3.5.2 Các chân cấp nguồn
Các chân này dùng để cấp nguồn cho các thiết bị bên ngoài như Relay, cảmbiến, động cơ, gồm có các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3Vnhư được thể hiện trên hình 1.8 Nhờ những chân này mà người dùng không cầnthiết bị biến đổi điện khi cấp nguồn cho thiết bị Ngoài ra còn có các chân Vin, chânReset và chân IOREF nhưng các chân này ít khi được sử dụng
Hình 1.8 Các chân năng lượng của Arduino Uno [3]
Arduino sử dụng cáp USB để giao tiếp với máy tính Thông qua cáp USBchúng ta có thể Upload chương trình cho Arduino hoạt động, ngoài ra USB còn lànguồn cho Arduino
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngoàithông qua jack cắm 2.1 mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin vàGND để cấp nguồn cho Arduino
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5V đến 20V Ta có thể cấpmột áp lớn hơn, tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5V và nếu sử dụng
Trang 20nguồn lớn hơn 12V thì dễ gây ra hiện tượng nóng và làm hỏng bo mạch Vì vậy, nêndùng nguồn ổn định từ 5V đến 12V.
Chân 5V và chân 3.3V (output voltage): các chân này dùng để lấy nguồn ra từnguồn mà chúng ta đã cấp cho Arduino Đặc biệt không được cấp vào các chân này
+ IOREF là chân có thể dùng để đo điện áp hoạt động của vi điều khiển trênArduino Uno (luôn là 5V) Mặc dù vậy, không được lấy nguồn 5V từ chân này để
sử dụng bởi chức năng của nó không phải là cấp nguồn [3]
+ RESET: việc nhấn nút RESET trên board để reset vi điều khiển tương đươngvới việc chân RESET được nối với GND qua một điện trở 10k [3]
1.1.3.6 Ứng dụng của Arduino
Arduino ra đời nhằm phục vụ mục đích cho điều khiển điện tử nói chung.Trong đó mảng điều khiển cơ điện tử cũng khá thông dụng với Arduino
* Ứng dụng nền tảng của Arduino trong đồ án tốt nghiệp của sinh viên trường
Đại học Bà Rịa Vũng Tàu – Viện CNTT – điện – điện tử Đề tài: “Robot dò line điều khiển qua điện thoại” [4].
Robot dò line với những kết cấu cơ khí đơn giản nhưng lại có thể kết hợpđược với khá nhiều thành phần điện tử (encoder, sensor xác định đường line, sensor
đo khoảng cách )
Nguyên lí tổng quát của toàn mạch bao gồm các bộ phận kết nối với nhau gồmcó: Module L298N, Module bluetooth HC05, Arduino Nano, màn hình LCD 16x2,cảm biến sensor của mạch Mạch cảm biến dò line gồm có 6 led để soi đường và 6cảm biến quang dùng để cảm biến và phát tính hiệu đến Arduino Nano điều khiểnRobot Đây là một phần quan trọng của Robot, nhờ có nó mà Robot có thẻ dichuyển theo đường line và có thể hoạt động một cách ổn định nhất Những Robotnày rất phù hợp với sinh viên học tập và nghiên cứu về ngành tự động hóa cũng yêuthích kĩ thuật điện tử một cách cụ thể
Trang 21Hình 1.9 Robot dò line điều khiển qua điện thoại [4]
* Đồ án “Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng
và hiển thị thông tin tốc độ gió, điện năng trong ắc quy” của sinh viên khoa Công nghệ Cơ khí – Đại học Điện lực [5].
Sử dụng bo mạch Arduino Mega 2560 để điều khiển toàn bộ phần điện tử Tínhiệu từ cảm biến ánh sáng được truyền vào bo mạch Arduino Thông qua thuật toán
xử lí chống nhiễu, hệ thống biết được thời điểm nào là phù hợp để quyết định bậtđèn và tắt đèn, giúp tiết kiệm năng lượng một cách thông minh Ngoài ra, bo mạchArduino còn nhận các điện áp từ ắc quy, các tín hiệu về vận tốc gió từ encoder gắntrên trục turbine và xuất tín hiệu ra bảng led 7 thanh để hiển thị tức thời vận tốc giócũng như điện năng dự trữ còn trong ắc quy
Trang 22Hình 1.10 Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng
và hiển thị thông tin tốc độ gió, điện năng trong ắc quy [5]
Việc sử dụng bo mạch sẵn Arduino trong đồ án này đảm bảo phần vi điềukhiển hoạt động ổn định, không bị ảnh hưởng bởi sự chấn động rung lắc cơ học dogió gây nên
1.2 Giới thiệu Module Wifi ESP8266
1.2.1 Giới thiệu về Module Wifi ESP8266 V1
Mạch thu phát wifi ESP8266 V1 sử dụng IC wifi SoC ESP8266 của hãngEspressif, được sử dụng để kết nối với vi điều khiển thực hiện chức năng truyền dữliệu qua Wifi, mạch có thiết kế nhỏ gọn, sử dụng giao tiếp UART với bộ thư viện vàcode mẫu rất nhiều từ cộng đồng Module Wifi Esp8266 V1 được sử dụng trong cácứng dụng IoT và điều khiển thiết bị qua wifi, [6]
Hình 1.11 Module Wifi ESP8266 V1 [6]
1.2.2 Thông số kỹ thuật [6]
Điện áp sử dụng: 3.3VDC
Điện áp giao tiếp: 3.3VDC
Dòng tiêu thụ: Max 320mA (nên sử dụng module cấp nguồn riêng cho mạch)
Hỗ trợ chuẩn 802.11 b/g/n
Wifi 2.4 GHz, hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK,WPA2_PSK, WPA_WPA2_PSK
Hỗ trợ cả hai giao tiếp TCP và UDP
Chuẩn giao tiếp UART với Firmware hỗ trợ bộ tập lệnh AT Command, tốc
độ Baudrate mặc định 9600 hoặc 115200
Kích thước: 24.8 x 14.3 mm
Trang 231.2.3 Chân kết nối của Module Wifi Esp8266 V1
Hình 1.12 Sơ đồ chân của Module Wifi Esp8266 V1 [6]
Chức năng các chân của Module Wifi Esp8266 V1 [6]
1 VCC: 3.3V, dòng có thể lên 300mA vì thế cần mạch nguồn riêng ams11175V -> 3.3V
2 GND: 0V
3 Tx: chân Tx của giao thức UART, kết nối đến chân Rx của vi điều khiển
4 Rx: chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển
5 RST: chân reset, kéo xuống mass để reset
6 CH_PD: chân này nếu được kéo lên mức cao module sẽ bắt đầu thu phátwifi, kéo xuống mức thấp module dừng phát wifi Vì ESP8266 khởi động hút dònglớn nên chúng ta giữ chân này ở mức 0V khi khởi động hệ thống của mình, sau 2shãy kéo chân CH_PD lên 3.3V, để đảm bảo module hoạt động ổn định
7 GPIO0: kéo xuống thấp cho chế độ upgrade firmware
8 GPIO2: không sử dụng
1.2.4 Giao tiếp của module wifi ESP8266 với Arduino Uno
Sơ đồ nối dây giữa Arduino với Module Wifi Esp8266 V1 như sau
Bảng 1.2 Sơ đồ nối dây [8]
Arduino Uno ESP8266
3.3V Vcc và CH_PD
Trang 24Hình 1.13 Sơ đồ nối chân của Arduino Uno với Module Wifi ESP8266 V1 1.3 Giới thiệu về Apps Virtuino trên Android
- Download phần mềm Virtuino trên trang CH Play
- Tiếp theo, bạn cần đăng kí Channel ID trên Thingspeak để lấy địa chỉ ID
Hình 1.14 Địa chỉ ID trên Thingspeak
- Mở phần mềm Virtuino trên điện thoại và tiến hành cài đặt IoT Server theocác bước nhập địa chỉ Channels ID, Read Key và Write Key như hình sau:
Trang 25Hình 1.15 Cài đặt IoT Server trên điện thoại
Tiếp theo, tiến hành lấy ra các thiết bị cần thiết để tiến hành đo nhiệt độ và độ
ẩm như hình 1.16:
Trang 26Hình 1.16 Thiết lập nhiệt độ và độ ẩm trên điện thoại 1.4 Cảm biến nhiệt độ và độ ẩm DHT11
1.4.1 Giới thiệu chung
Hình 1.17 Cảm biến nhiệt độ và độ ẩm DHT11 [7]
Cảm biến nhiệt độ và độ ẩm DHT11 là cảm biến rất thông dụng hiện nay vìchi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dâytruyền dữ liệu duy nhất) Bộ tiền xử lí tín hiệu tích hợp trong cảm biến giúp bạn cóđược dữ liệu chính xác mà không phải qua bất kì tính toán nào [7]
Tuy nhiên, sư dụng cảm biến trong môi trường độ ẩm thuần là hơi nước, cácmôi trường đặc biệt ủ kín như ủ tỏi đen, ủ yếm khí sẽ sinh ra nấm và vi khuẩnbám lên bề mặt cảm biến làm hư hỏng cảm biến
1.4.2 Thông số kĩ thuật [7]
Nguồn: 3V đến 5V DC
Dòng sử dụng: 2.5 mA max (khi truyền dữ liệu)
Đo tốt ở độ ẩm 2080 %RH với sai số 5%
Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
Kích thước 15mm x 12mm x 5.5mm
3 chân, khoảng cách chân 0.1”
1.4.3 Giao tiếp giữa DHT11 với Arduino Uno
Bảng 1.3 Sơ đồ nối chân [7]
STT Arduino Uno DHT11
Trang 27Hình 1.18 Sơ đồ nối chân giữa Arduino Uno với cảm biến DHT11