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

Tổng quát đề tài1.1Yêu cầu của đề tài Nói chung, một hệ sinh thái IOT Internet Of Things gồm rất nhiều khâu khácnhau, có thể tổng quát chúng như sau : cảm biến sensor thu thập các thông

Trang 1

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 – K59Giảng viên hướng dẫn: TS TRƯƠNG THU HƯƠNG

Trang 2

Mục Lục

Trang 3

Phần 1 Tổng quát đề tài

1.1Yêu cầu của đề tài

Nói chung, một hệ sinh thái IOT (Internet Of Things) gồm rất nhiều khâu khácnhau, có thể tổng quát chúng như sau : cảm biến (sensor) thu thập các thông tin cầnthiết sau đó gửi chúng lên một trung tâm xử lý (Cloud, Server, v.v), trung tâm xử lýnhận được thông tin đầu vào sẽ lưu trữ, xử lý chung và xuất lệnh ở đầu ra, lệnh đầu ra

có thể là yêu cầu kích thích hành động cho một hệ thống cơ học hoặc có thể là một tinnhắn thông báo đến người dùng, v.v Giả thiết người dùng cần thông tin về tình trạnghoạt động của hệ thống, hệ thống sẽ đáp ứng nhu cầu đó bằng việc gửi một thông báodưới dạng tin nhắn xuống thiết bị nhận thông tin của người dùng (SmartPhone, Laptop,v.v ) thông qua các ứng dụng mạng xã hội (Facebook Messenger, Skype, Twiter, v.v ).Yêu cầu đề tài đưa ra là xây dựng liên kết trung tâm xử lý với thiết bị của người dùngvới mục đích gửi tin nhắn thông báo

1.2 Phân tích và đưa ra cách giải quyết.

Giả sử, ta có một hệ thống IOT Vườn thông minh với cảm biến đo độ ẩm vànhiệt độ của đất Dữ liệu từ cảm biến được gửi tới bộ xử lý trung tâm, nếu giả sử cótính toán gì đó xong, nó sẽ đưa ra quyết định giả sử như là “ Đất bị khô quá, hãy tướicây đi !” và bản tin đó cần chuyển về dạng tin nhắn trên điện thoại di động Mô hìnhhóa hệ thống trên :

Trang 4

Sensor Bộ xử lý trung tâm Thiết bị người dùng

- Cảm biến (sensor) : trong phạm vi đề tài, ta chỉ quan tâm đến khâu gửi thông tin

tới người dùng nên sử dụng mô phỏng cho các đầu ra khối là hợp lý nhất

- Bộ xử lý trung tâm : trong phạm vị đề tài, bộ xử lý trung tâm không có chức

năng lưu trữ thông tin mà chỉ có chức năng xử lý các dữ kiện đầu vào để đưa racác quyết định gửi tới người dùng Để dễ dàng và thuận tiện trong việc môphỏng hoạt động của hệ thống, nên chọn các nền tảng phần mềm thay vì phầncứng cồng kềnh, phức tạp

- Thiết bị người dùng: sử dụng các thiết bị di động như smartphone, laptop để

nhận thông báo thông qua các ứng dụng nhắn tin phổ biến

Hiện nay, có rất nhiều công cụ giả lập Cloud cho phép cho chúng ta mô phỏng hoạt động của một hệ thống IOT Một trong những công cụ đó là Node-RED trên Bluemix của IBM

Node-RED là một công cụ phát triển dựa trên các luồng

liên kết (Flow) được phát triển bởi IBM với mục đích

ban đầu là kết nối các thiết bị phần cứng, APIs và cácdịch vụ trực tuyến như một phần của Internet Of Things.Node-RED cung cấp trình biên tập luồng dựa trên trìnhduyệt, có thể được dùng để tạo các hàm Javascript Cácthành phần của ứng dụng có thể được lưu lại hoặc chia

Trang 5

Với những tiện ích mạnh mẽ mà nó mang lại, Node-RED là công cụ phù hợp cho mục đích phát triển các hệ thống IOT từ đơn giản cho đến phức tạp Chi tiết các bạn có thể xem trên trang web: https://nodered.org/docs/platforms/bluemix

