// Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro.



Documenti analoghi
Scheda test Arduino 2009 scheda Ethernet Arduino web server scheda SD 2GB

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Un client su arduino invia i dati acquisiti ad un database

Lezione 14: Come accendere una lampada da remoto con Arduino

STUDIO PER UN SIMULATORE DI CONTROLLORE PER MOTORI

12^ parte : Come gestire la Ethernet Shield. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Arduino Quick Ethernet library Reference

D sistema d allarme con sensori magnetici

Arduino+Ethernet Shield+SD (ITA)

Arduino: Programmazione

Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN

PROGETTI CON ARDUINO UNO

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Curcio Davide matr /7/2016

12 - timer da cucina display a 4 cifre

ARDUINO Duemilanove. Lelio Spadoni

TERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35

Arduino e internet: utilizzare Xively.com

Da

I/O su Socket TCP: read()

Arduino: Comandare da remoto l'accensione/spegnimento di due led

Arduino: domotica open source

N.B: Clicca qui per scaricare il file.zip con tutti gli sketch utilizzati per realizzare il sistema di telepresenza.

ARDUINO. Ing. Francesco Giurlanda

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Progetto di Domotica

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

Richiesta pagina PHP (es: index.php)

Automobile Bluetooth

9^ parte : Come pilotare motori dc utilizzando il motor shield. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Altri tipi di connessione

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel , dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

TSRR. Realizzazione di un sistema di controllo degli accessi con Arduino

Access Control Ivancich Stefano 31 Luglio 2014 TEKNEW - Studio Medici - Marcon(VE)

Esercizio 2. Client e server comunicano attraverso socket TCP

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

La libreria ETHERNET

10 - Programmare con gli Array

CONTASECONDI CON DISPLAY A 7 SEGMENTI ARDUINO LIKE

IZ1MHN e IW1ALX. Prima di iniziare. Domande sulla lezione scorsa? Come è andato il compito a casa?

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a prof.

Arduino: monitoraggio remoto di temperatura e luminosità

PROCEDURA DI CONFIGURAZIONE: Per configurare i parametri di rete dell RCX LAN è necessario installare il software Tibbo DS Manager

NOTE GENERALI DI PROGRAMMAZIONE icon100

Corso Base Arduino ed Elettronica

N.B: Clicca qui per scaricare il file.zip con tutti gli sketch utilizzati per realizzare il sistema previsioni meteo.

Breve riepilogo della puntata precedente:

La Domotica Alunno: Fumasoni Luca Istituto tecnico industriale E.Mattei Indirizzo informatica ABACUS Anno:

Sottoprogrammi: astrazione procedurale

Applicazioni distribuite

Progetti reali con ARDUINO

IPC System V. Code di messaggi

MONITORAGGIO ACQUEDOTTO MANUALE UTENTE

LE LIBRERIE Per poter sfruttare tutte le caratteristiche

LE LIBRERIE Per poter sfruttare tutte le caratteristiche

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Arduino: manuale di programmazione wiring

CONFIGURARE IL DISPOSITIVO DI TELEASSISTENZA

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

PHP e MySQL. Guida scaricata da

TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA

CORSO ARDUINO. Jacopo Belli Giulio Fieramosca Luca Mattii GOLEM Jacopo Belli Giulio Fieramosca Luca Mattii

Arduino Tutorial #10 - Internet e i Feed Rss materiale utilizzato Arduino ethernet o Arduino UNO con ethernet shield o Arduino UNO con WiFi shield.

ARDUINO. Misurare e controllare. Riccardo Barberi. Dip. di Fisica Univ. Della Calabria Rende (CS), Italy

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

QUADRO DI CONTROLLO AMBIENTALE

Corso di programmazione Arduino DI MALVEZZI DAVIDE

appunti delle lezioni Architetture client/server: applicazioni client

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Telecontrollo escavatore LEGO con board Arduino

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

8^ parte : Motor shield FE e motore passo-passo bipolare. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

