wszelkie prawa zastrzeżone. nieautoryzowane … · 2021. 2. 10. · 141 rysunek 12.1. odczyt...

26

Upload: others

Post on 04-Mar-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,
Page 2: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletnei rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą równieżżadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Redaktor prowadzący: Małgorzata Kulik

Projekt okładki: Studio Gravite / OlsztynObarek, Pokoński, Pazdrijowski, ZapruckiGrafika na okładce została wykorzystana za zgodą Shutterstock.com

Helion SA ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: [email protected] WWW: http://helion.pl (księgarnia internetowa, katalog książek)

Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/koiopoMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Kody źródłowe wybranych przykładów dostępne są pod adresem:ftp://ftp.helion.pl/przyklady/koiopo.zip

ISBN: 978-83-283-6629-9

Copyright © Mariusz Duka 2020

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

• Księgarnia internetowa• Lubię to! » Nasza społeczność

Page 3: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

5

Spis treści

Przedmowa ............................................................................................................... 9

Rozdział 1. Parametry techniczne .............................................................................. 14Moduły rozszerzające typu Dock ...............................................................................16Moduły rozszerzające typu Expansion .......................................................................23Ceny ..........................................................................................................................31

Rozdział 2. Uruchomienie i konfiguracja ..................................................................... 32Przygotowanie sprzętu ..............................................................................................32Nawiązanie komunikacji ............................................................................................33Konfiguracja w przeglądarce internetowej ................................................................35Konfiguracja w konsoli systemowej ...........................................................................37Terminal SSH .............................................................................................................40Edytor kodu ..............................................................................................................41Reset i restart ............................................................................................................41Przywrócenie do ustawień fabrycznych .....................................................................43

Rozdział 3. GPIO ....................................................................................................... 44Interfejsy komunikacyjne ...........................................................................................46Zarządzanie pinami GPIO ..........................................................................................46Grupy i funkcje pinów ...............................................................................................50Dioda Omega2 LED ...................................................................................................51GPIO Tool ..................................................................................................................52GPIO w języku Python ...............................................................................................55

Rozdział 4. Rozszerzenie pamięci masowej ................................................................. 57Karta microSD ...........................................................................................................58Pamięć USB (pendrive) ..............................................................................................61microSD/USB i partycja swap .....................................................................................63

Rozdział 5. Oprogramowanie ..................................................................................... 70Firmware ...................................................................................................................70OPKG .........................................................................................................................70Git .............................................................................................................................73Python .......................................................................................................................74

Poleć książkęKup książkę

Page 4: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

6

Node.js ......................................................................................................................76PHP 7 ........................................................................................................................78C i C++ .....................................................................................................................82JamVM — wirtualna maszyna Javy ............................................................................85Perl ............................................................................................................................87Erlang ........................................................................................................................89Ruby ..........................................................................................................................90

Rozdział 6. OLED, wyświetlanie tekstu i grafiki ........................................................... 92OLED w konsoli graficznej .........................................................................................92OLED w konsoli systemowej ......................................................................................93OLED w języku C, Python i PHP ..................................................................................97

Rozdział 7. ADC, przetwornik analogowo-cyfrowy ...................................................... 100ADC w konsoli graficznej .........................................................................................101ADC w konsoli systemowej .....................................................................................101ADC w praktyce .......................................................................................................103ADC w języku Python ..............................................................................................105

Rozdział 8. RELAY, przełączanie napięcia .................................................................. 107RELAY w konsoli graficznej ......................................................................................108RELAY w konsoli systemowej ...................................................................................109RELAY w praktyce ....................................................................................................110RELAY w językach C, Python i PHP ...........................................................................112

Rozdział 9. PWM, zasilanie i kontrola pracy urządzeń ................................................. 116PWM w konsoli graficznej .......................................................................................117PWM w konsoli systemowej ....................................................................................118PWM w praktyce .....................................................................................................119PWM w języku C, Python i PHP ................................................................................120

Rozdział 10. GPS, system nawigacji satelitarnej ........................................................ 125GPS w konsoli systemowej ......................................................................................125GPS i OLED w języku PHP ........................................................................................127

Rozdział 11. Ethernet, sieć przewodowa, ruter i most ................................................ 131Funkcje sieciowe .....................................................................................................132

Rozdział 12. RFID/NFC, identyfikacja bezprzewodowa ................................................ 140RFID/NFC w konsoli graficznej .................................................................................140RFID/NFC w konsoli systemowej ..............................................................................141RFID/NFC, OLED i RELAY w języku Python ................................................................146

Poleć książkęKup książkę

Page 5: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

7

Rozdział 13. BLE, komunikacja Bluetooth ................................................................. 149Parowanie urządzeń ................................................................................................149Test połączenia .......................................................................................................152Problemy z połączeniem .........................................................................................152

