Loading...
  Show Posts
Pages: 1 ... 28 29 [30] 31 32 ... 34
436  International / Italiano / Re: Elettromagneti on: June 12, 2011, 01:12:03 pm
si credo di essermi fatto un'idea.. e mi piace! smiley-razz
437  International / Italiano / Re: [Prototipo] Gmail ethernet notifier on: June 12, 2011, 01:09:22 pm
ho aggiornato in testa.
In realtà a me piacerebbe creare un host per i progetti arduino per i diversi tipi di notifica, così che basterà interrogare la pagina in comune invece che avere ognuno la propria.
Il problema è che l'operazione costa soldi per l'hosting e tempo per la manutenzione..
438  International / Italiano / Re: [Prototipo] Gmail ethernet notifier on: June 12, 2011, 12:02:34 pm
eh si non sarebbe male un pbc.
sinceramente non ne ho trovati di notificatori indipendenti dal pc e da server esterni. Ho sempre trovato robe che comunicavano sulla seriale ..
Il problema è che per loggarsi a gmail ora è solo tramite protocollo https e arduino non lo supporta, per questo mi pare strano che ci siano altri progetti funzionanti che non si appoggiano a nessun "supporto ulteriore".
439  International / Italiano / [Prototipo] Gmail ethernet notifier on: June 12, 2011, 11:51:26 am
Ho fatto un'esercizio di stile, probabilmente non andrò avanti con il progetto ma ve lo mostro comunque, si tratta di un indicatore di email non lette in arrivo per Gmail. Il modulo funziona con l'ethernet, quindi non è necessaria la connessione al pc perchè funzioni.



Il funzionamento è semplice:
- arduino interroga una mia pagina php.
- php si logga ed elabora il mio feed gmail restituendo il numero di email non lette.
- letto il dato lo visualizzo sui display a 7 segmenti.

Difetti attuali:
- il refresh è per ora manuale pigiando il tasto di reset
- il display delle decine non mi va, devo aver sbagliato qualcosa mettendo in cascata i shift register.

Possibili sviluppi:
Il principio di notifica può essere applicato anche ad altri ambiti, tipo facebook o multimail invece che solo gmail.

Codice php:
Code:
<?php

// Dati personli di accesso
$username "USERNAME";
$password "PASSWORD";

// Indirizzo da interrogare (nota bene si poù accere alle label di gmail aggiungendo /nome_label)
$c curl_init('https://gmail.google.com/gmail/feed/atom'); 

$headers = array(
"Host: gmail.google.com",
"Authorization: Basic ".base64_encode($username.":".$password),
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4",
"Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
"Accept-Language: en-gb,en;q=0.5",
"Accept-Encoding: text",
"Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7",
"Date: ".date(DATE_RFC822)
);

curl_setopt($cCURLOPT_HTTPAUTHCURLAUTH_ANY);
curl_setopt($cCURLOPT_COOKIESESSIONtrue);
curl_setopt($cCURLOPT_HTTPHEADER$headers);
curl_setopt($cCURLOPT_RETURNTRANSFER1);
curl_setopt($cCURLOPT_FOLLOWLOCATION1);
curl_setopt($cCURLOPT_SSL_VERIFYPEER0);
curl_setopt($cCURLOPT_SSL_VERIFYHOST1);
curl_setopt($cCURLOPT_UNRESTRICTED_AUTH1);
curl_setopt($cCURLOPT_SSL_VERIFYHOST1);

// Metto in str il feed xml
$str curl_exec($c);

// estraggo dall'xml il nodo fullcoun che contiene il numero di mail non lette nella posta in arrivo
$xml simplexml_load_string($str);
$fullcount = (string) $xml->fullcount;

// stampo il numero estratto
print_r($fullcount);

// chiudo la connessione curl
curl_close($c);

?>

Note:
- la pagina può essere interrogata anche da browser e mostrerà il numero di email.
- una miglioria potrebbe essere quella di inviare username e password da arduino, in modo da gestire più account
- l'host deve supportare le curl con php, altrimenti è necessario attivarle (non sono espertissimo di php, altro non so dire)

Codice arduino:
Code:
#include <SPI.h>
#include <Ethernet.h>