11^ parte : Come gestire i servomotori con Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Domotica Arduino. La casa intelligente. A cura di. El hor Younes Classe 5 AN

IZ1MHN e IW1ALX. Agenda. Introduzione ad Arduino Arduino l hardware Arduino il software Alcune idee realizzabili con Arduino E se facessimo un corso?

7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M.

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

PHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas

Le stringhe. Le stringhe

Gateway RS485 DLMS-MODBUS. Dispositivo di Comunicazione tra DLMS RS485 e MODBUS RTU e/o MODBUS TCP

FPf per Windows 3.1. Guida all uso

Funzioni. Il modello console. Interfaccia in modalità console

ARDUINO. workshop base

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

ELETTRONICA CON ARDUINO

Sicurezza nelle reti

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

DOCUMENTAZIONE J-BO. Progetto FabSchool ITE GINO ZAPPA CLASSE 4D

PYTHON CHEAT SHEET. Rapido documentazione di consultazione per istruzioni, funzioni e tipi in Python. #stampa le variabili x e y

Arduino. Laboratorio Arduino Base. HackLab Terni. Laboratorio aperto a tutti di elettronica, scienza e arte. hacklabterni.

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

CORSO ARDUINO. Giulio Fieramosca Stefano Panichi. Corsi GOLEM 2014

Indirizzi MODBUS per ETH Mar 2012

Note applicative AN001: Driver ModBus

6^ parte : Acquisizione della temperatura con LM35. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Transcript:

// Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro. // Librerie necessarie per il progetto #include <Wire.h> #include <SHT1x.h> #include <WProgram.h> #include <SPI.h> #include <Ethernet.h> #include "Ultrasonic.h" //creo un array di byte per specificare il mac address byte mac[] = 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED ; //creo un array di byte per specificare l'indirizzo ip byte ip[] = 192, 168, 0, 77; //modificare questo valore in base alla propria rete char Data_RX; String msg = ""; int cmd = 0; //creao un oggetto server che rimane in ascolto sulla porta specificata Server ArduinoServer(80); int inpin = 2; // pulsante connesso al digital pin 2 int val1 = 0; // variabile per morizzare una misura int alarmpin = 5; // uscita allarme su digital pin 5 int val2 = 0; // variable memorizzazione allarme int val3 = 0 ; // variabile per il controllo del refrish // variabili di data/ora int hour; int minute; int second; int month; int day_of_week; int day; int year; // definizione per SHT11 - temperatura interna #define datapin 6 #define clockpin 7 SHT1x sht1x(datapin, clockpin); //pin dedicati al sensore ultrasuoni Ultrasonic ultrasonic(8,9); void setup() //inizializzo la I2C Wire.begin(); delay(300); //inizializza lo shield con il mac e l'ip Ethernet.begin(mac, ip); //inizializza l'oggetto server ArduinoServer.begin(); //definisco il modo di pin3 e altri pinmode(3, OUTPUT); pinmode(inpin, INPUT); pinmode(alarmpin, OUTPUT);

void loop() //IMPORTANTE pulisco la variabile msg e val3 msg = ""; val3 = 0; Client client = ArduinoServer.available(); //controllo se client è true if (client!= false) //controllo continuamente che il client sia connesso while (client.connected()) //Controllo se ci sono byte disponibili per la lettura if (client.available()) //leggo i byte disponibili provenienti dal client Data_RX = client.read(); //ricostruisco la stringa ricevuta concatenando i singoli byte msg += Data_RX; //Attendo che tutti i byte siano letti quando Data_RX contiene il carattere //di nuova linea capisco che tutti i byte sono stati letti if (Data_RX == '\n') //cerco all'interno della stringa il parametro che mi interessa delay(2000); //Invio la risposta al client //invio lo status code client.println("http/1.1 200 OK"); //imposto il data type client.println("content-type: text/html"); client.println(); //invio codice html client.print("<html><body>"); client.print("<head>"); client.print("<meta HTTP-EQUIV='refresh' CONTENT='5; /'>"); //Piloto l'uscita e invio lo stato al browser cmd = msg.indexof("on"); val3 = 1; digitalwrite(3, HIGH);