Rozdział 14. Arduino, czyli AVR na pokładzie ............................................................. 153Instalacja i konfiguracja oprogramowania ..............................................................154Pierwszy program dla Arduino ................................................................................156Wgrywanie programu do mikrokontrolera ..............................................................157Praca w konsoli systemowej ....................................................................................158Problemy z komunikacją .........................................................................................159

Rozdział 15. SAMBA, serwer plików .......................................................................... 160Instalacja .................................................................................................................160Konfiguracja ............................................................................................................160

Rozdział 16. SSL, szyfrowanie połączenia WWW ......................................................... 163Instalacja OpenSSL ..................................................................................................163Generowanie certyfikatów SSL ................................................................................163

Rozdział 17. Blynk, zdalne zarządzanie IoT ............................................................... 166Smartfon lub tablet .................................................................................................166Minikomputer Omega2 ...........................................................................................167

Rozdział 18. WEBCAM, zdalny monitoring ................................................................. 170WEBCAM w konsoli graficznej .................................................................................170WEBCAM w konsoli systemowej ..............................................................................171WEBCAM w praktyce ...............................................................................................172

Rozdział 19. XMPP, serwer komunikacyjny Jabber ..................................................... 175Instalacja Erlang ......................................................................................................175Instalacja serwera XMPP ejabberd ...........................................................................176Instalacja klienta XMPP mcabber .............................................................................176

Rozdział 20. Technika Cross-Compiling ..................................................................... 178Przygotowanie i kompilacja systemu .......................................................................178Kompilacja kodu dla minikomputera .......................................................................179Cross-Compiling w praktyce ....................................................................................181Serwer Minecraft na minikomputerze Omega2 .......................................................181

Zakończenie .......................................................................................................... 184

Skorowidz ............................................................................................................. 185

Poleć książkęKup książkę

Page 6: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

8

Poleć książkęKup książkę

Page 7: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

140

Rozdział 12. RFID/NFC,identyfikacja bezprzewodowa

RFID (ang. Radio-frequency identification) i NFC (ang. Near Field Communication)to technologie wykorzystujące fale radiowe do bezprzewodowego i bezdotykowegotransferu danych cyfrowych na niewielkie odległości. Transfer danych, w odróżnieniuod technologii Bluetooth, nie wymaga dodatkowego parowania urządzeń, nato-miast bezpieczeństwo transmisji opiera się na bliskiej odległości urządzeń i ich „ota-gowaniu”, czyli zapisaniu w układzie elektronicznym informacji identyfikacyjnych.Technologia NFC zaimplementowana jest w większości nowoczesnych smartfonów,za pomocą których możliwe jest realizowanie płatności zbliżeniowo. Ciekawymprzykładem wykorzystania technologii NFC jest system kart Mifare, który w założeniuma zastąpić tradycyjne bilety papierowe (Mifare Ultralight), karty magnetyczneoraz monety.

Moduł rozszerzający RFID & NFC Expansion wyposażony jest w popularny układPN532, umożliwiający komunikację na częstotliwości 13,56 MHz w odległości do6 cm oraz 30-pinowe złącze pozwalające na montaż dodatkowych modułów ty-pu Expansion. Moduł obsługuje popularny standard kart Mifare, a także InnovisionJewel i FeliCa. Do komunikacji wykorzystywany jest interfejs szeregowy UART.W zestawie dołączone są dwie naklejki NFC, na których można zapisać do 100 bajtówdanych.

RFID/NFC w konsoli graficznejOdczytanie identyfikatora (UID) kart lub naklejek NFC umożliwia narzędzie RFIDReader (rysunek 12.1), które dostępne jest w aplikacji OnionOS. W prawym górnymrogu znajdziesz przycisk Start Scanning, którym uruchomisz procedurę skanowania,natomiast przyciskiem Clear List wyczyścisz dotychczasową listę. Wystarczy, żeprzyłożysz do czytnika oryginalną nalepkę NFC, która wchodzi w skład wyposażeniamodułu, a na ekranie powinien pojawić się jej identyfikator.

Poleć książkęKup książkę

Page 8: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

141

Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader

Narzędzie RFID Reader, pomimo tego, że nadaje się tylko do odczytywania identyfi-katorów (UID), umożliwia sprawne i szybkie przetestowanie wielu kart i nalepek NFC.Zapis informacji na kartach wymaga wykorzystania narzędzi dostępnych w konsolisystemowej.

RFID/NFC w konsoli systemowejZapis danych w pamięci karty Mifare Ultralight (na nalepce NFC dołączonej do roz-szerzenia RFID & NFC Expansion) lub informacji w formacie NDEF (ang. NFS DataExchange Format) na kartach zbliżeniowych typu Mifare Classic umożliwiają narzę-dzia takie jak nfc-mfclassic i mifare-classic-write-ndef dostępne w konsolisystemowej. Procedura zapisu danych na kartach NFC nie jest skomplikowana,jednak wymaga podstawowej umiejętności pracy w konsoli.

