Pracuję na urządzeniu, które wykrywa i zbiera informacje ze środowiska, takie jak temperatura, wilgotność itp.
Urządzenie nie jest podłączone do żadnego źródła zasilania, ale ma baterię i panel słoneczny do ładowania.
Przez większość czasu jest prawie w głębokim śnie i budzi się tylko wtedy, gdy musi wykryć i przesłać dane. Ta operacja trwa około 1-2 minut, a następnie ponownie zasypia.
Nie jestem ekspertem w tej dziedzinie, ale myślę, że MQTT powinien być dobrym rozwiązaniem, jeśli urządzenie musi być dostępne, aby otrzymywać wiadomości z tematu przez cały czas, ale w moim scenariuszu tylko odczytuje czujniki i wysyła dane do serwer okresowo.
Obecnie przesyłam dane przez HTTP, ale zastanawiam się, czy warto wdrożyć MQTT? Czy powinienem uzyskać przewagę nad HTTP w tym scenariuszu?
Odpowiedzi:
Jeśli przechowujesz dane, po prostu trzymaj się HTTP. HTTP to tylko sygnał jednokierunkowy.
Jeśli Twój serwer lub jakakolwiek inna „rzecz” powinna zareagować na określony sygnał (niska temperatura, ...), użyj MQTT. W ten sposób wiele urządzeń może zasubskrybować sygnał temperatury i natychmiast zareagować bez użycia serwera.
źródło
Wspominasz panel słoneczny i baterię jako część urządzenia, więc prawdopodobnie chcesz zminimalizować zużycie energii podczas transmisji, aby mieć pewność, że urządzenie nie wyczerpie się całkowicie.
Dlatego warto rozważyć CoAP The Co nstrained A TOSOWANIE P rotocol, który został specjalnie zaprojektowany do ograniczonych urządzeń w Internecie rzeczy.
W artykule Porównywanie opłacalności CoAP i HTTP w aplikacjach Web of Things , można znaleźć dość przekonujące dowody na to, że CoAP może przynieść ci oszczędność energii. W Dodatku A (strona 38) możesz sprawdzić oczekiwaną żywotność baterii urządzeń w Tabeli A.4. Przez 120 sekund, zgodnie z oczekiwaniami w przypadku użycia:
Obliczenia te przeprowadzono na parze węglowo-cynkowych baterii AA, ale wyraźnie widać, że CoAP zużywa znacznie mniej energii, więc warto się zastanowić. Jego „tryb pchania”, jak opisano w artykule, wydaje się dokładnie tym, co planujesz zrobić.
Chociaż nie pytałeś konkretnie o CoAP, myślę, że warto o tym wspomnieć, ponieważ Goufalite omówił już istotne różnice między MQTT a HTTP. Dobrą zasadą jest: czy planujesz komunikować się jeden na jednego , czy jeden na wielu ? Jeśli to pierwsze, HTTP i CoAP wydają się lepiej dopasowane. Jeśli to drugie, MQTT jest prawdopodobnie wygodniejsze.
źródło