Tải bản đầy đủ (.docx) (159 trang)

Đề tài NGHIÊN CỨU CHẾ TẠO MÔ HÌNH Ổ CẮM ĐIỆN ĐƯỢC ĐIỀU KHIỂN TỪ XA QUA MẠNG INTERNET 3G SỬ DỤNG RASPBERRY PI B+ VỚI GIAO DIỆN ĐIỀU KHIỂN ĐỒNG NHẤT TRÊN ĐIỆN THOẠI THÔNG MINH ANDROID, WINDOWSPHONE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.32 MB, 159 trang )

TRƯỜNG ĐẠI HỌC TIỀN GIANG
KHOA KỸ THUẬT CƠNG NGHIỆP
___________________

HỒNG HỮU DUY

ĐỀ TÀI NGHIÊN CỨU KHOA HỌC
NGHIÊN CỨU CHẾ TẠO MÔ HÌNH Ổ CẮM ĐIỆN
ĐƯỢC ĐIỀU KHIỂN TỪ XA QUA MẠNG INTERNET 3G
SỬ DỤNG RASPBERRY PI B+ VỚI GIAO DIỆN ĐIỀU
KHIỂN ĐỒNG NHẤT TRÊN ĐIỆN THOẠI THÔNG MINH
ANDROID, WINDOWSPHONE

TIỀN GIANG
NĂM 2017


TRƯỜNG ĐẠI HỌC TIỀN GIANG
KHOA KỸ THUẬT CƠNG NGHIỆP
___________________

HỒNG HỮU DUY

ĐỀ TÀI NGHIÊN CỨU KHOA HỌC
NGHIÊN CỨU CHẾ TẠO MÔ HÌNH Ổ CẮM ĐIỆN
ĐƯỢC ĐIỀU KHIỂN TỪ XA QUA MẠNG INTERNET 3G
SỬ DỤNG RASPBERRY PI B+ VỚI GIAO DIỆN ĐIỀU
KHIỂN ĐỒNG NHẤT TRÊN ĐIỆN THOẠI THÔNG MINH
ANDROID, WINDOWSPHONE



MỤC LỤC


A. MỞ ĐẦU


1. Mục tiêu của đề tài
Mục đích nghiên cứu là chế tạo mơ hình ổ cắm điện được điều khiển từ xa qua
mạng Internet 3G với giao diện điều khiển đồng nhất trên điện thoại thông minh
Android, WindowsPhone. Để thực hiện được mục đích này, có các mục tiêu sau cần
phải thực hiện:
- Nghiên cứu thiết lập kết nối Internet 3G cho Raspberry PI B+
- Nghiên cứu giải pháp truyền nhận dữ liệu giữa Raspberry PI B+ với điện thoại
Android, WindowsPhone thơng qua webServer.
- Nghiên cứu lập trình dịch vụ web cho webServer.
- Nghiên cứu lập trình điều khiển cho Raspberry PI B+.
- Nghiên cứu lập trình điều khiển cho thiết bị di động Android, WindowsPhone.
- Nghiên cứu xây dựng bộ chuyển đổi công suất điện và giám sát quá tải cho
Raspberry PI B+.
+ Nghiên cứu tạo hình mơ hình ổ cắm.
2. Đối tượng nghiên cứu
Đối tượng nghiên cứu: Mô hình ổ cắm điện được điều khiển từ xa qua mạng
Internet 3G sử dụng Raspberry PI B+ với giao diện điều khiển đồng nhất trên điện
thoại thông minh Android, WindowsPhone.
- Sản phẩm nghiên cứu có các tính năng sau:
+ Số lượng ngõ ra điện là 4.
+ Có chế độ điều khiển bằng tay và qua thiết bị di động.
+ Ổ cắm điện kết nối với mạng di động Viettel.
+ Điện áp vận hành 220V với dòng điện điều khiển tối đa 1A cho mỗi ngõ ra của
ổ cắm.

+ Tự động ngắt thiết bị điện kết nối vào ổ cắm khi dòng điện lớn hơn 1A.
+ Thời gian đáp ứng tối đa trong điều khiển là 3 giây.
+ Thời gian kiểm tra thiết bị điện kết vào ổ cắm là 5 giây.
+ Giao diện điều khiển đồng nhất trên điện thoại hệ điều hành Android và
WindowsPhone.
+ Chương trình điều khiển trên điện thoại di động Android, WindowsPhone có
thể điều khiển nhiều mơ hình ổ cắm điện với sớ lượng tới đa là 10.
+ Chương trình điều khiển trên điện thoại di động Android, WindowsPhone:
• Kích thước màn hình 4 inch.
• Giao diện thẳng đứng (Portage).
• Phiên bản hệ điều hành Android là 4.0.4.
• Phiên bản hệ điều hành WindowsPhone là 8.1.
• Giao diện có 4 nút nhấn được đánh số từ 1 đến 4.
• Nút nhấn màu sáng thể hiện ổ cắm có điện và có thiết bị điện đang sử
dụng.
• Nút nhấn màu tối thể hiện ổ cắm không có điện.
• Menu chọn lựa mơ hình được điều khiển.
+ Kích thước mơ hình ổ cắm điện:




Dài: 40 cm
• Rộng: 20 cm
• Cao: 50 cm
• Có giá treo để gắn khối ổ cắm điện
3. Cách tiếp cận và phương pháp nghiên cứu
Cách tiếp cận:
- Tiếp cận từ thực tiễn → tổng hợp, phát triển bổ sung lý thuyết → giải pháp
Phương pháp nghiên cứu, kỹ thuật sử dụng:

- Phương pháp nghiên cứu lý thuyết: tra cứu, tham khảo tài liệu sách báo.
- Phương pháp mơ hình hóa:
+ Sử dụng phần mềm Protues 8 để mô phỏng mạch.
+ Sử dụng phần mềm intel XDK để mô phỏng điện thoại Android và
WindowsPhone.
+ Sử dụng phần mềm Putty để mơ phỏng chương trình điều khiển Raspberry PI
B+.
- Phương pháp thực nghiệm khoa học:
+ Sử dụng host miễn phí để vận hành phần mềm (Scripts) truyền nhận dữ liệu.
+ Sử dụng điện thoại Android và WindowsPhone để kiểm tra phần mềm điều
khiển.
+ Sử dụng VOM, máy dao động ký để đo điện áp ngõ ra.
4. Giả thuyết nghiên cứu
Nếu ổ cắm điện được kết nối internet 3G và điện thoại thơng minh Android,
WindowsPhone có kết nới internet (3G/Wifi) thì người dùng có thể điều khiển và giám
sát trạng thái điện ở ngõ ra của ổ cắm.
5. Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài
5.1. Ngoài nước:
Sản phẩm ổ cắm điện thông minh có kết nối Internet qua 3G/GPRS đã được
thương mại hóa với nhiều tính năng nổi bật như: hẹn giờ, kiểm tra quá dòng điện, kiểm
tra thiết bị kết nối, phát cảnh báo. Một số sản phẩm kết nối được đồng thời với các
thiết bị di động thông minh như: Android, iOS, WindownPhone…[17] [18].
Đề tài “The Design of the Embedded Wireless Vehicles Monitoring Management
System Based on GPRS: Evidence from China” nghiên cứu giải pháp truyền nhận gói
dữ liệu qua mạng Internet thông qua kết nối GPRS. Giải pháp cho phép gửi dữ liệu
qua mạng di động với tốc độ thấp nhưng tầm hoạt động rất rộng [1].
Đề tài “Mobile Monitoring and Embedded Control System for Factory
Environment” nghiên cứu giải pháp gửi dữ liệu và thu thập dữ liệu từ điện thoại di
động. Hệ thống sử dụng phần mền dựng sẳn để xây dựng chương trình điều khiển trên
di động và sử dụng board mạch nhúng để thiết kế hệ thống xử lý dữ liệu thu thập được.

Dữ liệu nhận được phục vụ cho việc theo dõi trạng thái môi trường của công ty [2].
Đề tài “GSM Based Home Automation System Using App-Inventor for Android
Mobile Phone” nghiên cứu chế tạo bộ điều khiển đóng ngắt điện từ xa qua điện thoại
hệ điều hành Android. Giải pháp của đề tài là sử dụng module GSM kết hợp với vi
điều khiển 8951. Ưu điểm của đề tài là có giao diện điều khiển thân thiện với người


dùng. Nhược điểm chỉ có thể điều khiển đóng ngắt và điều khiển được trên điện thoại
Android [5].
Đề tài “Home Appliance Control Ad-hoc Network System using App Inventor”
nghiên cứu giải pháp điều khiển đóng ngắt điện thông qua mạng WiFi với kết nối kiểu
Ad-hoc. Giải pháp này có ưu điểm là chi phí vận hành thấp, tuy nhiên, tầm điều khiển
hẹp [6].
Đề tài “Web-controlled Embedded System using Mobile” và đề tài “Research
and Implement of Ethernet Interface Based on Embedded System”nghiên cứu giải
pháp điều khiển qua web với giao diện mobile. Hệ thống có sử dụng hệ thống nhúng
để xử lý dữ liệu truyền nhận. Ưu điểm nổi trội của giải pháp này là giao diện điều
khiển thân thiện và tầm điều khiển xa [10][11].
5.2. Trong nước:
Việt Nam đang có tỷ lệ sử dụng điện thoại thông minh cũng như dịch vụ Internet
3G khá cao. Tỷ lệ thuê bao di dộng tại Việt Nam đạt khoảng 140 thuê bao/100 dân.
Trong đó, số lượng người dùng dịch vụ 3G đạt khoảng 18,57%, với khoảng 27,5 triệu
thuê bao phát sinh lưu lượng. Mật độ phủ sóng di động trên cả nước là 94% [15].
Trong tổng số 17,22 triệu điện thoại thông minh dự kiến được bán ra ở Việt Nam năm
2014, có tới 14,2 triệu (tương đương 82%) là thuộc về người dùng mới [16]. Giá thành
dịch vụ 3G ngày càng rẻ và tốc độ truyền tải dữ liệu khá nhanh. Điều này tạo tiền đề
thuận lợi cho các ứng dụng điều khiển qua mạng Internet 3G kết hợp với Smartphone.
Các sản phẩm điều khiển xa dùng để đóng ngắt thiết bị điện rất đa dạng và phong
phú:
+ Đề tài “Thiết kế webServer điều khiển bật tắt thiết bị điện từ xa trên nền máy

tính nhúng Rasberry PI” điều khiển đóng ngắt thiết bị điện thông qua webSite ở mạng
cục bộ. Ưu điểm của giải pháp này là chi phí vận hành thấp. Tuy nhiên, nhược điểm là
phạm vi điều khiển bị giới hạn trong phạm vi mạng cục bộ [4].
+ Đề tài “Thiết kế hệ thống điều khiển xa qua đường dây điện thoại trên cơ sơ
chíp DTMF” cũng là điều khiển đóng ngắt thiết bị điện. Với giải pháp điều khiển qua
dây điện thoại, phạm vi điều khiển xa hơn, có thể mở rộng toàn cầu. Tuy nhiên, hệ
thống bị vướng bận do phải sử dụng dây dẫn và giá cước dịch vụ thường cao khi phải
di chuyển từ vùng này sang vùng khác. Hạn chế thứ 2 của giải pháp đó là không có
tính hai chiều [9].
Đề tài “Ứng dụng công nghệ GPRS và GPS vào chế tạo Robot giao tiếp với
Server điều khiển”, “Thiết kế hệ thống điều khiển và giám sát từ xa thông qua hệ
thống truyền thông với giao thức TCP/IP” và “Điều khiển hệ thống tưới tiêu từ xa
bằng Internet” có điểm chung là điều khiển thông qua webServer. Ưu điểm của giải
pháp này là cho phép truyền gửi hai chiều thông qua trang web. Điều này cũng có
nghĩa cần phải sử dụng máy tính có kết nối mạng để điều khiển. Trong một số hoàn
cảnh, việc sử dụng máy tính trong điều khiển thường không mang lại sự tiện nghi cho
người dùng [12][3][7].
Đề tài “Xây dựng ứng dụng điều khiển đóng-ngắt thiết bị điện qua web trên
board mạch Raspberry PI” và đề tài “Ứng dụng Raspberry PI trong việc thiết kế chế
tạo bợ đóng ngắt thiết bị điện được điều khiển từ xa qua thiết bị Android trong môi
trường Internet” cho ra đời các bộ điều khiển đóng ngắt qua môi trường Internet sử
dụng trực tiếp board mạch Raspberry PI. Ưu điểm của sản phẩm này là có thể điều
khiển qua Internet đồng thời trên website và trên thiết bị Android. Tuy nhiên giao diện