Jeśli wcześniej korzystałeś z narzędzia RFID Reader, część niezbędnego oprogramo-wania została już zainstalowana na minikomputerze Omega2. Sprawdź, czyw narzędziu RFID Reader aktywna jest procedura skanowania, jeśli tak, to musisz jąteraz wyłączyć, klikając przycisk Stop Scanning.

Zainstaluj najnowsze oprogramowanie do obsługi NFC:

opkg updateopkg install nfc-exp nfc-utils

Na początek sprawdź, czy moduł rozszerzający RFID & NFC Expansion jest widocznyw systemie:

nfc-scan-device

Lista aktywnych modułów NFC w systemie przedstawiona jest na rysunku 12.2.

Poleć książkęKup książkę

Page 9: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

142

Rysunek 12.2. Skanowanie urządzeń NFC podłączonych do minikomputera Omega2

Teraz możesz odczytać informacje zakodowane w układzie elektronicznym na na-lepce NFC dostarczonej w komplecie z rozszerzeniem. Przyłóż nalepkę do czytnikaRFID/NFC i wykonaj polecenie:

nfc-list

Na konsoli zostaną wydrukowane informacje identyfikacyjne układu NFC (rysunek 12.3).

Rysunek 12.3. Identyfikacja karty (nalepki) NFC za pomocą narzędzia nfc-list w konsoli systemowej

Każda karta NFC posiada swój unikatowy identyfikator (ang. Unique IdentificationNumber) oraz zakodowaną informację o jej typie i producencie (ATQA — ang.Answer To Request i SAK — ang. Select Acknowledge). W tabeli 12.1 przedsta-wione są ATQA i SAK dla konkretnych typów kart NFC.

Tabela 12.1. Dane ATQA i SAK dla kart zbliżeniowych typu Mifare

Typ karty ATQA SAK Długość UID

Mifare Classic 1K 00 04 08 4 bajty

Mifare Classic 4K 00 02 18 4 bajty

Mifare Ultralight 00 44 00 7 bajtów

Jak można zauważyć, dostarczone w komplecie nalepki NFC są w standardzieMifare Ultralight i właśnie na nich spróbujemy w następnych krokach odczytaći zapisać dane.

Podstawowe narzędzia do obsługi kart zbliżeniowych NFC dostępne na minikompu-terze Omega2 to nfc-mfultralight dla kart Mifare Ultralight i nfc-mfclassicdla kart Mifare Classic.

Poleć książkęKup książkę

Page 10: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

143

Odczyt danych z kart Mifare UltralightKarty Mifare Ultralight ze względu na swoją kompaktową budowę (forma cienkiejnalepki) bardzo często są wykorzystywane w systemach do identyfikacji przedmio-tów. Karta ta posiada wbudowaną pamięć typu EEPROM, na której można zapisać48 bajtów danych.

Przyłóż kartę (nalepkę) NFC do czytnika RFID/NFC i wykonaj polecenie:

nfc-mfultralight r mojaKartaNFC.mfd

Odczyt danych z karty Mifare Ultralight (nalepki NFC) w konsoli systemowej przed-stawiony jest na rysunku 12.4.

Rysunek 12.4. Odczyt danych z karty Mifare Ultralight (nalepki NFC) w konsoli systemowej

W pliku mojaKartaNFC.mfd zostały zapisane dane w formacie MFD pochodzącez karty zbliżeniowej NFC. Dla wygody skorzystaj z narzędzia xxd do wyświetleniazawartości pliku w przyjaznej formie.

Wykonaj polecenie:

xxd mojaKartaNFC.mfd

Wyświetlona zostanie zawartość pliku w systemie heksadecymalnym (szesnast-kowym):

0000000: 0416 7ae0 32ed 4c80 1348 0000 e110 1200 ..z.2.L..H......0000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Pierwsza linia (pierwsze 16 bajtów) zarezerwowana jest m.in. na identyfikator i in-formację o aktywnym trybie „tylko do odczytu”, natomiast trzy kolejne linie (łącznie48 bajtów) mogą być zapisane dowolną informacją. Z powyższego zapisu wynika,że na karcie (nalepce) NFC zapisane są wartości zerowe, co oznacza, że kartajest pusta.

Poleć książkęKup książkę

Page 11: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

144

Modyfikacja danych i zapis do formatu MFDInformacje pobrane z karty zbliżeniowej NFC mogą zostać zmienione i ponownie naniej zapisane. Dla ułatwienia edycji danych wykorzystaj ponownie narzędzie xxd.Wykonaj polecenie:

xxd mojaKartaNFC.mfd > mojaKartaNFC.hex

Otwórz w edytorze tekstowym vi plik zapisany w systemie szesnastkowym:

vi mojaKartaNFC.hex