int latchPin = 5;
int clockPin = 7;
int dataPin = 6;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1, 177 }; //IP ARDUINO DA PAERSONALIZZARE IN BASE ALLA PROPRIA RETE
byte server[] = { 62,149,140,194 };  // IP DEL SERVER HOST


byte segments[] = { 129,183,194,146,180,152,140,179,128,176 }; // CONFIGURATO PER I MIEI DISPLAY

// Inizializzazione client
Client client(server, 80);

char c; // usato per il buffer e come ultimo carattere
char prevc; // usato per tener traccia del penultimo carattere

void setup()
{
  // configurazione per i pin che pilotano i shift register
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
 
  // avvio la connessione
  Ethernet.begin(mac, ip);

  // avvio la seriale per il debug
  Serial.begin(9600);
  delay(1000);
 
  Serial.println("connecting...");
  if (client.connect()) {
     Serial.println("connected");
     // creo la richiesta http
     client.print("GET /miacartella/miofile.php HTTP/1.0\n"); // ATTENZIONE QUI SI INDICA LA PAGINA DA INTERROGARE, SE E' IN UNA SOTTOCARTELLA INDICARLA, ALTRIMENTI LASCIARE SOLO /nomepagina.php
     client.print("Host: www.mioindirizzo.it\n"); // PARTE NECESSARIA PER HOST CHE HANNO PIU' SITI CON LO STESSO IP (NEL MIO CASO ARUBA)
     client.println(); // NON RIMUOVERE, NECESSARIO PER AVVIARE LA RICHIESTA
   } else {
     Serial.println("connection failed");
   }
   digitalWrite(latchPin, LOW); // SPENDO I DISPLAY
}

void loop()
{
 

   // if there are incoming bytes available
   // from the server, read them and print them:
   if (client.available()) {
     prevc = c; // TENGO SALVATO IL DATO PRECEDENTE
     c = client.read(); // PRENDO L'ULTIMO BYTE LETTO

     Serial.print(c);  // SCRIVO BYTE PER BYTE LA RISPOSTA SULLA SERIALE
   }
   
   // if the server's disconnected, stop the client:
   if (!client.connected()) {
     Serial.println();
     Serial.print(int(c)-48); // CONVERTO IL CARATTERE IN NUMERO (-48 perchè 0 in esadecimale è il carattere numero 48)
     

     shiftOut(dataPin, clockPin, MSBFIRST, segments[int(c)-48]);   // SCRIVO IL VALORE LETTO SUL DIPLAY
     digitalWrite(latchPin, HIGH);
     
Serial.println();
     Serial.println("disconnecting.");

     client.stop(); // CHIUDO LA CONNESSIONE

     // do nothing forevermore:
     for(;;) // QUI INVECE CHE MANDARE IN LOOP INFINITO SAREBBE IDEALE RIMANDARE LA RICHIESTA ALLA PAGINA DOPO UN DELAY PER AVERE UN CONTINUO REFRESH
       ;
   }
}

Note:
- il codice è un mix tra ShiftOut e Client ethernet più altre nozioni trovate in giro.
- Ho calcolato i valori per i display a 7 segmenti in base a come ho messo io i fili, quindi potrebbe essere necessario cambiare i byte
- Il codice non fa refresh, si deve resettare ogni volta
- supporta massimo 2 decimali
- manca il codice per la visualizzazione delle decine
440  International / Italiano / Re: Elettromagneti on: June 12, 2011, 11:42:50 am
ho capito poco di quello che hai detto, ma comunque è interessante!! smiley-grin
ho provato ha cercare qualcosa sui magneti in neodimio, ma ho letto che sono fragili.. non può dare problema quando si scatena la reazione a catena che il magnete picchi troppo forte??
441  International / Italiano / Re: Elettromagneti on: June 12, 2011, 11:28:31 am
come temevo smiley-sad
ok grazie mille per le dritte
beh tentar non nuoce....
se mi dai le specifihe di lunghezza e diametro provo a fare qualcosa se trovo un secondo di tempo e poi ti dico smileysmiley

ah grazie mille, comunque a parte quello che ho già detto non ho altre particolari richieste penso che possa bastare una superficie di 50 x 50cm.
E' per una roba artistica più che tecnica comunque, e non me ne occupo direttamente io.
grazie
442  International / Italiano / Re: Elettromagneti on: June 12, 2011, 09:05:28 am
come temevo smiley-sad
ok grazie mille per le dritte
443  International / Italiano / Re: Elettromagneti on: June 12, 2011, 08:55:57 am
ok, forse è meglio che sono più specifico, così mi dite la possibilità di fattibilità
l'idea è di rendere elettromagnetica questa tenda:

