TRƯỜNG ĐẠI HỌC NHA TRANG Khoa : Điện – Điện Tử PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ ĐỀ TÀI TỐT NGHIỆP Dùng cho CBHD và nộp cùng báo cáo ĐA/KLTN của sinh viên Tên đề tài: Thiết kế mạch ki
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NHA TRANG
KHOA ĐIỆN-ĐIỆN TỬ
- -
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
THIẾT KẾ MẠCH KIỂM SOÁT VÀ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN
DÂN DỤNG QUA INTERNET SỬ DỤNG ARDUINO
Giảng viên hướng dẫn: Th.S Nguyễn Thanh Tuấn
Sinh viên thực hiện: Đặng Triều Thần
Mã số sinh viên: 56130727 Lớp: 56DDT
Nha Trang, Ngày 18 tháng 7 năm 2018
Trang 2Giảng viên hướng dẫn: Th.S Nguyễn Thanh Tuấn Sinh viên thực hiện: Đặng Triều Thần
Mã số sinh viên: 56130727 Lớp: 56DDT
Nha Trang, Ngày 18 tháng 7 năm 2018
Trang 3TRƯỜNG ĐẠI HỌC NHA TRANG
Khoa : Điện – Điện Tử
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ ĐỀ TÀI TỐT NGHIỆP
(Dùng cho CBHD và nộp cùng báo cáo ĐA/KLTN của sinh viên) Tên đề tài: Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua internet
sử dụng arduino
Giảng viên hướng dẫn : Nguyễn Thanh Tuấn
Sinh viên thực hiện : Đặng Triều Thần MSSV : 56130727
Khóa : 56 Ngành : Công nghệ kĩ thuật Điện – Điện tử
Lần KT Ngày Nội dung Nhận xét của GVHD
Kiểm tra giữa tiến độ của trưởng BM
Ngày Kiểm tra : Đánh giá công việc hoàn thành:……% Ký tên
Được tiếp tục Không tiếp tục ………
Điểm h nh th c:……/10 Điểm nội dung: /10 Điểm tổng kết:………/10
Đồng ý cho sinh viên: Được bảo vệ: Không được bảo vệ:
Khánh Hòa,ngày… Tháng… Năm…
Cán bộ hướng dẫn
(Ký và ghi rõ họ tên)
Trang 4TRƯỜNG ĐẠI HỌC NHA TRANG
Khoa/Viện: Điện – Điện tử
PHIẾU CHẤM ĐIỂM ĐỒ ÁN TỐT NGHIỆP (Dành cho cán bộ chấm phản biện)
1 Họ tên người chấm:………
2 Sinh viên thực hiện ĐA:Đặng Triều Thần MSSV: 56130727 3 Tên đề t i: Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua internet sử dụng arduino 4 Nhận xét - H nh th c:
- Nội dung:
………
……….………
……….………
……….………
……….………
……….……
………
Điểm h nh th c:…… /10 Điểm nội dung: /10 Điểm tổng kết:………/10
Đồng ý cho sinh viên: Được bảo vệ: Không được bảo vệ: Khánh Hòa, ngày…….tháng………năm………
Cán bộ chấm phản biện
(Ký và ghi rõ họ tên)
Trang 5TRƯỜNG ĐẠI HỌC NHA TRANG
Khoa/Viện: Điện – Điện tử
PHIẾU CHẤM CỦA HỘI ĐỒNG BẢO VỆ ĐA/KLTN (Dùng cho thành viên Hội đồng bảo vệ ĐA/KLTN)
1 Họ tên thành viên HĐ: Chủ tịch: Thư ký: Ủy viên:
2 Tên đề tài : Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua internet sử dụng arduino
3 Họ tên sinh viên thực hiện: Đặng Triều Thần MSSV: 56130727
4 Phần đánh giá và cho điểm của thành viên hội đồng (theo thang điểm 10) a) H nh th c, ố cục bài báo cáo (sạch, đẹp, cân đối giữa các phần) : b) Nội dung bản báo cáo (thể hiện mục tiêu, kết quả,…) :……… c) Tr nh ày (đầy đủ, ngắn gọn, lưu loát, không quá thời gian…) :……… d) Trả lời các câu hỏi của người chấm (đúng/sai) :……… đ) Trả lời các câu hỏi của thành viên hội đồng (đúng/sai) :……… e) Thái độ, cách ng xử, m c độ tự tin :………
h) Nắm vững những vấn đề liên quan đề tài :……… i) Tính sáng tạo khoa học của sinh viên :………
Tổng :……… Điểm trung bình của các cột điểm trên:……./10 (làm tròn đến 1 số lẻ)
Cán bộ chấm điểm
(Ký và ghi rõ họ tên)
Trang 6LỜI CẢM ƠN
Đồ án môn học tốt nghiệp nhằm củng cố và bổ sung lại những kiến thức về chuyên ngành điện – điện tử và các môn học khác có liên quan mà em đã được học trong khoảng thời gian ngồi trên giảng đường đại học Đồ án tốt nghiệp này đã giúp cho em biết vận dụng, khai thác sâu hơn vào lý thuyết Qua đó giúp cho em biết được khả năng xử lý tình huống trong thiết kế, đã củng cố vững hơn về kiến thức chuyên ngành
và kỹ năng làm việc nhóm sao cho đạt hiệu quả cao, là một kỹ năng rất cần thiết cho một kỹ sư sau khi ra trường
Để hoàn thành đồ án này, em đã nhận được rất nhiều sự giúp đỡ, hỗ trợ từ thầy cô, gia đình và bạn bè
Mặc dù em cũng đã cố gắng hết sức mình, nhưng trong một khoảng thời gian cho phép, cũng như hạn chế về mặt kiến thức của bản thân, nên đồ án không thể tránh khỏi nhiều thiếu sót Chính vì vậy, em rất mong nhận được sự góp ý của quý thầy, cô cũng như của bạn bè để có thể củng cố kiến thức của mình trước khi ra trường
Trước tiên chúng em xin chân thành gửi đến toàn thể quý thầy cô trong khoa lời cảm ơn chân thành nhất Những năm tháng trên giảng đường Đại học Thầy, Cô đã truyền đạt những kiến thức và kinh nghiệm quý báu, đó là hành trang vô giá mà chúng
em luôn mang bên mình trên con đường lập nghiệp
Em xin bày tỏ lòng biết ơn chân thành đến thầy Nguyễn Thanh Tuấn, người đã hướng dẫn, chỉ bảo tận tình và tạo mọi điều kiện thuận lợi để em hoàn thành tốt đồ án
Em xin cảm ơn gia đình, bạn bè những người luôn ủng hộ, động viên, tạo điều kiện thuận lợi, giúp đỡ cho em trong học tập cũng như trong cuộc sống
Trường ĐH Nha Trang, thang 05/2018
i h vi th c hi ề t i ĐẶNG TRIỀU THẦN
Trang 7LỜI CAM KẾT
- Tên đề tài : Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua internet sử dụng arduino
- GVHD : Th.S Nguyễn Thanh Tuấn
- Họ tên sinh viên : Đặng Triều Thần
- Mã số sinh viên : 56130727
- Địa chỉ sinh viên : KTX K5/413 – Đại Học Nha Trang – Khánh Hòa
- Số điện thoại liên lạc: 01655220686
- Email : than.dt.56ddt@ntu.edu.vn
- Ngày nộp khóa luận tốt nghiệp :
- Lời cam kết :”Tôi xin cam đoan khóa luận tốt nghiệp này là công trình do chính tôi nghiên c u và thực hiện Tôi không sao chép từ bất kì một bài viết nào đã đƣợc công bố mà không trích dẫn nguồn gốc, nếu có bất kì một sự vi phạm nào tôi xin chịu hoàn toàn trách nhiệm”
Nha Trang, Ngày ……Tháng ……Năm 2018
Ký tên
Trang 8TÓM TẮT ĐỒ ÁN
Đề tài:
THIẾT KẾ MẠCH KIỂM SOÁT VÀ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN DÂN
DỤNG QUA INTERNET SỬ DỤNG ARDUINO
Trong cuộc sống công nghiệp hóa hiện đại hóa, việc điều khiển các thiết bị điện
dân dụng trong gia đ nh một cách tối ưu nhất, điều khiển bằng điện thoại, laptop hoặc
bất kì một thiết bị thông minh có thể kết nối vào internet Chính vì nhu cầu này tác giả
đã lựa chọn đề tài “Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua
internet sử dụng arduino”.Qua đề tài tác giả đã tìm hiểu về công nghệ kết nối không
dây Wifi, kit thu phát Wifi ESP8266 nodeMCU, Arduino UNO và thiết kế thành công
mạch điều khiển và kiểm soát trạng thái của các thiết bị thông qua công nghệ kết nối
không dây wifi điều khiển bằng phần mềm Android được tác giả lập trình và thiết kế
trên app inventor, giao diện thân thiện với người dùng, dễ dàng tiếp cận và sử dụng
Ngoài việc điều khiển trên phần mềm Android tác giả có thể điều khiển trực tiếp bằng
cách truy cập vào cơ sở dữ liệu trung gian kết nối giữa thiết bị Android và sản phẩm
một cách dễ dàng Sản phẩm điều khiển được 8 kênh hoạt động riêng biệt với nhau,
thiết bị điện 1 pha điều khiển bằng cách nối trực tiếp vào mạch điều khiển, có thể điều
khiển thiết bị điện 3pha bằng cách điều khiển thông qua công tắc tơ Ch c năng hẹn
giờ điều khiển thiết bị hoạt động dựa trên thời gian thực được cập nhật tự động, cài đặt
thời gian một lần phù hợp để thể hẹn giờ cho các thiết bị có tính tuần hoàn ngày qua
ngày như ơm nước tưới cây vào mỗi buổi chiều
Tác giả đã thiết kế và xây dựng mô h nh điều khiển, qua nhiều lần kiểm tra
mạch hoạt động ổn định áp dụng phù hợp cho hộ gia đ nh vừa và nhỏ
Trang 9MỤC LỤC
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ ĐỀ TÀI TỐT NGHIỆP ii
PHIẾU CHẤM ĐIỂM ĐỒ ÁN TỐT NGHIỆP iii
PHIẾU CHẤM CỦA HỘI ĐỒNG BẢO VỆ ĐA/KLTN iv
LỜI CẢM ƠN v
LỜI CAM KẾT vi
TÓM TẮT ĐỒ ÁN vii
MỤC LỤC viii
DANH MỤC HÌNH ẢNH x
LỜI NÓI ĐẦU xii
1.1 Lý do chọn đề tài 1
1.2 Mục đích của đề tài 1
1.3 Đối tượng nghiên c u 1
1.4 Phương pháp nghiên c u 2
Chương 2: TÌM HIỂU THIẾT BỊ GIAO TIẾP NGOẠI VI 3
2.1 Tìm hiểu về công nghệ không dây wifi 3
2.1.1 Khái niệm 3
2.1.2 Lịch sử phát triển và một số chuẩn kết nối wifi phổ biến 3
2.1.3 Đặc điểm của công nghệ 5
2.1.4 Nguyên lý hoạt động 6
2.1.5 Các vấn đề bảo mật trong công nghệ wifi 7
2.2 Tìm hiểu về kit RF thu phát wifi ESP8266 nodeMCU 7
2.2.1 Giới thiệu 7
2.2.2 Đặc điểm kĩ thuật 8
2.2.3 Sơ đồ chân và ch c năng 9
2.3 Giới thiệu về KIT mạch Arduino 9
2.3.1 Giới thiệu về Arduino 9
2.3.2 Giới thiệu về phần mềm lập trình Arduino IDE 14
2.3.3 Cập nhật thư viện để lập trình cho NodeMCU ESP8266 trên Arduino 16
Chương 3: THIẾT KẾ HỆ THỐNG 19
Trang 103.3 Giải thuật trên Arduino 22
3.4 Giải thuật trên ESP8266 23
3.5 Tạo cơ sở dữ liệu Firebase 24
3.5.1 Giới thiệu về Firebase 24
3.5.2 Tạo cơ sở dữ liệu Firebase 25
3.6 Thiết kế giao diện phần mềm Android 27
3.6.1 Giới thiều về App Inventor(AI2) 27
3.6.2 Tạo project mới trên App Inventor 27
3.6.3 Tạo giao diện cho phần mềm Android 29
3.6.4 Chương tr nh phần mềm Android 31
3.6.5 Xuất chương tr nh ra file apk cài đặt vào điện thoại 38
3.7 Tổng quan về linh kiện sử dụng trong mạch 40
3.7.1 Module giảm áp LM2596 40
3.7.2 Điện trở 41
3.7.3 Led 42
3.7.4 Relay 42
3.7.5 IC ULN2803 43
3.7.6 Nút nhấn 43
3.8 Thi công mạch 44
CHƯƠNG 4: MÔ HÌNH THỰC NGHIỆM ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 46
4.1 Mô hình thực nghiệm và đánh giá hệ thống 46
4.2 Kết luận 47
4.3 Đề xuất hướng phát triển 48
TÀI LIỆU THAM KHẢO 49
PHỤ LỤC CODE 50
Chương tr nh Arduino 50
Chương tr nh ESP8266 52
Trang 11DANH MỤC HÌNH ẢNH
Hình 2.1 : Thiết bị điện tử kết nối với nhau thông qua wifi 3
Hình2.2 : Lịch sử phát triển của công nghệ wifi 5
H nh2.3 : Sơ đồ nguyên lý hoạt động của wifi 6
H nh2.4 : Các phương pháp ảo mật 7
Hình2.5 : NodeMCU ESP8266 8
Hình2.6 : Sơ đồ chân NodeMCU esp8266 9
Hình 2.8 : Thông số kĩ thuật của Arduino 10
Hình 2.9: ATMEGA4328-PU 11
Hình 2.10: Các chân năng lượng 11
Hình 2.11: Các cổng vào/ ra 12
Hình 2.12: Jack nguồn 13
Hình 2.13: Cổng USB 14
Hình 2.14:Giao diện chính Arduino IDE 14
Hình 2.15: Arduino Toolbar 14
Hình 2.16: IDE Menu 14
Hình 2.17: Ch c năng IDE Menu 15
Hình 2.18: Cổng kết nối khi gắn board 16
Hình 2.19: Cập nhật thư viện cho esp8266 16
Hình 2.20 :Chọn Boards để cài thư viện 17
Hình 2.21 : Tiến hành cài đặt thư viện 17
Hình 2.22 : Chọn oard để lập trình cho ESP8266 18
H nh 3.1 : Sơ đồ khối hệ thống 19
H nh 3.2 : Sơ đồ nguyên lý hệ thống 21
Hình 3.3 : Giải thuật trên Arduino 22
Hình 3.4 : Giải thuật trên ESP8266 23
H nh 3.5 : Đăng nhập để tạo cơ sở dữ liệu Firebase 25
Hình 3.6 : Bảng điều khiển 25
Hình 3.7 : Tạo project mới để lưu trữ dữ liệu 26
Hinh 3.8 : Chọn hệ điều hành 26
Trang 12Hình 3.10 : Biểu tượng phần mềm App Inventor (AI2 ) 27
H nh 3.11 : Đăng nhập để tạo App 28
Hình 3.12 : Liên kết AI2 với tài khoảng Gmail 28
H nh 3.13 : Danh sách các project đã tạo 28
H nh 3.14 : Lưu tên cho project 29
Hình 3.15 : Lấy biểu tượng để kết nối với Fire ase đã tạo 29
Hình 3.16: Cửa sổ thuộc tính của Firebase 30
Hình 3.17 : Xuất file apk cài đặt trên điện thoại 38
H nh 3.18 : Mã code cài đặt 39
Hình 3.19 : Giao diện phần mềm MIT AI2 39
Hình 3.20 : Giao diện chính của phần mềm 40
Hình 3.21 : Module giảm áp LM2596 41
H nh 3.22 : Đầu vào/ ra của module LM2596 41
H nh 3.23: Điện trở và kí hiệu 41
Hình 3.24: LED 42
H nh 3.25: Rơle 42
Hình 3.26 : IC ULN2803 43
Hình 3.27 : Nút nhấn 44
Hình 3.28 : Mạch in 44
Hình 3.29 : Mạch thực tế 45
Hình 4.1: Mô hình hoạt động 46
Hình 4.2:Giao diện hoạt động trên Android 46
Trang 13LỜI NÓI ĐẦU
Ngày nay, thông qua những ng dụng của khoa học kỹ thuật tiên tiến, thế giới của chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn rất nhiều Sự phát triển của kỹ thuật điện tử đã tạo ra hàng loạt thiết bị ngày càng thông minh, tiện dụng, hiệu quả và thân thiện với môi trường người d ng
Là một nước đang phát triển, vấn đề ng dụng khoa học công nghệ trong thời k công nghiệp hóa, hiện đại hóa như hiện nay lại trở thành một yêu cầu cấp ách và cần thiết hơn ao giờ hết Chính v vậy, trong những năm qua, nước ta đã chú trọng đầu tư rất nhiều đến các ngành công nghệ cao, đặc biệt là trong lĩnh vực điện tử, tự động hóa
Và thực tế hơn, một trong những ng dụng đó chính là việc tạo ra được những mạch điện tử thông minh, có tính ng dụng cao, đồng thời kết hợp với việc điều khiển trực tiếp trên board mạch c ng như gián tiếp thông qua giao diện được lập trình và cài đặt trên smartphone Điều này không chỉ mang lại nhiều lợi ích thiết thực hiện thời, mà còn góp phần không nhỏ cho việc hiện thực hóa những ý tưởng lớn hơn V vậy mà em
đã quyết định chọn đề tài “Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân dụng qua internet sử dụng arduino”
Tuy đã cố gắng thực hiện đồ án trong sự nghiêm túc và trách nhiệm nhất, nhưng
do điều kiện về kiến th c c ng như khả năng nghiên c u còn hạn chế nên không thể tránh khỏi những sai phạm và thiếu sót Rất mong nhận được những ý kiến đóng góp tích cực từ Thầy Cô và các ạn
Trang 14Chương 1: GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Hiện nay, xã hội phát triển mạnh mẽ, kỹ thuật ngày càng hiện đại nên nhu cầu
về trao đổi thông tin giải trí, nhu cầu về điều khiển các thiết bị từ xa,…ngày càng cao
Và những hệ thống dây cáp ph c tạp lại không thể đáp ng nhu cầu này, nhất là ở những khu vực chật hẹp, những nơi xa xôi, trên các phương tiện vận chuyển,… V vậy công nghệ không dây đã ra đời và phát triển mạnh mẽ, tạo rất nhiều thuận lợi cho con người trong đời sống hằng ngày
Trong những năm gần đây công nghệ truyền nhận dữ liệu không dây đang có những ước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh Hiện nay, có nhiều công nghệ truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth, NFC,…Trong đó, wifi
là một trong những công nghệ được phát triển từ lâu và luôn được cải tiến để nâng cao tốc độ c ng như khả năng ảo mật
Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao Việc nghiên c u và thiết kế một bộ sản phẩm điều khiển thiết bị không dây
có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩm được sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển thông minh
Do đó, em quyết định thực hiện đề tài: “Thiết kế mạch kiểm soát và điều khiển thiết bị điện dân qua internet sử dụng arduino” Đề tài này ng dụng công nghệ kết
nối không dây wifi phổ biến trên nhiều thiết bị
1.2 Mục đích của đề tài
Thiết kế chế tạo thành công mạch điều khiển và kiểm soát các thiết bị điện trong nhà sử dụng kết nối wifi
1.3 Đối tượng nghiên cứu
Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn có và tìm kiếm thông tin liên quan, chúng em xác định các đối tượng cần nghiên c u là:
Trang 15Vi điều khiển sử dụng là ATMEGA328P-PU
NodeMCU esp8266 : các thông số kỹ thuật, nguyên lý hoạt động của module, kết nối với vi điều khiển là Arduino và được điều khiển qua app để điều khiển các thiết
bị điện dân dụng hằng ngày
1.4 Phương pháp nghiên cứu
- Nghiên c u lý thuyết liên quan
- Tham khảo tài liệu: các đề tài liên quan, tìm kiếm thông tin trên Internet
- Tự tiến hành thiết kế ,thi hành mô phỏng trên máy tính
- Viết chương tr nh điều khiển và thực hiện nạp thực nghiệm trên phần
c ng
- Xây dựng mô hình thực nghiệm kiểm ch ng
Trang 16Chương 2: TÌM HIỂU THIẾT BỊ GIAO TIẾP NGOẠI VI
2.1 Tìm hiểu về công nghệ không dây wifi
Hình 2.1: Thiết bị i n tử kết nối với nhau thông qua wifi
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
chủ yếu hoạt động trên ăng tầng 54Mbps và có tín hiệu mạnh nhất trong khoảng 100 feed gần 31m , được cài đặ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
2.1.2 Lịch sử phát triển và một số chuẩn kết nối wifi phổ biến
Một số chuẩn kết nối wifi phổ biến:
Chuẩn 802.11:
- IEEE 802.11 là một tập các thuần của tổ ch c IEEE (Institute of Electrical and Electronics Engineers) bao gồm các đặc điểm kĩ thuật liên quan đến hệ thống mạng không dây.Chuẩn IEEE 802.11 mô tả một giao tiếp tuyền qua không khí sử dụng sóng vô tuyến để truyền nhận tín hiệu
Trang 17giữa một thiết bị không dây với tổng đài hoặc điểm truy cập hoặc giữa 2 hay nhiều thiết bị với nhau
- Năm 1997 IEEE giới thiệu chuẩn mạng không dây đầu tiên và đặt tên nó
là 802.11 với tốc độ tối đa 2M ps và ăng tần 2.4 Ghz
Chuẩn 802.11b : Tần số 2.4 GHz, tốc độ xử lý 11 Mbps
Chuẩn 802.11a : Tần số 5 GHz, tốc độ xử lý 54 Mbps
5 Ghz nên tránh bị nhiễu từ các thiết bị khác.Tuy nhiên phạm vi sẽ hẹp hơn (40m-100m) và khó xuyên qua các vật cản như tường.Chuẩn này được sử dụng nhiều trong doanh nghiệp vì giá thành khá cao
Chuẩn 802.11g : Tần số 2.4 GHz, tốc độ xử lý 54 Mbps
- Nhược điểm: Đắt hơn 802.11 và có thể bị nhiễu từ các thiết bị cùng ăng tần
Chuẩn 802.11n : Tần số 2.4 GHz, tốc độ xử lý 300 Mbps(phạm vi 100m –
250m)
với người tiêu dùng.Tốc độ nhanh phạm vi tín hiệu tốt, khả năng chịu đựng tốt hơn từ việc xuyên nhiễu các thiết bị bên ngoài
thể bị nhiễu bởi 802.11g ở gần
Wifi Hotspot: Đây là tính năng mà thiết bị của bạn có thể phát Wifi cho các
thiết bị điện thoạt, laptop, máy tính bảng khác.Nói cách khác tính năng này iến thiết bị của bạn thành một Modem Wifi
Sự khác nhau giữa 2.4 MHz và 5 GHz:
Về cơ ản, tần số thấp hơn sẽ truyền đi xa hơn, do đó chuẩn Wifi tần số 2.4GHz
sẽ được truyền đến các thiết bị có khoảng cách xa hơn, tuy nhiên về tốc độ truyền tải sẽ không bằng tần số 5GHz Người dùng sẽ tùy theo nhu cầu sử dụng
để lựa chọn cho mình chuẩn kết nối phù hợp
Trang 18Lịch sử phát triển:
Hình 2.2: Lịch sử phát triển của công ngh wifi
2.1.3 Đặc điểm của công nghệ
– Tiện lợi: Mạng cho phép người dùng truy xuất tài nguyên mạng ở bất kỳ địa điểm nào trong khu vực được triển khai Đặc biệt với lượng người sử dụng laptop và các thiết bị di động ngày càng tăng như hiện nay th đó rõ ràng là một điểm cộng lớn
Trang 19– Khả năng mở rộng: Có thể dễ dàng mở rộng gia tăng số người dùng mà không phải tăng thêm ộ chia và cáp mất thời gian
2.1.4 Nguyên lý hoạt động
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 hay gọi là “ ộ 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ô tuyế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 như nh thường
Hình 2.3 ơ ồ nguyên lý hoạt ộng của wifi
Trang 202.1.5 Các vấn đề bảo mật trong công nghệ wifi
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 các bạn 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 nhé, với mỗi một
tránh thiết lập sai đường truyền
2.2 Tìm hiểu về kit RF thu phát wifi ESP8266 nodeMCU
2.2.1 Giới thiệu [4]
Kít ESP8266 là kít phát triển dựa trên nền chíp Wifi SoC ESP8266 với thiết kế
dễ dàng sửa dụng vì tích hợp sẵn mạch nạp sử dụng chíp CP2102 trên borad Bên trong ESP8266 có sẵn một lõi vi sử lý vì thế bạn có thể trực tiếp lập trình cho ESP8266 mà không cần thêm bất kì con vi sử lý nào nữa Hiện tại có hai ngôn ngữ có thể lập trình cho ESP8266, sử dụng trực tiếp phần mềm IDE của Arduino để lập trình với bộ thư viện riêng hoặc sử dụng phần mềm node MCU
Trang 21Hình 2.5: NodeMCU ESP8266
2.2.2 Đặc điểm kĩ thuật
- IC chính: ESP8266 Wifi SoC
- Phiên ản firmware: NodeMCU Lua
- Chip nạp và giao tiếp UART: CP2102
- GPIO tương thích hoàn toàn với firmware Node MCU
- Cấp nguồn: 5VDC MicroUSB hoặc Vin
- GIPO giao tiếp m c 3.3VDC
- Tích hợp Led áo trạng thái, nút Reset, Flash
- Tương thích hoàn toàn với tr nh iên dịch Arduino
- Kích thước: 25 x 50 mm
Trang 222.2.3 Sơ đồ chân và chức năng
Hình 2.6 ơ ồ chân NodeMCU esp8266
Các chân tín hiệu là GPI0X, các chân này vừa có thể làm chân analog vừa có thể làm chân digital
2.3 Giới thiệu về KIT mạch Arduino
2.3.1 Giới thiệu về Arduino
Hình 2.7: Module Arduino
Trang 23Thông số kỹ thuật của Arduino: [2]
Vi điều khiển ATmega328 họ 8 bit
Đ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 I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10 it)
Dòng tối đa trên mỗi chân I/O 30 mA
Hình 2.8: Thông số kĩ thuật của Arduino
Ch c năng của từng bộ phận của Arduino [1]
Trang 24Hình 2.9: ATMEGA4328-PU
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8 bit AVR là ATmega8, ATmega168, ATmega328 Vi điều khiển này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD
Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển cung cấp cho người d ng:
32KB bộ nhớ Flash: những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader
2KB cho SRAM (Static Random Access Memory): giá trị các biến khai báo khi
lập trình sẽ lưu ở đây Khai áo càng nhiều biến thì càng cần nhiều bộ nhớ RAM
EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ c ng mini – nơi có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Các chân năng lượng:
Hình 2.10 Các châ ă g lượng
Trang 25GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi dùng các
thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, khi nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo
ở chân này Và dĩ nhiên nó 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
RESET: việc nhấn nút Reset trên oard để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
Các cổng vào/ ra:
Hình 2.11: Các cổng vào/ ra
Arduino UNO có 14 chân digital d ng để đọc hoặc xuất tín hiệu Chúng chỉ có 2
m c điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định th các điện trở này không được kết nối).Có các ch c năng đặc, một số chân digital biệt như sau:
Chân Serial: 0 (RX) và 1 (TX): d ng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối luetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ
phân giải 8bit (giá trị từ 0 → 28-1 tương ng với 0V → 5V) ằng hàm analogWrite()
Trang 26Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ m c 0V đến 5V thay vì chỉ cố định ở m c 0V và 5V như những chân khác
Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các
ch c năng thông thường, 4 chân này còn d ng để truyền phát dữ liệu bằng giao th c SPI với các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board,
bạn 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 bạn cấp điện áp 2.5V vào chân này thì bạn có thể d ng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác
Jack nguồn: để chạy Arduino thì có thể lấy nguồn từ cổng USB ở trên máy tính
nhưng nếu không có thì ta có thể dùng nguồn này khoảng 9v đến 12v
Hình 2.12: Jack nguồn
Cổng USB : đây là cổng giao tiếp để ta upload code từ PC lên vi điểu khiển
Đồng thời nó c ng là giao tiếp serial để truyền dữ liệu giữa vi điểu khiển với máy tính Đây c ng là nguồn cấp cho Arduino
Trang 27Hình 2.13: Cổng USB
2.3.2 Giới thiệu về phần mềm lập trình Arduino IDE
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho Arduino
Trang 28Bao gồm các nút lệnh menu (File, Edit, Sketch, Tools, Help) Phía dưới là các icon cho phép sử dụng nhanh các ch c năng thường dùng của IDE được miêu tả như sau:
Hình 2.17: Chức ă g IDE Me u
2.3.2.3 Vùng viết chương trình
Bạn sẽ viết các đoạn mã của mình tại đây Tên chương tr nh của bạn được hiển
thị ngay dưới dãy các Icon, ở đây nó tên là “Blink” Để ý rằng phía sau tên chương trình có một dấu “§” Điều đó có nghĩa là đoạn chương tr nh của bạn chưa được lưu
lại
2.3.2.4 Vùng thông báo (debung)
Những thông báo từ IDE sẽ được hiển thị tại đây Để ý rằng góc dưới cùng bên phải hiển thị loại board Arduino và cổng COM được sử dụng Luôn chú ý tới mục này bởi nếu chọn sai loại board hoặc cổng COM, bạn sẽ không thể upload được code của mình
2.3.2.5 Một số lưu ý
Khi lập trình, các bạn cần chọn port (cổng kết nối khi gắn board vào) và board (tên board mà bạn sử dụng) Giả sử, bạn đang d ng mạch Arduino Uno, và khi gắn board này vào máy tính bằng cáp USB nó được nhận là COM4 thì bạn chỉnh như thế này là có thể lập tr nh được
Trang 29Hình 2.18: Cổng kết nối khi gắn board
2.3.3 Cập nhật thư viện để lập trình cho NodeMCU ESP8266 trên Arduino
Để tiến hành cài đặt thư viện và ch c năng nạp code cho IDE làm như sau:
2.3.3.1 Cập nhật thư viện
Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm
đường link sau vào :
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Click OK để chấp nhận
Trang 30Tiếp theo vào Tool→Board→Boards Manager
Hình 2.20: Chọ Boards ể c i thư vi n
đợi một lát để chương tr nh t m kiếm Ta kéo xuống và click vào ESP8266 by
ESP8266 Community, click vào Install Chờ phần mềm tự động download và cài đặt
Hình 2.21: Tiế h h c i ặt thư vi n
2.3.3.2 Chọn board để lập trình cho ESP8266
Kết nối mudule USB-to-UART vào máy tính Vào Tool→Board→NodeMCU
1.0(ESP – 12E module), chọn cổng COM tương ng với module USB-to-UART
tương ng
Trang 31Hình 2.22: Chọ board ể lập trình cho ESP8266
Trang 32Chương 3: THIẾT KẾ HỆ THỐNG
3.1 Sơ đồ khối hệ thống
Hình 3.1 ơ ồ khối h thống
3.2 Sơ đồ nguyên lý của hệ thống
Nguyên lý hoạt động của hệ thống:
- Đầu tiên, khởi động phần mềm Android "Điều khiển thiết bị" Đảm bảo điện thoại đã kết nối wifi và vào được internet, phần mềm sẽ tự động kết nối với cơ sở
dữ liệu Firebase (vì khi viết chương tr nh đã cài đặt và kết nối sẵn với cơ sở dữ liệu
Firebase) và cập nhật trạng thái thiết bị vào màn h nh điều khiển
Trang 33- Phần mềm gồm 8 nút nhấn để bật tắt 8 thiết bị điện gia dụng trong nhà
và khu vực d ng để nhập thời gian hẹn giờ bật tắt thiết bị.Ngoài ra còn có 8 nút nhấn
để điều khiển bằng tay phòng trường hợp điện thoạt gặp sự cố
- Khi mở (tắt) thiết bị bằng phần mềm Android: Khi nhấn vào một button
thì phần mềm android sẽ gửi gói tin ch a lệnh mở (tắt) thiết bị tương ng(thiết bị đang
mở sẽ gửi gói tin tắt và ngược lại) thông qua internet lưu trữ tại cơ sở dữ liệu Firebase đồng thời button vừa nhấn sẽ chuyển trạng thái cho biết thiết bị đang mở (tắt) Lúc này Module ESP8266 sẽ kiểm tra, nhận gói tin và truyền về module Arduino để đưa tín hiệu ra đóng các Opto cấp điện cho các Relay đóng (mở)
- Khi mở (tắt) thiết bị bằng nút nhấn: khi nhấn vào một nút ESP8266 sẽ
kiểm tra xem thiết bị đó đang mở hay tắt.Nếu thiết bị đang mở ESP8266 sẽ gửi gói tập tin tắt thiết bị sang Arduino để điều khiển thiết bị tương ng và ngược lại.Đồng thời ESP8266 sẽ gửi gói tập tin vừa thực hiện lên lưu trữ tại cơ sở dữ liệu Firebase.Phần
mềm Android sẽ tự động cập nhật cho biết trạng thái của thiết bị hiện tại
- Khi hẹn giờ thiết bị: Định dạng thời gian 24h, hẹn theo giờ phút
Hẹn giờ bật tắt thiết bị: Nhập thời gian vào khung hẹn giờ, bấm nút gửi phần mềm Android sẽ gửi và lưu trữ tại cơ sở dữ liệu Firebase ESP8266 sẽ kiểm tra khi đến thời gian bật (tắt) ESP8266 sẽ gửi tập tin bật (tắt) qua Arduino để điều khiển thiết bị đồng thời gửi trạng thái bật (tắt) lên cơ sở dữ liệu Fire ase để phần mềm Android cập nhật trạng thái của thiết bị
Trang 34Sơ đồ nguyên lý:
Hình 3.2 ơ ồ nguyên lý h thống
Trang 353.3 Giải thuật trên Arduino
Hình 3.3: Giải thuật trên Arduino
Trang 363.4 Giải thuật trên ESP8266
Hình 3.4: Giải thuật trên ESP8266
star
Kết nối với cơ sở dữ liệu
Firebase
Lấy dữ liệu hiện tại của
cơ sở dữ liệu Firebase
Arduino điều khiển thiết bị
Nhấn nút
Kiểm tra trạng thái nút hiện tại
Đƣa ra lệnh thực hiện
Hẹn giờ thiết bị Cập nhật trạng thái vừa thực hiện
Trang 373.5 Tạo cơ sở dữ liệu Firebase
3.5.1 Giới thiệu về Firebase
Theo Wikipedia, th “Firebase is a mobile and web application platform with
tools and infrastructure designed to help developers build high-quality apps“ Tôi dịch
là “Firebase là một nền tảng ng dụng di động và we với các công cụ và hạ tầng
được thiết kế để giúp các lập tr nh viên xây dựng các ng dụng chất lượng cao“ Nói ngắn gọn, thay v trực tiếp cung cấp các ng dụng, họ cung cấp các dịch vụ nền tảng cho các lập tr nh viên, chính là các ạn, sử dụng để xây dựng ng dụng c ng như hỗ trợ các ạn tối ưu hóa, tối đa hóa ng dụng của m nh Với nhiều dịch vụ chất lượng cao đi kèm m c giá phải chăng, Fire ase đã và đang, không chỉ là sự lựa chọn hàng đầu cho các lập tr nh viên đơn thân (single dev) hay các công ty khởi nghiệp (start ups), mà các công ty, tổ ch c lớn có tên tuổi c ng sử dụng “Ngọn lửa” để xây dựng các tính năng, các chương tr nh mới, c ng như chuyển đổi các dịch vụ trước đây sang
hệ thống của Fire ase Chẳng hạn như Shazam, Fa ulous và cả chính Google nữa, khi nền tảng nhắn tin Allo được xây dựng trên nền tảng Fire ase Realtime Data ase
Về mặt lịch sử, Fire ase (tiền thân là Evolve) trước đây là một start up được thành lập vào năm 2011 ởi Andrew Lee và James Tamplin Ban đầu, Evolve chỉ cung cấp cơ sở dữ liệu để các lập tr nh viên thiết kế các ng dụng chat (và hiện tại th để làm quen với realtime d th ạn c ng làm ng dụng chat đó thôi) Tuy nhiên, họ nhanh chóng nhận ra tiềm năng sản phẩm của m nh khi nhận thấy các khách hàng không sử dụng CSDL để làm ng dụng chat, mà thay vào đó, để lưu các thông tin như game progress Bộ đôi Lee và Tamplin quyết định tách mảng realtime ra để thành lập một công ty độc lập – chính là Firebase – vào tháng 4 năm 2012 Sau nhiều lần huy động vốn và gặt hái được những thành công nổi ật, Fire ase đã được Google để ý Vào tháng 10 năm 2014, Fire ase gia nhập gia đ nh Google
Cả Google và Fire ase đều như hổ mọc thêm cánh Fire ase có điều kiện để phát triển thần tốc, mở rộng số lượng các dịch vụ con, còn Google có được một đội
ng nhân lực chất lượng cao, năng động, c ng như cơ sở hạ tầng và sự hiệu quả mà các dịch vụ của Fire ase mang lại, mà không phải xây dựng lại từ đầu Hiện tại, Google đã chuyển các dịch vụ nền tảng hỗ trợ các lập tr nh viên ên ngoài về cho Fire ase quản lí, chẳng hạn như Cloud Messaging, AdMo và Analytics
Trang 38Fire ase, theo hướng đi của Google, chính th c hỗ trợ Android, iOS và We Thực tế, macOS c ng được hỗ trợ v macOS chia sẻ nhiều dòng code với iOS, song v Google và Fire ase muốn sử dụng we cho ng dụng desktop thay vì native, nên có khá ít tài liệu chính th c nói về Fire ase cho macOS, c ng như các thư viện cho macOS có thể kém ch c năng và không ổn định lắm Còn về Windows, hiện tại tôi chưa thấy họ lên tiếng nào về việc sẽ chính th c phát hành thư viện cho đ a con của Microsoft, nên nếu các ạn muốn làm ng dụng cho Windows (UWP) th chỉ nên (và
c ng chỉ có mỗi con đường) làm we -based native apps mà thôi
3.5.2 Tạo cơ sở dữ liệu Firebase
Bước 1: Truy cập trang web https://firebase.google.com
Bước 2: Đăng nhập bằng tài khoản google
Hình 3.5 Đă g hập ể tạo cơ sở dữ li u Firebase
Bước 3: Bên góc trái màn hình kick vào biểu tượng
Hình 3.6: Bả g iều khiển
Trang 39Bước 4: Tiến hành tạo project mới
- Nhập tên project cần lưu vào ô Project name
- Lựa chọn quốc gia ở ô Country
Hình 3.7: Tạo project mới ể lưu trữ dữ li u
Bước 5: Chọn hệ điều hành được kết nối
Hinh 3.8: Chọn h iều hành
Sau khi tạo xong sẽ hiện ra bảng điều khiển và một liên kết để truy cập vào cơ
sở dữ liệu Firebase:
Trang 40Hình 3.9: Liên kết ể truy cập cơ sở dữ li u Firebase
Dùng liên kết này để cài đặt cấu hình cho ESP8266 và lập trình phần mềm Android
3.6 Thiết kế giao diện phần mềm Android
3.6.1 Giới thiều về App Inventor (AI2).
Hình 3.10: Biểu tượng phần mềm App Inventor (AI2 )
App Inventor là một ng dụng trên nền we giúp ạn có thể tạo ng dụng Android Ban đầu được cung cấp ởi Google, hiện tại được duy tr ởi Viện Công nghệ Massachusetts (MIT)
Nó có giao diện thân thiện với các đối tượng kéo thả dễ dàng
3.6.2 Tạo project mới trên App Inventor
Bước 1: Truy cập vào trang web ai2.appinventor.mit.edu