i wstaw nową zawartość w liniach 0000010 i 0000020:

0000000: 0416 7ae0 32ed 4c80 1348 0000 e110 1200 ..z.2.L..H......0000010: 4e46 4320 6e61 206d 696e 696b 6f6d 70750000020: 7465 727a 6520 4f6d 6567 6132 2100 00000000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Ostatnim krokiem jest przekonwertowanie danych z formatu szesnastkowegona format MFD:

xxd -r mojaKartaNFC.hex mojaKartaNFC.mfd

Zapis danych na karcie Mifare UltralightWcześniej przygotowany plik w formacie MFD można zapisać w pamięci karty.

Przyłóż kartę (nalepkę) NFC do czytnika RFID/NFC i wykonaj polecenie:

yes N | nfc-mfultralight w mojaKartaNFC.mfd

Zapis danych na karcie zbliżeniowej (nalepce) NFC w konsoli systemowej przedsta-wiony jest na rysunku 12.5.

Rysunek 12.5. Zapis danych na karcie zbliżeniowej (nalepce) NFC w konsoli systemowej

Zapis na karcie (nalepce) NFC został pomyślnie wykonany. Zwróć uwagę, że pod-czas zapisu system udzielił automatycznych odpowiedzi (przez polecenie yes N),co znacznie przyspieszyło proces.

Poleć książkęKup książkę

Page 12: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

145

Dla pewności sprawdź, czy zapis na karcie został wykonany prawidłowo.

Przyłóż kartę (nalepkę) NFC do czytnika RFID/NFC i wykonaj polecenie:

nfc-mfultralight r mojaKartaNFC.mfd

Zdekoduj informację poleceniem:

xxd mojaKartaNFC.mfd

Powinna zostać wyświetlona następująca informacja:

0000000: 0416 7ae0 32ed 4c80 1348 0000 e110 1200 ..z.2.L..H......0000010: 4e46 4320 6e61 206d 696e 696b 6f6d 7075 NFC na minikompu0000020: 7465 727a 6520 4f6d 6567 6132 2100 0000 terze Omega2!...0000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Problem z dostępem do modułu RFID/NFCPodczas korzystania z rozszerzenia RFID & NFC Expansion może się zdarzyć, że wy-konanie polecenia odczytu lub zapisu nie zakończy się prawidłowo, co w konse-kwencji uniemożliwi dalszą pracę. Ponowne wykonanie jakiegokolwiek poleceniaspowoduje wyświetlenie komunikatu o wystąpieniu problemu (rysunek 12.6).

Rysunek 12.6. Komunikat o braku dostępu do rozszerzenia RFID & NFC Expansion

Przyczyną wystąpienia problemu może być uruchomiony już proces skanowaniaw narzędziu RFID Reader, który zajmuje port szeregowy /dev/ttyS1.

W sytuacji, kiedy pomimo wyłączenia skanowania nadal nie jest możliwy dostęp domodułu RFID & NFC Expansion, wykonaj następujące polecenia:

opkg updateopkg install screen

Uruchom narzędzie screen poleceniem:

screen /dev/ttyS1

a następnie zamknij je kombinacją klawiszy Ctrl+a+k.

Aktywny proces, który blokuje dostęp do czytnika RFID/NFC, powinien zostaćzatrzymany.

Poleć książkęKup książkę

Page 13: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

146

RFID/NFC, OLED i RELAY w języku PythonCiekawym pomysłem wykorzystania rozszerzenia RFID & NFC Expansion może byćukład elektryczny przełączający napięcie w obwodzie zaufaną kartą zbliżeniową.

Zmontuj układ przedstawiony w rozdziale 8. „RELAY, przełączanie napięcia”,w podrozdziale „RELAY w praktyce”, a także dodatkowo wepnij do 30-pinowegozłącza kolejno moduły RFID & NFC Expansion i OLED Expansion. Zmontowany układz RFID & NFC Expansion, Relay Expansion, OLED Expansion i diodą LED przed-stawiony jest na rysunku 12.7.

Rysunek 12.7. Układ z RFID & NFC Expansion, Relay Expansion, OLED Expansion i diodą LED

Elementy układu:

minikomputer Omega2 oraz moduł rozszerzający, np. Expansion Dock,

moduł rozszerzający RFID & NFC Expansion,

moduł rozszerzający Relay Expansion,

moduł rozszerzający OLED Expansion,

płytka stykowa,

dioda LED,

rezystor 220 Ω,

zasilanie 3 V (2 baterie 1,5 V AA lub AAA),

przewody połączeniowe męsko-męskie.

Poleć książkęKup książkę

Page 14: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

147

Odczytaj unikatowy numer UID karty (nalepki) NFC, ponieważ wykorzystasz gow programie obsługującym zmontowany układ. Możesz użyć narzędzia RFID Reader,dostępnego w aplikacji OnionOS.

