Những dịch vụ IoT nào có sẵn để lưu trữ / gửi / xuất bản dữ liệu chung trong đám mây?


16

Những dịch vụ IoT nào có sẵn để lưu trữ / gửi / xuất bản (và các hoạt động ngược lại) lượng nhỏ dữ liệu chung trong đám mây?

Tôi đang tìm kiếm, ví dụ, cho một dịch vụ trong đó một thiết bị có thể lưu trữ một giá trị trong đám mây. Và một số thực thể khác (một thiết bị khác, một trang web có mã JS, máy chủ web, ứng dụng di động) có thể truy xuất giá trị này.

Nó có thể là một loại giao tiếp không đồng bộ, ví dụ như để lưu trữ và truy xuất một cái gì đó nhỏ như một cặp khóa & giá trị, <255byte, một số nguyên, một chuỗi, nhiều nhất là một đối tượng JSON nhỏ. Dịch vụ có thể cung cấp API REST (do đó có thể được truy cập bằng nhiều ngôn ngữ lớn) với một số mã thông báo để xác thực và khóa & giá trị để lưu trữ.

Một ví dụ chi tiết về trường hợp sử dụng là:

Có một cảm biến nhiệt độ ở nhà, và tôi muốn nó lưu trữ giá trị trong đám mây ( một nơi nào đó ngoài nhà ). Bằng cách đó, tôi có thể truy cập nó, bất kể kết nối nhà của tôi có bị hỏng hay không. Morevoer, điều này sẽ tránh việc giữ và duy trì một máy chủ chuyên dụng + portForwarding + DynamicDNS.

Cho đến nay tôi đã không thể tìm thấy một cái gì đó như thế này, nhưng đôi khi, tôi đã tìm thấy một số ví dụ về những gì tôi muốn mô tả:

Những sự thay thế tương tự (miễn phí / mở) khác là gì?


@BenceKaulics Tôi nghĩ cả hai trường hợp sử dụng sẽ được áp dụng. Các giải pháp chuyên nghiệp có thể ngụ ý nhiều hơn về độ ổn định và độ tin cậy. Giải pháp thử nghiệm có thể là một dự án nguồn mở thú vị để tham gia.
urnenfeld

Tôi ghét phải là một môn thể thao hư hỏng, nhưng tôi không xem đây là một yêu cầu IoT, giống như các dịch vụ web, mà chúng tôi có các trang web khác. Sử dụng bất cứ điều gì bạn thích - trang web của riêng bạn, lưu trữ miễn phí, Dịch vụ web của Amazon, v.v. Bạn chưa thực sự nói với chúng tôi những gì bạn đang cố gắng đạt được. Chẳng hạn, bạn có muốn mã bất kỳ phần mềm máy chủ nào không? Không có chi tiết, chỉ là một cảm giác ấm áp, mờ nhạt, vì vậy sẽ rất khó để trả lời bạn.
Mawg nói rằng phục hồi Monica

2
@Mawg Nó có thẻ dịch vụ web (mà tôi không tạo). Trường hợp sử dụng là IoT tập trung, như các tài liệu tham khảo được đưa ra. Nó yêu cầu các dịch vụ có sẵn, trong khi điều này có thể đạt được bằng một php + db đơn giản, ý định không phải là phát minh lại bánh xe và tìm hiểu những dịch vụ nào mà cộng đồng IoT biết. Nhưng hãy cho tôi biết trong cộng đồng nào bạn nghĩ rằng nó phù hợp hơn.
urnenfeld

Đó là một cuộc gọi gần gũi. Tôi sẽ thừa nhận rằng đôi khi tôi đăng bài trên Stack Overflow, trong đó một trang web khác sẽ chính xác hơn. NHƯNG, SO có một lượng khán giả lớn hơn, vì vậy tôi có nhiều cơ hội trả lời hơn. Luôn có một chút trùng lặp với các trang web khác và chúng tôi sẽ phải xử lý nó khi chúng tôi đi cùng. +1 vì không vi phạm & bây giờ bạn đã biết về trang web bảo mật. Câu hỏi * vẫn có thể sử dụng chi tiết hơn một chút, mặc dù :-)
Mawg nói rằng phục hồi Monica

2
@Mawg tất nhiên không có hành vi phạm tội :). Tôi thực sự đã dành một chút thời gian để suy nghĩ nên đặt câu hỏi ở đâu ... Tôi đã cố gắng định hình thêm câu hỏi trước đây, Hãy xem bây giờ, tôi đã thêm trường hợp sử dụng chính xác và các giải pháp dự kiến.
urnenfeld

