Jest to temat, nad którym zastanawiałem się od dłuższego czasu, szczególnie dlatego, że koncepcja „IoT” ostatnio często się unosi.
Zacznę od tego, co mam na myśli, mówiąc „IoT” . Wiem, że termin IoT może oznaczać różne rzeczy i że czasami jest niewłaściwie używany. Może to być termin, który nie jest jasno zdefiniowany i może prowadzić do dużych dyskusji wokół tego, co to dokładnie znaczy, sam nie znam właściwej i powszechnie akceptowanej definicji tego terminu. Dla mnie IoT to koncepcja, która określa możliwość zdalnego połączenia z urządzeniem wbudowanym za pośrednictwem Internetu albo z innego urządzenia wbudowanego, albo z telefonu komórkowego . Tak proste jak to.
W tym kontekście cel połączenia nie ma znaczenia, jeśli możesz połączyć jedno urządzenie w biurze z innym urządzeniem w domu lub jeśli możesz połączyć się z jednym urządzeniem w domu z telefonu komórkowego, wszystko to przez Internet, wtedy mówimy o urządzeniach IoT (urządzeniach osadzonych, a nie telefonie).
Po uzgodnieniu, co rozumiem przez Internet Rzeczy, opiszę teraz, co próbuję osiągnąć.
Staram się osiągnąć właśnie to, co opisuję w mojej definicji Internetu Rzeczy.
Chcę mieć jedno lub kilka wbudowanych urządzeń w domu podłączonych do mojego routera internetowego za pośrednictwem sieci Ethernet lub Wi-Fi i móc połączyć się z nimi zdalnie z innymi urządzeniami osadzonymi w zdalnej lokalizacji (a przez zdalny nie mam na myśli tej samej sieci) a może też być w stanie połączyć się z nimi za pomocą aplikacji monitorującej na moim telefonie
Na przykład mogę mieć proste urządzenie osadzone działające jako włącznik / wyłącznik podłączone do mechanizmu otwierania drzwi garażowych i inne urządzenie osadzone działające jak duży czerwony przycisk na biurku w pracy, dzięki czemu mogę nacisnąć czerwony przycisk na biurku i otwierają się drzwi garażu.
Innym przykładem może być wbudowane urządzenie z funkcjami ADC, które mogą monitorować temperaturę w moim domu i wysyłać mi ostrzeżenie, gdy osiągnie próg. Powiadomienie może zostać odebrane albo przez prostą aplikację na Androida, albo przez inne wbudowane urządzenie z małym ekranem siedzącym na biurku w pracy.
Te przykłady mogą być głupie, ale służą jedynie zilustrowaniu możliwych scenariuszy i przypadków użycia dla tego, co próbuję osiągnąć. Na koniec pomysł jest taki sam: połącz jedno urządzenie osadzone z drugim za pośrednictwem Internetu.
Kolejną rzeczą do wyjaśnienia jest to, że wymiana danych między tymi urządzeniami będzie bardzo lekka, tylko kilka bajtów za każdym razem, nie jest tak, że setki kilobajtów są potrzebne do wymiany między urządzeniami.
Dodatkowo, rodzaj „urządzeń wbudowanych”, o których mówię, to proste, ale zdolne urządzenia oparte na mikrokontrolerach cortex-m4 100 MHz lub 200 MHz. Należy to wyjaśnić, ponieważ na tych urządzeniach nie będzie działał żaden system Linux ani złożone biblioteki. W końcu marnowanie zasobów jest całkowicie niepotrzebne, aby mieć potężny procesor z systemem Linux, aby włączyć lub wyłączyć żarówkę . W każdym razie planuję używać BeagleBoard, Raspberry Pi lub innej takiej płyty jako mojego urządzenia wbudowanego. Tylko mikrokontrolery, ponieważ nie jest potrzebna większa złożoność.
Nie wiem wiele o platformach IoT i tego rodzaju złożonych rozwiązaniach. Kiedy rozpocząłem tę podróż, aby znaleźć sposób połączenia jednego urządzenia osadzonego z drugim za pośrednictwem Internetu, natknąłem się na kilka witryn z usługami IoT.
Wiem, że istnieją pewne usługi w chmurze IoT, takie jak:
Żeby wymienić tylko kilka. Głównymi problemami z nimi są koszty i złożoność. Musisz zapłacić, aby uzyskać te usługi, a także nauczyć się, jak wdrażać wszystkie usługi, które mają, na wypadek, gdybyś potrzebował ich wszystkich, a także ich interfejsów API i być może wielu innych rzeczy, które nie wydają mi się konieczne. w stanie po prostu zamienić niektóre bajty między urządzeniami. Chcę tylko czegoś prostszego, czegoś, co mogę zrobić sam.
Można powiedzieć, że wdrożenie mojej „chmury”, jeśli jest to coś, co muszę zrobić, nie jest proste i czasami lepiej jest korzystać z tego rodzaju usług ze względu na prostotę, ale istnieją dwa główne powody, dla których chcę wiedzieć, jak to zrobić. wdrażam własne usługi IoT.
Głównym powodem jest to, że chcę to zrobić sam. Nie chcę polegać na firmach zewnętrznych, które łączą ze sobą moje urządzenia, a ponieważ będę opracowywać kod i sprzęt dla moich urządzeń, lepiej jest również stworzyć własne środki, aby połączyć je jako urządzenia IoT.
Drugim powodem jest nauczenie się, jak to zrobić. Wiedząc wszystkie niezbędne rzeczy, których potrzebuję, aby to osiągnąć, będę lepiej rozumieć świat Internetu Rzeczy.
Chciałbym również wspomnieć, że biegle posługuję się językiem C i używam Linuksa jako mojego codziennego systemu operacyjnego zarówno w pracy, jak i w domu, więc unikaj Windowsa, ponieważ jest to dla mnie bezużyteczne. Nie boję się niczego, co muszę zaimplementować w C dla moich urządzeń wbudowanych lub w Linuksie, aby zaimplementować wszystko, co jest potrzebne do osiągnięcia mojego celu.
Moje pytanie brzmi zatem: co należy wdrożyć i gdzie można połączyć ze sobą dwa lub więcej urządzeń wbudowanych w celu wymiany danych między nimi?
To pytanie Czego mogę użyć do stworzenia Internetu Rzeczy na naszym własnym serwerze? mieć coś podobnego, ale jest zamknięty i nie ma żadnych odpowiedzi, zakłada także, że ma być już używana infrastruktura chmurowa. Więc to mi nie pomaga.
Ten inny post Jakie usługi IoT są dostępne do przechowywania / wysyłania / publikowania ogólnych danych w chmurze? ma podobne pytanie, ale OP wyraźnie prosi o usługi IoT i staram się ich unikać.