Lezione a4

22
Corso Avanzato Arduino Marco Dalla Pria Aprile 2015

Transcript of Lezione a4

Page 1: Lezione a4

Corso Avanzato Arduino

Marco Dalla Pria

Aprile 2015

Page 2: Lezione a4

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

Page 3: Lezione a4

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

Page 4: Lezione a4

Ethernet Shiled

Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015

Librerie:

• <SPI.h>

• <Ethernet.h>

• <SD.h>

Page 5: Lezione a4

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!

Page 6: Lezione a4

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

Page 7: Lezione a4

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.

Page 8: Lezione a4

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

Page 9: Lezione a4

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

Page 10: Lezione a4

Modello Client Server

Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015

Page 11: Lezione a4

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

Page 12: Lezione a4

Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015

DNSDomain Name System

Page 13: Lezione a4

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

...

Page 14: Lezione a4

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 …

Page 15: Lezione a4

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

Page 16: Lezione a4

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>

Page 17: Lezione a4

Web Server su Arduino

Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015

192.168.0.5

Casa

Codice:

• simpleWebServer.ino

Page 18: Lezione a4

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>

Page 19: Lezione a4

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>

Page 20: Lezione a4

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

Page 21: Lezione a4

Web Server su Arduino

Marco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015

192.168.0.5

Casa

DNS

Page 22: Lezione a4

Ringraziano per la partecipazione

Marco Dalla PriaMarco Dalla Pria - Corso Avanzato Arduino @Verona FabLab – Aprile 2015