điều khiển không được đồng nhất, gây khó khăn cho người vận hành. Mặt khác, sản
phẩm chỉ có thể điều khiển thông qua thiết bị di động Android. Module vận hành cần
phải có dây mạng mới có thể vận hành được [8][13].
Ổ cắm điện điều khiển từ xa là một trong các ứng dụng cụ thể của điều khiển
đóng ngắt điện. Hiện nay trên thị trường xuất hiện loại ổ cắm này [17]. Ưu điểm nổi

trội của sản phẩm là nhỏ gọn. Tuy nhiên khoản cách điều khiển có giới hạn và chỉ cho
phép điều khiển một chiều từ thiết bị điều khiển đến ổ cắm. Người dùng hoàn toàn
không xác nhận chính xác trạng thái hoạt động. Một số ít sản phẩm thông minh hơn,
kết nối được với điện thoại thông minh thông qua WiFi hoặc Bluetooth. Tuy nhiên,
mức độ tương thích với điện thoại thông minh còn hạn chế, chủ yếu là điện thoại
Android và vùng điều khiển khá hẹp [14].
6. Luận giải về sự cần thiết, tính cấp bách, ý nghĩa lý luận và thực tiễn của đề tài
Đề tài được thực hiện với các lý do sau:
+ Điện thoại Android và WindowsPhone ngày càng trở nên thông dụng.
+ Internet qua mạng 3G ngày càng phổ biến với giá thành rẻ, tốc độ truyền gửi
dữ liệu nhanh và thiết lập đơn giản.
+ Ổ cắm điện là vật dụng sử dụng rộng rãi ở các hộ gia đình cũng như văn phòng
và được sử dụng với mục đích mở rộng số thiết bị điện hiện có. Sản phẩm được xây
dựng với mục đích giám sát và điều khiển tắt mở các thiết bị này, góp phần sử dụng
điện năng một cách hiệu quả.
+ Sự đồng nhất giao diện điều khiển giữa các thiết bị giúp dễ dàng cho người sử
dụng.
Tầm quan trọng của đề tài:
+ Phù hợp với xu thế hiện là sử dụng các thiết bị di động để điều khiển các thiết
bị khác.
+ Giám sát và điều khiển thiết bị điện ở bất cứ nơi nào có kết nối Internet 3G.


B. NỘI DUNG


CHƯƠNG 1.
MÔ HÌNH ĐIỀU KHIỂN QUA INTERNET 3G

1. Tổng quan TCP/IP và mạng 3G

1.1. Khái niệm TCP/IP
Bộ giao thức TCP/IP (Internet Protocol Suite) là bộ giao thức mà Internet và các
mạng máy tính đang sử dụng và chạy trên đó. Nó gồm 2 giao thức chính là TCP
(Transmission Control Protocol - Giao thức điều khiển giao vận) và IP (Internet
Protocol - Giao thức liên mạng).
Bộ giao thức TCP/IP được coi là một tập hợp các tầng. Mỗi tầng giải quyết một
tập các vấn đề liên quan đến việc truyền tải dữ liệu, và cung cấp cho các giao thức tầng
cấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ c
ủa các tầng thấp hơn. Hay nói cách khác, các tầng trên gần với người dùng hơn
và làm việc với dữ liệu trừu tượng hơn, chúng dựa vào các tầng cấp dưới để biến đổi
dữ liệu thành các dạng mà cuối cùng có thể truyền đi một cách vật lý.
1.2. Mơ hình TCP/IP
Mơ hình TCP/IP được phân làm 4 lớp:
- Lớp ứng dụng - Application Layer: Tầng cao nhất trong cấu trúc phân lớp của
TCP/IP. Tầng này bao gồm tất cả các chương trình ứng dụng sử dụng các dịch vụ sẵn
có thơng qua một chồng giao thức TCP/IP như DHCP, DNS, HTTP, FTP, Telnet,
SMTP, … Chúng sẽ tương tác với tầng vận chuyển để truyền hoặc nhận dữ liệu.
- Lớp vận chuyển - Transport Layer: Gồm 2 đại biểu chính: giao thức TCP và
giao thức UDP.

Hình 1.1. Mơ hình TCP/IP
+ TCP tạo ra các kết nối gi.ữa 2 máy cần trao đổi dữ liệu (Tạo ra một “đường
ống” riêng) mà qua đó các gói tin được bảo đảm chuyển tới nơi nhận một cách đáng
tin cậy và đúng thứ tự.


+ UDP được dùng để gửi những dữ liệu ngắn (gọi là Datagram) tới những máy
khác, UDP không cung cấp độ tin cậy và thứ tự truyền nhận.
- Tầng Internet - Internet Layer: Tầng này dùng để xác định mạng đích, định
tuyến đường truyền cho phép truyền qua một số mạng trước khi đến đích.

