Corso Avanzato Arduino
Marco Dalla Pria
Aprile 2015
One-Wire BUS
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• Protocollo di comunicazione seriale simile all’ I2C• Brevettato dalla Dallas Semiconductor Corp.• Trasferimento dati a bassa velocità• Alimentazione e dati sullo stesso cavo• 64 bit di indirizzamento
• 8 bit meno significativi: numero seriale• 8 bit più significativi: CRC (Cyclic Redundacy Check)• 48 bit riservati all’indirizzamento
• Una rete di dispositivi One-Wire (1 Master- N Slave) viene chiamata MicroLAN
Data & Power
Sensore temperatura DS18B20One-Wire
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• Calibrato in °C• Precisione: ± 0,5°C• Tensione di funzionamento: 3,0V / 5,5V• Soglie temperatura: -55°C / +125°C
Codice:
• DS18B20.ino
NB: Include OneWire
& Dallas libraries!
ALIMENTAZIONE ATTIVAALIMENTAZIONE PARASSITA
Ethernet Shiled
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Librerie:
• <SPI.h>
• <Ethernet.h>
• <SD.h>
Lettura / Scrittura memoria SD
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• File System supportati: FAT16 e FAT32• I file devono avere una lunghezza non superiore ad 8.3 caratteri• PIN utilizzati (SPI [SS select SD]):
• 10, 11, 12, 13 UNO• 50, 51, 52, 53 MEGA
• Indispensabile includere nel progetto la libreria «SD.h»• Funzioni Classe SD
Codice:
**Esempi libreria
NB: Include SD library!
Internet…
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
PROTOCOLLO
HOST
SWITCH
ROUTER
PACCHETTI
CLIENT
SERVER
…
…
…
…
…
PATH
IP
TCP
UDP
DHCP
TDM
FDM
ACK
CTS
Protocollo
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
PROTOCOLLO: Definisce il formato e l’ordine dei messaggiscambiati tra due o più entità in comunicazione, così come le azioniintraprese in fase di trasmissione e/o ricezione di un messaggio o diun altro evento.
Indirizzo IP e MAC
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Indirizzo IP (Internet Protocol)• Etichetta numerica che identifica un host nella rete• Indirizzo a 32 bit [IPv4] (es. 172.16.254.1)• Indirizzo a 128 bit [IPv6] (es. 2001:0DB8:0000:0A30:0000:0D40:0000:0001)• Statico o dinamico• Pubblico o privato
Indirizzo MAC (Media Access Control)• Indirizzo fisico della scheda di rete assegnato univocamente dal produttore• Indirizzo a 48 bit (es. 00:50:FC:A0:67:2C)• Viene utilizzato a livello locale
Web e HTTP
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• Il web è un servizio on demand
• HTTP (HyperText Transfert Protocol) costituisce il cuore del web• Implementato in due programmi:
• Client• Server
Questi comunicano tra loro scambiandosi messaggi HTTP
• Browser web: implementa il lato client dell’HTTP• Server: ospita oggetti
• Una pagina web è costituita da oggetti• Un oggetto è un file indirizzabile tramite un solo URL (Uniform Resource Locator)
• HTTP definisce in che modo i client web richiedono le pagine ai server web e come questi ultimi le trasferiscono ai client
Modello Client Server
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
URL
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
http://www.robot-italy.com/arduino-uno.html
PROTOCOL
SUB-DOMAIN
DOMAIN
TOP LEVEL DOMAIN
PAGE / FILE NAME
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
DNSDomain Name System
Formato dei messaggi HTTP
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Messaggio di richiesta (Client Server):
GET /somedir/page.html HTTP/1.1
Host: www.somesite.com
Connection: close
User-agent: Mozzilla/14.2
Accept-language: it
Metodi di richiesta HTTP:GET: richiede un file al server
POST: invia informazioni al server
HEAD: richiede solo l’header senza le risorse
...
Formato dei messaggi HTTP
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Messaggio di risposta (Server Client):
HTTP/1.0 200 OK
Date: Mon, 28 Jun 2004 10:47:31 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4
Content-Language: it
Content-Type: text/html; charset=utf-8
Connection: close
data… data… data …
Linguaggi Server Side & Client Side
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Client
Server
Data…
Richiesta dati
Risposta con dati elaborati Server
Data…
Richiesta dati
Risposta con dati grezzi
SERVER SIDE CLIENT SIDE
Client
HTML
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• HyperText Markup Language• È un linguaggio di formattazione (…non di programmazione)• Definisce una grammatica per la descrizione e la
formattazione delle pagine web• Ha un insieme definito di TAG
<!DOCTYPE html><html><head><title>Page Title</title></head><body>
<h1>This is a Heading</h1><p>This is a paragraph.</p>
</body></html>
Web Server su Arduino
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
192.168.0.5
Casa
Codice:
• simpleWebServer.ino
XML
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• eXtensible Markup Language• È un metalinguaggio, usato per creare nuovi linguaggi…• …atti a descrivere documenti strutturati• Ha un insieme definito di TAG, è possibile definirne di propri a seconda delle esigenze
<xml version="1.0" encoding="UTF-8"><utenti>
<utente><nome>Luca</nome><cognome>Cicci</cognome><indirizzo>Milano</indirizzo>
</utente><utente>
<nome>Max</nome><cognome>Rossi</cognome><indirizzo>Roma</indirizzo>
</utente></utenti>
JavaScript
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• Linguaggio di scripting• Viene interpretato lato client • Utilizzato per creare siti e applicazioni web che prevedano effetti dinamici e interattivi• …
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" CONTENT="text/html; charset=ISO-8859-1">
<title>Javascript</title>
<script language="Javascript1.3">
function chiediescrivi() {
a = prompt("Come ti chiami?", "nome");
document.writeln("Hai detto di chiamarti " + a);
}
</script>
</head>
<body>
<script language="Javascript1.3">
chiediescrivi();
</script>
</body>
</html>
AJAX
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
• Asynchronous JavaScript and XML• Tecnica di sviluppo software per la progettazione di applicazioni web interattive• Scambio dati in background fra browser e server (asincrono)
• Aggiornamento dinamico della pagina web• Al seguire di un’azione non viene ricaricata l’intera pagina, ma solo la porzione
interessata
Codice:
• server_ajax.ino
• index.htm
Web Server su Arduino
Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
192.168.0.5
Casa
DNS
Ringraziano per la partecipazione
Marco Dalla PriaMarco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015
Top Related