client.print("<meta HTTP-EQUIV='refresh' CONTENT='0; /'>"); client.print("</head>") ; cmd = msg.indexof("off"); val3= 1; digitalwrite(3, LOW); client.print("<meta HTTP-EQUIV='refresh' CONTENT='0; /'>"); cmd = msg.indexof("blk"); val3 = 1; digitalwrite(3, HIGH); client.print("<meta HTTP-EQUIV='refresh' CONTENT='5; /'>"); delay(6000); // ritardo n-sec per eventuale avvio utilizzi esterni digitalwrite(3, LOW); //funziona su chiamata diretta ma vorrei usarlo per refresh elenco dati su mio sit client.print("<meta HTTP-EQUIV='refresh' CONTENT='5; /'>"); client.print("</head>") ; cmd = msg.indexof("dati"); if (val3=1) cmd=1; // Circuito data-ora I2C metto il registro indirizzi a 0. Wire.beginTransmission(104); // trasmetto al device #104, il DS1307 Wire.send(0x00); Wire.endTransmission(); // fine trasmissione Wire.requestFrom(104, 7); // richiesta di 7 byte da slave DS1307

// determino l'appartenenza del byte second = Wire.receive(); minute = Wire.receive(); hour = Wire.receive(); day_of_week=wire.receive(); day = Wire.receive(); month = Wire.receive(); year = Wire.receive(); // Conversione di tutti i valori in decimale hour=hour/16 * 10 + hour % 16; minute=minute/16 * 10 + minute % 16; second=second/16 * 10 + second % 16; day=day/16 * 10 + day % 16; month=month/16 * 10 + month % 16; year=2000 + year/16 * 10 + year % 16; delay(500); client.print("scheda Arduino2009 + scheda Ethernet "); client.print("test real time on line -- Ciao, Arrigo "); // scrittura data if (day < 10) client.print("0"); client.print(day); client.print("/"); if (month < 10) client.print("0"); client.print(month); client.print("/"); client.print(year); client.print(" ---- "); // scrittura ora if (hour < 10) client.print("0"); client.print(hour); client.print(":"); if (minute < 10) client.print("0"); client.print(minute); client.print(":"); if (second < 10) client.print("0"); client.print(second); delay(300); // trasmette il valore di ciascun ingresso analogico for (int analogchannel = 0; analogchannel < 4; analogchannel++) client.print("analog input ");

client.print(analogchannel); client.print(" is "); client.print(analogread(analogchannel)); val1 = digitalread(3); // read the input pin client.print(" Relay_1 "); if (val1 > 0)client.print(" ON "); if (val1 < 1)client.print(" OFF "); // controlla lo stato del sensore ultrasuoni delay(200); val2=ultrasonic.ranging(cm); if (val2<70) digitalwrite(alarmpin, HIGH); //eccita il relè client.print(" Area libera cm "); client.print(val2); client.print(" -->>> ALLARME "); // trasmette l'allarme delay(2000); else digitalwrite(alarmpin, LOW); // relè diseccitato client.print(" cm "); client.print(val2); client.print(" -->> TUTTO OK "); // trasmette OK //legge Temperatura e Umidità del sensore SHT11 float temp_c; int humidity; temp_c = sht1x.readtemperaturec(); humidity = sht1x.readhumidity(); delay(300); client.print(" Temperatura interna "); client.print((temp_c-2),1); client.print(" gradic"); client.print(" Umidita' interna "); client.print(humidity); //Umidità client.print("% ");

client.print("</body></html>"); //aspetto 4 ms affinchè la risposta giunga al browser del client delay(4); //esco dal ciclo while una volta completato l'invio della risposta break; //chiudo la connessione client.stop();