Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
2,26 MB
Nội dung
1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC TÂY BẮC =====o0o===== PHAN VĂN HOÀN NGHIÊNCỨUHỆTHỐNGIBMWASTONIOT KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Sơn La, năm 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC TÂY BẮC =====o0o===== PHAN VĂN HOÀN NGHIÊNCỨUHỆTHỐNGIBMWASTONIOT Chuyên ngành: Công nghệ thông tin KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Ngƣời hƣớng dẫn: ThS Phan Trung Kiên Sơn La, năm 2017 Mục Lục LỜI CẢM ƠN 10 MỞ ĐẦU .11 Lý chọn đề tài tính cấp thiết 11 Mục đích nghiêncứu 12 Đối tƣợng nghiêncứu 12 Nhiệm vụ nghiêncứu 12 Phạm vi nghiêncứu .12 Phƣơng pháp nghiêncứu .12 CHƢƠNG GIỚI THIỆU INTERNET OF THINGS 13 1.1 Internet of Things (IoT) .13 1.1.1 Khả định danh .13 1.1.2 Xu hƣớng tính chất Internet of Things .14 1.1.3 Hệthống phụ IoT 15 1.1.4 Ứng dụng IoT 15 1.2 Giao thức MQTT 18 1.2.1 MQTT .18 1.2.2 Gửi, subscribe 18 1.2.3 QoS 18 1.2.4 Retain 19 1.2.5 LWT 19 CHƢƠNG NỀN TẢNG IBMWASTONIOT 20 2.1 Bluemix .20 2.2 Nền tảng IBM Watson IoT 21 2.2.1 Apps 21 2.2.2 Dịch vụ 22 2.2.3 Infrastructure 22 2.2.4 Kiến trúc Bluemix Clound Foundry .23 2.2.5 Regions 24 2.2.6 Phục hồi Bluemix 25 2.2.7 Tích hợp với hệthống record 26 2.2.8 Tạo ứng dụng di động .26 2.2.9 Điều kiện sử dụng Bluemix 27 2.3 Kết nối MQTT cho ứng dụng 28 2.3.1 Chứng thực MQTT 28 2.3.2 Sự kiện ouput 28 2.3.3 Thông tin lƣu trữ 28 2.3.4 Đăng ký kiện thiết bị 29 2.3.5 Đăng ký theo lệnh thiết bị 29 2.3.6 Đăng ký nhận Tín hiệu trạng thái thiết bị 29 2.3.7 Đăng ký nhận tín hiệu trạng thái ứng dụng 30 2.4 Kết nối MQTT cho thiết bị 30 2.4.1 Kết nối thiết bị vào Dịch vụ Quickstart 30 2.4.2 Xác thực MQTT .30 2.4.3 Tên ngƣời dùng .30 2.4.4 Mật 30 2.4.5 Thông tin giữ lại .30 2.4.6 Đăng ký vào lệnh 31 2.4.7 Thiết bị quản lý .31 2.4.8 Chất lƣợng mức dịch vụ phiên làm việc .31 2.4.9 Message Format 32 2.5 MQTT cho gateway 32 2.5.1 Xác thực MQTT .32 2.5.2 Sự kiện gửi 32 2.5.3 Thông điệp giữ lại 33 2.5.4 Đăng ký vào lệnh 33 2.5.5 Thông báo cổng .33 2.5.6 Quản lý cổng 34 2.6 Node-Red .35 2.6.1 Giới thiệu 35 2.6.2 Cài đặt Node-RED thiết bị 36 2.6.3 Register Thiết bị .39 CHƢƠNG ỨNG DỤNG DEMO .40 3.1 Giới thiệu Raspberry 40 3.1.1 Cấu tạo Raspberry Pi 40 3.2 Lựa chọn mục tiêu .42 3.3 3.4 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.5 3.5.1 3.5.2 3.6 3.6.1 3.7 Phân tích yêu cầu 42 Thiết kế mức khái niệm 42 Xác định tác nhân 42 Mô hình Use – Case tác nhân ngƣời dùng 43 Mô hình Use – Case tác nhân hệthốngIBMWastonIoT 44 Mô hình Use – Case tác nhân thiết bị Raspberry .44 Mô hình hóa tƣơng tác đối tƣợng 45 Biểu đồ lớp thực thể .45 Thiết kế giao diện ngƣời dùng 48 hình ứng dụng .48 Màn hình điều khiển thiết bị 48 Sơ đồ mạch raspberry Pi 50 Giao diện lịch sử đăng nhập 50 Sử lý kiện 51 3.7.1 Trên ứng dụng: .51 3.7.2 Trên hệthốngIBMWastonIoT .53 3.7.3 Trên Raspberry Pi Mode B 53 3.8 Hƣớng dẫn sử dụng .54 KẾT LUẬN VÀ KIẾN NGHỊ .59 3.9 Kết luận 59 3.10 Kiến nghị 59 TÀI LIỆU THAM KHẢO .60 Danh mục bảng biểu Bảng Region .25 Bảng Sự kiện gửi 33 Bảng Cổng thiết bị .33 Danh mục hình ảnh Hình Giới thiệu internet of thing 13 Hình Ví dụ Internet of Things 15 Hình Một ứng dụng Internet of Things .17 Hình Giới thiệu Node Red 35 Hình Quản lí cổng 36 Hình Tạo ứng dụng Node-red 36 Hình Vào ứng dụng node-red 37 Hình Bắt đầu làm việc với node-red 37 Hình Thông tin dự án sử dụng node-red .38 Hình 10 Triển khai dự án node-red .39 Hình 12 Thông tin đăng kí thiết bị .39 Hình 13 Raspberry Pi Mode B 40 Hình 14 MQTT Mô tả giao tiếp ứng dụng 43 Hình 15 Use-Case ngƣời dùng 43 Hình 16 Use-case hệthốngIBMWastonIoT 44 Hình 17 Use-case Raspberry Pi 44 Hình 18 Mô hình hóa tƣơng tác 45 Hình 19 Login Page Fragment 46 Hình 20 IoT Device 46 Hình 21 IoT Client 47 Hình 22 ProfilesActivity .47 Hình 23 Giao diện đăng nhập .48 Hình 24 Giao diện điều khiển .49 Hình 25 Sơ đồ mạch 50 Hình 26 Giao diện lịch sử đăng nhập 50 Hình 27 Giao diện điền thông tin đăng nhập 54 Hình 28 Giao diện điều khiển bật tắt đèn .55 Hình 29 Thiết bị bật đèn .56 Hình 30 Thiết bị đƣợc tắt đèn .57 Hình 31 Giao diện thông tin đăng nhập 58 Danh mục từ viết tắt Từ viết tắt Nghĩa từ IoT Internet of thing MQTT Message Queuing Telemetry Transport QoS Qualities of service API Application Programming Interface HTTP HyperText Transfer Protocol REST Representational State Transfer LWT Last will and testament 10 LỜI CẢM ƠN Trƣớc hết, xin chân thành cảm ơn thầy cô Trƣờng Đại học Tây Bắc, đặc biệt thầy cô tận tình dạy bảo suốt trình học tập trƣờng Tôi xin gửi lời biết ơn sâu sắc đến Ths Phan Trung Kiên, thầy hƣớng dẫn, dành nhiều thời gian tâm huyết hƣớng dẫn nghiêncứu suốt thời gian qua Tôi xin gửi lời biết ơn sâu sắc tới Ths.Giang Thành Trung hỗ trợ trang thiết bị tạo điều kiện chỗ làm việc tổ chức cho đƣợc thảo luận nhóm Tôi xin chân thành cảm ơn bè Trƣờng Đại học Tây Bắc tạo điều kiện mặt thời gian để hoàn thành trình nghiêncứu khóa luận tốt nghiệp Cuối cùng, xin gửi lời cảm ơn tới ngƣời thân gia đình tôi, bè động viên trình học tập nghiêncứu Mặc dù có nhiều cố gắng hoàn thành khóa luận cách tốt nhất, nhiên lực nhiều hạn chế nên tránh khỏi thiếu sót Vì vậy, mong nhận đƣợc đóng góp quý báu thầy cô bạn Sơn La, ngày tháng năm 2017 Sinh viên Phan Văn Hoàn 46 Hình 18 Login Page Fragment IoT Device: Chứa thông tin đăng kí thiết bị với hệthốngIBMWastonIoT Hình 19 IoT Device IoT Client: Gửi tín hiệu điều khiển thiết bị lên hệthốngIBMWastonIoT 47 Hình 20 IoT Client ProfileActivity: Chứa thông tin ứng dụng lịch sử sử dụng hệthống Hình 21 ProfilesActivity 48 3.5 Thiết kế giao diện ngƣời dùng Giao diện ngƣời dùng gồm phần: Màn hình đăng nhập để đăng kí thiết bị với hệthốngIBMWastonIoT Màn hình chọn chức bật/tắt đèn Màn hình chọn chức thông tin lịch sử đăng nhập thiết bị 3.5.1 Màn hình ứng dụng Giao diện đăng nhập Hình 22 Giao diện đăng nhập Giao diện hình bao gồm textbox vào nút: Tổ chức Mã thiết bị Mã xác thực Kích hoạt kết nối 3.5.2 Màn hình điều khiển thiết bị 49 Hình 23 Giao diện điều khiển Giao diện hình bao gồm nút: Bật đèn Tắt đèn 50 3.6 Sơ đồ mạch raspberry Pi Raspberry Pi 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 R1 R2 D1 D1 Hình 24 Sơ đồ mạch 3.6.1 Giao diện lịch sử đăng nhập Hình 25 Giao diện lịch sử đăng nhập 51 Bao gồm listview: Lịch sử đăng nhập 3.7 Sử lý kiện 3.7.1 Trên ứng dụng: Sự kiện đăng nhập Đƣờng dẫn kết nối đến device platform: tcp://" + this.getOrganization() + messaging.internetofthings.ibmcloud.com:1883 Hoặc connectionURI = "ssl://" messaging.internetofthings.ibmcloud.com:8883 + this.getOrganization() + Kết nối thiết bị MQTT client vào hệthống client = new MqttAndroidClient(context, connectionURI, clientID); với clientID hình trên: String clientID = "d:1xuhbp:112233445566:secret123 "; Chi tiết hàm kết nối thiết bị: /** * Connect to the Watson Internet of Things Platform * * @param callbacks The IoTCallbacks object to register with the Mqtt Client * @param listener The IoTActionListener object to register with the Mqtt Token * * @return IMqttToken The token returned by the Mqtt Connect call * * @throws MqttException */ public IMqttToken connectDevice(IoTCallbacks callbacks, IoTActionListener listener, SocketFactory factory) throws MqttException { Log.d(TAG, ".connectDevice() entered"); String clientID = "d:tnxflw:adroid-example:adroid-example"; String connectionURI; if (factory == null || this.getOrganization().equals("quickstart")) { connectionURI = "tcp://" + this.getOrganization() + IOT_ORGANIZATION_TCP; } else { connectionURI = "ssl://" + this.getOrganization() + IOT_ORGANIZATION_SSL; } if if (!isMqttConnected()) (client != client.unregisterResources(); client = } client = new MqttAndroidClient(context, client.setCallback(callbacks); String char[] username password = MqttConnectOptions options options.setCleanSession(true); options.setUserName(username); options.setPassword(password); null) { { null; connectionURI, clientID); = IOT_DEVICE_USERNAME; this.getAuthorizationToken().toCharArray(); = new MqttConnectOptions(); 52 if (factory != null && !this.getOrganization().equals("quickstart")) options.setSocketFactory(factory); { } Log.d(TAG, "Connecting to server: " + connectionURI); try { // connect return client.connect(options, context, listener); } catch (MqttException e) { Log.e(TAG, "Exception caught while attempting to connect to server", e.getCause()); throw e; } } return null; } Hàm ngắt kết nối thiết bị: /** * Disconnect the device from the Watson Internet of Things Platform * * @param listener The IoTActionListener object to register with the Mqtt Token * * @return IMqttToken The token returned by the Mqtt Disconnect call * * @throws MqttException */ public IMqttToken disconnectDevice(IoTActionListener listener) throws MqttException { Log.d(TAG, ".disconnectDevice() entered"); if (isMqttConnected()) { try { return client.disconnect(context, listener); } catch (MqttException e) { Log.e(TAG, "Exception caught while attempting to disconnect from server", e.getCause()); throw e; } } return null; } Hàm gửi liệu lên sever thông qua phƣơng thức MQTT try { // create ActionListener to handle message published results MyIoTActionListener listener = new MyIoTActionListener(context, Constants.ActionStateStatus.PUBLISH); IoTClient iotClient = IoTClient.getInstance(context); iotClient.publishEvent(Constants.TEXT_EVENT, "json", "1", 0, false, listener); int count app.setPublishCount(++count); = app.getPublishCount(); String runningActivity = app.getCurrentRunningActivity(); if (runningActivity != null && runningActivity.equals(IoTPagerFragment.class.getName())) { Intent actionIntent = new Intent(Constants.APP_ID + Constants.INTENT_IOT); actionIntent.putExtra(Constants.INTENT_DATA, Constants.INTENT_DATA_PUBLISHED); context.sendBroadcast(actionIntent); } } catch (MqttException e) { // Publish failed } 53 Khi tín hiệu truyền lên sever IBM Watson tín hiệu nhận đƣờng dẫn URI client android cung cấp chuyển 3.7.2 Trên hệthốngIBMWastonIoT Hàm nhận tín hiệu sử lí truyền liệu bật đèn (tín hiệu 1) JSON đƣợc truyền dạng "{"d":{"reboot":1}}" liệu tắt đèn dạng JSON đƣợc truyền "{"d":{"reboot":0}}": if(msg.payload=="1" ) { msg={ payload:JSON.stringify( { d:{ "reboot":1 } }) }; } else { msg={ payload:JSON.stringify( { d:{ "reboot":0 } }) }; } return msg; 3.7.3 Trên Raspberry Pi Mode B Hàm nhận tín hiệu với (tín hiệu 1) JSON "{"d":{"reboot":1}}" tín hiệu truyền "1" bật đèn Nếu liệu tắt đèn dạng JSON nhận đƣợc "{"d":{"reboot":0}}": tín hiệu truyền ra: "0" tắt đèn var newMsg1={payload:"0"}; var newMsg2={payload:"0"}; if(msg.payload.d.reboot=="0") { newMsg1.payload="0"; newMsg2.payload="0"; } else { newMsg1.payload="1"; 54 newMsg2.payload="1"; } return [newMsg1,newMsg2]; Hàm gửi mail: var newMsg={payload:"0"}; if(msg.payload=="0") { newMsg.payload="đèn tắt"; } else { newMsg.payload="đèn bật"; } return newMsg; 3.8 Hƣớng dẫn sử dụng Ứng dụng thiết kế với giao diện đơn giản dễ sử dụng phù hợp với moi đối tƣợng Sử dụng với thao tác đơn giản sau: Khởi động ứng dụng Đăng nhập thông tin cần thiết để kết nối thiết bị với hệthốngIBMWaston IoT: Hình 26 Giao diện điền thông tin đăng nhập Sau đăng nhập thành công ngƣời dung đƣợc chyển đến giao diện điều khiển thiết bị 55 Ngƣời dùng chức năng: Hình 27 Giao diện điều khiển bật tắt đèn Bật đèn để điều khiển bật đèn 56 Hình 28 Thiết bị bật đèn Tắt đèn để điều khiển tắt thiết bị 57 Hình 29 Thiết bị tắt đèn Sau điều khiển thiết bị thành công có e-mail gửi từ thiết bị đến ngƣời dùng Ngƣời dùng xem lịch sử đăng nhập ứng dụng tới hệthống 58 Hình 30 Giao diện thông tin đăng nhập 59 KẾT LUẬN VÀ KIẾN NGHỊ 3.9 Kết luận Qua đề tài nghiêncứu tìm hiểu đạt đƣợc kết sau: Tìm hiểu khái quát Internet of Things Trình bày giải thích thành phần, chức hệthốngIBMWastonIoT Hƣớng dẫn chi tiết bƣớc để xây dựng hệthống nhỏ Internet of Things qua hệthốngIBMWaston IoT, Ngôn ngữ lập trình Node Red Thiết bị phần cứng Qua đề tài tìm hiểu đƣợc làm thiết bị IoT bao gồm lập trình nhúng Node-red lập trình thiết bị di động tầm quan trọng Internet of Things đời sống nhƣ xu hƣớng phát triển tảng Ứng dụng công nghệ thông tin vào đời sống ngày nâng cao ngƣời nhƣ tự động hóa sản xuất ngƣời Ứng dụng vào thực tế tạo đƣợc phần mềm hỗ trợ điều khiển thiết bị nhà thông minh 3.10 Kiến nghị Đề tài “Tìm hiểu tảng IBMWaston IoT” đề tài bƣớc đầu, nên việc nghiêncứu chƣa chuyên sâu, hƣớng đến mục tiêu tìm hiểu quy trình thiết kế ứng dụng Internet of Things giúp hỗ trợ tạo ứng dụng Chƣa sâu tìm hiểu toàn hệthống Bluemix Vì đề xuất hƣớng nghiêncứu đề tài nhƣ sau: Cải tiến phần mềm cho hình ảnh sống động, màu sắc thêm chức Nghiêncứuhệthống nhà thông minh Nâng cấp thiết bị phần cứng 60 TÀI LIỆU THAM KHẢO WEB tham khảo: https://console.ng.bluemix.net/docs/services/IoT http://nodered.org/docs/user-guide https://console.ng.bluemix.net/docs/services/IoT http://nodered.org/docs/user-guide https://console.ng.bluemix.net/docs/overview/whatisbluemix.html https://console.ng.bluemix.net/docs/containers/container_index.html ... trên, chọn đề tài “Tìm hiểu tảng IBM Waston IoT làm đề tài nghiên cứu khóa luận tốt nghiệp Mục đích nghiên cứu Nghiên cứu IoT hệ thống IBM Waston IoT Nghiên cứu ngôn ngữ Node Red phƣơng thức... cấu trúc hệ thống IBM Waston IoT Cấu trúc cách cài đặt kết nối linh kiện Rapberry Pi Mode B kết nối đến hệ thống IBM Waston IoT Nhiệm vụ nghiên cứu Tìm hiểu IoT hệ thống IBM Waston IoT Tìm hiểu... kiện IoT kết nối modul với hệ thống IoT IBM Waston phân tích kết thu đƣợc Phạm vi nghiên cứu Phƣơng thức, giao thức hệ thống IBM Waston IoT giao tiếp với thiết bị IoT Phƣơng pháp nghiên cứu Phƣơng