andrej Štern laboratorij za telekomunikacije andrej.stern ... · zasloni lcd hd44780 s ser/par...
TRANSCRIPT
Vstop v Internet stvari
Andrej Štern
Laboratorij za telekomunikacije
Delavnica o IoT, 23. 4. 2013
MMD, UL Fakulteta za elektrotehniko
2
Kaj potrebujemo za vstop v IoT
� Predpostavke
� veselje do ustvarjanja in vztrajnost do produkta
� nekaj opreme, praktičnega znanja in priključek v internet
� Oprema
Senzorji(vhodne naprave)
Uporabniški vmesnik
Računalnik(namizni, prenosni,
tablični, telefon,
vgrajeni sistemi)
Izhodne naprave
Komunikacijskenaprave
Internet
3
Kako začeti ... in nadaljevati
� Arduino = enostavni gradnik platforme IoT
� odprtokodna strojna (AVR 8bit / ARM 32bit) in programska platforma
� cenovno ugodna razvojna ploščica z vhodno/izhodnimi vmesniki
� vtičnica USB zagotavlja osnovno napajanje, nalaganje in konzolni izpis
� prijazno brezplačno razvojno okolje (IDE) z vnosom C podobnega jezika
� ogromna skupnost zainteresiranih uporabnikov s široko podporo
IDEArduino Uno
Google:28M zadetkov
4
Različice Arduino opreme
� Osnova: Uno
� Novejši: Leonardo
� In še mnogi drugi
� vsak lahko ustvari svoj klon
� Največji: Mega, ADK
� Manjši: Mini, Micro, Nano, LilyPad
http://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems
(klik!)
5
Google in Arduino = Arduino ADK
� Nadgradnja Mega (Google’s Accessory Development Kit)
USBhostDodan
vmesnik za povezavoz Androidterminali
preko ADK/ADB
Dodatnonapajanje7-12V
USB klientnapajanje
navideznivmesnikUART izTX0/RX0
Izhod napetosti 3.3V in5V za ščite in module
16x analogni vhodi
Velikost UNO/MEGA
ICSP/SPIvmesnik
SPI
I2CUART 1-30GPIO & PWM
GPIO
I2C
PWM
LED
SerUSB
TipkaRESET
IRQ1,0
IRQ5,4,3,2
T0 T0T1 T1 T2 T2 T4 T4 T4 T3 T3 T3
T5 T5
T5
6
Razširitve osnovnih plošč s ščiti
� Posebnosti uporabe ščitov (angl. shield)
� pouporaba I/O priključkov
� GPIO ne more biti uporabljen 2-krat
� UART deluje samo kot točka-točka
� I2C se lahko uporablja vzporedno
� SPI komunikacija zahteva nov CS/SS
� http://playground.arduino.cc/Main/ShieldPinUsage
� poraba in zmogljivost
� napajalna napetost +3.3V ali +5V
� omejitev USB vrat do 500 mA
� zunanje napajanje do 1500 mA
� 750 mA za napajanje telefona
� 750 mA za napajanje plošče in ščitov
� nekateri ščiti zahtevajo ločeno napajanje
� tudi 12V in več
Kratek “Uno” ščit deluje tudi na Mega/ADK
(klik!)
7
Primeri ščitov
� Pogosti ščiti
� Prototype
� Ethernet + SD
� WiFi + SD
� Wireless (Bee)
� Bluetooth
� Sensor
� LCD Keypad
� 8,1cm (3.2”) TFT
� GSM GPRS
� GPS
� USB Host
http://shieldlist.org/
8
Priključitev senzorjev
� Analogni
� termistor
� termočlen
� svetlobni upor
� senzor vlage
� pospeškometer
� Digitalni
� enostavni (1/0)
� vmesnik I2C
� vmesnik SPI
� vmesnik UART
� drugi vmesniki
� podprto s knjižnicami
Vhod v Arduino
(klik!)
9
Izhodi in krmiljenja
� Področja
� vizualizacija
� enostavni indikatorji LED, matrike, 7-segmentni prikazovalniki
� krmiljeni RGB-trakovi in matrike LED (SPI)
� zasloni LCD HD44780 s ser/par vmesniki, TFT z vmesniki SPI
� zvok
� piezzo piskači z vgrajenim oscilatorjem (1/0)
� zvočniki: tone(pin, frequency, duration)
� motorji
� servo motorji s PWM vhodom: knjižnica servo.h
� DC motorji: z uporabo ULN2003 ali L293D
� ostalo� video-izhod
� IR in UZ
� POS-tiskalnik
10
Komunikacijski vmesniki IP
� Povezljivost IP
� komunikacijski ščiti zagotavljajo velik del funkcionalnosti
� TCP, UDP, ICMP, IPv4 ARP, IGMP, PPPoE, Ethernet
� tipična povezljivost čez SPI (hitreje) ali UART (počasneje)
� žična povezljivost (Ethernet)
� potrebna programska podpora ~ 7kB
� WizNet W5100, MicroChip ENC28J60
� brezžična povezljivost (WiFi)
� zagotavljanje 802.11 podpore (varnost)
� cena ~ 70€, možnost Ethernet + WiFi usmerjevalnik
� mobilna povezljivost (GSM/GPRS)
� pošiljanje sporočil SMS
� vzpostavljanje govornih povezav
� vzpostavljanje paketnega prenosa� preko vgrajenih funkcij in GSM-knjižnice
11
Komunikacijski vmesniki WPAN
� Standardizirane tehnologije
� ZigBee 802.15.4
� uporaba XBee brezžičnega ščita
� komunikacija preko UART z ukazi AT
� Series 1 ali Series 2, 2B (ZB, večtočkovna komunikacija)
� izbira tehnologij: https://www.sparkfun.com/pages/xbee_guide
� integrirane ali zunanje antene
� oddajne moči 1mW ali >60mW (PRO)
� Bluetooth 2.x
� neposredni priklop (tudi XBee in LCD-ščit)
� komunikacija preko UART z ukazi AT
� uporaba transparentne BT-povezave (HC-06)
� nastavitev imena, kode PIN, hitrosti UART
� nastavitev vloge gospodar/odjemalec (HC-05)
� veliko več ukazov, potrebno za priklop senzorjev BTPozor: 3.3V - 5.0V
12
Druge rešitve kratkega dosega
� Uporaba komunikacijskih modulov za vgrajene sisteme
� EU-frekvence 433 MHz, 868 MHz in 2,4 GHz z dometom do nekaj 10(100) m
� Različne stopnje zmogljivosti (primeri)
� Nordic NRF24L01 - TRX, knjižnica mirf.h
� 2.4 GHz, 84x1 MHz, SPI, do 2 Mbit/s
� HopeRf RFM12B - TRX, knjižnica RFM12B.h
� 433/868 MHz, nastavljivi kanali, SPI, do 256 kbit/s
� Linx TXM/RXM-433-LR - TX in RX, serijski
� 433 MHz, fiksna frekvenca 433,92 MHz, do 9600 bit/s
� enostavni RF moduli, knjižnica VirtualWire.h
� 433/868 MHz, oscilator, do 2000 bit/s
� RFID/NFC na 125 kHz / 13,56 MHz
� podpora različnim protokolom
� ISO 14443A, MIFARE
Zmog-ljivo
Enos-tavno
Upo-rabno
13
Arduino - zagon
� Priključitev Arduino plošče
� prva priključitev zahteva gonilnik (/drivers)
� Nastavitev plošče
� iz nabora menija Tools (orodja)
� Tools -> Board -> Arduino Mega ADK
� določanje serijskih vrat (navidezna)
� za nalaganje programov
� za serijsko konzolo
� določanje programatorja
� za nalaganje zagonskega
programa (ni potrebno)
Plošča
Vrata
COM
Programator
14
Arduino - testni primer
� Vgrajen primer “Blink”
� povezava na LED na pinu 13
� dve fazi programa
� setup() in loop()
Nalaganje
Setup()- enkratna izvedba- nastavitev parametrov- odpiranje povezav
Loop()
- neskončno ponavljanje- glavni del programa- branje vhodov- nastavitev izhodov- izpisi na serijska vrata
Program = “sketch”
Lastni programi
Veliko vgrajenih primerov
15
Pachube (Cosm) - vrata v IoT
� Storitev Cosm
� zbiranje podatkov
� analiza
� obveščanje
� alarmi
� statistika
16
Arduino “konkurenca”
� Raspberry PI
� poceni večpredstavnostna mini-PC platforma
� poganja Linux / Python z SD kartice
� zmogljivost:, ARM 700 MHz, GPU, 512MB RAM
� povezljivost: Ethernet, 2x USB, GPIO, HDMI
� trenutno manj dodatkov za RPI kot Arduino
� potrebno več znanja za prve korake
� Združevanje Arduino + RPI
� Arduino je odličen za IoT in robotiko
� RPI je odličen za težko GPU računanje
� primer: avtonomni robot
� A: senzorji, servo, nadzor
� R: video detekcija, WiFi, računanja
Google: 37M zadetkov
(klik!)
17
Dodatne informacije
� Arduino spletna stran
� http://arduino.cc/en/Tutorial/HomePage - vsebovani primeri
� http://arduino.cc/en/Reference/Libraries - vsebovane knjižnice
� http://arduino.cc/en/Reference/HomePage - Arduino jezik
� http://arduino.cc/en/Reference/Comparison - primerjava s C
� Prikaz uporabnosti
� Massimo Banzi: How Arduino is open-sourcing imagination