Câu trả lời:


10

Hãy xem các dịch vụ này:

Cả hai dịch vụ này sẽ chấp nhận dữ liệu khóa / giá trị đơn giản từ một thiết bị. Tôi tin rằng cả hai đều có thư viện sẵn sàng để nhập cho các thiết bị Hạt kể từ khi bạn đề cập đến điều đó.


7

Nhiều nhà cung cấp đám mây như Amazon, Microsoft, Google, IBM, v.v., đang cố gắng thu hút không gian IoT bằng cách cung cấp các cách dễ dàng hơn để gửi / lưu trữ / phân tích dữ liệu cảm biến lên đám mây của họ. Thậm chí, họ phải mua các nhà cung cấp phần cứng để tăng phạm vi của họ trong IoT.

Tôi đã không sử dụng bất kỳ dịch vụ nào ngoài AWS, vì vậy tôi có thể giải thích trải nghiệm của mình với AWS và cách chúng tôi tích hợp dịch vụ này cho việc sử dụng sản xuất.


Kịch bản:

Chúng tôi có hàng trăm cảm biến mỗi người gửi 184-428 byte dữ liệu mỗi phút đến cổng cục bộ để tổng hợp dữ liệu và lưu trữ dữ liệu cục bộ và gửi cùng một dữ liệu tới đám mây AWS. Chúng tôi cũng có các cảm biến vỏ đặc biệt gửi dữ liệu trực tiếp lên đám mây.

Dịch vụ điện toán đám mây

Chúng tôi đang sử dụng AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Gateway, AWS SNS, AWS Cloudwatch, AWS RedShift để xây dựng toàn bộ giải pháp. Về cơ bản, những thứ này không dành riêng cho IoT (Ngoại trừ AWS IoT) vì chúng ta có thể sử dụng chúng cho thiết bị di động, web.

Gateway sử dụng SDK AWS IoT để kết nối, xác thực và trao đổi tin nhắn với AWS IoT bằng các giao thức MQTT, HTTP hoặc WebSockets (Chúng tôi đang sử dụng nút JS SDK kết nối qua MQTT). Chúng tôi là nhà môi giới MQTT cục bộ trên cổng thiết bị và kết nối nó với điểm cuối AWS IoT từ đó chúng tôi đang chạy kiểm tra tức thời dữ liệu nhận được (sử dụng công cụ quy tắc, chức năng AWS Lambda) và lưu trữ chúng vào lưu trữ DynamoDB vào S3, Glacier (Lưu trữ được thực hiện không cần viết một dòng thực hiện chỉ bằng cách sử dụng kích hoạt AWS để lưu trữ dữ liệu).


6

Nó chỉ dành cho thử nghiệm hoặc sử dụng thử nghiệm nhưng có thể nó sẽ thay đổi trong tương lai.

Vì vậy, đề nghị của tôi là sử dụng MQTT , chính xác hơn là triển khai Mosquitto của nó . Họ lưu trữ một nhà môi giới thử nghiệm mà bạn có thể kết nối khách hàng thuê bao và nhà xuất bản của mình. ( Dưới đây là hướng dẫn về quy trình thiết lập trên Windows 7. )

Lưu ý những điều dưới đây:

Bạn có thể tự do sử dụng nó cho bất kỳ ứng dụng nào, nhưng vui lòng không lạm dụng hoặc dựa vào nó cho bất kỳ điều gì quan trọng. Bạn cũng nên xây dựng ứng dụng khách của mình để đối phó với việc môi giới khởi động lại.

Nhưng về cơ bản, bạn có thể xuất bản dữ liệu nhiệt độ cho nhà môi giới này.

Về phía thuê bao-khách hàng, gần đây tôi đã sử dụng ứng dụng Android này . Nó là một ứng dụng rất cơ bản, vẫn đang được phát triển nhưng với mục đích thử nghiệm thì nó rất tuyệt vời. Tin nhắn nhận được được hiển thị trên bảng điều khiển, không có gì lạ mắt chỉ là các giá trị trần.

Tôi đã bắt đầu sử dụng cả hai điều này như là một giai đoạn đầu tiên của quá trình học tập MQTT của tôi và thấy cả hai đều tuyệt vời cho người mới bắt đầu.


1
MQTT sẽ không phải là một giải pháp phù hợp hơn trong bối cảnh LAN? Đối với các vấn đề như quyền riêng tư / bảo mật / nhiều người dùng?
urnenfeld

