visudoblog gửi vào
- 24796 lượt xem
Intel cung cấp hệ thống phân tích dữ liệu phát triển trên nền điện toán đám mây thực hiện thu thập và phân tích các dữ liệu từ các cảm biến kết nối với Edison gởi đến. Thông qua dịch vụ này, người dùng sở hữu một thiết bị Intel Edison hoặc Intel Galileo có thể gởi dữ liệu trực tiếp đến hệ thống mà Intel hỗ trợ, không cần đầu tư thêm một hệ thống phân tích dữ liệu đắt đỏ nào khác.
1. Kết nối và quản lý thiết bị
Trong phần này, tôi thực hiện thử nghiệm các bước cơ bản để bắt đầu làm việc với IoT Analytics và Intel Edison. Kết quả sau khi thử nghiệm cho phép Edison gởi các dữ liệu đến hệ thống đám mây và phân tích dữ liệu dưới dạng đồ thị trực quan.
Hình: Sơ đồ kết nối hệ thống
Bước 1: Tạo tài khoản IoT Analytics
Trong phần đầu tiên, người dùng cần tạo cho mình một tài khoản tại trang web IoT Analyticsđược cung cấp bởi hãng Intel. Trang web đang được ở giai đoạn Beta, tuy nhiên vẫn cung cấp cho bạn nhiều tính năng hữu ích trong việc nhận và phân tích dữ liệu gởi đến từ các thiết bị IoT.
Sau khi đăng ký thành công, trang web sẽ yêu cầu bạn tạo một tài khoản phụ để thực hiện quản lý thiết bị, mỗi tài khoản phụ này sẽ quản lý một hoặc nhóm các thiết bị phần cứng Edison dựa trên Device-ID. Bạn có thể bắt đầu tại https://dashboard.us.enableiot.com/.
Hình: Giao diện trang đăng nhập
Hình: Giao diện trang tạo tài khoản
Hình: Giao diện trang tạo tài khoản
Hình: Lưu đồ kết nối các dịch vụ IoT Analytics
Bước 2: Đăng ký và kích hoạt thiết bị
Thực hiện lấy mã kích hoạt thiết bị tại giao diện Dashboard > Account > Activation Code.
Hình: Mã kích hoạt thiết bị tại IoT Analytics
Tại giao diện PuTTY kết nối với thiết bị Edison, bạn thực hiện lần lượt các lệnh sau để tiến hành đăng ký và kích hoạt thiết bị với IoT Analytics.
- Thực hiện tạm ngừng dịch vụ iotkit-agent systemctl stop iotkit-agent.
- Kết nối wifi tại Edison và kiểm tra hoạt động kết nối đến hệ thống dashboard.us.enableiot.com iotkit-admin test.
root@VisudoBlog:~# iotkit-admin test 2016-09-18T10:28:11.752Z - info: Trying to connect to host ... 2016-09-18T10:28:28.535Z - info: Connected to dashboard.us.enableiot.com 2016-09-18T10:28:28.543Z - info: Environment: prod 2016-09-18T10:28:28.545Z - info: Build: 0.14.5
- Sau khi thực hiện kiểm tra kết nối thành công, bạn có thể kích hoạt thiết bị sử dụng lệnhiotkit-admin activate [activation_code].
root@VisudoBlog:~# iotkit-admin activate k4xh9g3B 2016-09-18T09:56:44.967Z - info: Activating ... 2016-09-18T09:57:02.125Z - info: Saving device token... 2016-09-18T09:57:02.155Z - info: Updating metadata... 2016-09-18T09:57:02.179Z - info: Metadata updated.
Trong trường hợp bạn không thể kích hoạt thiết bị do thông báo lỗi error: Activation Rejected: {"code":1409,"message":"Device already exists"} --> error, bạn có thể thực hiện thay đổi Device-ID của thiết bị và thực hiện lại việc kích hoạt. Để thực hiện xem Device-ID hiện tại, bạn thực hiện lệnh iotkit-admin device-id và tiến hành thay đổi Device-ID sử dụng lệnh iotkit-admin set-device-id [New Device ID].
- Kiểm tra kết quả tại giao diện web Dashboard > Devices.
Hình: Danh sách các thiết bị đã được kích hoạt
Bước 3: Kích hoạt cảm biến (sensors/ coponents) và truyền dữ liệu thử nghiệm
Các dữ liệu từ cảm biến sẽ được thu thập và truyền đến hệ thống phân tích phục vụ việc thống kê các dữ liệu. Tuy nhiên, người dùng cần thực hiện thông báo các cảm biến hoặc dịch vụ nào sẽ được quản lý bởi hệ thống cloud thông qua sử dụng các lệnh iotkit-admin catalog, iotkit-admin register, iotkit-admin components.
Để thực hiện quản lý các thành phần từ Edison và Iot Analytics, bạn có thể sử dụng lệnh iotkit-admin catalog để liệt kê.
Hình: Ba thành phần mặc định bao gồm humidity, power, và temperature.
Hình: Ba thành phần mặc định bao gồm humidity, power, và temperature.
Để tiến hành đăng ký một thành phần từ Edison đến hệ thống IoT Analytics, bạn thực hiện lệnh iotkit-admin register temp temperature.v1.0.
root@VisudoBlog:~# iotkit-admin register temp temperature.v1.0 2016-09-18T16:29:49.979Z - info: Starting registration ... 2016-09-18T16:29:50.038Z - info: Device has already been activated. Updating ... 2016-09-18T16:29:50.053Z - info: Updating metadata... 2016-09-18T16:29:50.130Z - info: Metadata updated. Attributes sent 2016-09-18T16:30:24.909Z - info: Component registered name=temp, type=temperature.v1.0, cid=f1aa6330-7700-4844-96b6-e4790a7fe26b, d_id=00-00-00-00-33-67
Sau khi đăng ký cảm biến được sử dụng tại Edison, bạn có thể thực hiện gởi dữ liệu thử nghiệm để phục vụ phân tích, thống kê thông qua lệnh iotkit-admin observation temp 35; lệnh này cho phép ghi nhận dữ liệu vào cảm biến nhiệt độ là 35 độ C. Bạn có thể lần lượt thay đổi giá trị nhiệt độ để xem kết quả thống kê tại giao diện web.
root@VisudoBlog:~# iotkit-admin observation temp 35 2016-09-18T16:30:38.315Z - info: Submitting: n=temp, v=35 2016-09-18T16:30:54.986Z - info: Response received: response=none detail, status=0 2016-09-18T16:30:54.994Z - info: Observation Sent response=none detail, status=0
Hình: Cấu hình thành phần đồ thị tại IoT Analytics
Hình: Đồ thị kết quả nhiệt độ biến thiên theo giá trị temp
Bước 4: Quản lý dữ liệu hàng loạt sử dụng iotkit-agent
Sau khi quá trình thiết lập và thử nghiệm cơ bản hoàn tất, người dùng có thể chuyển quá trình thu thập và gởi dữ liệu sang tự động sử dụng iotkit-agent mặc định của Yocto Linux trên Edison. Giao thức truyền thông điệp từ cảm biến được sử dụng là UDP với cổng dịch vụ là 41234 đến địa chỉ là 127.0.0.1 (localhost) - UDP://localhost:41234. Sau đó thông điệp sẽ được chuyển tiếp đến IoT Analytics.
Trong ví dụ sau, tôi tiến hành gởi dữ liệu đến IoT Analytics sử dụng dịch vụ iotkit-agent.
-
Khởi động dịch vụ iotkit-agent sử dụng lệnh systemctl start iotkit-agent và kiểm tra trạng thái hoạt động systemctl status iotkit-agent -l
-
Sử dụng mã send_udp.js trong bộ thư viện iotkit-agent để tiến hành gởi dữ liệu /usr/lib/node_modules/iotkit-agent/send_udp.js, cd /usr/lib/node_modules/iotkit-agent/.
-
Thực hiện gởi dữ liệu nhiệt độ là 21 độ C ./send_udp.js temp 21.0
Hình: Gởi dữ liệu sử dụng dịch vụ quản lý iotkit-agent
Bước 5: Tích hợp các thư viện phát triển IoT
Sau khi nắm bắt được các kiến thức cơ bản về cơ chế gởi, phân tích dữ liệu cơ bản; người dùng có thể sử dụng các thư viện và API để hoàn thiện dự án của mình. Hiện tại, Intel hỗ trợ một số nền tảng lập trình như: Arduino IDE (C Style), Python, MQTT, NodeJS, C, .... (xem thêm tại https://github.com/enableiot/iotkit-samples)
Cộng đồng với người sử dụng Arduino IDE rộng rãi, bạn có thể bổ sung thêm thư việnIoTkit.zip vào Arduino IDE trong trường hợp bạn mới bắt đầu làm việc với Edison và chưa có lựa chọn ngôn ngữ lập trình nào khác.
-
Tải gói thư viện IoTkit.zip tại https://github.com/enableiot/iotkit-samples/blob/master/arduino/IoTkit.zip.
-
Thêm thư viện vào Arduino IDE: Skecth > Include Library > Add .ZIP Library
Hình: Thêm thư viện IoTkit vào Arduino IDE
Hình: Sử dụng thư viện IoTkit tại Arduino IDE
2. Tham khảo
- https://github.com/enableiot/iotkit-agent
- https://github.com/enableiot/iotkit-samples
- https://github.com/enableiot/iotkit-agent/blob/master/gettingStarted.pdf
- http://www.instructables.com/id/Intel-IoT-Analytics-Dashboard/
- https://software.intel.com/en-us/intel-iot-platforms-getting-started-cloud-analytics
- https://www.oreilly.com/ideas/intels-internal-iot-platform-for-real-time-enterprise-analytics