1. Trang chủ
  2. » Công Nghệ Thông Tin

KẾT NỐI IOT VỚI FB QUA NODERED

35 1,1K 9

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 3,06 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO ĐỒ ÁN I Đề tài: Xây dựng hệ thống gửi tin nhắn cảnh báo cho hệ thống IOT qua ứng dụng mạng xã hội Sinh viên thực hiện: CAO ĐÌNH THẮNG Lớp ĐT5 – K59 Mục Lục Phần Tổng quát đề tài 1.1 Yêu cầu đề tài Nói chung, hệ sinh thái IOT (Internet Of Things) gồm nhiều khâu khác nhau, tổng quát chúng sau : cảm biến (sensor) thu thập thơng tin cần thiết sau gửi chúng lên trung tâm xử lý (Cloud, Server, v.v), trung tâm xử lý nhận thông tin đầu vào lưu trữ, xử lý chung xuất lệnh đầu ra, lệnh đầu yêu cầu kích thích hành động cho hệ thống học tin nhắn thơng báo đến người dùng, v.v Giả thiết người dùng cần thông tin tình trạng hoạt động hệ thống, hệ thống đáp ứng nhu cầu việc gửi thông báo dạng tin nhắn xuống thiết bị nhận thông tin người dùng (SmartPhone, Laptop, v.v ) thông qua ứng dụng mạng xã hội (Facebook Messenger, Skype, Twiter, v.v ) Yêu cầu đề tài đưa xây dựng liên kết trung tâm xử lý với thiết bị người dùng với mục đích gửi tin nhắn thơng báo 1.2 Phân tích đưa cách giải Giả sử, ta có hệ thống IOT Vườn thông minh với cảm biến đo độ ẩm nhiệt độ đất Dữ liệu từ cảm biến gửi tới xử lý trung tâm, giả sử có tính tốn xong, đưa định giả sử “ Đất bị khô quá, tưới !” tin cần chuyển dạng tin nhắn điện thoại di động Mơ hình hóa hệ thống : Sensor Bộ xử lý trung tâm Thiết bị người dùng - Cảm biến (sensor) : phạm vi đề tài, ta quan tâm đến khâu gửi thông tin - tới người dùng nên sử dụng mô cho đầu khối hợp lý Bộ xử lý trung tâm : phạm vị đề tài, xử lý trung tâm khơng có chức lưu trữ thơng tin mà có chức xử lý kiện đầu vào để đưa định gửi tới người dùng Để dễ dàng thuận tiện việc mô hoạt động hệ thống, nên chọn tảng phần mềm thay phần - cứng cồng kềnh, phức tạp Thiết bị người dùng: sử dụng thiết bị di động smartphone, laptop để nhận thông báo thông qua ứng dụng nhắn tin phổ biến Hiện nay, có nhiều cơng cụ giả lập Cloud cho phép cho mô hoạt động hệ thống IOT Một cơng cụ Node-RED Bluemix IBM Node-RED công cụ phát triển dựa luồng liên kết (Flow) phát triển IBM với mục đích ban đầu kết nối thiết bị phần cứng, APIs dịch vụ trực tuyến phần Internet Of Things Node-RED cung cấp trình biên tập luồng dựa trình duyệt, dùng để tạo hàm Javascript Các thành phần ứng dụng lưu lại chia Với tiện ích mạnh mẽ mà mang lại, Node-RED cơng cụ phù hợp cho mục đích phát triển hệ thống IOT từ đơn giản phức tạp Chi tiết bạn xem trang web: https://nodered.org/docs/platforms/bluemix Mạng xã hội ngày phát triển Facebook số Với số lượng người sử dụng lớn, Facebook nơi trao đổi thông tin, quảng cáo, phát triển ứng dụng nhiều người giới có lượt truy cập đứng thứ hai giới sau Google.com (tính đến tháng năm 2012) Đối với nhà phát triển, Facebook cung cấp nhiều tảng dịch vụ để phát triển mang tới người dùng tồn cầu ứng dụng Facebook mở Messenger Platform cho lập trình viên dùng thử, mục đích để tạo bot tự động phản hồi lại tin nhắn người dùng fanpage theo cách chưa có trước Messenger Platform cho phép đọc tin nhắn gửi đến, hiểu nội dung mà người dùng muốn gì, sau gửi lại tin trả lời dạng văn túy, hình ảnh, hình ảnh nhúng, link hay chí thẻ thơng tin với nút bấm Lợi tính phản hồi tin nhắn người dùng Page, ta đẩy thông báo cho người dùng thông qua ứng dụng nhắn tin Messenger Phần 2: Giới thiệu Node-Red Messenger Platform 2.1 Node-RED 2.1.1 Hướng dẫn đăng ký tài khoản Bluemix IBM Bluemix cloud platform service (PaaS), nghĩa cho phép khách hàng phát triển, chạy quản lý ứng dụng mà không cần phải xây dựng bảo trì phức tạp tồn hạ tầng liên quan tới việc phát triển ứng dụng Lý sử dụng để đưa IoT services – dễ dàng kết nối quản lý thiết bị Thêm điểm nữa, có nhiều services khác mà dễ dàng kết nối thiết bị vào, cho phép nhanh chóng phát triển hệ thống phức tạp cách thuận tiện Ví dụ kỹ sư điện tử khơng có kinh nghiệm việc phát triển web/cloud, việc tìm IBM Bluemix platform tuyệt vời cho việc xây dựng ứng dụng mà không yêu cầu bạn tốn nhiều thời gian để học thứ từ đầu Thay vào giới hạn triển khai ý tưởng tuyệt vọng nhờ đó, với IBM Bluemix bạn làm nhiều thứ tuyệt vời Để bắt đầu xây dựng ứng dụng, bạn phải tạo account Vào https://console.ng.bluemix.net/ đăng ký Bạn sử dụng IBM Bluemix hồn tồn miễn phí 30 ngày Sau bạn phải add credit card bạn vào, bạn khơng bị thu phí trừ bạn vượt ngưỡng giới hạn, đủ bạn chơi thử ý tưởng bạn bạn chưa có kế hoạch sửa dụng cho mục đích thương mại Để biết thêm thông tin giá bạn click vào Sau tạo account, đăng nhập Điều đâu tiên bạn đăng nhập cửa sổ hỏi bạn thiết lập môi trường (environment) để hiển thị Figure Setting up environment Tên tổ chức bạn (dự án team mà chia sẻ tài nguyên, apps, databases, service khác) chọn vùng (vị trí địa lý nơi tổ chức bạn) Với region chọn US South có vài tính chúng hỗ trợ vùng New organizations nhập vào sau cần thiết Bây bạn phải chọn space name, ví dụ dev Sau thiết lập environment, bạn sẵn sàng để sử dụng IBM Bluemix Nếu bạn vào Dashboard, space bạn thấy tất ứng dụng bạn tạo tất services, container server ảo mà bạn chọn để dùng Figure Main Dashbroad Bạn chưa tạo thứ Dưới Catalog tab, bạn thấy nhiều option để phát triển, service khác (Boilerplates, Data, Mobile, third party…) bạn dùng để xây dựng nhiều dự án lớn Figure Catalog 2.1.2 Tạo App với Node-RED Bạn thấy Bluemix hỗ trợ vài ngơn ngữ lập trình Chúng ta build ứng dụng bạn sử dung NodeRed Nó tool trực quan để nối thiết bị phần cứng với nhau, APIs online service Click vào browse Boilderplates chọn NodeRed Starter Nhập tên ứng dụng bạn click Create Sau lúc, thứ ổn định, ứng dụng bạn chạy Nếu bạn vào main dashboard, bạn nên xem ứng dụng bạn liệt kê phía ứng dụng Nếu click lên nó, bạn xem app status, memory trống, service liên quan… Lưu ý Cloudant Database service liên kết tới ứng dụng bạn cách mặc định Figure Node-RED Starter Figure Create App Sau có thơng tin này, bạn bắt đầu trình thiết lập Tìm tới phần Webhook mainbroad Messenger chọn Thiết lập Webhooks Figure 22 Webhooks Điền thông tin cần thiết, chọn trường gửi ‘messages’ chọn Xác minh lưu Figure 23 Set up Webhook Sẽ có lỗi xác chưa nhận xác minh từ urlcallback Bước tiếp theo, bạn cần truy nhập tới trình biên tập Node-RED xây dựng Flow cho việc xác minh địa webhooks Để xem Object xác minh mà Messenger gửi tới, bạn cần xây dựng Flow sau: • Node input ‘http’ : Method = GET , URL = /urlappsensor • Node output ‘debug’ Nối chúng với Deploy Figure 24 Flow Như bạn yêu cầu xác minh phần Thiết lập webhook, tin gửi tới app Node-RED thông qua node ‘http’ hiển thị qua node ‘debug’ Bản tin gửi tới { "hub.mode":"subscribe", "hub.challenge":"1937416328", "hub.verify_token":"this_is_my_string_token_app" } Figure 25 Message Verification Để xác minh, bạn cần gửi lại tin thông báo cho Messenger bạn nhận yêu cầu Bản tin xác minh giống hoàn toàn với tin yêu cầu xác minh Thêm vào Flow : • Node ‘funtion’ với đoạn code : var mode = ''; var vtoken = ''; l0 var challenge = ''; if (msg.payload['hub.mode']) { mode = msg.payload['hub.mode']; } if (msg.payload['hub.verify_token']) { vtoken = msg.payload['hub.verify_token']; } if (msg.payload['hub.challenge']) { challenge = msg.payload['hub.challenge']; } if ('subscribe' == mode && 'VERIFY_TOKEN_IN_HERE' == vtoken) { msg.payload = challenge; } return msg; Thay phần 'VERIFY_TOKEN_IN_HERE' mã xác minh bạn • Node ‘http response’ để phản hồi lại yêu cầu Nối chung lại với Deploy Figure 26 Flow verify Như vây, bạn xác minh thành công địa webhook cho app Chọn trang ‘Sensor_Esp8266’ chọn Đăng ký Figure 27 Subcriber Page Sau hoàn thành bước trên, bạn tạo liên kết Facebook Messenger App Node-RED bluemix, phần hướng dẫn cách để đẩy tin nhắn mô Node-RED xuống Messenger Phần 3: Xây dựng Flow gửi tin nhắn cho Messenger 3.1 Developer User Messenger Platform Để mô cho việc tin nhắn thông báo tới Messenger người dùng, bạn cần tài khoản Faceboook khác Hãy mở trình duyệt đăng nhập vào Facebook, bạn cần có tài khoản Facebook làm ví dụ cho tài khoản người dùng Facebook ‘Cyan’ cho Developer chạy Firefox facebook ‘Pig’ cho Users chạy Chrome ví dụ Figure 28 User 'Pig' Figure 29 Developer 'Cyan' Để User tương tác với ứng dụng trên, Developer phải cho phép User trải nghiệm ứng dụng Ở mainbroad ‘noti_sensor_app’, chọn tab Vai trò Figure 30 Set permission for user Tìm tới mục người dùng thử chọn Thêm người dùng thử Để thêm User bạn phải có ID Facebook tài khoản User Một cách dễ dàng bạn truy nhập vào trang web https://findmyfbid.com/ sau add địa url trang cá nhân, trả ID Facebook cho bạn Một số trường hợp bạn lấy ngày ID ngày sau tên miền Facebook bạn truy nhập trang cá nhân User Figure 31 Find ID facebook Figure 32 ID in URL Sau hoàn thành, User thêm vào ứng dụng Developer Figure 33 Add Tester 3.2 Send API Reference Để gửi tin nhắn cho Messenger, bạn phải thông qua API gửi gọi Send API Reference API Gửi API sử dụng để gửi tin nhắn cho người dùng có cấu trục sau : • URL yêu cầu : https://graph.facebook.com/v2.6/me/messages? access_token= • Yêu cầu mẫu : { "messaging_type": "", "recipient": { "id": "" }, "message": { "text": "" } } Trong đó: loại tin nhắn tin nhắn gửi (có thể bỏ qua ), ID messenger User (ID khác với Facebook ID), nội dung tin nhắn cần gửi, < PAGE_ACCESS_TOKEN > Mã truy nhập trang (trang 18 phần 2) Để lấy PSID người dùng, bạn có truy xuất qua tin nhắn mà User gửi đến Page thông qua node ‘debug’ Bước bạn xây dựng Flow sau: • Node input ‘http’ : METHOD = POST, URL=/urlappsensor • Node output ‘http response’ • Node output ‘debug’ Figure 34 Flow get PSID Sau Deploy Flow trên, User gửi tin nhắn nút Gửi tin nhắn Page Bạn tìm thấy ID User Object gửi tới node ‘debug’ Figure 35 Message to Page Figure 36 PSID ‘sender.id’ PSID người dùng, đến đầy bạn có đủ thơng tin cần thiết cho việc thiết lập luồng tin nhắn 3.3 Xây dựng Flow Bạn xây dựng mơ hình hồn chỉnh để mơ cho khâu hệ thống IOT, từ việc mô giá trị đầu vào, xử lý giá trị thông qua việc đặt mức ngưỡng, tạo tin nhắn cảnh báo đẩy xuống Messenger Bạn xây dựng Flow sau: • Node input ‘inject’ : Payload (JSON) = { "id_device":{ "name":"sensor_esp8266", "temperature":29, "humidity":44 } } Node mô cho liệu đầu vào định dạng json • Node ‘function’ : code = var temp = msg.payload.id_device.temperature; var hum = msg.payload.id_device.humidity; var date = new Date(); var tempmax=40; var text = "Tình hình trồng :\n"; text += "Nhiệt độ : " + temp + "\n"; text += "Độ ẩm : " + hum + "\n"; if ( hum < 30) { text += "Đất khô quá, tưới nước !\n"; } if (hum > 90) { text += "Độ ẩm cao không tốt cho !\n"; } if (temp >= tempmax) text += "Nhiệt độ vượt ngưỡng !\n"; text +="Time: " + date + "\n"; var senderId = "PSID"; msg.payload = { "recipient": { "id": senderId }, "message": { "text": text } }; return msg; Trong đoạn code đặt ngưỡng cảnh báo cho giá trị nhiệt độ độ ẩm đồng thời thơng báo giá trị sau lần cảm biến gửi liệu lên • Node ‘http request’ : METHOD = POST, URL = https://graph.facebook.com/v2.6/me/messages? access_token= PAGE_ACCESS_TOKEN thay Mã truy nhập trang • Node ‘http response’ Figure 37 Complete the Flow Deploy Flow trên, kích node ‘inject’ tin nhắn gửi xuống messenger User Figure 38 A message Nói chung Flow ví dụ đơn giản, bạn sáng tạo nhiều Flow tối ưu hơn, sử dụng nhiều node hơn, dùng hàm random cho giả lập thời gian thực, v.v Code github cho bạn cần https://github.com/HUSTone1/cloudantmessenger2watson/blob/master/messengerplatforwithnotificationapp Phần Tổng kết Mô hình hệ thống bao gồm ba Flow Figure 39 Flows • Flow : xác minh địa webhook để tạo liên kết app Messenger NodeRED • Flow : lấy địa PSID người dùng • Flow : Gửi tin nhắn xuống Facebook Messenger Mơ hình phát triển thành ứng dụng thực tế Bạn thay đầu vào node ‘ibmiot’ cảm biến bạn liên kết với IBM IOT Platform Khối xử lý bạn khơng có có chức xử lý text mà lưu trữ giá trị đầu vào cloud sử dụng cho phân tích lâu dài Ngồi Facebook Messenger có nhiều ứng dụng để bạn đẩy thơng báo xuống Gmail, Twitter, Skype, v.v Phụ lục Danh mục tài liệu tham khảo - Building Cognitive Applications with IBM Watson Services - Volume - Conversation https://developers.facebook.com/docs/messenger-platform/reference/send-api http://linhkienbachkhoa.com/tutorials/esp8266-va-iot-part-3-connect-the- - esp8266-to-ibm-bluemix/ https://toidicodedao.com/2016/06/02/huong-dan-viet-chat-bot-cho-facebookphan-2-tao-fanpage-va-ket-noi-voi-bot/ Danh mục hình vẽ ... nhắn người dùng Page, ta đẩy thông báo cho người dùng thông qua ứng dụng nhắn tin Messenger Phần 2: Giới thiệu Node-Red Messenger Platform 2 .1 Node-RED 2 .1. 1 Hướng dẫn đăng ký tài khoản Bluemix... Facebook nơi trao đổi thông tin, quảng cáo, phát triển ứng dụng nhiều người giới có lượt truy cập đứng thứ hai giới sau Google.com (tính đến tháng năm 2 012 ) Đối với nhà phát triển, Facebook cung... duyệt chọn Bắt đầu Figure 10 Facebook For Developer Facebook yêu cầu chấp nhận sách bảo mật để đăng ký làm nhà phát triển Facebook, tích vào nút switch chọn Tiếp Figure 11 Register Facebook Developer

Ngày đăng: 10/12/2017, 23:23

TỪ KHÓA LIÊN QUAN

w