- Tầng truy cập mạng - Link Layer: Tạo ra cách thức kết nối như: Ethernet, Wifi,
PPP…
1.3. Giao thức HTTP
Giao thức này nằm trong lớp ứng dụng, được sử dụng để truyền nội dung trang
web từ máy chủ (webserver) đến trình duyệt web ở máy khách (client). Giao thức này
hoạt động theo cơ chế máy khách yêu cầu và máy chủ đáp ứng. Để bắt đầu trao đổi dữ
liệu, phía máy khách khởi tạo một giao thức HTTP bằng cách mở một kết nối TCP đến
máy chủ trước khi máy khách gửi yêu cầu tài nguyên. Một yêu cầu từ máy khách phải
đảm bảo 3 thông tin chính:
- Method: Thường được sử dụng là GET, POST.
- URI: Địa chỉ định danh của tài nguyên.
- HTTP version: Phiên bản HTTP đang sử dụng.
1.4. Kỹ thuật duy trì kết nối máy chủ máy khách
Trong giao thức http, kết nối giữa máy chủ và máy khách bị gián đoạn sau khi
gói tin được gửi từ máy chủ về đến máy khách. Trong một số trường hợp, giao tiếp này
không cần phải kết nối lại và đảm bảo thông tin liên lạc giữa máy khách và máy chủ
thông suốt, một số kỹ thuật ra đời nhằm giải quyết vấn đề này.
1.4.1. Kỹ thuật ajax polling
Máy khách gửi yêu cầu một trang web từ máy chủ. Trang web được yêu cầu sử
dụng Javascript thực hiện gửi yêu cầu liên tục đến một tập tin trên máy chủ với khoảng
thời gian đều đặn. Máy chủ tự động tính toán và gửi đáp ứng theo các yêu cầu của máy
khách. Kỹ thuật này cho phép thực hiện đơn giản. Tuy nhiên, máy chủ phản hồi dữ liệu
một cách thụ động. Trong các trường hợp cập nhật nhanh dữ liệu mới, kỹ thuật này tạo
ra độ trễ khá lớn.

Hình 1.2. Mơ hình kỹ tḥt ajax polling
1.4.2. Kỹ thuật ajax long-polling
Kỹ thuật này tương tự như kỹ thuật ajax polling. Tuy nhiên, máy chủ chỉ gửi đáp
ứng khi có dữ liệu mới. Máy khách chỉ gửi yêu cầu tiếp theo sau khi nhận được gói dữ



liệu từ máy chủ. Kỹ thuật này cho phép thực hiện các thao tác cập nhật mới theo thời
gian thật. Tuy nhiên, máy chủ vẫn bị động trong việc gửi dữ liệu đến máy khách.

Hình 1.3. Mơ hình kỹ tḥt ajax long polling
1.4.3. Kỹ thuật websocket
Khi một dữ liệu được truyền tải thông qua giao thức HTTP sẽ chứa quá nhiều nội
dung không cần thiết đến trong phần header. Điều này gây hao tốn băng thông đường
truyền và dẫn đến giảm tốc độ xử lý dữ liệu. websocket là một công nghệ hỗ trợ giao
tiếp hai chiều giữa máy chủ và máy khách mà ở đó chỉ có dữ liệu được trao đổi với
nhau mà không chứa các nội dung khác. Các thông tin trong phần hearder chỉ trao đổi
một lần duy nhất tại thời điểm kết nối. Ngoài ứng dụng web được sử dụng trong giao
thức này, các ứng dụng cho các nền tảng khác cũng được phát triển nhằm mục đích
trao đổi nhanh chống dữ liệu giữa máy chủ và máy khách.

Hình 1.4. Nội dung header trong kết nối websocket
Có 2 thuộc tính trong giao thức websocket:
- Thuộc tính trạng thái sẳn sàng (Socket.readyState): Thuộc tính này diễn tả trạng
thái kết nối. Giá trị trả về là một số nguyên từ 0 đến 3.
+ Giá trị 0 thể hiện kết nối chưa được thành lập
+ Giá trị 1 thể hiện kết nối đã được thành lập và sẳn sàng giao tiếp.
+ Giá trị 2 thể hiện kết nối đang được đóng lại và không thể giao tiếp.
+ Giá trị 3 thể hiện kết nối đã đóng lại hoặc không thể mở trở lại.


- Thuộc tính bộ nhớ đệm (Socket.bufferedAmount): Thuộc tính này diễn tả số
lượng byte được lưu trong bộ nhớ tạm trước khi được gửi đi.
Máy khách sau khi kết nối với websocket xảy ra 4 sự kiện:
- Sự kiện mở kết nối: Sự kiện này xảy ra khi kết nối thành công giữa máy khách
và máy chủ.

- Sự kiện nhận dữ liệu: Sự kiện này xảy ra khi có một bản tin được gửi từ máy
chủ đến máy khách.
- Sự kiện lỗi: Sự kiện này xảy ra khi có bất cứ lỡi nào phát sinh trong quá trình
giao tiếp.
- Sự kiện đóng kết nối: Sự kiện này xảy ra khi kết nới bị đóng lại.

Hình 1.5. Trao đổi dữ liệu trong websocket
1.5. Tổng quan mạng internet 3G
1.5.1. Tổng quan
Mạng 3G là thế hệ thứ ba của chuẩn công nghệ điện thoại di động, ngoài các
dịch vụ thông thường như : nghe, gọi, nhắn tin , còn cung cấp các dịch vụ khác như:
tải dữ liệu, âm thanh, hình ảnh...Điểm mạnh 3G so với công nghệ trước là cho phép
truy cập internet, sử dụng các dịch vụ định vị toàn cầu GPS, truyền, nhận các dữ liệu,
âm thanh, hình ảnh chất lượng cao cho cả thuê bao cố định và thuê bao đang di chuyển
ở các tốc độ khác nhau.
Công nghệ 3G được các nhà sản xuất thiết bị viễn thông lớn trên thế giới xây
dựng thành 4 chuẩn chính:
- W-CDMA: Là nền tảng của chuẩn UMTS, sử dụng băng rộng để có tốc độ cao.
+ HSDPA (High-Speed Downlink Packet Access): Gói đường truyền tải xuống
tốc độ cao, cho phép tốc độ tải dữ liệu về máy tối đa đạt đến 42 Mbps, tương đương
với tốc độ đường truyền ADSL.
+ HSUPA (High-Speed Uplink Packet Access): Gói đường truyền tải lên tốc độ
cao, cho phép tốc độ tối đa đạt 5.76 Mbps.


- CDMA 2000: Đây là thế hệ kế tiếp chuẩn 2G CDMA và cung cấp tốc độ truyền
dữ liệu từ tối đa đạt 3 Mbit/s.
- TD-CDMA: Được phát triển trền nền tảng chuẩn UTMS. Đây là một chuẩn
thương mại áp dụng hỗn hợp giữa TDMA và CDMA nhằm cung cấp chất lượng dịch
vụ tốt hơn cho dữ liệu đa phương tiện kể cả âm thanh, hình ảnh.