Mạng xã hội đang ngày càng phát triển và Facebook là một trong số đó Với sốlượng người sử dụng lớn, Facebook là nơi trao đổi thông tin, quảng cáo, phát triển ứngdụng của rất nhiều người trên thế giới và có lượt truy cập đứng thứ hai thế giới chỉ sauGoogle.com (tính đến tháng 9 năm 2012) Đối với các nhà phát triển, Facebook cungcấp nhiều nền tảng và dịch vụ để phát triển và mang tới người dùng toàn cầu ứng dụngcủa mình Facebook mới đây đã mở Messenger Platform ra cho các lập trình viên dùngthử, mục đích của nó là để tạo ra những con bot tự động phản hồi lại tin nhắn củangười dùng trên các fanpage theo cách chưa từng có trước đây Messenger Platformcho phép đọc các tin nhắn gửi đến, hiểu được nội dung mà người dùng muốn là gì, sau

đó gửi lại tin trả lời dưới dạng văn bản thuần túy, hình ảnh, hình ảnh nhúng, link haythậm chí là các thẻ thông tin với nút bấm trên đó Lợi tính năng phản hồi tin nhắn củangười dùng trên các Page, ta có thể đẩy thông báo cho người dùng thông qua ứng dụngnhắn tin Messenger

Trang 6

Phần 2: Giới thiệu về Node-Red và

Messenger Platform

2.1 Node-RED

2.1.1 Hướng dẫn đăng ký tài khoản Bluemix

IBM Bluemix là một cloud platform như một service (PaaS), nghĩa là nó chophép khách hàng có thể phát triển, chạy và quản lý các ứng dụng mà không cần phảixây dựng và bảo trì phức tạp nào trong toàn bộ hạ tầng liên quan tới việc phát triển ứngdụng Lý do chúng ta đang sử dụng nó để đưa ra những IoT services – chúng ta có thể

dễ dàng kết nối và quản lý thiết bị chúng ta Thêm một điểm nữa, có rất nhiều cácservices khác mà chúng ta có thể dễ dàng kết nối thiết bị chúng ta vào, cho phép nhanhchóng phát triển những hệ thống phức tạp một cách thuận tiện Ví dụ như một kỹ sưđiện tử và ai đó không có kinh nghiệm trong việc phát triển web/cloud, việc tìm đượcIBM Bluemix như một platform hết sức tuyệt vời cho việc xây dựng những ứng dụng

mà không yêu cầu bạn tốn nhiều thời gian để học những thứ mới từ đầu Thay vàonhững giới hạn triển khai ý tưởng hoặc tuyệt vọng khi nhờ một ai đó, với IBMBluemix bạn có thể làm rất nhiều thứ tuyệt vời

Để bắt đầu xây dựng ứng dụng, bạn phải tạo một account Vàohttps://console.ng.bluemix.net/ và đăng ký Bạn có thể sử dụng IBM Bluemix hoàntoàn miễn phí trong 30 ngày Sau đó bạn phải add credit card của bạn vào, bạn sẽkhông bị thu phí trừ khi bạn vượt ngưỡng giới hạn, nó đủ nếu bạn chỉ chơi và thửnhững ý tưởng của bạn và bạn vẫn chưa có kế hoạch sửa dụng nó cho mục đích thươngmại Để biết thêm thông tin về giá bạn click vào đây

Sau khi tạo một account, đăng nhập Điều đâu tiên bạn đăng nhập là một cửa sổhỏi bạn thiết lập môi trường (environment) để hiển thị

Trang 7

Figure 1 Setting up environment

Tên tổ chức của bạn (dự án hoặc team mà chia sẻ tài nguyên, như apps,databases, và những service khác) và chọn vùng (vị trí địa lý nơi tổ chức của bạn) Vớiregion thì chọn US South bởi vì có một vài tính năng chúng sẽ được hỗ trợ chỉ trongvùng này New organizations có thể được nhập vào sau nếu cần thiết Bây giờ bạn phảichọn space name, ví dụ như dev Sau khi thiết lập environment, bạn đã sẵn sàng để sửdụng IBM Bluemix

