----------------------------------------ARSTE 2016-05-19-------------------------------------------- Internet Rzeczy (Internet of Things) Halo Dzień d...
6 downloads
28 Views
170KB Size
----------------------------------------ARSTE 2016-05-19--------------------------------------------
Internet Rzeczy (Internet of Things) Halo Dzień dobry Działa działa Przedstawiam państwu pana dr. Fernando Solano…. W ostatnim czasie zajmuje się bezprzewodowymi sieciami sensorowymi. Dziękuję bardzo. Jak doktor Tomaszewski mówił nazywam się Solano. Jestem Kolumbijczykiem, chcę przeprosić was za mój błędny polski. Wykładam na Politechnice 8 lat i porozmawiam po polsku. Dzisiejszy wykład to Internet Rzeczy. Co to jest? Wszystko jest podłączone do Internetu. Jak widzimy w tym obrazku: możemy mieć komórkę podpiętą do Internetu, pociągi, samoloty (that escalated quickly), urządzenia w domu itd. (slajd 2) Jak wszystko jest podpięte, to jak możemy zarządzić tymi urządzeniami. Pierwszy pomysł jest żeby robić to przez tablet i monitorować i zmieniać stan każdego urządzenia. (slajd 3) Trend Internetu Rzeczy trwa już kilka (10) lat temu. Mówi się, że za kilka lat będzie 50 miliardów urządzeń podpiętych do Internetu. Mamy tablety, komputery, zegarki itp. (slajd 4) Po co chcemy podłączyć wszystko do Internetu? (Steve Jobs) on w roku 2007 wprowadził do rynku Ajfon. I to był wielki breakthrough. Zadawano sobie pytanie: po co dodawać wszystko do Internetu? Nawet Steve Balmer, CEO z Microsoftu mówił, że to nie ma szans powodzenia, ale teraz nikt się z nim nie zgadza. Smartfony są podpięte do Internetu i krok po kroku widzimy, że coraz bardziej z nich korzystamy. (slajd 5) Również telewizory, smartwacze (slajd 6) W 2020 będą około 4 biliony ludzi w Internecie, generujące 4 tryliony zysku, (numerki są na slajdzie). (Artur Tomaszewski przytomnie interweniuje, nakazując podzielić wszystkie liczby przez 1000) (slajd 7) Internet Rzeczy składa się z 5 części (są na slajdzie). Zadaniem telekomunikacji jest głównie działanie z protokołami telekomunikacyjnymi i sieciami czujnikowymi. (slajd 8) Co to są systemy wbudowane? Komputer nie jest systemem wbudowanym. System wbudowany musi spełniać określone wymagania, jest dostosowany do jednego specyficznego zadania. Wśród
takich wymagań są niezawodność, wydajność, czas reakcji, zużycie energii. Więc są takie bardzo małe systemy, przeniesione z software do hardware, żeby doskonale robić jedno zadanie.. (slajd 9) Drugi temat to bezprzewodowa sieć czujnikowa. Mamy systemy wbudowane, które muszą między sobą wysyłać sygnały. Każdy system musi mieć interfejs radiowy albo kablowy, aby potrafić się skomunikować z innymi systemami i światem. (slajd 10) 3. temat to protokoły telekomunikacyjne. Mówimy o rzeczach, których nie widzimy w innych sieciach. Są np. Bluetooth (każdy zna), CoAP (nowy protokół), ANT (też w komórkach) i inne. (slajd 11) Chmura obliczeniowa to jest model przetwarzania danych oparty a przetwarzaniu usług dostarczonych przez usługodawcę. Czyli my mamy usługi w sieci a nie na naszych serwerach, i płacimy komuś żeby udostępniał swoje usługi dla nas. (slajd 12) 5. termin to Big Data, związane mocno z Data Mining. Mamy ogromną liczbę danych i chcemy zobaczyć, jakie są trendy w tych danych, jakie były tendencje albo jaki był skutek jakiegoś wydarzenia. To wszystko to jest Big Data. (slajd 13) Jak te technologie wiążą się w Internet Rzeczy. Po lewej stronie mamy systemy wbudowane. One mają interfejsy komunikacyjne i gadają między sobą na standardowych protokołach. Wszystkie dane, które one wysyłają są procesowane w chmurze. Wtedy z komórki możemy odczytać te dane, procesować i budować różne aplikacje. (slajd 14) Chciałem wam pokazać mały przykład. To jest taki kontroler, którego używamy do jednego projektu. Ten kontroler ma taki układ elektroniczny, który potrafi działać na 48 MHz. Czy ktoś wie czy to jest mało? Bardzo mało. Ma 256 kB ROM. Jak my kompilujemy nasz softwar, to mamy na niego 256 kB. Jest 32 kB RAM. Ale on ma dużo portów na wejście i wyjście. Możemy przez te porty podpinać inne czujniki i wszystko mamy w jednym systemie. Jest też małe radio, które działą w różnych częstotliwościach (na slajdzie). Jest bardzo mocne - +20 dBm, możemy wysyłać dane na 1 km. Ten układ mieści się w bardzo małej płytce (pokazuje bardzo małą płytkę). (slajd 15) To się programuje w C albo C++. Wiadomo, że pewnie programowaliście już w Dżawie, jak programowaliście już w Jawie, to Jawa, to C jest takim dziadkiem Dżawy. (slajd 16) Ktoś mówi, że to jest bardzo mało, większość telefonów ma 50 razy mocniejsze. Jeżeli mówimy o pamięci, to telefony mają sto razy więcej pamięci. Czemu chcemy pracować z takimi małymi urządzeniami? Są małe, zużywają mało energii i są bardzo tanie. Dzięki temu możemy wszystko podłączyć do Internetu.
(slajd 17) Jak wygląda softłar? Mamy taki mały system operacyjny. Nie jest to na pewno Windows ani Linux. Są takie małe systemy operacyjne (Contiki, RIOT…). Trzeba pobierać własne sterowniki. Jest biblioteka protokołów, wszystkie te elementy działają jako wątki w naszym systemie operacyjnym. Softłar musi być bardzo zintegrowany z naszymi protokołami, ponieważ mamy bardzo mało zasobów, i powinny być one mapowane bardzo efektywnie do protokołów. (slajd 18) Jak mówiłem, to mam tu obraz takiego układu, który znajduje się w (gdzieś). Jest on bardzo wydajny energetycznie (pokazuje układ na projektorku) (układ objawia się w wielkim blasku. Z oddali dobiegają dźwięki trąb anielskich i muzyki mariachi) To jest ta konsola tego urządzenia. Jak powiedziałem, zawiera to system operacyjny i ma kilka procesów. Tu jest cały stack IPv6. Ma możliwość używania UDP i protokół Wi-Fi i inne procesy związane z ….. . (włącza płytkę. Na monitorze pojawiają się cyfry i dzieją się rzeczy niestworzone) To urządzenia ma taki adres IPv6 (zaznacza dwa piksele na ekranie) to znaczy, że możemy do niego wysyłać dane, pingować itp. To wszystko w tym małym kontrolerze. Trzeba teraz zrobić taki test, taki ping… Coś nie działa. I właśnie zrobiło pięknie do tego urządzenia zasilanego baterią. Więc można chyba żeby wszyscy zobaczyli to urządzenie (urządzenie biegnie do studentów machając ogonem) Jest zasilanie, więc proszę niczego nie zepsuć. (studenci nic nie psują). Jedną małą aplikacją, jaką nasza studentka zrobiła na pracę inżynierską można wysyłać pakiety do urządzenia, żeby mierzyć jakość połączenia. Bardziej formalna definicja IoT to jest dynamiczna sieć, która może się autokonfigurować na podstawie protokołów, gdzie fizyczne urządzenia mają atrybuty i wirtualną osobowistość, i używają wirtualnych interfejsów. (slajd kolejny) Tu mamy pięć cech IoT (Dynamic, Self configuring…). (slajd „Identities”) Dzisiaj chcę porozmawiać o tożsamości. Dzisiaj wiemy jak działa IPv4 i jak działają te adresy. Ale na IoT potrzebujemy więcej adresu. Powstała nowa wersja IP, czyli IPv6 i możemy mieć nawet do dużo więcej adresów do każdego urządzenia. Tyle adresów ile mamy, wystarczy nam dla każdej cząsteczki w stu Wszechświatach. Trendy są takie, że każda osoba za dziesięć lat będzie miała ze sobą 7 urządzeń. Więc spokojnie, spokojnie, wystarczy nam adresów. (IoT Levels and Deployment templates) Są różne poziomy implementacji IoT. Żeby lepiej to wyjaśnić, skorzystam z przykładu. Np. system nawadniania. Zakładamy, że jesteśmy rolnikami i zbudowaliśmy system irygacji. Podstawową wersją byłoby mieć jeden system wbudowany, który zawiera czujnik wilgotności. Za każdym razem,
kiedy poziom wilgotności spada to otwieramy zawór. Nasz system razem z zaworem są razem w jednym urządzeniu. Zakładamy, że to urządzenie jest podłączone do Internetu, mówi: działa, bateria mi wystarczy. To jest najprostszy poziom. Drugi poziom jest wtedy, kiedy nie tylko reportujemy do sieci status naszej aplikacji, ale również te wszystkie measurements, czyli nasze pomiary do sieci. To już wtedy potrzebujemy dużo więcej pasma, nasza aplikacja powinna zawierać mechanizm kompresji danych żeby nie wysyłać wszystkiego od razu. Trzeci poziom jest wtedy, kiedy to urządzenie nie jest do końca inteligentne, a logika znajduje się w chmurze. Czyli urządzenie wysyła dane o wilgotności do chmur, tam coś to przetwarza i steruje urządzeniem. Wtedy to jest trochę bardziej skomplikowane, ale też prostsze, bo to urządzenie będzie wymagało mniej zasobów. Czwarty poziom jest wtedy, kiedy mamy więcej niż jeden typ urządzeń. Np. są takie urządzenia, które mierzą i inne, które nawadniają. One znajdują się w różnych miejscach. Czujniki nie komunikują się między sobą, tylko dostają instrukcje z serwera centralnego. Piąty poziom to jest wtedy, kiedy mamy sieć czujników, które mogą się komunikować między sobą, ale ta aplikacja jeszcze jest w chmurze. One się komunikują, żeby przekazać informacje między sobą, ale polecenia dostają od serwera. Ale szósty poziom jest wtedy, kiedy jest pełny kontrol w jednym albo kilku węzłach naszej sieci. Po jednej stronie jeden kontroler zarządza zasobami, a w sieci serwer centralny robi to samo. To jest 6 poziomów IoT. (kolejny slajd) Tablica podsumająca to, o czym mówiliśmy wcześniej. (Examples) Chcę przedstawić 3 przykłady IoT. To pierwsze bardzo znane to jest Google Maps. Możemy zakładać, że nasza komórka to jest czujnik. W GM używamy GPS. Nasza komórka zbiera dane, gdzie jesteśmy, wysyła to do chmury, a Google potrafi powiedzieć gdzie są korki, na podstawie informacji od wielu komórek. To jest jeden przykład IoT. Do którego poziomu to należy? Ja bym powiedział, że czwartego. Drugi przykład to projekt Goldfish. My mieliśmy ten projekt Goldfish przez 3,5 roku, prowadziliśmy projekt Goldfish w naszym zespole. Zrobiliśmy czujnik (jest ciężki i nie mogłem go wziąć ze sobą). Jest taki system, który wrzucimy do rzeki i on bada zanieczyszczenie w rzekach. Celem było badanie kokainy. Wiadomo, że w Kolumbii produkuje się kokainę, ale nie wiadomo gdzie, bo to jest w dżungli. Wiadomo, że te laboratoria produkujące kokainę znajdują się przy rzekach, a my na podstawie stężenia kokainy w wodzie mogliśmy wykrywać jak daleko była fabryka kokainy. Dodatkowo fajne było to, że mieliśmy jedną turbinę, która zasilała cały system. Musieliśmy projektować takie algorytmy i protokoły, żeby wysyłać jak najskuteczniej dane, bo mieliśmy mało energii. Druga wersja wpadała na czwarty poziom IoT. Urządzenia komunikowały się między sobą, ale logika nie była rozproszona. Trzeci projekt to jest projekt europejski. Współpracujemy teraz z polską policją. W Polsce nie produkujemy kokainy, produkujemy dużo amfetaminy (studenci słuchają z uwagą, kiwając głowami ze zrozumieniem). Chcemy zrobić czujniki kanalizacji, żeby policja mogła wykryć, w którym domu
produkują się amfetaminy. Używamy tego kontrolera, (kontroler biega po sali i liże ludzi po twarzach) i czegoś jeszcze. To będzie system poziomu 6, bo logika musi być rozproszona, bo czas reakcji musi być bardzo szybki, żeby natychmiast alarmować policję. To jest nasz system. (kolejny slajd) To jest praca naszej studentki. Ona pracowała z kontrolerami, które mają Blutut. Wiadomo jak to działa. To, co ona zrobiła jest, zwiększyła możliwości jednego urządzenia, żeby ono działało, jako Gateway. Dzięki temu urządzeniu możemy przekazać informacje dalej, do innego urządzenia Bluetooth. To jest coś, co jeszcze nie było na rynku, i ona bardzo dobrze to zrobiła. Drugi student udostępniał coś z Raspberry PI, przez Blutut, do chmur. Trzeba robić jakieś mapowanie, żeby efektywnie wykorzystywać protokoły. Przerwa (slajd z domem) Jedziemy dalej O no dobra W tej drugiej części chcę wam przedstawić drugi projekt, który znalazłem w Internecie. Przykład, którego nie wolno robić. Ten projekt związany jest z zarządzaniem oświetleniem w domu. Wyszukałem w Internecie, jakie rozwiązania są używane i znalazłem takie złe rozwiązanie. Powiem wam, o co chodzi. Tu jest płyta Raspberry PI i juesbi coś tam i tu jest Relay, czyli (Artur Tomaszewski: przekaźnik). Raspberry PI to jest mały komputer. W nim można uruchamiać Linuks, można skopiować Linuks do tej karty SD, wkłada się ją tam i działa po prostu działa. Jest tam kilka portów USB, port Ethernet i kilka pinów(??) Przez Wi-Fi możemy się podłączyć do USB. To, co jest niezwykłe, to są przekaźniki. Dzięki nim możemy sterować i jest napięcie włączone czy wyłączone, więc gdybyśmy chcieli to tak naprawdę manufakturować, to wpada taki jeden problem. Idea jest super, chcemy sterować naszymi światłami w domu przez Wi-Fi. Możemy mieć jedną aplikację w komórce, z której sterujemy. Problem jest taki: jak zasilać Raspberry PI? Np. tu mamy pewną ilość żarówek, chyba na oko dużo. Jeżeli założymy, że do każdego Raspberry PI jest podłączona jedna żarówka, to ciężko jest to zasilać, bo trzeba albo zasilacze albo baterie. No ogólnie jest problem. Drugi jest taki, że nie jest to skuteczne rozwiązanie. Wi-Fi, który znajdziemy wszędzie, działa na 11 Mb/s. Ile danych my potrzebujemy żeby wysłać jedno polecenie? Niewiele, może kilkanaście bajtów z jakimiś nagłówkami i polami adresowania. Więc musielibyśmy to wyłączać i włączać ile razy, żeby wykorzystać to pasmo? No około dużo, więc byłoby to nieefektywne. Procesor Raspberry PI ma procesor do 900 MHz. Czy potrzebujemy takiej efektywności do włączania żarówek? Oczywiście nie. Te marnowane zasoby zużywają energię i jest ogólnie kiepsko. Trzecia sprawa to system operacyjny. Z Linuksem można robić dużo, natomiast nawet, jeżeli system Linux nic nie robi, to procesor działa. Możnaby włączać i wyłączać Linux, ale niestety jest on ciężki i potrzebuje dużo czasu. Pracowałem kiedyś z firmą – ekspertami Linuxa. Oni upraszczali ten Linux, żeby on się uruchamiał bardzo szybko. Oni potrafili przyspieszyć uruchamianie Linuxa do 30s. To było za dużo i lipa.
(slajd Hardware) Tu pokazuje te wszystkie sprzęty, które my znamy, i trzeba je porównać z tymi sprzętami które my używamy w tych sieciach bezprzewodowych czujnikowych. Jak już mówiłem moc procesora jest dużo mniejsza. Teraz chcę pokazać transmisję danych i porównać ze zwykłym Wi-Fi. Ale najpierw: Raspberry PI potrzebuje 2W prądu, a nasze urządzenie potrzebuje 10 mW. To jest ogromna różnica. Gdybyśmy zasilali baterią 750mAH to wystarczyłoby na 4 lata, natomiast Raspberry PI na 4 dni. (OSI model) Tu mam dużo informacji o protokołach. (Kolejny slajd) Najniższa warstwa jest związana z połączeniem między dwoma urządzeniami, które mają jakiś mechanizm do wysyłania połączeń. Mamy kilka technologii: Wi-Fi, 3G, GSM (rozdają listę. Nagły wiatr przepędza chmury i zaczyna świecić słońce. Tynk w auli wraca do śnieżnobiałego koloru. Lud składa ofiary całopalne w ramach dziękczynienia) Mamy trzecią warstwę… (niestety nie zanotowałem) (IoT Transport Layer) Mamy urządzenia UDP, które wysyłają po prostu dane bez żadnego potwierdzenia ani ustalania kanału. (Protocol stack) Może to pomińmy. (tak powiedział dr Solano) (Sleeping problems) Możemy zakładać, że mamy dwa urządzenia. Jeżeli oni by zużywali za dużo energii, to muszą zasypiać się i uruchamiać jeszcze raz, sterować jakiś czujnik, wykonywać jakiś pomiar. Ważna jest koordynacja pomiędzy tymi urządzeniami, bo jak jedno urządzenie śpi, to nie jest w stanie ogarnąć tego pakietu. Do tego jest kilka rozwiązywań i algorytmów, które pomagają rozwiązać to. Problem w 3. Warstwie jest jak rozwiązać te problemy, związane z adresowaniem. Każda rama, którą wysyła to urządzenie (nie wiem które) może zawierać 128 bajtów. Jak patrzymy na IPv6 to ono potrzebuje, co najmniej ok. 40-50 bajtów i jeżeli jeszcze dołączymy to, co jest związane z drugą warstwą, to mamy w sumie 72 bajty i jest 128 bajtów. Dużo danych jest nadmiarowych i na naszą aplikację zostaje bardzo mały. Zdefiniowano skompilowaną wersję IPv6, która potrafi skompresować ramkę, i dzięki temu można zakodować więcej informacji (ale nie każdej). Dlaczego to jest istotne? Prowadziliśmy badanie. Wysyłaliśmy ramę od 10 do 128 B i mierzyliśmy ile czasu potrzeba do wysyłania. Jeżeli wysyłamy ramę o dł.80B, to potrzebujemy 80ms, 20B -> 20ms. Gdybyśmy nie skompresowali headera, to musielibyśmy korzystać z tego radia co najmniej 50 ms dłużej, mimo, że nadal wysyłalibyśmy np. 10B. Czyli dzięki kompresowaniu headera możemy korzystać z baterii dłużej. (Ostatni slajd) I to jest niestety ostatni slajd, bo zaplanowałem wejść głęboko, ale nie tu i nie teraz. To jest zaproszenie na kolejne przedmioty. Będziemy mówili o kolejnych protokołach, szczegółowo tym
razem, i o sieciach bezprzewodowych. Chcemy zaprosić do pracy inżynierskiej w pracy związanej z naszym zespołem.