@urnenfeld MQTT có thể hỗ trợ trang web, ứng dụng di động và yêu cầu "thiết bị khác" của bạn vì bạn có thể đăng ký với tất cả chúng. Ngoài ra, chắc chắn bạn sẽ muốn gửi dữ liệu từ các thiết bị khác trong tương lai và không chỉ nhiệt độ nên khả năng nhiều người dùng là IMO tốt ngay cả khi đó chỉ là mạng thuê bao đơn của nhiều nhà xuất bản. Ngoài ra bảo mật và quyền riêng tư phải luôn luôn là một vấn đề. Đối với LAN, có lẽ nó phù hợp với điều đó hơn nhưng với nếu bạn quan tâm đến bảo mật, bạn có thể làm cho nhà môi giới của mình có mặt ở mọi nơi, không phải là một chuyên gia trong vấn đề này.
Bence Kaulics

1
Erm, nhà môi giới thử nghiệm này là một nhà môi giới thử nghiệm vì vậy nó không nên được sử dụng cho một ứng dụng đang chạy. Nhưng ý tưởng là ở đây: bạn có thể mở cổng của nhà môi giới MQTT từ tường lửa của bạn và kết nối từ mọi nơi.
Goufalite

Tôi xin lỗi nhưng OP muốn lưu trữ dữ liệu, MQTT chỉ là một trình nhắn tin nhưng bạn có thể sử dụng nó để gửi dữ liệu đến một máy chủ chuyên dụng. Để truy xuất giá trị, khách hàng phải gửi truy vấn đến MQTT để truy xuất giá trị thông qua một ấn phẩm. MQTT rất tuyệt nhưng một dịch vụ web có một nơi tốt hơn ở đây ...
Goufalite

@Goufalite Có, lưu trữ dữ liệu phức tạp hơn.
Bence Kaulics

5

Có hai thành phần này:

  1. Bạn muốn dữ liệu của bạn được lưu trữ như thế nào? Không có cách nào thực sự để tạo ra một dịch vụ dữ liệu "chung chung" sẽ thực sự phù hợp với mọi nhu cầu. Những gì bạn muốn được gọi là "Cơ sở dữ liệu chuỗi thời gian" và có hàng trăm trong số chúng bởi vì mọi chi tiết về cách bạn lưu trữ dữ liệu đều có quy mô. (Nếu bạn không ở quy mô, chỉ cần lưu trữ nó trong bất kỳ cơ sở dữ liệu cũ nào, nó sẽ hoạt động trong một thời gian.)

    Mỗi cơ sở dữ liệu chuỗi thời gian được viết bởi vì những người khác đã không làm chính xác như họ muốn. Ví dụ, hãy xem xét cách Graphite lưu trữ dữ liệu của nó: Mọi số liệu (giả sử nhiệt độ từ một nguồn) được lưu trữ trong một tệp có kích thước cố định. Bất kể tần suất bạn gửi số liệu, hoặc bạn gửi chúng trong bao lâu, tệp có kích thước không đổi.

    Nhược điểm là dữ liệu cũ hơn ở độ phân giải thấp hơn và sau một khoảng thời gian đã đặt mà bạn xác định (chẳng hạn như 1 năm), dữ liệu sẽ bị loại bỏ. Nhưng nhược điểm là nó nhanh như đồ thị một ngày như một năm và các số liệu không tăng kích thước theo thời gian.

    Trong các hệ thống lưu trữ khác, việc tạo một biểu đồ trong một năm có thể liên quan đến việc tìm nạp hàng triệu điểm dữ liệu và có thể cần một lượng lưu trữ dữ liệu khổng lồ.

    Nhược điểm lớn của Graphite là mọi số liệu tạo ra một tệp mới, vì vậy nếu bạn có số liệu động (giả sử các hộp đám mây đến và đi), nó có thể không phù hợp.

    Ngược lại với Prometheus , nơi các số liệu được lưu trữ chủ yếu theo thời gian. Bạn có thể có nhiều số liệu động, và nó ổn. Nhưng đừng cố lưu trữ những số liệu đó trong thời gian dài, sẽ mất mãi mãi để quay lại và đọc chúng.

    Không có một kích thước sẽ phù hợp với tất cả.

    PS Graphana là một cách tuyệt vời để trực quan hóa dữ liệu của bạn. Nó có các trình cắm cho hầu hết các cơ sở dữ liệu chuỗi thời gian.

  2. Ai sẽ lưu trữ dữ liệu của bạn? hàng ngàn của những nơi như những người bạn đề cập đến. Thật dễ dàng để tạo ra một chuỗi DB thời gian trên đám mây, nhưng thật sự rất khó để kiếm tiền từ nó. Hầu hết các công ty này sẽ ngừng hoạt động sau một thời gian, hoặc bắt đầu kiểm soát giá cả. (Ngay cả việc giữ giá ổn định là giảm giá - vì chi phí điện toán liên tục giảm.) Nhiều lần, họ thấy họ không thể thu hút nhiều khách hàng mới như họ, vì vậy họ cố gắng tăng giá (theo chiêu bài thay đổi mô hình định giá của họ). Hóa ra nó tốn rất nhiều tiền để lưu trữ dữ liệu của mọi người ...

    Tôi khuyên bạn nên tự lưu trữ hoặc sử dụng nhà cung cấp đám mây có uy tín như AWS CloudWatch . (Đắt tiền nếu bạn có nhiều số liệu, nhưng miễn phí dưới 50 số liệu!)