Nếu bạn vào Dashboard, trong space của bạn có thể thấy tất cả các ứng dụngbạn tạo ra và tất cả các services, các container và server ảo mà bạn chọn để dùng

Trang 9

Figure 2 Main Dashbroad

Bạn chưa tạo bất cứ thứ gì ở đây Dưới Catalog tab, bạn có thể thấy rất nhiều các option để phát triển, những service khác nhau (Boilerplates, Data, Mobile, third

party…) bạn có thể dùng để xây dựng rất nhiều dự án lớn

Figure 3 Catalog

2.1.2 Tạo một App với Node-RED

Bạn có thể thấy là Bluemix hỗ trợ một vài ngôn ngữ lập trình Chúng ta sẽ build ứng dụng của bạn sử dung NodeRed Nó là một tool trực quan để nối các thiết bị phần cứng

với nhau, APIs và các online service Click vào browse Boilderplates và chọn Red Starter Nhập tên ứng dụng của bạn và click Create Sau một lúc, nếu mọi thứ ổn

Node-định, ứng dụng của bạn sẽ chạy Nếu bạn vào main dashboard, bạn nên xem ứng dụng của bạn được liệt kê phía dưới các ứng dụng Nếu click lên nó, bạn sẽ xem app status, memory còn trống, các service liên quan… Lưu ý rằng Cloudant Database service liên kết tới của ứng dụng của bạn một cách mặc định

Trang 10

Figure 4 Node-RED Starter

Figure 5 Create App

Trang 11

Figure 6 App Status

Bạn có thể truy cập ứng dụng của bạn bằng cách click vào Visit App URL Click vào link và Go to your Node-Red flow editor Trước khi vào trình biên tập App sẽ yêu cầu

bạn thiết lập Username và Password nếu bạn muốn giữ bảo mật ứng dụng của

mình.Sau khi hoàn tất các bước khởi tạo, trên vùng bên trái, bạn có thể thấy các node được chia trong một vài categories (input, output, function, storage…)

Figure 7 Mainbroad App

Trang 12

Các Node build các block của ứng dụng chúng ta Chúng ta đặt chung vào editor

và nối chúng để tạo ra một flow Bạn có thể có nhiều flow trong một editor Sau khi

chúng ta hoàn thành việc kết nối các node, chúng ta click Deploy button trong góc phải

bên dưới Ví dụ, flow có thể đơn giản nhất như sau:

Figure 8 Simple Flow

Inject và debug node nối với nhau Double click vào trong jnject node để thiếtlập nó Chọn chuỗi như loại payload và nhập payload tùy ý, ví dụ “Hello World” Mỗilần bạn click vào inject, chuỗi bạn nhập vào được hiện thị trên debug console (để xemdebug console, click debug dưới Deploy button)

Đây là flow phức tạp hơn Chúng ta thêm vào một function node với JavaScriptcode để thống kê giá trị input

Trang 13

Figure 9 Simple Flow with function node

Giờ bạn đã nắm được ý tưởng Bạn chọn các node và kết nối chúng để build các flow chức năng của ứng dụng của bạn

2.2 Messenger Platform.

2.2.1 Đăng ký tài khoản Facebook For Developer và tạo công cụ Messenger Platform.

Để có thể sử dụng công cụ Messenger Platform của Facebook, bạn cần đăng ký tài khoản dành cho nhà phát triển Trước hết, bạn đăng kí tài khoản faceboook mới dùng cho việc phát triển ứng dụng của bạn, truy cập vào đường link :

https://developers.facebook.com/ trên cùng một trình duyệt và chọn Bắt đầu

Trang 14

Figure 10 Facebook For Developer

Facebook sẽ yêu cầu chấp nhận các chính sách về bảo mật để đăng ký làm nhà

phát triển của Facebook, tích vào nút switch và chọn Tiếp.

Figure 11 Register Facebook Developer

Trang 15

Điền các thông tin cần thiết vào các trường đăng ký và chọn Đăng Ký.

Figure 12 Add necessary information

Sau khi xác minh mã Captcha, bạn sẽ vào vào mainbroad Facebook For Developer

