Genel verileri bulutta depolamak / göndermek / yayınlamak için hangi IoT hizmetleri mevcuttur?


16

Bulutta genel az miktarda veri depolamak / göndermek / yayınlamak (ve karşıt işlemler) için hangi IoT hizmetleri mevcuttur?

Örneğin, bir cihazın bulutta bir değer depolayabileceği bir hizmet arıyorum. Ve başka bir varlık (başka bir cihaz, bazı JS kodlu bir web sitesi, bir web sunucusu, bir mobil uygulama) bu değeri alabilir.

Örneğin, anahtar ve değer çifti, <255bayt, bir tam sayı, bir dize, en çok küçük bir JSON nesnesi kadar küçük bir şeyi depolamak ve almak için bir tür asenkron iletişim olabilir. Hizmet, kimlik doğrulaması için bazı jeton ve depolanacak anahtar ve değer ile bir REST API (çok çeşitli diller tarafından erişilebilir) sunabilir.

Bir kullanım senaryosunun ayrıntılı bir örneği:

Evde bir sıcaklık sensörü var ve değeri bulutta ( ev dışında bir yerde ) saklamasını istiyorum . Bu şekilde, ev bağlantımın kesik olup olmadığına bakılmaksızın erişebilirim. Dahası, bu özel bir sunucu + bağlantı noktası tutmaktan ve korumaktan kaçınacaktır.

Şimdiye kadar böyle bir şey bulamadım, ancak bazen, tanımlamak istediğim şeylere bazı örnekler buldum:

Başka hangi benzer (serbest / açık) alternatifler var?


@BenceKaulics Her iki kullanım vakasının da geçerli olacağını düşünüyorum. Profesyonel çözüm daha fazla standartlaştırma ve güvenilirlik anlamına gelebilir. Deneysel çözüm, katılmak için ilginç bir açık kaynaklı proje olabilir.
urnenfeld

Bozuk bir spor olmaktan nefret ediyorum, ancak bunu, başka sitelerimiz olan web serileri gibi bir IoT isteği olarak görmüyorum. İstediğiniz her şeyi kullanın - kendi siteniz, ücretsiz barındırma, Amazon Web Services vb. Bize gerçekten neyi başarmaya çalıştığınızı söylemediniz. Örneğin, herhangi bir sunucu yazılımını kodlamak ister misiniz? Ayrıntı yok, sadece sıcak, bulanık bir his, bu yüzden size cevap vermek çok zor olacak.
Mawg, Monica

2
@Mawg (Oluşturmadığım) web hizmeti etiketine sahiptir. Kullanım durumu verilen referanslar gibi IoT odaklıdır. Kullanılabilir hizmetler ister, ancak bu basit bir php + db ile gerçekleştirilebilir, ancak amaç tekerleği yeniden icat etmek değildir ve IoT topluluğunun hangi hizmetleri bildiğini bilmek değildir. Ama hangi topluluğa daha uygun olduğunu düşündüğünüzü bana bildirin.
urnenfeld

Yakın bir çağrı. Bazen başka bir sitenin daha doğru olacağı Stack Overflow'da yayınladığımı itiraf edeceğim. ANCAK, SO daha büyük bir kitleye sahip, bu yüzden cevap verme şansım daha fazla. Her zaman diğer sitelerle biraz örtüşme var ve biz giderken bunu çalışmak zorundayız. Suçlamadığınız için +1 ve şimdi güvenlik sitesinin farkındasınız. * Sorusu yine de biraz daha ayrıntılı olabilir :-)
Mawg, Monica

2
@Mawg tabii ki suç yok :). Soruyu nereye yerleştireceğimi düşünmek için biraz zaman harcadım ... Daha önce soruyu daha fazla şekillendirmeye çalıştım, Şimdi görelim, tam kullanım durumunu ve geçici çözümleri ekledim.
urnenfeld

Yanıtlar:


10

