W ramach realizacji projektu zostanie wykonane kilka przykładowych topologii obrazujących sposób konfiguracji oraz samo funkcjonowanie urządzeń. Uznaliśmy, że sposób ich tworzenia będzie opierał się o dokładny opis tworzenia krok po kroku wraz z potrzebnymi komentarzami i wyjaśnieniami co do rzeczy trudniejszych w zrozumieniu. Cisco Packet Tracer oferuje szeroki zakres możliwości związanych z przedstawieniem różnego rodzaju scenariuszy. W pierwszym tutorialu skupimy się na instalacji oraz konfiguracji topologii sieci składającej się z urządzeń wykorzystywanych między innymi do budowy inteligentnego domu.
W tym ćwiczeniu utworzymy połączenie między komputerami oraz urządzeniami IoT w sieci domowej. Wszystkie urządzenia będą przystosowane do pracy z przełącznikami podłączonymi do płytki SBC. Dodatkowo urządzenia te powinny być połączone do „Home Gateway” i zarejestrowane na serwerze. Całość powinna również posiadać możliwość bezprzewodowej komunikacji między urządzeniami. Dzięki utworzeniu serwera a na nim strony - będziemy mogli z dowolnego miejsca sterować naszymi urządzeniami domowymi dołączonymi do sieci. Dane serwera:
Adres – www.panelkontrolny.pl bądź też adres IP serwera
Login ( User Name ) – admin
Hasło – admin
Dodatkowo całość sieci zostanie nałożona na graficzne tło, które lepiej zaprezentuje możliwość zastosowania urządzeń IoT.
Urządzenia | Interfejs | Adres IP | Maska | Default - Gateway | DNS Server |
---|---|---|---|---|---|
DNS Server | Fa0/0 | 10.0.0.254 | 255.255.255.0 | 10.0.0.1 | 10.0.0.254 |
IoE Server | Fa0/0 | 10.0.0.253 | 255.255.255.0 | 10.0.0.1 | 10.0.0.254 |
Router ISP | Ga0/0 | 10.0.0.1 | 255.255.255.0 | 10.0.0.254 | |
Router ISP | Ga0/1 | 209.165.201.225 | 255.255.255.224 | 10.0.0.254 | |
Reszta urządzeń | DHCP | DHCP | DHCP | DHCP |
Celem tego kroku jest połączenie podstawowej sieci domowej dającej dostęp do Internetu. W tym kroku będziemy potrzebowali dwóch serwerów, switcha, router, chmurę WAN, Cable Modem oraz Home Gateway.
W tym kroku zajmiemy się konfiguracją poszczególnych urządzeń. Dokładnie mówiąc, stworzymy działającą sieć, w której ustawimy adresowanie urządzeń końcowych poprzez pobieranie adresu DHCP.
Teraz gdy mamy już utworzoną sieć domową możemy do niej dołączyć nasze urządzenia IoT. W tej części zajmiemy się głównie ich połączeniem oraz nadaniem adresów IP. Natomiast interakcja pomiędzy tymi urządzeniami oraz sposoby sterowania zostaną opisane w kolejnej części.
Urządzenia IoT mogą być konfigurowane bezpośrednio, poprzez połączenia urządzeń sterujących za pomocą switchy lub też przez interfejs sieciowy. W tej części będziemy łączyć urządzenia IoT do serwera IoE odpowiedzialnego za sterowanie. Dzięki temu będziemy mogli kontrolować naszą sieć wraz z urządzeniami poprzez interfejs web z dowolnego miejsca.
Zdalny dostęp do naszych urządzeń jest możliwy tylko po ich odpowiednim przygotowaniu do tego zadania. Podstawowym wymaganiem, które musi zostać spełnione jest rejestracja urządzeń na serwerze a następnie odpowiednie zaadresowanie. Aby tego dokonać należy:
Mówiąc o lokalnym dostępie mam na myśli nasz rocker switch, czyli włącznik. Będąc w domu nie musimy sterować zdalnie naszymi urządzeniami, wystarczy tylko nacisnąć przycisk. Taką funkcję pełnia nasze włączniki, które jednak trzeba odpowiednio skonfigurować i zaprogramować. Obecny stan, w którym znajduje się nasza sieć – nie daje nam tak naprawdę nic. Dlatego też musimy zmienić kod programu dla płytki rozdzielczej SBC. Ona odpowiada za połączenie urządzeń z włącznikami oraz za komunikację pomiędzy nimi. Podczas tworzenia topologii wspomniałem, że trzeba zwrócić uwagę na sposób doboru portów podczas łączenia. Teraz podczas programowania płytki SBC należy dokładnie zwrócić uwagę, które urządzenie jest podpięte do jakiego portu. Jeżeli źle zaznaczymy to w kodze programu – nasze urządzenia nie będą działały prawidłowo. Konfiguracja wygląda następująco:
from gpio import * # imports all methods in the GPIO library
from http import * # imports all methods in the http library
from time import * # imports all methods in the time library
from usb import * # imports all methods in the usb library
def main():
while True:
FanSwitch = digitalRead(1)
LightSwitch = digitalRead(3)
WindowSwitch = digitalRead(5)
if FanSwitch > 0 :
customWrite(0,1)
else :
customWrite(0,0)
if LightSwitch > 0 :
customWrite (2,1)
else :
customWrite (2,0)
if WindowSwitch > 0 :
customWrite(4,1)
else :
customWrite(4,0)
delay(500)
if __name__ == "__main__":
main()
Dla lepszego zrozumienia uzupełnię trochę opis tego kodu. Linijka „customWrite(X,Y)” służy do komunikowania płytki, który port ma zostać obsłużony i co na nim zrobione. Dokładnie mówiąc parametr X oznacza, który port wyjściowy do urządzenia. Natomiast parametr Y oznacza, który tryb urządzenia ma zostać uruchomiony. Dla przykładu ja w programie użyłem wszędzie trybu 1 co oznacza, że na przykład lampka świeci ale trochę ciemniej niż w przypadku trybu 2. Warto przetestować obydwa tryby aby sprawdzić różnicę.
Sieć, która udało nam się stworzyć dotychczas została zaprezentowana jako sieć obsługiwana podczas przebywania w domu. Możliwości są jednak znacznie większe. Możemy sterować naszymi urządzeniami w sposób zdalny z dowolnego miejsca przy użyciu laptopa, smartphone czy innego urządzenia, za pomocą którego możemy połączyć się z Internetem. Aby dostać się do panelu sterowania wykorzystamy wcześniej utworzony serwer. W rozdziale 4.2.1 został opisany proces przygotowania urządzeń do dostępu zdalnego. My natomiast w tym kroku pokażemy sam sposób połączenia.
Podczas sprawdzania działania sieci poprzez dostęp zdalny warto zwrócić uwagę na fakt, że na przykład drzwi możemy zamknąć lub otworzyć ale w rozumieniu „na klucz”. Patrząc na to praktycznie jest to zgodne z rzeczywistością, ponieważ jeżeli będziemy poza domem i przypomnimy sobie, że nie zamknęliśmy drzwi wówczas możemy to zrobić. Jeżeli chcemy je komuś otworzyć w rozumieniu „ pociągnięcia za klamkę „ to zrobimy to siedząc w domu ale nie będąc poza nim.
Stworzony materiał szkoleniowy zapewnia możliwość stworzenia prostej sieci uzupełnionej o urządzenia IoT. Po wykonaniu powyższego ćwiczenia można zobaczyć w jaki sposób się tworzy taką sieć, jak konfiguruje się urządzenia i wiele innych. Mimo, że jest to tylko symulator to i tak w pewnym stopniu odzwierciedla rzeczywistość. Dzięki takim narzędziom możemy badać i sprawdzać funkcjonowanie tego typu urządzeń ale przede wszystkim zrozumieć na czym w ogóle polega „Inteligentny dom”. Materiał dydaktyczny spełnia wszystkie założenia początkowe, które zostały postawione. Tłumaczy krok po kroku jak postępować. Wymaga on jednak pewnej wiedzy początkowej dotyczącej chociażby znajomości środowiska Cisco Packet Tracer oraz podstaw jego obsługi. Bez takiej wiedzy trudno będzie wykonać opisane czynności. Wszystkie kwestie, które według mnie należało wytłumaczyć to zostały odpowiednio opisane i wyjaśnione. Pliki projektowe zostaną dołączone jako załącznik pracy.