praticamente quella nell'immagine ha dei magneti normali, alzandola rimane su per le calamite.
Io mi chiedevo se fosse possibile fare una versione elettrica, cioè quando alimento la tenda si tira sù, mentre nel caso contrario andrebbe tutta giù.
magari mettendo i magneti più vicini e con una tenda più piccola potrebbe essere fattibile qualcosa?
444  International / Italiano / Elettromagneti on: June 12, 2011, 08:30:51 am
Volevo sapere se qualcuno sa darmi delle dritte per farmi (o anche comprare) degli elettromagneti da controllare successivamente con il nostro amato arduino.
mi servirebbero non più grandi di due centimetri di diametro (ideale sarebbe mezzo), però non so se vanno fatti cavi dentro o se è meglio avvolgere il filo su un pezzo di metallo.
C'è anche un rapporto di tensione\corrente\spirali per avere un magnete più o meno potente?
vorrei riuscire ad attrarre dei tondini di metallo lontani almeno 3\4 cm circa..
grazie
445  International / Italiano / Re: ANDATE A VOTARE! on: June 12, 2011, 06:10:06 am
fatto stamane alle 9 !! smiley-grin
446  International / Italiano / Re: Applicazione iPhone per Arduino! Opinioni on: June 12, 2011, 04:24:41 am
il problema sarebbe che per fare un'applicazione ci vuole anche la licenza ed avere la validazione da apple, quindi un processo lungo e a pagamento.
già comunque una raccolta fatta bene sarebbe ottima, poi si potrebbe ottimizzare anche per il mobile (e non solo melafonino).
l'unico metodo per fare il tutto offline senza entrare nel giro delle app sarebbe quello di fare dei pdf..
447  International / Italiano / Re: Inviare e ricevere dati da\a arduino tamite pagina php on: June 11, 2011, 05:46:56 pm
ah scusa io ho scritto
Client client(server, 80);
ma nel tuo caso sarebbe
Client client(server, 8080);

ma digitando l'indirizzo nella barra degli indirizzi ti funziona correttamente?
448  International / Italiano / Re: Inviare e ricevere dati da\a arduino tamite pagina php on: June 11, 2011, 01:28:47 pm
l'ip lo devi usare quando inizializzi il client e dopo devi usare l'indirizzo senza ip. inoltre mi sa che ti serve un println (con il ritorno a capo) perchè venga inviato il comando.

Code:
byte server[] = { 192,168,0,199 };
Client client(server, 80);

void setup()
{
   if (client.connect()) {
      Serial.println("Connected!");
      client.print("GET /cambiastato2.php HTTP/1.0");
      client.println();
   }
}
449  International / Italiano / Re: Dns name invece che ipaddress on: June 11, 2011, 05:07:37 am
dipende dove ti reinderizza, tu oa prendi l'ip ma la pagina dovrebbe essere (almeno per il mio sito tecnomedia.tv) /home/tecnomedia.tv/www/ o qualcosa del genere, prova a immetterlo manualmente

E' una delle strade che avevo intrapreso, ma senza risultato.
ho però appena trovato la soluzione, ed era semplicissimo, ho editato in testata
450  International / Italiano / Re: Dns name invece che ipaddress on: June 11, 2011, 04:07:38 am
sicuro necessiti obbligatoriamente dell'ip? alla fine il dns ritorna un ip

La libreria ethernet di arduino necessita di un ip per collegarsi. mentre il mio sito su aruba ha l'host condiviso, quindi su un solo ip rispondono diversi siti, ma in base al nome messo nella barra degli indirizzi il server redirige automaticmaente. dovrei prendere l'host dedicato per avere un ip mio.

per spiegarmi meglio:
- pingo il mio dominio: "lorenzoboasso.it"
- prendo l'ip di risposta
- scrivo l'ip nella barra degli indirizzi
- il sito non risponde

Questo è un dato di fatto di Aruba, l'unico modo che ho quindi per accedere alla pagina è tramite il nome dell'indirizzo e non l'ip
Pages: 1 ... 28 29 [30] 31 32 ... 34