Figure 13 Mainbroad

Trang 16

Tiếp theo bạn cần tạo một ứng dụng mới, chọn Tạo ứng dụng ở góc phải màn hình, điền tên ứng dụng mà bạn muốn hiển thị và email liên hệ, chọn Tạo ID ứng dụng và

thực hiện bước kiểm tra bảo mật để hoàn thành

Figure 14 Create ID Application

Figure 15 Check Security

Trang 17

Sau khi tạo xong ứng dụng, trình duyệt sẽ đưa bạn tới Mainbroad của ứng dụng.

Chọn Thêm sản phẩm, tìm đến Messenger và chọn Thiết lập.

Figure 16 Add product Messenger

Hoàn thành các bước trên là bạn có thể sử dụng các tiện ích trong Messenger Platform

Figure 17 Messenger Platform

Trang 18

2.2.2 Tạo Page gửi thông báo và địa chỉ webhook cho ứng dụng.

Ứng dụng này chỉ cho phép bạn gửi và nhận tin nhắn từ người dùng thông qua một Page đã tạo trước Các bước tạo hết sức đơn giản: bạn truy nhập vào tài khoản

Facebook của mình, tìm tới bảng điều khiển và chọn Tạo Trang

Figure 18 Create Page with name ‘Sensor_ESp8266’

Để có thể nhận và gửi tin nhắn từ Page đã tạo, cần tạo nút gửi tin nhắn cho Page Chọn vào phần Tìm hiểu thêm ở dưới ảnh bìa, Tùy chọn khác > Liên hệ > Gửi

tin nhắn và chọn Thêm nút.

Trang 19

Figure 19 Add message button

Sau khi hoàn thành việc tạo Page, ta sẽ kết nối nó với app đã tạo Bạn truy nhập vào trang mainbroad Messenger, tìm tới phần tạo mã, chọn Trang ‘Sensor_ESp8266’ vừa tạo và hoàn thành xác minh quyền truy nhập

Figure 20 Create Verify Token

Trang 20

Figure 21 Access Permisson

Một Mã truy nhập trang được tạo ra, ta sẽ dùng nó ở bước sau nên hãy copy nó

URL gọi lại (url callback) : URL đến điểm cuối có thể xử lý yêu cầu xác minh

và thông báo cập nhật Ở đây ta sẽ lấy địa chỉ Url của app Node-RED mà chúng

ta đã tạo ở phần trước “https://con-201-196-nodered.eu-gb.mybluemix.net/<op>

Phần <op> là phần tự chọn, ở đây ta sẽ lấy tên là /urlappsensor

• Mã xác minh — bất kỳ chuỗi nào mà bạn cung cấp và App sử dụng mỗi khi nó gửi cho bạn yêu cầu xác minh.Ví dụ: “this_is_my_string_token_app”

Trang 21

Sau khi có những thông tin này, bạn có thể bắt đầu quá trình thiết lập Tìm tới

phần Webhook trong mainbroad Messenger và chọn Thiết lập Webhooks.

Figure 22 Webhooks

Điền các thông tin cần thiết, chọn trường gửi ‘messages’ và chọn Xác minh và lưu

Figure 23 Set up Webhook

Sẽ có lỗi xác ra vì chưa nhận được 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 và xây dựng một Flow cho việc xác minh

Trang 22

địa chỉ webhooks Để xem Object xác minh mà Messenger đã gửi tới, bạn cần xây dựng một Flow như sau:

• Node input ‘http’ : Method = GET , URL = /urlappsensor

• Node output ‘debug’

Nối chúng với nhau và Deploy.

Figure 24 Flow

Như thế khi bạn yêu cầu xác minh tại phần Thiết lập webhook, một bản tin sẽ được gửi tới app Node-RED thông qua node ‘http’ và được hiển thị qua node ‘debug’ Bản tin được gửi tới

Trang 23

Figure 25 Message Verification

Để xác minh, bạn cần gửi lại một bản tin thông báo cho Messenger rằng bạn đã nhận được yêu cầu Bản tin xác minh sẽ giống hoàn toàn với bản tin yêu cầu xác minh Thêm vào Flow :

