Lezione a4

Post on 26-Jan-2017

334 views 2 download

Transcript of Lezione a4

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