Şu hizmetlere bir göz atın:

Bu hizmetlerin her ikisi de bir cihazdan basit anahtar / değer verilerini kabul eder. Sizden bahsettiğinizden beri her ikisinin de Parçacık cihazları için ithal etmeye hazır kütüphaneleri olduğuna inanıyorum.


7

Amazon, Microsoft, Google, IBM vb.Gibi birçok bulut sağlayıcısı, bulutlarına sensör verilerini göndermek / depolamak / analiz etmek için daha kolay yollar sağlayarak IoT alanını çekmeye çalışıyor. Hatta IoT'deki kapsamını artırmak için donanım satıcıları edinecekler.

AWS dışında herhangi bir hizmet kullanmadım, bu yüzden AWS ile olan deneyimimi ve bunu üretim kullanımı için nasıl entegre ettiğimizi açıklayabilirim.


Senaryo:

Her biri, verileri toplayan ve verileri yerel olarak depolayan ve aynı verileri AWS bulutuna gönderen yerel ağ geçidine her dakika 184-428 bayt veri gönderen yüzlerce sensöre sahibiz. Ayrıca doğrudan buluta veri gönderen özel kasalı sensörlere de sahibiz.

Bulut Hizmetleri

Tüm çözümü oluşturmak için AWS IoT , AWS S3, AWS DynamoDB, AWS Lambda, AWS API Ağ Geçidi, AWS SNS, AWS Cloudwatch, AWS RedShift kullanıyoruz. Temel olarak, bunlar mobil, web için kullanabileceğimiz için IoT'ye (AWS IoT hariç) özgü değildir.

Gateway, MQTT, HTTP veya WebSockets protokollerini kullanarak AWS IoT ile mesaj bağlamak, kimlik doğrulaması yapmak ve mesaj alışverişi yapmak için AWS IoT SDK kullanır (MQTT aracılığıyla bağlanan düğüm JS SDK kullanıyoruz). Cihaz ağ geçidinde yerel olarak MQTT brokerıyız ve oradan AWS IoT uç noktasına köprülüyoruz. Alınan verilerde (kural motoru, AWS Lambda fonksiyonlarını kullanarak) anında kontroller yapıyor ve bunları D3amoDB arşivine S3'te saklıyoruz, Glacier (Depolama tamamlandı tek satırlık veri yazmadan sadece AWS tetikleyicileri kullanarak veri depolamak için).


6

Sadece deneysel veya test amaçlı kullanım içindir, ancak gelecekte değişecektir.