Ý tưởng là để có được một bộ tốt nhất trong số "hàng ngàn địa điểm" đó. Tôi đã thu thập một bộ sưu tập (thậm chí là tự làm) sẽ được đăng ở đây vào lúc nào đó
urnenfeld

3

uBeac là một công cụ trực quan hóa phần mềm miễn phí mới mà chúng tôi đã phát triển và đó là phiên bản Beta. Nó không phải là mã nguồn mở, nhưng hoàn toàn miễn phí sử dụng.

Bạn có thể xác định một cổng và bạn sẽ nhận được một URI duy nhất. Bạn có thể đặt URI trong cổng hoặc thiết bị của mình để gửi dữ liệu HTTP / MQTT tới.

Đây là một số tính năng của nó:

  • Đội, xây dựng, định nghĩa sơ đồ tầng
  • Trực quan hóa dữ liệu thời gian thực
  • Thiết kế bảng điều khiển tùy chỉnh bằng cách sử dụng các vật dụng khác nhau
  • Xác định loại cảm biến, đơn vị và tiền tố Trực quan hóa bản đồ
  • ...

Nó cũng hỗ trợ định dạng dữ liệu Json chung và cổng được xác định trước khác nhau. Nếu bạn không muốn sử dụng các định dạng tải trọng được xác định trước, chúng sẽ mở để phát triển xử lý tải trọng tùy chỉnh của bạn.


Xin chào @Amir, chúng tôi đã nhận thấy câu trả lời của bạn cho đến nay là bản sao của nhau và đang quảng bá sản phẩm của bạn. Trả lời nơi sản phẩm của bạn có liên quan là tốt, nhưng vui lòng đảm bảo đọc hướng dẫn tự quảng cáo trong trung tâm trợ giúp. Đó cũng là một ý tưởng tốt để điều chỉnh câu trả lời của bạn cho câu hỏi thay vì đăng văn bản giống hệt nhau để đảm bảo rằng bạn thực sự trả lời câu hỏi đầy đủ thay vì chỉ quảng bá sản phẩm của bạn. Cảm ơn.
Aurora0001

1

Tôi ngạc nhiên không có ai ở đây đề cập đến Dweet . Đây là một cách siêu đơn giản, siêu thú vị để khiến mọi thứ giao tiếp. Bạn chắc chắn nên thử nó, bởi vì này, nó miễn phí!


1
Nó thực sự đã được đề xuất, nhưng điều độ đã loại bỏ nó. Một trong những điều thú vị của dịch vụ này là bạn thậm chí không cần phải đăng ký và chúng hiển thị một số âm mưu của dữ liệu của bạn. Về phía đối tác, dữ liệu của bạn khá công khai :)
urnenfeld

0

flespi cung cấp dịch vụ đám mây miễn phí và thương mại:

  • Dịch vụ môi giới MQTT cho các hoạt động PUB / SUB và bạn thậm chí có thể lưu trữ dữ liệu trong các tin nhắn giữ lại ;
  • Công cụ lưu trữ cho các hoạt động chính / giá trị, đặc biệt nhắm mục tiêu dữ liệu thời gian và lưu trữ tệp chung (CDN). Hoạt động thông qua API REST .

Từ chối trách nhiệm bắt buộc: Tôi đang làm việc cho công ty phát triển nền tảng flespi. Mặc dù tôi đã cố gắng hết sức để duy trì mục tiêu, như mọi khi trên Internet, vui lòng kiểm tra kỹ tất cả thông tin trong câu trả lời này để loại trừ sự thiên vị có thể ảnh hưởng đến quyết định của bạn.


Một lần nữa, vui lòng khai báo bất kỳ kết nối nào với một dịch vụ khi giới thiệu nó (ví dụ: bạn làm việc cho flespi)
hardillb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.