6

Bài đăng này đề xuất sử dụng IoT để giải quyết vấn đề làm giảm chất lượng không khí ở các thành phố.

Ý tưởng là một cảm biến sẽ đo mức ô nhiễm không khí và truyền dữ liệu đó. Thông tin sau đó sẽ được chia sẻ với người dùng của hệ thống.

Ví dụ minh họa cách nhận giá trị từ dữ liệu IoT bằng cách sử dụng  Apache CamelJBoss A-MQ và  Elaticsearch .

Kiến trúc cơ bản của bản demo này về cơ bản như sau:

Có ba giao thức phổ biến khi nói đến nhắn tin IoT - MQTT, AMQP và STOMP. Trong ví dụ này, tất cả các thiết bị cảm biến sử dụng MQTT (được JBoss A-MQ hỗ trợ) để tương tác và kết nối. 

Tại sao MQTT? Nó là một tiêu chuẩn OASIS, được thông qua bởi các nhà cung cấp và các công ty khác nhau. Đây là một phương tiện giao thông cực kỳ nhẹ và tuyệt vời cho các thiết bị năng lượng thấp và các nền tảng liên quan. Nó hỗ trợ một cơ chế xuất bản và đăng ký mà chúng tôi sẽ sử dụng.

Tất cả dữ liệu IoT được thu thập bởi các cảm biến được gửi và tổng hợp một cách đáng tin cậy trong JBoss A-MQ và được xử lý bởi Apache Camel. Sau đó, dữ liệu được lưu trữ trong Elaticsearch cho các thông báo theo thời gian thực.

Làm thế nào chúng ta có thể thực hiện điều này?

Bạn phải thêm trình kết nối truyền tải MQTT vào JBoss A-MQ. Để làm điều đó, bạn phải thêm dòng sau vào Broker.xml của bạn:

<transportConnector name=”mqtt” uri=”mqtt://${Hostname}:1883″/>


Sau đó cài đặt Camel Route. Tuyến đường này sử dụng các thành phần tích hợp trong JBoss Fuse để lấy thông điệp từ nhà môi giới. Với thành phần tích hợp, nó sẽ tiết kiệm rất nhiều thời gian thực hiện mã.

Như bạn có thể thấy từ ví dụ Camel Route, sau khi chúng tôi truy xuất các tin nhắn từ chủ đề IoT, chúng tôi sẽ xử lý nó và lưu trữ nó trong Elaticsearch, sẽ được Kibana chọn và hiển thị trong bảng điều khiển.

Ở cấp độ Elaticsearch, bạn phải tạo một chỉ mục mới với ánh xạ sau:

curl -XPUT ‘http://localhost:9200/pollutionlevel/_mapping/command’ -d ‘ {“tweet” : { “properties” : { “event_datetime” : {“type” : “date”}, “pollution_degree” : {“type” : “integer”}, “latitude” : {“type” : “double”}, “longitude” : {“type” : “double”}, “location” : {“type” : “geo_point”}}}}‘


Tại thời điểm này, tất cả dữ liệu có sẵn trong Elaticsearch và chúng tôi chỉ cần khám phá và hình dung nó thông qua Kibana. Đối với điều đó, bạn phải tạo ra một số hình ảnh sẽ được bao gồm trong bảng điều khiển của bạn.

Dưới đây là một ví dụ về Bảng điều khiển tùy chỉnh:

Tôi hy vọng rằng bạn thấy bài viết này hữu ích, và chúc may mắn với các dự án của bạn!

|