Zainstaluj oprogramowanie wraz z bibliotekami programistycznymi:

opkg updateopkg install python3-lightopkg install python3-onion-i2c python3-oled-exp python3-relay-expopkg install nfc-exp nfc-utils

Utwórz w edytorze tekstowym vi plik nfc.py:

vi /root/nfc.py

i przepisz poniższy kod w języku Python (listing 12.1).

Listing 12.1 Plik nfc.py

# import modułów RELAY i OLEDfrom OmegaExpansion import oledExpfrom OmegaExpansion import relayExpimport subprocess, time

addrRelay = 7 # adres I2C urządzenia od 0 (0x20) do 7 (0x27)channelRelay = 0 # numer przekaźnika 0 lub 1acceptedUids = ['04167a32ed4c80'] # zaufane UID identyfikatorów

# inicjacja modułów rozszerzających OLED i RELAYdef initial_setup(): status_oled = oledExp.driverInit() status_relay = relayExp.driverInit(addrRelay) check = relayExp.readChannel(addrRelay, channelRelay) if check == 1: relay_off() return

# włącz przekaźnikdef relay_on(): relayExp.setChannel(addrRelay, channelRelay, 1) # 1 - włączenie return

# wyłącz przekaźnikdef relay_off(): relayExp.setChannel(addrRelay, channelRelay, 0) # 0 - wyłączenie return

# włącz przekaźnik, a następnie po 5 sekundach wyłącz# wyświetl UID karty (nalepki) NFC na ekranie OLEDdef access(uid): oledExp.write("UID: " + uid) relay_on() time.sleep(5) relay_off() oledExp.clear() return

Poleć książkęKup książkę

Page 15: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

148

def __main__(): initial_setup() while 1: # odczytaj UID karty i wstaw do zmiennej cmd cmd = "nfc-list | grep UID | sed -e 's/ //g' -e 's/^.*://'" uid = subprocess.check_output(cmd, shell=True) uid = uid.decode('utf-8').rstrip('\n') # sprawdź, czy UID jest zaufany for acceptedUid in acceptedUids: if(acceptedUid == uid): access(uid)

if __name__ == '__main__':

__main__()

Uruchom kod poleceniem:

python3 /root/nfc.py

Po uruchomieniu się programu przyłóż zaufaną kartę (nalepkę) NFC do czytnikaRFID/NFC. Dioda LED powinna się zaświecić i po 5 sekundach zgasnąć. Dodatkowonumer UID zostanie wyświetlony na ekranie OLED. W trakcie pracy programu na kon-soli systemowej będę drukowane komunikaty o stanie przekaźników (rysunek 12.8).Zamiast diody możesz wykorzystać elektryczny zamek do drzwi i w ten sposóbsterować dostępem do pomieszczeń w domu lub w biurze.

Rysunek 12.8. Sterowanie obwodem elektrycznym za pomocą karty (nalepki) NFC

Poleć książkęKup książkę

Page 16: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

184

Poleć książkęKup książkę

Page 17: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

185

Skorowidz

AADC, 31, 37, 75

Expansion, 100cena, 31czujnik natężeniaświatła, 103

czujnik temperatury,103

parametry techniczne,24

schemat modułu, 100w języku Python, 105w konsoli graficznej, 101w konsoli systemowej,

101adres

I2C, 108IP, 34WWW, 34

aktualizacjafirmware’u, 38, 71strefy czasowej, 40

akumulator LiPo, 20aplikacja

Blynk, 166Code Editor, 37Legacy Console, 37, 43,

52NFC-RFID Expansion, 37OnionOS, 19, 36Power Dock 2, 37PuTTY, 37Sensor Monitor, 37Sparkfun, 37

Terminal SSH, 40Timelapse Camera, 37

Arduino, 153pierwszy program, 156

Arduino Dock R2, 21–23,32, 75, 153, 154

cena, 31parametry techniczne,

21Arduino IDE, 21

instalacja, 154konfiguracja, 154połączenie z

minikomputerem, 154w konsoli systemowej,

158wgrywanie programu,

157, 159Arduino Uno, 154Arduino Uno R3, 21, 153ATmega328P, 21, 22AVR, 153avrdude, 159

Bbiblioteka Onion Omega2,

78biblioteki PHP, 78BLE Expansion, 29, 149

Patrz także Bluetoothcena, 31konfiguracja, 149, 150

parametry techniczne,30

Bluetooth, 15, 28–30parowanie urządzeń,

149problemy z

połączeniem, 152test połączenia, 152

Blynk, 37, 166instalacja

oprogramowania, 167status połączenia, 168tworzenie projektu, 167zarządzanie IoT, 166zmiana stanu pinu, 169

Breadboard Dock, 21, 32,44

cena, 31

CC/C++, 71, 82

kompilacja kodu, 82, 83certyfikat SSL, 163, 165CGI, Common Gateway

