Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng, được các hãng điện tử nổi
Trang 1ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN - ĐIỆN TỬ
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA WIFI
TRÊN ĐIỆN THOẠI ANDROID
GVHD: ThS NGUYỄN VĂN HIỆP SVTH: TRẦN HOÀNG HÀ
MSSV: 10901005
S K L 0 0 4 1 6 5
Trang 2BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP
MSSV : 10901005
Trang 3Họ và tên: Trần Hoàng Hà MSSV: 10901005
Tel: 0937031059 Email: 10901005@student.hcmute.edu.vn
Họ và tên: Từ Hoàng Anh Tuấn MSSV: 10901024
Tel: 0983903944 Email: 10901024@student.hcmute.edu.vn
2 Thông tin đề tài
Tên của đề tài: ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA WIFI TRÊN ĐIỆN THOẠI
ANDROID
Mục đích của đề tài:
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Viễn Thông, Khoa Điện - Điện
Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Thời gian thực hiện: Từ ngày 28/09/2015 đến 22/01/2016
3 Các nhiệm vụ cụ thể của đề tài
- Thiết kế và thực hiện board mạch để điều khiển, giám sát thiết bị điện trong nhà có
5 ngõ ra với tổng chịu tải đến 10A-220VAC
- Thiết kế và thực hiện ứng dụng điều khiển, giám sát thiết bị điện chạy trên điện
thoại android
- Điều khiển và giám sát thiết bị qua mạng wifi nội bộ
4 Lời cam đoan của sinh viên
Chúng tôi – Trần Hoàng Hà và Từ Hoàng Anh Tuấn cam đoan ĐATN là công trình nghiên cứu của bản thân chúng tôi dưới sự hướng dẫn của thạc sỹ Nguyễn Văn Hiệp Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công
Trang 5Khoa Điện - Điện Tử Độc lập - Tự do - Hạnh phúc
Bộ Môn Điện Tử Công Nghiệp
Tp Hồ Chí Minh, ngày 21 tháng 9 năm 2015
Tên đề tài: ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA WIFI TRÊN ĐIỆN THOẠI ANDROID
Tuần Ngày Nội dung Xác nhận GVHD
điều khiển
board
Trang 6Lời đầu tiên chúng em xin chân thành cảm ơn quý thầy cô trường Đa ̣i Ho ̣c Sư Phạm Kỹ Thu ật Thành Phố Hồ Chí Minh đã da ̣y dỗ và ta ̣o điều kiê ̣n để chúng em có thể hoàn thành tốt khoá ho ̣c
Xin chân thành cảm ơn Khoa Điện – Điện Tử đã hỗ trợ thiết bị và vật tư giúp chúng em được học và thực tập trong môi trường đầy đủ và tiện nghi nhất
Chúng em xin chân thành cảm ơn quý thầy cô trong bộ môn Điện Tử Công Nghiệp đã trang bị cho chúng em kiến thức và giúp đỡ chúng em giải quyết những khó khăn trong quá trình làm đồ án
Đặt biệt chúng em xin chân thành cảm ơn Thầy hướng dẫn, Th.S Nguyễn Văn Hiệp đã tận tình giúp đỡ trong quá trình lựa chọn đề tài và hỗ trợ chúng em trong quá trình thực hiện đồ án Thầy đã tâ ̣n tình giúp đỡ, chỉ ra những thiếu xót và cho những lời khuyên, chia sẻ những kinh nghiêm quý báu giúp chúng em hoàn thành t ốt đồ án tốt nghiê ̣p
Tuy đã cố gắng nhưng do chúng em còn thi ếu xót về kiến thức cũng như kinh nghiê ̣m thực tế n ên đề tài còn ha ̣n chế Kính mong nh ận được s ự thông cảm và góp ý chân tình của quý thầy cô
Chúng em xin chân thành cảm ơn
Trang 7chung và công nghệ điện tử nói riêng, việc sử dụng điện thoại thông minh để hỗ trợ các công việc trong cuộc sống hằng ngày là hết sức cần thiết và là nhu cầu của mỗi chúng
ta
Để đảm bảo tính an toàn cho các thiết bị điện gia dụng, tiết kiệm chi phí sử dụng, phòng ngừa cháy nổ do chập điện gây ra, chúng ta cần có một cách thức để điều khiển các thiết bị điện từ xa giúp kiểm soát các thiết bị điện trong nhà hoặc các dây chuyền sản xuất, các robot hoạt động trong những môi trường nguy hiểm một cách dễ dàng mà không bị giới hạn về khoảng cách địa lý
Trong những thập niên gần đây, bưu chính viễn thông đã phát triển mạnh mẽ, đặc biệt là mạng lưới Internet không dây ngày càng trở nên phổ biến với tốc độ truy cập được nâng cao và chi phí hợp lý, điển hình như việc tập đoàn Facebook phóng vệ tinh nhân tạo phát wifi miễn phí cho người dân ở châu Phi, thì việc sử dụng mạng không dây để kết nối và điều khiển càng trở nên dễ dàng và tiện lợi hơn
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng, được các hãng điện tử nổi tiếng thế giới như Samsung, Sony, Motorola, LG… sử dụng trên các dòng sản phẩm của mình Do là nền tảng điện thoại thông minh phổ biến nhất thế giới và có mã nguồn mở nên việc lập trình và viết ứng dụng trên Android để mở rộng các chức năng của thiết bị trở nên dễ dàng và hiệu quả
Từ những lí do và điều kiện kể trên cùng với những kiến thức nền tảng về điện
tử cơ bản, vi xử lý, vi điều khiển, ngôn ngữ lập trình, mạch điện… nhóm chúng em đã
áp dụng để xây dựng đề tài đồ án tốt nghiệp: “Điều khiển thiết bị điện qua wifi trên điện thoại Android”
Trang 8DANH SÁCH HÌNH ii
CHƯƠNG 1 TỔNG QUAN 2
1.1 Tổng Quan Về Lĩnh Vực Nghiên Cứu 2
1.2 Mục Đích Của Đề Tài 2
1.3 Nhiệm Vụ Và Giới Hạn Của Đề Tài 2
1.3.1 Nhiệm Vụ 2
1.3.2 Giới Hạn 3
1.4 Phương Pháp Nghiên Cứu 3
1.5 Tóm Tắt Đề Tài 3
CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 5
2.1 BÀI TOÁN THIẾT KẾ 5
2.2 THIẾT KẾ PHẦN CỨNG 5
2.2.1 SƠ ĐỒ KHỐI PHẦN CỨNG 5
2.2.2 THIẾT KẾ CHI TIẾT PHẦN CỨNG 7
2.2.3 SƠ ĐỒ NGUYÊN LÝ MẠCH ĐIỀU KHIỂN 12
2.3 THIẾT KẾ PHẦN MỀM TRÊN ĐIỆN THOẠI ANDROID 14
2.3.1 LẬP TRÌNH MẠNG TRONG ANDROID 14
2.3.2 GIAO DIỆN ĐIỀU KHIỂN TRÊN ANDROID 16
2.4 THIẾT KẾ PHẦN MỀM VI ĐIỀU KHIỂN 19
2.4.1 LƯU ĐỒ CHƯƠNG TRÌNH 19
2.4.2 GIẢI THÍCH CHƯƠNG TRÌNH CON 21
2.5 TẠO BẢNG TÍNH GOOGLE 26
CHƯƠNG 3 KẾT QUẢ THI CÔNG 30
3.1 KẾT QUẢ 30
3.1.1 ỨNG DỤNG ĐIỆN THOẠI ANDROID 30
3.1.2 MẠCH ĐIỀU KHIỂN 32
3.1.3 MẠCH THỰC TẾ 36
Trang 93.2.2 BỘ THIẾT BỊ 38
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 39
4.1 KẾT LUẬN 39
4.2 HƯỚNG PHÁT TRIỂN 39
TÀI LIỆU THAM KHẢO 40
PHỤ LỤC 41
Trang 11ii
Hình 2.1: Sơ đồ khối hệ thống 6
Hình 2.2: Vi điều khiển PIC18F4550 8
Hình 2.3: Mặt trên module ESP8266 8
Hình 2.4: Mặt dưới module ESP8266 9
Hình 2.5: MOC3020 10
Hình 2.6: TRIAC BTA12 10
Hình 2.7: Sơ đồ khối nguồn 11
Hình 2.8: Module nguồn 11
Hình 2.9: Sơ đồ nguyên lý mạch điều khiển 12
Hình 2.10: Sơ đồ nguyên lý khối điều khiển tải 13
Hình 2.11: Phác thảo giao diển trên điện thoại Android 17
Hình 2.12: Lưu đồ giải thuật 18
Hình 2.13: Lưu đồ chương trình Vi điều khiển 20
Hình 2.14: Trang Google drive 27
Hình 2.15: Trang Google biểu mẫu 27
Hình 2.16: Trang Google biểu mẫu đã được định dạng 28
Hình 2.17: Thuộc tính của trang Google biểu mẫu 29
Hình 3.1: Giao diện bắt đầu 30
Hình 3.2: Giao diện kết nối 31
Hình 3.3: Giao diện App android 32
Hình 3.4: SĐK bố trí linh kiện trên board 32
Hình 3.5: Sơ đồ mạch in mặt dưới 33
Trang 12iii
Hình 3.8: Mạch điều khiển và module ESP8266 36
Hình 3.9: Mặt trước thiết bị 36
Hình 3.10: Phần cứng hoàn chỉnh 37
Trang 13Chương 1:
TỔNG QUAN
1.1 Tổng Quan Về Lĩnh Vực Nghiên Cứu
Trong thời đại ngày nay, với sự bùng nổ của các ngành khoa học kỹ thuật nói chung và công nghệ điện tử nói riêng, việc sử dụng điện thoại thông minh để hỗ trợ các công việc trong cuộc sống hằng ngày là hết sức cần thiết và là nhu cầu của mỗi chúng ta
Trong những thập niên gần đây, bưu chính viễn thông đã phát triển mạnh mẽ, đặc biệt
là mạng lưới Internet không dây ngày càng trở nên phổ biến với tốc độ truy cập được nâng cao và chi phí hợp lý, điển hình như việc tập đoàn Facebook phóng vệ tinh nhân tạo phát wifi miễn phí cho người dân ở châu Phi, thì việc sử dụng mạng không dây để kết nối và điều khiển càng trở nên dễ dàng và tiện lợi hơn
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết
bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng, được các hãng điện tử nổi tiếng thế giới như Samsung, Sony, Motorola, LG, … sử dụng trên các dòng sản phẩm của mình Do là nền tảng điện thoại thông minh phổ biến nhất thế giới và có mã nguồn
mở nên việc lập trình và viết ứng dụng trên Android để mở rộng các chức năng của thiết bị trở nên dễ dàng và hiệu quả
1.2 Mục Đích Của Đề Tài
- Thiết kế và thực hiện board mạch để điều khiển, giám sát thiết bị điện trong nhà có 5
ngõ ra với tổng chịu tải đến 10A-220VAC
- Thiết kế và thực hiện ứng dụng điều khiển, giám sát thiết bị điện chạy trên điện
thoại android
- Điều khiển và giám sát thiết bị qua mạng wifi nội bộ
1.3 Nhiệm Vụ Và Giới Hạn Của Đề Tài
1.3.1 Nhiệm Vụ
- Tìm hiểu các đối tượng điều khiển trong Android Studio
- Tạo giao diện và viết ứng dụng cơ bản
- Thiết kế mạch nguồn và board điều khiển
- Làm board mẫu và test các kết nối
- Giao tiếp module wifi với board mẫu
- Gửi dữ liệu cơ bản giữa Android và board
- Phát triển các chức năng mở rộng
Trang 14- Test các chức năng và chạy thử
- Xây dựng bố cục cho báo cáo đồ án tốt nghiệp
- Viết báo cáo đồ án tốt nghiệp
- Đóng gói sản phẩm
- Hoàn thiện đồ án
- Báo cáo đề tài tốt nghiệp
1.3.2 Giới Hạn
Trong khuôn khổ của đề tài chúng em xin giới hạn đề tài như sau:
- Board mạch sử dụng vi điều khiển Pic họ 18F
- Điều khiển thiết bị điện trong nhà qua mạng wifi nội bộ
- Ứng dụng có thể điều khiển bật tắt và theo dõi hoạt động của thiết bị
1.4 Phương Pháp Nghiên Cứu
Do thời gian thực hiện đồ án ngắn, cũng như kinh nghiệm nghiên cứu khoa học chưa nhiều vì thế nhóm thực hiện đề tài sử dụng các phương pháp chủ yếu sau:
- Phương pháp phân tích tổng hợp lý thuyết:
Giai đoạn đầu của quá trình thực hiện đồ án là tìm kiếm và phân chia tài liệu tham khảo theo từng nội dung riêng để dễ dàng tìm hiểu
Nhờ sự trợ giúp từ giáo viên hướng dẫn, sách tham khảo và giáo trình trong thư viện, nguồn tài liệu số tìm được trên mạng thông qua các diễn đàn điện tử
- Phương pháp thực nghiệm khoa học:
Cùng với việc tìm kiếm, đọc hiểu tài liệu là ứng dụng các lý thuyết để thực hiện đề tài như: vẽ sơ đồ nguyên lý, lập trình và chạy mô phỏng trên phần mềm chuyên dụng
Các phương pháp trên đã được học trong các môn thực tập trên trường và quá trình
tự tìm hiểu và tích luỹ kinh nghiệm của nhóm
1.5 Tóm Tắt Đề Tài
Như vậy, với các yêu cầu về nhiệm vụ và mục tiêu đề ra, đồ án được xây dựng bao gồm các chương sau:
Chương 1: Tổng Quan - chương này trình bày khái quát về lĩnh vực nghiên cứu,
tình hình nghiên cứu, tầm quan trọng và mục đích nghiên cứu để người người thực hiện đề tài đặt ra mục tiêu
Trang 15 Chương 2: Thiết kế hệ thống - chương này sẽ trình bày quá trình thiết kế, xây
dựng phần cứng của đồ án như: sơ đồ khối, sơ đồ nguyên lý, mạch in, mạch thi công…, thiết kế, xây dựng phần mềm của đồ án như: giao diện điều khiển trên máy tính, lưu đồ, giải thuật chương trình…
Chương 3: Kết quả thi công - trình bày những kết quả đạt được sau quá trình thực
hiện đồ án, so sánh với mục tiêu đặt ra
Chương 4: Kết luận và hướng phát triển - trình bày những yêu cầu đạt được và
hướng phát triển của đề tài trong tương lai
Trang 16Chương 2:
THIẾT KẾ HỆ THỐNG
2.1 BÀI TOÁN THIẾT KẾ
Để đảm bảo tính an toàn cho các thiết bị điện gia dụng, tiết kiệm chi phí sử dụng, phòng ngừa cháy nổ do chập điện gây ra, chúng ta cần có một cách thức để điều khiển các thiết bị điện từ xa giúp kiểm soát các thiết bị điện trong nhà hoặc các dây chuyền sản xuất, các robot hoạt động trong những môi trường nguy hiểm một cách dễ dàng mà không bị giới hạn về khoảng cách địa lý
Từ các lý do trên, nhóm đặt ra một số yêu cầu để thực hiện như sau:
- Thiết kế và thực hiện board mạch để điều khiển, giám sát thiết bị điện trong nhà có
5 ngõ ra với tổng chịu tải đến 10A-220VAC
- Thiết kế và lập trình ứng dụng điều khiển, giám sát thiết bị điện chạy trên điện
thoại Android
- Điều khiển và giám sát thiết bị qua mạng wifi
2.2 THIẾT KẾ PHẦN CỨNG
2.2.1 SƠ ĐỒ KHỐI PHẦN CỨNG
Trang 17Hình 2.1: Sơ đồ khối của hê ̣ thống
Chƣ́c Năng Tƣ̀ng Khối:
Khối Module wifi: ứng dụng trên điện thoại Android gửi tín hiệu điều khiển đến module
wifi, khối này nhận tín hiệu và đƣa vào khối vi điều khiển để xử lý và gửi dữ liệu điều khiển
cho ứng dụng trên Android để theo dõi Khối còn có chức năng gửi dữ liệu điều khiển lên
VI ĐIỀU KHIỂN
ỨNG DỤNG
ANDROID
MODULE WIFI
GOOGLE SPREADSHEET
NGUỒN
ĐIỀU KHIỂN TẢI
Trang 18Khối google spreadsheet: Dữ liệu điều khiển cũng như thời gian bật tắt sẽ được gửi lên
google spreadsheets để tổng hợp và lưu trữ, phục vụ cho việc giám sát và theo dõi hệ thống
Khối vi điều khiển: khởi động khối wifi, xử lý dữ liệu điều khiển từ khối module wifi, gửi dữ
liệu điều khiển và theo dõi qua mạng internet lên google spreadsheet và điều khiển đóng ngắt
tải
Khối điều khiển tải: chỉ thị tải đang được điều khiển, gồm có led kèm nút nhấn để báo hiệu và
điều khiển tay, dùng opto MOC3020 để cách ly điện xoay chiều và một chiều
Khối nguồn: cung cấp nguồn cần thiết để toàn hệ thống làm việc ổn định và chính xác Cung
cấp nguồn cho các khối khác, với 2 mức nguồn DC là 5V và 3V3 tùy điện áp sử dụng đầu vào
của từng khối
2.2.2 THIẾT KẾ CHI TIẾT PHẦN CỨNG
2.2.2.1 VI ĐIỀU KHIỂN
Chức năng chính của vi điều khiển là:
- Khởi động và nhận dữ liệu từ module wifi qua cổng UART Vi điều khiển sẽ xử
lý dữ liệu rồi sử dụng tập lệnh AT gửi lệnh điều khiển cho module wifi để gửi vào điện thoại hoặc vào google spreadsheets
- Điều khiển tải và led hiển thị để báo hiệu hoạt động
- Theo dõi và giám sát hoạt động trên tải và gửi các hoạt động này lên google
spreadsheets
PIC18F4550 là vi điều khiển 8-bits đa chức năng Nó có 32KB bộ nhớ chương
trình, 2KB bộ nhớ SRAM và 256 byte bộ nhớ EEPROM để lưu trữ dữ liệu khi mất
điện PIC18F4550 có 35 I/O, 2 Timer 8 bit, 2 Timer 16 bit, Interupt và có dải điện áp
hoạt động trong khoảng 1.8-5.5V Nó còn hỗ trợ cổng giao tiếp nối tiếp UART cho
phép truyền nhận dữ liệu giữa vi điều khiển và thiết bị ngoại vi Có thể truyền nhận với nhiều tốc độ baud khác nhau như: 4800bps, 9600bps… Trong đề tài này vi điều khiển
truyền nhận dữ liệu với module wifi được thiết lập tốc độ baud 9600bps
Với giá thành rẻ và dễ tìm kiếm, PIC 18F4550 đáp ứng nhu cầu của ứng dụng mà
nhóm đặt ra vì vậy nhóm chọn PI18F4550 làm vi điều khiển để sử dụng
Trang 19Hình 2.2: Vi điều khiển PIC18F4550
2.2.2.2 MODULE WIFI
Module ESP8266 là module truyền nhận WiFi đơn giản dựa trên chip ESP8266 SoC
chân RESET, chân GND, chân CH_PD, 2 chân giao tiếp UART là TX và RX, chân IO0 và IO2
Với giá thành rẻ và khả năng hoạt động ổn định, có thể kết nối với mạng wifi có sẵn hoặc
tự tạo ra mạng wifi riêng lên đến 5 kết nối, module wifi ESP8266 rất phù hợp cho ứng dụng Internet of Things (IoT) Vì vậy nhóm sử dụng module ESP8266 để truyền nhận dữ liệu không dây
Hình 2.3: Mặt trên module ESP8266
Trang 20Hình 2.4: Mặt dưới module ESP8266
Để module hoạt động và giao tiếp với PIC ta cấp nguồn 3.3 V vào chân nguồn của module
và nối GND chung với mass của PIC Chân RESET kết nối với một chân ngõ ra của PIC, để khởi động, tắt hoặc reset module ESP8266 Chân TX và RX của module kết nối lần lượt với chân RX và TX của pic (chân C6 và C7)
2.2.2.3 KHỐI ĐIỀU KHIỂN TẢI
MOC3020
Là Triac điều khiển cách ly quang học, chứa diode phát quang hồng ngoại và một tia sáng kích hoạt bán dẫn chuyển đổi song song có chức năng như một Triac
Dùng để điều khiển một triac khác điều khiển điện trở, cuộn cảm trong mạch 240VAC
Tác dụng của MOC3020 là để cách ly thành phần điện xoay chiều và một chiều trong
mạch
Hình 2.5: MOC3020
Trang 21 TRIAC BTA12
Là một linh kiện bán dẫn có ba cực năm lớp, làm việc nhƣ 2 Thyristor mắc song song ngƣợc chiều, có thể dẫn điện theo hai chiều Mạch sử dụng triac BTA12 để điều khiển các tải xoay chiều 220V yêu cầu dòng cung cấp lên đến 10A Do đó
sử dụng BTA12 là phù hợp vì có thể chịu dòng đến 12A
Hình 2.6: triac BTA12
2.2.2.4 KHỐI NGUỒN
Trong mạch khối nguồn cung cấp điện áp có giá trị 5V dòng đến 1A nên ta chọn
module nguồn dùng IC TNY255 vì IC này nếu có Vin = 2.5 V ÷ 26 V thì Vout = 5 V có thể
chỉnh đƣợc qua diode Zener và Iload lên đến 2A, công suất tối đa 10W Điện áp ra của mạch có
thể sử dụng trực tiếp cho vi điều khiển vì đã có khâu lọc phụ, lọc gai điện áp của nguồn
flyback, sau đó tinh chỉnh qua biến trở để giảm điện áp từ 5 V xuống điện áp 3.3V cho
module ESP8266 dùng IC LM317 có thể chịu dòng đến 1.5A
Bảng 2.1: Dòng tiêu thụ lớn nhất của toàn hệ thống
Trang 22Với tổng dòng tiêu thụ khoảng 600mA nên nhóm sử dụng module nguồn dùng biến áp
xung ngõ ra 5V-700mA để cung cấp nguồn cho hệ thống, kết hợp với IC ổn áp LM317
để lấy áp 3.3V cung cấp cho module wifi
Hình 2.7: Sơ đồ nguyên lý khối nguồn
Hình 2.8: Module nguồn
Trang 232.2.3 SƠ ĐỒ NGUYÊN LÝ MẠCH ĐIỀU KHIỂN
Hình 2.9: Sơ đồ nguyên lý mạch điều khiển
Trang 24Hình 2.10: Sơ đồ nguyên lý khối điều khiển tải
Trang 252.3 THIẾT KẾ PHẦN MỀM TRÊN ĐIỆN THOẠI ANDROID
2.3.1 LẬP TRÌNH MẠNG TRONG ANDROID
Do ứng dụng dùng để điều khiển thiêt bị qua mạng wifi nội bộ nên cần có liên kết
mạng
Lập trình mạng trong android được hỗ trợ trực tiếp bởi lớp java.net của ngôn ngữ java
Trong đó có hai lớp cơ bản sau để xây dựng lên một ứng dụng mạng sử dụng Socket
Lớp InetAddress
- Lớp InetAddress được sử dụng để biểu diễn các địa chỉ IP trong một ứng dụng mạng Lớp này được sử dụng bởi hầu hết các lớp mạng, bao gồm Socket,
ServerSocket, DatagramSocket, DatagramPacket,…
- Nó bao gồm hai trường thông tin : + hostName (một đối tượng kiểu String)
+ address (một số kiểu int)
Các trường này không phải là trường public, vì thế ta không thể truy xuất chúng trực tiếp
- Mô tả mô hình khai báo đối tượng InetAddress : public class InetAddress
{ private String hostName;
private int address;
public String getHostName() {
return hostName;
}
};
Phương Thức và Thuộc Tính
Trang 26- Lớp InetAddress không có các hàm khởi tạo (constructor) Tuy nhiên, có ba phương
thức tĩnh trả về các đối tượng thuộc kiểu InetAddress :
• public static InetAddress InetAddress.getByName(String hostname)
Phương thức này được sử dụng để kết nối đến 1 máy chủ xác định, tham số truyền vào
là 1 chuỗi ký tự Chuỗi này có thể là : tên máy, địa chỉ IP hoặc là địa chỉ 1 trang web…
• public static InetAddress[ ] InetAddress.getAllByName(String hostname)
kết quả trả về là 1 mảng đối tượng thuộc kiểu InetAddress
• public static InetAddress InetAddress.getLocalHost()
Phương thức này được sử dụng để đọc thông tin của máy cục bộ đang làm việc
- Một số phương thức khác :
public String getHostName() :
Phương thức này trả về một chuỗi biểu diễn hostname của một đối tượng InetAddress
Nếu máy không có hostname, thì nó sẽ trả về địa chỉ IP của máy này dưới dạng một xâu ký
tự
public byte[ ] getAddress() :
Nếu bạn muốn biết địa chỉ IP của một máy, phương thức getAddress() trả về một địa
chỉ IP dưới dạng một mảng các byte
Thông qua kết nối wifi, người dùng sẽ điều khiển và theo dõi thiết bị hoạt động qua
app trên điện thoại android Nhóm quyết định sử dụng Wifi vì tính thuận tiện và phổ biến của
nó hiện nay, trong đó sử dụng giao thức UDP trên tiêu chuẩn TCP/IP để gửi dữ liệu điều
Trang 27Khởi tạo các biến để nhận và gửi dữ liệu:
byte[] b=(s.getBytes());
byte[] a= new byte[1024];
Khởi tạo server để chờ dữ liệu:
server = new DatagramSocket();
Gán dữ liệu nhận vào biến để hiển thị lên giao diện điều khiển:
modifiedSentence = new String(receive.getData());
incomming.setText(modifiedSentence);
Đóng server:
server.close();
2.3.2 GIAO DIỆN ĐIỀU KHIỂN TRÊN ANDROID
Yêu cầu thiết kế:
Yêu cầu thiết kế đặt ra gồm 5 tải với tổng chịu tải đến 10A, vì vậy nhóm thiết kế một
giao diện trực quan nhất có thể để người dùng nhanh chóng điều khiển và theo dõi thiết bị
Các thông báo và cảnh bảo đều được thể hiện dưới dạng toast notification để người
dùng dễ nhìn thấy
Trang 28Người dùng sẽ sử dụng tài khoản google cá nhân để xem các số liệu điều khiển cũng
như các biểu đồ, bảng tính giám sát thiết bị
Phác thảo giao diện:
Hình 2.11: phác thảo giao diện trên điện thoại Android
Trang 29Hình 2.12: Lưu đồ giải thuật Sau đây là phần lập trình chức năng của một nút nhấn của app trên điện thoại Android
bt1 setOnClickListener( new View.OnClickListener() {
@Override
public void onClick (View v) {
dk1 = ! dk1 ;
Sau khi nhấn, ứng dụng sẽ gửi ký tự để điều khiển từng ổ cắm khác nhau Đồng thời cũng đổi
màu nền nút nhấn để nhận biết trạng thái bật tắt của ổ cắm Sau đó sẽ gọi chương trình con
kết nối mạng để gửi ký tự điều khiển cho vi xử lý.
Trang 30Sau khi gửi thành công, ứng dụng sẽ xuất hiện 1 thanh thông báo ở cuối màn hình để báo cho
người dụng hoạt động vừa đc thực thi
Trang 31Hình 2.13: Lưu đồ chương trình vi điều khiển
Giải thích lưu đồ:
Vi xử lý cần phải khởi động và kết nối với module wifi để gửi nhận dữ liệu thông qua
chương trình con configuration_esp()
Sau khi đã khởi động và kết nối thành công, vi xử lý sẽ gửi lệnh AT để kiểm tra hoạt
động của module, không được sẽ sử dụng 1 số baudrate chuẩn để kiểm tra và đưa về baudrate
mặc định 9600bps Đồng thời vi xử lý cũng điều khiển để module mở các chức năng cần thiết
cho hoạt điều khiển và theo dõi thiết bị
Sau khi kết nối với module thành công thì vi xử lý sẽ nhận lệnh điều khiển từ app
Android thông qua module wifi hoặc lệnh điều khiển từ nút nhấn trên thiết bị
Trang 32Khi đã nhận lệnh, vi xử lý sẽ thực hiện các lệnh này và bật tắt thiết bị theo yêu cầu, sau
đó sẽ gửi lệnh điều khiển đã nhận trở lại cho app trên Android và gửi dữ liệu điều khiển này
lên google spreadsheets để theo dõi và tổng hợp Dữ liệu điều
2.4.2 GIẢI THÍCH CHƯƠNG TRÌNH CON
Chương trình khởi động ESP8266
Chương trình reset module khi mới bắt đầu hoạt động và gửi lệnh AT để kiểm tra
module phản hồi đúng yêu cầu Nếu không đúng vi xử lý sẽ sử baudrate khác để gửi lệnh đến
module Sau đó chuyển về baudrate chuẩn là 9600bps để hoạt động
Trang 34}
//****************************************************//
Vi xử lý gửi lệnh chuyển mode 3 để vừa kết nối đến router nội bộ vừa tự phát ra mạng
wifi để điều khiển
Vi xử lý gửi lệnh kết nối với mạng wifi nội bộ để có thể kết nối với mạng internet và
cũng nhƣ nhận lệnh điều khiển qua mạng nội bộ
do {
LCD_cmd(1);lcd_out(1,1,"Sending AT+CWJAP");
esp8266_Send(AT_CWJAP);
Trang 37Trước tiên, yêu cầu phải có một tài khoản Gmail Bạn có thể vào google và tạo cho
mình một tài khoản Sau khi đã có tài khoản Gmail, vào trang docs.google.com/forms/
Đăng nhập sẽ được giao diện như sau để tạo 1 mẫu điền dữ liệu mới
Chọn Dấu cộng ở cuối màn hình bên phải để tạo form mới
Trang 38Hình 2.14: Trang google drive Định dạng trang biểu mẫu theo kiểu sau:
Hình 2.15: Trang google biểu mẫu
Trang 39Giao diện biểu mẫu để điền dữ liệu theo dõi:
Hình 2.16: Trang google biểu mẫu đã được định dạng Chú ý đường dẫn url trong đó có biểu mẫu key, chúng sẽ được dùng trong chương
trình, trong trường hợp này là
“1H_NVR4508Bg_jZeE2YHEvMn0XQOY0Da8fjzbIr7q1Wc”
Trang 40Kích chuột phải -> property
Entry của textbox đầu tiên
Hình 2.17: Thuộc tính của trang google biểu mẫu
Ta kích vào text box-> kích chuột phải->chọn property Chú ý tới các thông số entry
của các textbox, chúng đƣợc dùng cho lập trình đƣa dữ liệu lên google spreadsheet sau này