- TD-SCDMA: Một chuẩn khác dựa trên nền tảng chuẩn UTMS, đang được phát
triển tại Trung Quốc nhằm mục đích như là một giải pháp thay thế cho W-CDMA.
1.5.2. Mơ hình mạng 3G
Một mạng 3G với nền tảng UMTS bao gồm ba phần: thiết bị di động (UE), mạng
truy nhập vô tuyến mặt đất (UTRAN), mạng lõi (CN).
- UE bao gồm: Thiết bị đầu cuối, thiết bị di động và module nhận dạng thuê bao.
- UTRAN bao gồm: Các trạm thu phát sóng và hệ thống điều khiển trạm.
- Mạng lõi CN bao gồm: Miền CS, miền PS và miền HE. Các miền này đảm bảo
xác định được thuê bao cũng như cung cấp đúng mà người sử dụng đang cần.

Hình 1.6. Tổng quan kết nới mạng 3G
2. Mơ hình kết nối và mã hóa dữ liệu điều khiển ổ cắm điện
2.1. Mơ hình kết nới
Hình 3.10 thể hiện một cách tổng quát quá trình liên kết dữ liệu giữa thiết bị di
động và ổ cắm điện. Ổ cắm điện có thể truy cập internet thông qua 2 cách: hữu tuyến
và vô tuyến. Ở chế độ hứu tuyến, kết nối internet cần có dây dẫn và thông qua modem
ADSL. Đối với chế độ vô tuyến, modem 3G được tích hợp trực tiếp vào trong ô cắm
điện, chỉ cần sử dụng thẻ sim của nhà cung cấp dịch vụ 3G. Tương tự trên thiết bị di
động, do đặc tích phải kết nối internet nên cần phải thông qua nhà cung cấp dịch vụ và
không cần thiết phải cùng nhà cung cấp dịch vụ với ổ cắm điện.
Mơi trường internet được hình thành tḥn tiện cho việc trao đổi dữ liệu điều
khiển. Phạm vi điều khiển qua mạng internet rất rộng, do đó đồi hỏi hệ thống trao đổi
dữ liệu phải nhanh, tin cậy và ít tốn băng thông. websocket với các cơ chế vận hành
của nó đảm bảo được yêu cầu này. webserver trong mô hình có 3 nhiệm vụ chính:
- Nhiệm vụ 1: Nhận dữ liệu từ thiết bị di động gửi đến, và chuyển giao dữ liệu đó
đến ổ cắm điện một cách tức thời.
- Nhiệm vụ 2: Cơ chế ngược lại với nhiệm vụ 1.
- Nhiệm vụ 3: Thông báo đến thiết bị di động và ổ cắm điện trạng thái kết nối.



Hình 1.7. Mơ hình kết nới ổ cắm điện với thiết bị di động
2.2. Trao đổi dữ liệu điều khiển qua websocket
Websocket giữ vai trò trung tâm trong việc trao đổi dữ liệu giữa ổ cắm điện và
thiết bị di động. Hình 1.8 và 1.9 thể hiện hướng dữ liệu đi từ nơi gửi đến nơi nhận.

Hình 1.8. Mơ hình gửi dữ liệu từ thiết bị di động đến ổ cắm điện


Hình 1.9. Mơ hình gửi dữ liệu từ ổ cắm điện đến thiết bị di động
2.3. Mã hóa dữ liệu
Dữ liệu trao đổi giữa ổ cắm điện và thiết bị di động được mã hóa theo một quy
ước chung nhằm mục đích thuận tiện trong việc xử lý và an toàn trong điều khiển.
Hướng dữ liệu từ thiết bị di động hoặc ổ cắm điện gửi đến webserver quy ước là
hướng gửi dữ liệu. Hướng ngược lại quy ước là hướng nhận dữ liệu.
2.3.1. Mã hóa dữ liệu gửi
Dữ liệu gửi từ ổ cắm điện đến webserver và từ thiết bị di động đến webserver
được mã hóa thành chuỗi ký 7 ký tự, tương ứng với 7 byte. Các byte được đánh số thứ
tự từ bên trái sang bên phải, bắt đầu từ byte thứ 1.
Byte thứ 1 đến byte thứ 4 quy định địa chỉ gửi, trong đó địa chỉ gửi từ thiết bị di
động cố định là A000. Địa chỉ gửi từ thiết bị di động bắt đầu bằng ký tự B và 3 số
nguyên tiếp theo và được giới hạn từ 000 đến 254.
Byte thứ 5 đến byte thứ 7 quy ước trạng thái có điện hoặc không có điện ổ cắm
điện. Trạng thái này là cơ sở để chương trình điều khiển trên thiết bị di động hiển thị
chính xác trạng thái có điện hoặc không có điện ổ cắm điện hoặc chương trình điều
khiển ổ cắm điện xuất tín hiệu điều khiển ngắt điện hoặc đóng điện ngõ ra ổ cắm điện.
Byte thứ 5 có hai giá trị thiết lập: A hoặc B. Nếu thiết lập là A, byte thứ 6 và byte thứ 7
được sử dụng để thiết lập hiển thị hoặc thiết lập ngõ ra điện. Trong trường hợp byte
thứ 5 thiết lập là B, hướng dữ liệu sẽ đi từ thiết bị di động đến webserver và điểm đích
đến là ổ cắm điện. Mã lệnh này yêu cầu ổ cắm điện phản hồi tất cả trạng thái có điện
hoặc không có điện về thiết bị di động và được sử dụng khi chương trình điều khiển

trên thiết bị di động khởi động. Thứ tự các ngõ ra điện trên ổ cắm điện được mã hóa ở
byte thứ 6 với các ký tự A, B, C, và D. Byte thứ 7 mô tả trạng thái có điện hoặc không


có điện tương ứng với hai giá trị 1 và 0.
Bảng 1.1. Quy ước dữ liệu gửi
Vị trí

Chức năng

Quy ước

Ký tự thứ 1