Interface, 88Code Editor, 37, 41, 42cron, 173Cross-Compiling, 178, 181CSR, Certificate Signing

Request, 164częstotliwość, frequency,

116

Poleć książkęKup książkę

Page 18: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

186

czujniknatężenia światła, 103temperatury, 103

Ddane

ATQA, 142SAK, 142

DHCP, Dynamic HostConfiguration Protocol,134

diodaLED RGB, 17Omega2 LED, 51, 52

Dock, 149, 170Docker, 178dostęp

do minikomputera, 33do modułu RFID/NFC,

145do plików, 161

Eedytor kodu, 41

vi, 62ejabberd, 175ekran OLED, 93Erlang, 10, 89, 90

instalacja, 175Ethernet, 131Ethernet Expansion, 27,

131cena, 31parametry techniczne,

28Expansion Dock, 16, 23,

31, 54cena, 31parametry techniczne,

17

Ffast-gpio, 49

opcje narzędzia, 48firmware, 38, 70folder sieciowy, 162format

HEX, 158MFD, 143, 144NDEF, 141

formatowanie partycji, 67funkcje

pinów, 51sieciowe, 132

Ggenerowanie

certyfikatu SSL, 165pliku CSR, 164

Git, 73, 181gniazdo JST-PH, 33GPIO, General-Purpose

Input/Output, 14–17, 30,44–48, 55, 75, 81, 153

piny, 46Tool, 52–54

gpioctl, 47opcje narzędzia, 47

GPS, Global PositioningSystem, 15, 125

antena, 130Expansion, 11, 27, 125

cena, 31parametry techniczne,

27rozszerzenie Arduino

Dock 2, 128w języku PHP, 127w konsoli systemowej,

125grupy pinów, 50

Hhasło, 35

II2C, Inter-Integrated

Circuit,, 15, 21–26, 45,75, 108

I2S, Inter-IC Sound, 15, 45ICSP, 22identyfikacja

bezprzewodowa, 140karty NFC, 142

identyfikatorUID, 141UUID, 60, 63

informacjeo karcie microSD, 64–67o pamięci masowej, 61,

64o pamięci USB, 62o stanie pinów GPIO, 56

instalacjaArduino IDE, 154biblioteki, 79Erlang, 175klienta mcabber, 176konsoli, 40Minecraft, 181modułu, 77Node.js, 76OpenSSL, 163oprogramowania Blynk,

167pakietu, 75, 77PHP, 78Samby, 160

instalator, 35interfejs

eth0, 137lan, 134

Poleć książkęKup książkę

Page 19: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

187

sieciowy eth0, 131SPI, 75szeregowy UART, 29wan, 134

interfejsy komunikacyjne,46

IoT, internet rzeczy, 9zdalne zarządzanie, 166

JJamVM, Java Virtual

Machine, 86język

C, 82C++, 82Erlang, 89Perl, 87Python, 74Ruby, 90

JST-PH, 18, 19, 33

Kkarta

microSD, 57, 58, 64Mifare, 140

Classic, 141dane ATQA, 142dane SAK, 142Ultralight, 141–144

klient, 132konfiguracja

interfejsów, 132mcabber, 176, 177udostępnianie sieci, 133

klucz prywatny, 164kompilacja kodu

w C, 82w C++, 83w Javie, 86

konfiguracjaArduino IDE, 154DHCP, 135interfejsu sieciowego,

137karty sieciowej, 134narzędzia mjpg-

streamer, 172obsługi PHP 7, 80partycji, 59połączenia

mostkowego, 138rutingu, 137Samby, 160serwera Minecraft, 182sieci bezprzewodowej,

38, 136, 138systemu, 68szyfrowania, 136w konsoli systemowej,

37w przeglądarce, 35

konsola graficznaADC, 101OLED, 92PWM, 117RELAY, 108RFID/NFC, 140WEBCAM, 170

konsola systemowa, 43ADC, 101Arduino IDE, 158GPS, 125OLED, 93PWM, 118RELAY, 109RFID/NFC, 141WEBCAM, 171

kontrola pracy urządzeń,116

LLAN, Local Area Network,

131LED RGB, 17, 32LEDE, Linux Embedded

DevelopmentEnvironment, 70–73, 85-90

dołączenierepozytoriów, 72

Legacy Console, 37, 40–43,52

login, 35

Mmagistrala I2C, 26, 75mcabber

instalacja klienta, 176menedżer pakietów pip, 74microSD, 58

informacje o karcie, 64–67

montowanie, 59partycja swap, 66pliki systemowe, 68

microSD/USB, 63Minecraft

instalacja serwera, 181konfiguracja serwera,

182uruchomienie serwera,

183Mini Dock, 20, 21, 32

cena, 31parametry techniczne,

20, 21MIPS, Microprocessor

without Interlocked PipedStages, 14, 15, 73

