Show Posts
Pages: 1 ... 28 29 [30] 31 32 ... 34
436  International / Generale / Re: [Prototipo] Gmail ethernet notifier on: June 13, 2011, 02:16:34 am
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..

Ci avevo pensato anche io!
A momento mi stavo studiando un po' il php dato che non lo conosco bene e poi pensavo di aprire un dominio del tipo "arduservice.it" contenente le pagine php inviate dagli utenti (e rese "generiche") in modo da creare un WebService di funzioni per Arduino.

P.S. Ma teoricamente avrei potuto ottenere la stessa cosa con una pagina ASP.NET giusto?

Massì, certo con asp.net si può fare tutto quello che si riesce a fare con php, anche io sono più esperto in .net, però effettivamente a livello di comunità php ha un grandissimo seguito, quindi è più facile trovare codice ed aiuto.
Poi così puoi mettere tutto su un server linux che fa molto più opensource.
Per fare dei webservice veri e propri ci vorrebbe almeno un server virtuale, così puoi deployare le tue applicazioni, cosa non possibile con hosting base. ciò però ha un costo di 10€\mese (almeno con aruba), oltre appunto l'impegno che ci si dovrebbe metter dietro.
Però bho se siamo un po' di persone che si possono mettere dietro si potrebbe almeno pensare su carta ad un servizio del genere, magari quando ho tempo creo un post dedicato.
437  International / Generale / Re: Elettromagneti on: June 12, 2011, 01:12:03 pm
si credo di essermi fatto un'idea.. e mi piace! smiley-razz
438  International / Generale / 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..
439  International / Generale / 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".
440  International / Generale / [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
441  International / Generale / 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??
442  International / Generale / 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
443  International / Generale / Re: Elettromagneti on: June 12, 2011, 09:05:28 am
come temevo smiley-sad
ok grazie mille per le dritte
444  International / Generale / 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?
445  International / Generale / 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
446  International / Generale / Re: ANDATE A VOTARE! on: June 12, 2011, 06:10:06 am
fatto stamane alle 9 !! smiley-grin
447  International / Generale / 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..
448  International / Generale / 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?
449  International / Generale / 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();
   }
}
450  International / Generale / 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
Pages: 1 ... 28 29 [30] 31 32 ... 34