Mã nhận diện thiết bị nhận.
A: Thiết bị di động.
B: Ổ cắm điện.

Quy ước địa
chỉ nhận dữ
liệu.

Ký tự thứ 2

Số hàng trăm

Ký tự thứ 3

Số hàng chục


Ký tự thứ 4

Số hàng đơn vị

Ký tự thứ 5

Mã nhận diện bắt đầu chuỗi Quy
ước
trạng thái.
trạng thái ổ
cắm điện.
A: Thiết lập trạng thái.
B: Phản hồi trạng thái.

Ký tự thứ 6

Mã nhận diện vị trí ổ cắm
điện được điều khiển.
A: Ổ cắm điện thứ 1.
B: Ổ cắm điện thứ 2.
C: Ổ cắm điện thứ 3.
D: Ổ cắm điện thứ 4.

Ký tự thứ 7

Mã nhận diện trạng thái
đóng điện hoặc trạng thái
ngắt điện.
0: Không có điện ở ngõ ra.
1: Có điện ở ngõ ra.


Chú thích

Thiết bị được
đánh số thứ tự từ
000 đến 254.
Mỗi một ổ cắm
điện được nhận
diện trên hệ thống
có 4 ngõ ra điện
và được điều
khiển độc lập.

2.3.2. Mã hóa dữ liệu nhận
Dữ liệu từ máy chủ gửi đến thiết bị di động hoặc ổ cắm điện có dạng chuỗi 11 ký
tự tương ứng với 11 byte và được phân chia như sau:
Từ byte thứ 1 đến byte thứ 4: Quy ước địa chỉ gửi đến. Dữ liệu nhận được có thể
từ ổ cắm điện khác gửi đến hoặc từ các chương trình điều khiển trên thiết bị di động.
Nội dung 4 byte này tuân thủ các quy tắc trong mã hóa dữ liệu nhận. Ổ cắm điện chỉ
xử lý dữ liệu có địa chỉ gửi từ chương trình điều khiển trên thiết bị di động. Điều này
có nghĩa 4 byte đầu tiên có giá trị có định là A000. Tương tự, chương trình điều khiển
trên thiết bị di động chỉ xử lý dữ liệu với địa chỉ gửi là ổ cắm điện. Tuy nhiên, trên một
hệ thống có thể có nhiều ổ cắm điện với nội dung mã hóa khác nhau, chỉ những ổ cắm
điện được chọn, các byte tiếp theo mới được xử lý.
Từ byte thứ 5 đến byte thứ 8: Quy ước địa chỉ nhận, nơi xử lý các yêu cầu từ nơi
gửi đến. Quy tắc mã hóa tương tự như 4 byte đầu tiên. Ngoài ra, byte đầu tiên trong
nhóm dữ liệu này còn dùng để mã hóa trạng thái kết nối với websocket. Biến trạng thái
này dùng để theo dõi thiết bị đăng nhập vào hệ thống hoặc thoát ra khỏi hệ thớng. Cơ
sở để chương trình điều khiển trên thiết bị di động cập nhật danh sách ổ cắm điện có
thể kết nối đến.



Từ byte thứ 9 đến byte thứ 11: Quy ước trạng thái có điện và không có điện ổ
cắm điện. Quy ước trong 3 byte này tương tự như mã hóa dữ liệu gửi.
Bảng 1.2. Quy ước dữ liệu nhận
Thứ tự
Ký tự thứ 1

Chức năng
Mã nhận diện thiết bị gửi.
A: Thiết bị di động.
B: Ổ cắm điện.

Quy ước

Quy ước địa chỉ
gửi dữ liệu.

Ký tự thứ 2

Số hàng trăm

Ký tự thứ 3

Số hàng chục

Ký tự thứ 4

Số hàng đơn vị


Ký tự thứ 5

Mã nhận diện thiết bị nhận. và trạng thái thiết
bị gửi.
A: Thiết bị di động.
B: Ổ cắm điện.
Quy ước địa chỉ
C: Đóng websocket.
nhận dữ liệu.
O: Mở websocket

Ký tự thứ 6

Số hàng trăm

Ký tự thứ 7

Số hàng chục

Ký tự thứ 8

Số hàng đơn vị

Ký tự thứ 9

Mã nhận diện bắt đầu chuỗi trạng thái.
A: Thiết lập trạng thái.
B: Phản hồi trạng thái.

Ký tự thứ 10


Mã nhận diện vị trí ổ cắm điện được điều khiển.
A: Ổ cắm điện thứ 1.
B: Ổ cắm điện thứ 2.
Quy ước trạng
thái ổ cắm điện.
C: Ổ cắm điện thứ 3.
D: Ổ cắm điện thứ 4.

Ký tự thứ 11

Mã nhận diện trạng thái đóng điện hoặc trạng
thái ngắt điện.
0: Không có điện ở ngõ ra.
1: Có điện ở ngõ ra.

3. Xây dựng websocket cho webserver
3.1. Tổng quan ASP.NET
ASP.NET là công nghệ phát triển các ứng dụng trên nền web với các ưu điểm:
- Có thể sử dụng để phát triển các ứng dụng web đủ mọi kích cỡ, từ ứng dụng
nhỏ nhất cho đến ứng dụng toàn doanh nghiệp. ƒ
- Ứng dụng viết bằng ASP.NET dễ dàng tương thích với nhiều loại trình duyệt
web khác nhau.


- Sử dụng bộ soạn thảo mã nguồn bằng Visual Studio, khơng tạo ra sự khác biệt
so với lập trình ứng dụng cho máy tính cá nhân.
- Truy xuất dữ liệu bằng công nghệ của microsoft, cho phép xử lý ứng dụng
nhanh và hiệu quả.
- Dễ dàng bảo trì cũng như sửa lỗi do mã nguồn và giao diện được tách biệt.