mjpg-streamer, 171

Poleć książkęKup książkę

Page 20: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

188

modułADC Expansion, 100Arduino Dock R2, 153BLE Expansion, 149Breadboard Dock, 44Ethernet Expansion,

131GPS Expansion, 125node-oled-exp, 77node-pwm-exp, 77node-relay-exp, 77Relay Expansion, 107RFID & NFC Expansion,

140moduły rozszerzające, 23monitoring, 170montaż minikomputera, 32most, bridge, 131, 138

konfiguracjapołączenia

mostkowego, 138sieci bezprzewodowej,

138

Nnarzędzie

adc-exp, 101, 102Arduino IDE, 155, 156avrdude, 159bluetoothctl, 150Docker, 178Code Editor, 41, 42fast-gpio, 48, 49fswebcam, 170–174GPIO Tool, 52–54gpioctl, 47hcitool, 152mjpg-streamer,

170–173OLED Control, 92oled-exp, 93–97OpenSSL, 163

opkg, 70PWM Control, 117pwm-exp, 49, 118Relay Control, 108relay-exp, 109, 110RFID Reader, 140, 141Sensor Monitor, 102ubus, 126uvcdynctrl, 171Webcam, 170xxd, 144

nawiązanie połączenia, 34nawigacja satelitarna,

Patrz GPS, 125NDEF, NFS Data Exchange

Format, 141NFC, Near Field

Communication, 15, 28,140

format MFD, 143, 144identyfikacja karty, 142modyfikacja danych,

144narzędzie xxd, 144odczyt danych, 143odczyt identyfikatora

UID, 141skanowanie urządzeń,

142sterowanie obwodem

elektrycznym, 148zapis danych, 144

Node.js, 76, 77instalacja, 76moduły, 77

Oobsługa

Arduino Dock R2, 154,155

GPIO, 81

interfejsu eth0, 137języka Perl, 88kamery internetowej,

170NFC, 141OLED Expansion, 182

OLED, Organic Light-Emitting Diode, 10, 23,72–79, 85, 92

Control, 92Expansion, 23, 72, 76,

79, 85, 92cena, 31instalacja biblioteki,

72obsługa, 182oprogramowanie, 72parametry techniczne,

23wtyczka, 182

w językuC, 97PHP, 97, 127Python, 97, 146

w konsoli graficznej, 92w konsoli systemowej,

93zarządzanie ekranem,

92oled-exp, 84Omega2, 14

LED, 51, 52LTE, 14, 31, 184Pro, 14, 31, 76, 184

OnionCloud, 37Corporation, 14

OnionOS, 19, 36, 40opcje narzędzia

adc-exp, 102oled-exp, 95pwm-exp, 118relay-exp, 109

Poleć książkęKup książkę

Page 21: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

189

OpenSSLinstalacja, 163

OpenWRT/LEDE, 70oprogramowanie

sprzętowe, firmware, 38,70

Ppakiet

oled-qr-code-generator,76

onion-omega-oled, 77pyOledExp, 74pyOmegaArduinoDock,

75pyOnionGpio, 75pyOnionI2C, 75pyOnionSpi, 75pyPwmExp, 74pyRelayExp, 74python3-adc-exp, 75python3-oled-exp, 75python3-onion-i2c, 75python3-pwm-exp, 75python3-relay-exp, 75python-adc-exp, 75

pakietyinstalacja, 75, 76LEDE, 72w języku Python 2.7, 74w języku Python 3, 75

pamięćflash, 58, 61masowa, 57montowanie, 61

parametry techniczneADC Expansion, 24Arduino Dock R2, 21Breadboard, 21Ethernet Expansion, 28Expansion Dock, 16

GPS Expansion, 27Mini Dock, 20OLED Expansion, 23Power Dock 2, 18Relay Expansion, 25RFID & NFC Expansion,

29Servo Expansion, 26

partycje, 60formatowanie, 67tworzenie, 65typu swap, 58, 63, 66

pendrive, 61Perl, 87-89

konfiguracja obsługijęzyka, 88

PHP, 14, 78—81PHP 7, 78

biblioteka OnionOmega2, 78

instalacja, 78obsługa GPIO, 81obsługa języka, 80

piny, 44GPIO, 45grupowanie, 50zmienianie funkcji, 51informacje o stanie, 56narzędzie

fast-gpio, 48gpioctl, 47

plikadc.py, 105blynk.js, 167fstab, 59, 62gps.php, 128nfc.py, 147oled.c, 84oled.sh, 95pwm.c, 120

pwm.php, 123relay.c, 112relay.php, 114relay.py, 113

pliki CSR, 164podłączenie

czujnika temperatury,103

diody LED, 54obwodu elektrycznego,

111serwomechanizmu, 120