Benim önerim kullanmaktır Yani MQTT , daha doğrusu onun mosquitto uygulanmasını. Abonenizi ve yayıncı istemcilerinizi bağlayabileceğiniz bir test komisyoncusu barındırırlar . ( Windows 7'deki kurulum işlemi hakkında bir kılavuz . )

Aşağıdakilere dikkat et:

Herhangi bir uygulama için kullanmakta özgürsünüz, ancak lütfen önemli bir şey için kötüye kullanmayın veya ona güvenmeyin. İstemcinizi, aracıyı yeniden başlatmakla başa çıkmak için de oluşturmanız gerekir.

Ancak temel olarak bu aracıya sıcaklık verileri yayınlayabilirsiniz.

Abone-istemci tarafında son zamanlarda bu Android uygulamasını kullandım . Çok temel bir uygulamadır, hala geliştirilmektedir ancak test amaçlı olarak çok harikadır. Alınan mesajlar bir gösterge tablosunda gösterilir, hiçbir şey sadece çıplak değerleri süslemez.

Her ikisini de MQTT öğrenme sürecimin ilk aşaması olarak kullanmaya başladım ve her ikisini de yeni başlayanlar için harika buldum.


1
MQTT, LAN bağlamında daha uygun bir çözüm olmaz mı? Gizlilik / güvenlik / çok kullanıcılı gibi sorunlar için mi?
urnenfeld

@urnenfeld MQTT, hepsine abone olabileceğiniz için web sitenizi, mobil uygulamanızı ve "diğer cihaz" gereksinimlerinizi destekleyebilir. Ayrıca, sadece sıcaklık değil, diğer cihazlardan da veri göndermek istiyorsunuz, bu nedenle çok kullanıcılı özelliği, yalnızca çok yayıncılı tek abone ağı olsa bile, IMO'dur. Ayrıca güvenlik ve gizlilik her zaman bir sorun olmalıdır. LAN'a gelince, belki de daha çok uyuyor, ancak güvenlikle ilgilenirseniz, bu konuda uzman değil, brokerınızı her yerden kullanılabilir hale getirebilirsiniz.
Bence Kaulics

1
Hmm, bu test komisyoncusu bir test komisyoncusu olduğundan, çalışan bir uygulama için kullanılmamalıdır. Ancak fikir burada: MQTT aracınızın bağlantı noktasını güvenlik duvarınızdan açabilir ve her yerden bağlanabilirsiniz.
Goufalit

Üzgünüm ama OP veri depolamak istiyor , MQTT sadece bir elçidir, ancak verileri özel bir sunucuya göndermek için kullanabilirsiniz. Bir değeri almak için, istemcinin değeri bir yayın aracılığıyla almak üzere MQTT'ye bir sorgu göndermesi gerekir. MQTT harika ama bir webservice burada daha iyi bir yer var ...
Goufalite

@ Goufalite Evet, veri depolamak daha karmaşıktır.
Bence Kaulics

5

Bunun iki bileşeni vardır:

  1. Verilerinizin nasıl saklanmasını istiyorsunuz? Tüm ihtiyaçlara tam olarak uyacak "genel" bir veri hizmeti yapmanın gerçek bir yolu yoktur. İstediğiniz şey "Zaman Serisi Veritabanları" olarak adlandırılır ve yüzlerce vardır, çünkü verileri nasıl depoladığınıza dair her ayrıntı önemlidir. (Ölçekli değilseniz, herhangi bir eski veritabanında saklayın, bir süre çalışacaktır.)

    Her zaman serisi veritabanı yazılmıştır, çünkü diğerleri tam olarak istedikleri şekilde yapmamıştır. Örneğin, Graphite'nin verilerini nasıl sakladığını düşünün : Her metrik (bir kaynaktan gelen sıcaklık) sabit boyutlu bir dosyada saklanır. Metrikleri ne sıklıkta gönderirseniz veya ne kadar süre gönderirseniz gönderin dosya sabit bir boyuttadır.

    Dezavantajı, eski verilerin daha düşük bir çözünürlükte olması ve belirli bir aralıktan sonra (1 yıl gibi) tanımladığınız veriler atılır. Ancak bunun tersi, bir günü bir yıl gibi grafiklendirmenin hızlı olması ve metriklerin zaman içinde büyümemesi.

    Diğer depolama sistemlerinde, bir yıl boyunca grafik oluşturmak milyonlarca veri noktası getirilmesini içerebilir ve çok miktarda veri depolaması gerektirebilir.

    Grafitin büyük dezavantajı, her metriğin yeni bir dosya oluşturmasıdır, bu nedenle dinamik metrikleriniz varsa (bulut kutularının gelip gittiğini varsa), iyi bir uyum olmayabilir.

    Metriklerin çoğunlukla zaman içinde depolandığı Prometheus ile karşılaştırın . Çok sayıda dinamik metriğiniz olabilir ve sorun yoktur. Ancak bu metrikleri uzun vadede saklamaya çalışmayın, geri dönüp okumak sonsuza dek sürecektir.

    Hiçbir beden herkese uymaz.

    PS Graphana verilerinizi görselleştirmenin mükemmel bir yoludur. Çoğu zaman serisi veritabanı için eklentilere sahiptir.

  2. Verilerinizi kim depolayacak? Orada binlerce ait yerlerin gibi olanlar Bahsettiğiniz. Bir zaman serisi DB'sini bulutta çevirmek çok kolay, ancak para kazanmak gerçekten çok zor.Bu şirketlerin çoğu bir süre sonra işten çıkacak veya fiyat oymaya başlayacak. (Fiyatlarını sabit tutmak bile fiyat katkısıdır - bilgi işlem maliyeti sürekli olarak düştüğü için.) Çoğu zaman, olsa da yeni müşterileri çekemediklerini fark ederler, bu yüzden fiyatları yükseltmeye çalışırlar (kisvesi altında) fiyatlandırma modelini değiştirme). Herkesin verilerini saklamanın çok paraya mal olduğu ortaya çıkıyor ...

    Kendini barındırmayı veya AWS CloudWatch gibi saygın bir bulut sağlayıcısı kullanmanızı öneririm . (Çok fazla metriğiniz varsa pahalıdır, ancak 50 metrikin altında ücretsizdir!)


Fikir, bu "bin mekan" ın en iyi setini almaktı. Zaten burada bir süre sonra gönderecek bir koleksiyon (hatta kendi yaptığım)
topladım

3

uBeac , geliştirdiğimiz yeni bir ücretsiz görselleştirme aracıdır ve Beta sürümüdür. Açık kaynak değildir, ancak kullanımı tamamen ücretsizdir.

Bir ağ geçidi tanımlayabilirsiniz ve benzersiz bir URI elde edersiniz. HTTP / MQTT verilerini göndermek için ağ geçidinizdeki veya cihazınızdaki URI'yi ayarlayabilirsiniz.

Bunlar bazı özellikleri:

  • Takım, bina, kat planı tanımı
  • Gerçek zamanlı veri görselleştirme
  • Farklı widget'lar kullanan özel pano tasarımı
  • Sensör tiplerini, birimlerini ve öneklerini tanımlayın Harita görselleştirme
  • ...

Genel Json veri formatını ve önceden tanımlanmış farklı ağ geçidini de destekler. Önceden tanımlanmış faydalı yük formatlarını kullanmak istemiyorsanız, bunlar özel yük taşıma işleminizi geliştirmek için açıktır.


Merhaba @Amir, şimdiye kadar cevaplarınızın birbirinin kopyaları olduğunu ve ürününüzü tanıttığını fark ettik. Ürününüzün nerede alakalı olduğunu yanıtlamakta fayda vardır, ancak lütfen yardım merkezindeki kendi tanıtım talimatlarını okuduğunuzdan emin olun . Ayrıca, ürününüzü tanıtmaktan ziyade soruyu tam olarak yanıtladığınızdan emin olmak için özdeş metin yayınlamak yerine sorularınızı yanıtlarınıza göre ayarlamak da iyi bir fikirdir. Teşekkürler.
Aurora0001

1

Burada kimsenin Dweet'den bahsetmediğine şaşırdım . Bu, iletişim kurmanın süper basit, süper eğlenceli bir yoludur. Kesinlikle denemelisiniz, çünkü hey, ücretsiz!


1
Gerçekten önerildi, ancak ılımlılık onu kaldırdı. Bu hizmetin harika şeylerinden biri, kaydolmanız bile gerekmiyor ve verilerinizin bir kısmını gösteriyor. Karşı
tarafta

0

flespi ücretsiz ve ticari bulut hizmetleri sağlar:

Zorunlu feragatname: Flespi platformunu geliştiren şirket için çalışıyorum. Her zaman internette olduğu gibi objektif kalmak için elimden geleni yapsam da, kararınızı etkileyebilecek önyargıları ortadan kaldırmak için lütfen bu yanıttaki tüm bilgileri iki kez kontrol edin.


Yine, lütfen bir hizmetle bağlantı kurarken herhangi bir bağlantı olduğunu beyan edin (örn. Flespi için çalışıyorsunuz)
Hardillb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.