- ASP.net sử dụng ngơn ngữ lập trình VB.NET hoặc C# hoặc cả hai để phát triển
ứng dụng.
3.2. Tổng quan ngơn ngữ lập trình C#
3.2.1. Các khái niệm
Khác với các ngơn ngữ lập trình khác, ngơn ngữ C# có các khái niệm mới
như sau:
- Lớp đối tượng: Bản chất của lập trình đới tượng là tạo ra một kiểu dữ liệu mới.
Kiểu dữ liệu này dùng để mô tả cụ thể một đối tượng cần xây dựng. Từ khóa Class
được sử dụng để thể hiện một đối tượng.
- Phương thức: Các hành vi của một lớp được gọi là phương thức thành viên của
lớp đó. Một phương thức là một hàm. Một phương thức định nghĩa những gì mà một
lớp có thể làm.
- Vùng tên (Namespaces): Là vùng làm việc của các lớp đối tượng. Các lớp đối
tượng có thể trùng tên nhưng được phân biệt với nhau thông qua vùng tên.
3.2.2. Cấu trúc chương trình C#
Cấu trúc chương trình C# gồm 3 vùng:
- Vùng 1: Khai báo sử dụng thư viện. Vùng này sử dụng từ khóa using. Phía sau
từ khóa using là tên thư viện được sử dụng.
- Vùng 2: Khai báo khơng gian tên chương trình. Vùng này bắt đầu bằng từ khóa
namespace.
- Vùng 3: Khai báo các lớp có trong chương trình. Mỡi lớp có các hàm hoặc thủ
tục xử lý các nhiệm vụ khác nhau.
//Vùng bắt đầu khai báo thư viện
using System;
using System.Collections.Generic;
using System.Linq;
//Khai báo không gian tên của ứng dụng
namespace <Tên không gian của chương trình>
{
//Vùng bắt đầu khai báo tên các Class

static class <Tên class>
{
<Khai báo các biến>
static void <Tên hàm hoặc thủ tục>
{
<Các tập lệnh>
}


}
}

Một chương trình với ngơn ngữ C# có thể có chứa nhiều khơng gian chương
trình khác nhau và thực hiện các chức năng riêng biệt. Tập tin có phần mở rộng cs có
chức năng lưu trữ mã chương trình. Hình 3.1 thể hiện giản đồ cấu trúc chương trình
viết bằng ngôn ngữ C#.
Program

File1.cs

Namespace A {..}

Class X{..}

Class Y{..}

File2.cs

File3.cs


Namespace A {..}

Class Z{..}

Namespace A {..}

Class I{..}

Class H{..}

Hình 1.10. Kết cấu tập tin trong ngơn ngữ lập trình C#
3.2.3. Kiểu dữ liệu và cấu trúc rẽ nhánh
Ngơn ngữ lập trình C# bắt buộc người dùng phải khai báo kiểu dữ liệu trước khi
sử dụng. Có nhóm kiểu dữ liệu chính:
- Kiểu dữ liệu giá trị: Là kiểu dữ liệu được xây dựng sẳn như: kiểu số nguyên,
kiểu số thực, kiểu chuỗi…
- Kiểu dữ liệu tham chiếu: Là kiểu dữ liệu do người dùng tự định nghĩa.
Giớng như các ngơn ngữ lập trình khác, ngơn ngữ lập trình C# cũng cung cấp
các lệnh rẽ nhánh. Bảng 3.10 thể hiện các lệnh rẽ nhánh cơ bản có trong C#.
Bảng 1.3. Lệnh rẽ nhánh trong ngôn ngữ lập trình C#
Chức năng

Cấu trúc


Kiểm tra điều kiện đúng
hoặc sai.

if (biểu thức điều kiện){
// câu lệnh thực thi nếu biểu thức điều kiện đúng

}
[else
{
// câu lệnh thực thi nếu biểu thức điều kiện sai
}]

Kiểm tra nhiều trường hợp switch (Biến điều kiện){
khác nhau.
case giá trị 1:
// Câu lệnh thực thi
break;
case giá trị 2:
// Câu lệnh thực thi
break;
case giá trị 3:
// Câu lệnh thực thi
break;
default:
// Câu lệnh thực thi
break;
}
Thực hiện vòng lặp khi while (biểu thức điều kiện){
điều kiện được thỏa mãn.
// câu lệnh
}
Thực hiện vòng lặp khi
điều kiện không được thỏa
mãn.

do{

// câu lệnh
}
while (biểu thức điều kiện)

Thực hiện vòng lặp theo
for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước
các bước lặp đã được định lặp]){
sẳn.
// thực thi câu lệnh
}
3.3. Tạo websock trên visual studio 2013
3.3.1. Giới thiệu visual studio 2013
Visual Studio 2013 là một cơng cụ lập trình do microsoft phát triển với những
tính năng vượt trội. Công cụ này không những cho phép phát triển các ứng dụng trên
máy tính, trên thiết bị di động mà còn phát triển được cả trên nền web. ASP.Net là
công nghệ mà microsoft hướng đến trong việc xây dựng một ứng dụng web. Điểm
mạnh của phiên bản 2013 so với các phiên bản khác đó là cung cấp tính năng
websocket. Tính năng này cho phép kết nối dữ liệu hai chiều một cách nhanh chống,


hiệu quả và ít tiêu tốn băng thông đường truyền. Ngoài các ngơn ngữ lập trình web
thơng dụng như visual basic, C++…, ngơn ngữ lập trình C# cũng được tích hợp. Điều
này không những tạo ra sự tương thích mạnh mẽ cho lập trình viên mà còn giúp lập
trình viên chuyển các ứng dụng máy tính thành ứng dụng web một cách nhanh chống
và dễ dàng.
3.3.2. Dự án ASP.NET
Một dự án ASP.NET cơ bản bao gồm 3 thành phần chính:
- Properties: Chứa thông tin cơ bản về dự án như: tên dự án, phiên bản dự án…
- Peferencres: Chứa tên vùng không gian tên mà dự án sử dụng.
- web.config: Chứa thơng tin liên quan đến cài đặt webserver.


Hình 1.11. Giao diện tạo dự án ASP.NET với C# trên Visual studio 2013
Ngoài các thành phần trên, dự án ASP.NET còn chứa các trang web và các thư
viện hỗ trợ trang web như: hình ảnh, âm thanh, jQuery…