poleceniebluetoothctl, 150d, 65df -h, 58, 61, 63discoverable on, 150F, 65fdisk, 67firstboot -y, 43free, 65hciconfig -a, 149ipconfig, 134make, 179n, 65opkg update, 40OPKG, 70oupgrade, 38oupgrade, 70pairable on, 150reboot, 43scan off, 151scan on, 150sync, 43t, 66w, 67wifisetup, 38

połączenie, 34mostkowe, 139

port JST-PH, 19

Poleć książkęKup książkę

Page 22: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

190

Power Dock 2, 18, 23, 32, 37cena, 31parametry techniczne,

18

stan akumulatora, 19Proto Expansion, 30

cena, 31protokół

DHCP, 134UART, 44

przełączanie napięcia, 107przetwornik analogowo-

cyfrowy, 100przycisk Reset, 43punkt dostępowy Wi-Fi,

137PuTTY, 37PWM, Pulse-Width

Modulation, 11, 15, 23,45–49, 74–77, 116, 119

Control, 117podłączenie

serwomechanizmu,120

PWM26, 46, 116w języku

C, 120PHP, 123Python, 122

w konsoli systemowej,118

pwm.py, 122pwm-exp, 49, 77Python, 14, 55, 74–76, 84Python 2.7, 74Python 3, 75

QQR Code, 76Qwiic Expansion, 184

RRELAY, 74–77, 107, 110

adres I2C, 108cena, 31Control, 108Expansion, 11, 25, 75,

107obwód elektryczny, 111parametry techniczne,

25schemat modułu, 107w języku

C, 112PHP, 114Python, 113, 146

w konsoligraficznej, 108systemowej, 109

repozytoria LEDE, 73resetowanie

minikomputera, 41, 58ustawień, 43

RFID, Radio-frequencyidentification, 28, 140

RFID/NFC, 37Expansion, 28

cena, 31parametry techniczne,

29dostęp do modułu, 145Reader, 140, 141w języku Python, 146w konsoli graficznej,

140w konsoli systemowej,

141rozmiar partycji, 60Ruby, 90, 91ruter, router, 131, 136

konfiguracjainterfejsu sieciowego,

137

rutingu, 137sieci bezprzewodowej,

136szyfrowanie, 136

ruting, 137

SSamba, 160

dostęp do plików, 161instalacja, 160konfiguracja, 160

Sensor Monitor, 37, 102Servo (PWM) Expansion,

26, 77, 116, Patrz takżePWM

cena, 31parametry techniczne,

26serwer, 134

ejabberd, 175konfiguracja

DHCP, 135interfejsów, 134

komunikacyjny Jabber,175

Minecraft, 181plików, 160WWW, 80

siećbezprzewodowa, 38LAN, 131przewodowa, 131Wi-Fi, 133

skanowaniesieci Wi-Fi, 38urządzeń

Bluetooth, 151NFC, 142

slot na kartę, 57Sparkfun, 37

Poleć książkęKup książkę

Page 23: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

191

SPI, Serial PeripheralInterface, 15, 23, 44–46,75

SSH, Secure Shell, 37, 109SSL, Secure Socket Layer,

163generowanie

certyfikatów, 163,165

sterowanie diodą, 51system

kontroli wersji, Git, 73,181

operacyjny LEDE, 70plików ext4, 59wbudowany,

embedded system,70, 178

szyfrowanie, 136połączenia WWW, 163WPA2, 137

Śśrodowisko

programistyczne Node.js,76

TTerminal SSH, 40Timelapse Camera, 37toolchain, 178tworzenie partycji, 65

UUART, Universal

Asynchronous Receiverand Transmitter, 15, 21,23, 29, 44–46

ubus, 126udostępnianie sieci, 133USB, 61USB-to-Serial, 16, 20, 32,

36, 39ustawienia fabryczne, 43,

58UUID, Universally Unique

Identifier, 60, 63uvcdynctrl, 171

WWEBCAM, 170–172Wi-Fi, 133wirtualna maszyna Javy, 85WPA2, Wi-Fi Protected

Access II, 136wypełnienie, duty cycle,

116wyświetlanie

plików graficznych, 97usług, 126

XXMPP, Extensible

Messaging and PresenceProtocol, 10, 90, 175

klient mcabber, 176panel administracyjny,

177

Zzapis migawek, 173zarządzanie

ekranem OLED, 92IoT, 166kamerą, 171

zasilanie, 116zdalne zarządzanie IoT, 166zdalny monitoring, 170złącze

30-pinoweinterfejsy, 45zakresy napięć, 45

JST-PH, 18

Poleć książkęKup książkę

Page 24: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,

Poleć książkęKup książkę

Page 26: Wszelkie prawa zastrzeżone. Nieautoryzowane … · 2021. 2. 10. · 141 Rysunek 12.1. Odczyt identyfikatora UID kart lub naklejek NFC w narzędziu RFID Reader Narzędzie RFID Reader,