• Node ‘funtion’ với đoạn code :

Thay phần 'VERIFY_TOKEN_IN_HERE' bằng mã xác minh của bạn.

• Node ‘http response’ để phản hồi lại yêu cầu

Trang 24

Nối chung lại với nhau và Deploy.

Figure 26 Flow verify

Như vây, bạn đã xác minh thành công địa chỉ webhook cho app Chọn trang

‘Sensor_Esp8266’ và chọn Đăng ký

Figure 27 Subcriber Page

Sau khi hoàn thành các bước trên, bạn đã tạo được liên kết giữa Facebook Messenger và App Node-RED trên bluemix, phần tiếp theo sẽ hướng dẫn cách để đẩy tin nhắn mô phỏng trên Node-RED xuống Messenger

Trang 25

Phần 3: Xây dựng Flow gửi tin nhắn cho Messenger

3.1 Developer và User trong Messenger Platform

Để mô phỏng cho việc tin nhắn thông báo tới Messenger của người dùng, bạn cần một tài khoản Faceboook khác Hãy mở một trình duyệt mới và đăng nhập vào Facebook, ở đây bạn cần có một tài khoản Facebook làm ví dụ cho tài khoản của ngườidùng Facebook ‘Cyan’ cho Developer chạy trên Firefox và facebook ‘Pig’ cho Users chạy trên Chrome như ở ví dụ này

Figure 28 User 'Pig'

Trang 26

Figure 29 Developer 'Cyan'

Để User cũng có thể tương tác với ứng dụng trên, Developer phải cho phép User

có thể trải nghiệm ứng dụng này Ở mainbroad ‘noti_sensor_app’, chọn tab Vai trò.

Figure 30 Set permission for user

Trang 27

Tìm tới mục người dùng thử và chọn Thêm người dùng thử Để thêm được Userbạn phải có ID Facebook của tài khoản User Một cách dễ dàng là bạn có thể truy nhập vào trang web https://findmyfbid.com/ sau đó add địa chỉ url trang cá nhân, nó sẽ trả về

ID Facebook cho bạn Một số trường hợp bạn có thể lấy ngày ID ngày sau tên miền củaFacebook khi bạn truy nhập trang cá nhân của User

Figure 31 Find ID facebook

Figure 32 ID in URL

Trang 28

Sau khi hoàn thành, User đã được thêm vào ứng dụng của Developer.

Figure 33 Add Tester

3.2 Send API Reference

Để có thể gửi tin nhắn cho Messenger, bạn phải thông qua một API gửi gọi là Send API Reference API Gửi là API chính được sử dụng để gửi tin nhắn cho người dùng có cấu trục như sau :

URL yêu cầu : https://graph.facebook.com/v2.6/me/messages?

Để lấy được PSID của người dùng, bạn chỉ có truy xuất nó qua tin nhắn mà User gửi đến Page thông qua node ‘debug’ Bước tiếp theo bạn xây dựng một Flow như sau:

• Node input ‘http’ : METHOD = POST, URL=/urlappsensor

• Node output ‘http response’

Trang 29

• Node output ‘debug’

Figure 34 Flow get PSID

Sau khi Deploy Flow trên, User sẽ gửi một tin nhắn bất kỳ trên nút Gửi tin nhắn của Page Bạn có thể tìm thấy ID User trong Object được gửi tới node ‘debug’

Figure 35 Message to Page

Trang 30

Figure 36 PSID

‘sender.id’ chính là PSID của 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 có thể xây dựng một mô hình hoàn chỉnh để mô phỏng cho một khâu trong

hệ thống IOT, từ việc mô phỏng các giá trị đầu vào, xử lý các giá trị thông qua việc đặt các mức ngưỡng, tạo tin nhắn cảnh báo và đẩy xuống Messenger Bạn có thể xây dựng một Flow như sau:

• Node input ‘inject’ : Payload (JSON) =

Node mô phỏng cho dữ liệu đầu vào được định dạng json

• Node ‘function’ : code =

var temp = msg.payload.id_device.temperature;

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

TỪ KHÓA LIÊN QUAN

w