Hình 1.12. Tập tin có trong dự án ASP.NET
3.3.3. Tạo websocket cho dự án ASP.net
Generic Handler là một chương trình xử lý mặc định phía webserver và được lưu
trữ dưới dạng tập tin với phần mở rộng ashx. Chức năng chính của Generic Handler là
đáp trả dữ liệu về người dùng trực tiếp thông qua các định dạng văn bản, hình ảnh,
hoặc bất cứ kiểu dữ liệu nào và không có chứa bất cứ giao diện nào. Thành phần này


dùng kết hợp với trang web nhằm trao đổi trực tiếp thông tin giữa máy khách và máy
chủ mà không cần phải bóc tách gói dữ liệu. Javacripts thường nhận nhiệm vụ này
trong quá trình xử lý dữ liệu trang web. Máy khách hoàn toàn có thể truy xuất dữ liệu
trực tiếp từ thanh địa chỉ của trình duyệt web. Ngày nay, ngoài các trang web, các ứng
dụng cũng có thể truy xuất trựcc tiếp được đối tượng này. Đoạn mã sau thể hiện cấu
trúc của một Generic Handler viết bằng ngơn ngữ lập trình C# và dữ liệu gửi về máy
khách là đoạn văn bản có nội dung “Hello Word”..
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World");
}
public bool IsReusable {
get {
return false;

}
}
}
Hình 3.10 thể hiện giao diện bổ sung Generic Handler vào dự án ASP.NET. Giao
diện cho phép đặt tên tập tin chứa mã thực thi trong Generic Handler.

Hình 1.13. Giao diện tạo đối tượng Generic Handler
Ứng dụng web với websocket sau khi được biên dịch bởi công cụ visual studio
2013 sẽ được lưu trữ tại webserver, nơi mà có thể cung cấp dịch web liên tục 24/24
giờ. Mỗi webserver chỉ có duy nhất một dãy IP hoặc tên miền. Đây được xem là địa
chỉ chứa websocket. Tập tin với phần mở rộng ashx xử lý các yêu cầu từ phía người
dùng và đáp trả lại dữ liệu theo yêu cầu đó. Tập tin này có bổ sung websocket nhằm
duy trì kết nối hai chiều giữa máy khách và máy chủ. Giao thức sử dụng websocket có
dạng ws:// hoặc wss:// nhằm giúp cho tập tin có phần mở rộng ashx xác định đúng yêu
cầu kết nối websocket và thực hiện việc kết nối, các giao thức khác sẽ bị từ chối.


ws://<địa chỉ chứa websocket>/<tên tập tin với phần mở rộng ashx>
wss://<địa chỉ chứa websocket>/<tên tập tin với phần mở rộng ashx>
Ngơn ngữ lập trình C# cung cấp phương thức AcceptWebsocketRequest nhằm
mục đích chấp nhận kết yêu cầu kết nối websocket. Sau khi chấp nhận kết nới, các tiến
trình xử lý tiếp theo sẽ được thực hiện như: mở kết nối websocket, nhận dữ liệu
websocket, đóng kết nối websocket. Đoạn mã sau thể hiện kết quả trả về người dùng
đoạn văn bản có nội dung “Open” sau khi kết nối thành công websocket. Phương thức
Broadcast cho phép dữ liệu gửi đến tất cả các máy khách có kết nối với websocket.
public class websocket : websocketHandler
{
private static websocketCollection clients = new websocketCollection();
public override void OnOpen()
{

clients.Broadcast(“Open”);
}
public override void OnMessage(string message)
{
clients.Broadcast(“Messages”)
}
public override void OnClose()
{
clients.Broadcast(“close”);
}
public override void OnError()
{
clients.Broadcast(“Error”);
}
}
Hình 3.10 thể hiện giao diện bổ sung websocket vào dự án ASP.NET. Thư mục
references chứa các tập tin liên quan đến websocket. Vùng không gian tên chứa
websocket là Microsoft.Web.Websockets.


Hình 1.14. Giao diện bổ sung thư viện websocket
3.3.4. Thuật toán xử lý websocket cho mơ hình ổ cắm điện
Hình 1.10 thể hiện quá trình xử lý dịch vụ websocket từ webserver. Generic
Handler giữ vai trò trung tâm trong việc kiểm tra giao thức kết nối giữa máy chủ và
máy khách. Có hai loại máy khách kết nối với websocket: thiết bị di động và mơ hình
ổ cắm điện. Kết nới kiểu bắt tay được hình thành khi lớp XU_LY_MAY_CHU thực
thi. Ngoài nhiệm vụ theo dõi trạng thái kết nối giữa máy chủ và máy khách, lớp
XU_LY_MAY_CHU còn theo dõi quá trình nhận dữ liệu từ phía máy khách. Một bản
tin được gửi đến webserver thông qua websocket không những được phản hồi về nơi
gửi đến mà còn gửi đến tất cả các máy khách khách khác đang kết nối với websocket.

Nội dung bản tin nhận được và gửi đi từ phía webserver không giống giống
nhau. Bản tin gửi đi có kèm theo thông điệp với ngụ ý mô tả nguồn gốc bản tin. Các
quy ước về tên máy khách và nội dung bản tên đều được mô tả ở phần mơ hình kết nới
và mã hóa dữ liệu điều khiển ổ cắm điện.
Bảng 3.11 thể hiện chức năng các biến có trong lớp XU_LY_MAY_CHU.
Bảng 1.4. Khai báo biến trong lớp xử lý websocket
Biến

Kiểu dữ liệu

Ý nghĩa

clients

WebsocketCollection

Quản lý các kết nối dạng websocket

name

String

Gán tên máy khách khi có kết nối.

Bảng 3.10 thể hiện chức năng các khai báo có trong lớp XU_LY_MAY_CHU.
Bảng 1.5. Khai báo thư viện trong lớp xử lý websocket
Khai báo

Ý nghĩa


Ghi chú

namespace server

Khai báo miền tên của lớp.

Tự khai báo

using Microsoft.Web.Websockets;

Cho phép sử dụng websocket.

Bổ sung

using System.Web;

Cho phép sử dụng dịch vụ web. Mặc định

using System.Linq;

Cho phép sử dụng các đối
tượng

Mặc định


×