[proposta progetto comune] Arduino webservices

E’ saltato fuori che c’è un’idea condivisa da più persone di voler creare un webserver con servizi dedicati per arduino.
ho creato il topic per discutere delle idee e proposte per vedere se ne viene fuori qualcosa.

Premetto che non sono espertissimo di php, ho scritto le cose un po’ di getto tanto per accendere la discussione. posso aver scritto delle cavolate, nel caso correggerò

Quali sono i vantaggi di un webserver condiviso?
Creando un sito di riferimento per i servizi sarà più facile sviluppare progetti che interagiscono col web, non servirà più che ognuno scriva il proprio codice di gestione, ma gli basterà interrogare il servizio desiderato.

Proposte di utilizzo

  • Connessione email: * notifica email posta in arrivo
  • invio email in base ad un evento (es. alert di un sensore di temperatura)
  • controllo arduino tramite comandi nel messaggio email
  • Connessione facebook: * gestione notifiche
  • invio messaggi in base ad evento
  • Connessione twitter: * gestione notifiche
  • invio messaggi in base ad evento
  • Connessione api google: *

  • Connessione gcalendar: * inviare un comando ad arduino quando si verifica l’evento nel calendario

Struttura
Si dovrà decidere la struttura del programma, la gestione della sicurezza, un protocollo comune a tutti i servizi.

Linguaggio
Che linguaggio si usa?
creiamo un vero e proprio webservice con j2ee? usiamo teconoligia .net?
oppure gestiamo tutto con semplici pagine php?
Vantaggi java: - la gestione è più “robusta”
Svantaggi java: - richiede un hosting server di un certo tipo

Vantaggi php: - sviluppo semplice, costi hosting contenuti (almeno inizialmente e non necessitando di particolari estensioni)
Svantaggi php: - risponde con normali pagina

Avete proposte o altre idee?

Complimenti per l'iniziativa e auguri. Io non posso aiutare l'argomento server client è out per me.

Saresti il primo a riuscire a coinvolgere il forum in un progetto comune, e per questo ti meriteresti un riconoscimento.

In bocca al lupo. Ciao.

come questo? http://www.pachube.com/ comunque quoto Maurotec, buona fortuna :)

allora che il php possa rispondere sono in pagine html non è del tutto vero perchè con le librerie giuste e con ilo comando exec() può agire anche sulla macchina e programmi interni :P poi una macchina in .net se non sbaglio costa di più perchè necessita di hosting winzozz. j2ee non credo sia adatto, sarebbe meglio jsp ma chi lo conosce?

io conosco php se vuoi dia una mano, basta k non mi chiedi il sito completo XD

BrainBooster: come questo? http://www.pachube.com/ comunque quoto Maurotec, buona fortuna :)

si, effettivamente qualcosa come quello. Forse dovrei prima studiarmelo e vedere se ne vale la pena fare un prodotto a se

Magari tiriamo fuori un po' di idee di cosa sarebbe bello fare con arduino connesso ad internet e vediamo se si può creare una piattaforma condivisa.

allora che il php possa rispondere sono in pagine html non è del tutto vero perchè con le librerie giuste e con ilo comando exec() può agire anche sulla macchina e programmi interni

però su un hosting base comunque non hai la possibilità di installare programmi e quindi eseguirli, ci vorrebbe almeno un virtual server

Un'altra cosa che pensavo era fare dei servizi in modo che chiunque con un arduino potesse crearsi il proprio clone di nabaztag, ora diventato karotz.

beh conta che con php puoi mettere una http authentication http://php.net/manual/en/features.http-auth.php che puoi gestire (mi pare) con arduino e rendere il tutto una cosa molto sicura. comunque in relatà puoi caricare script, poi a discrezione dell'hoster potrebbe bloccarti il programma, ma in realtà exec puoi farlo...

L' exec() è la prima cosa che bloccano! Al massimo ammettono due comandi banali come zip, unzip e poco altro, certamente non ti fanno fare un "ls"

superlol: beh conta che con php puoi mettere una http authentication http://php.net/manual/en/features.http-auth.php che puoi gestire (mi pare) con arduino e rendere il tutto una cosa molto sicura. comunque in relatà puoi caricare script, poi a discrezione dell'hoster potrebbe bloccarti il programma, ma in realtà exec puoi farlo...

ho appena provato sul mio host aruba, manco l'auth funziona, si deve configurare a mano la sicurezza delle cartelle! però almeno si possono rendere sicure le pagine, ora devo vedere se riesco a loggarmi con arduino..

Ehehe, io su Aruba ci sono rimasto giusto l'anno che avevo pagato poi sono scappato come ho potuto! Cosa vuol dire che devi configurare a mano la sicurezza delle cartelle? Secondo me confondi l'http auth di php con quello dell' htaccess.

Ciao.

Guglio: Ehehe, io su Aruba ci sono rimasto giusto l'anno che avevo pagato poi sono scappato come ho potuto! Cosa vuol dire che devi configurare a mano la sicurezza delle cartelle? Secondo me confondi l'http auth di php con quello dell' htaccess.

Ciao.

No no, ho trovato nel Forum aruba che le aree riservate vanno fatte "a mano" configurando le cartelle come aree riservate, fato ciò in automatico richiedono autentificazione user e password, senza bisogno di farlo nello script php

EDIT: indagando ho visto che effettivamente impostando le pass da configuratore crea i files .htaccess e .htpasswd nella cartella, mentre per quanto riguarda php non ci sono le variabili globali dell'utente, per questo non si riesce ad usare l'http auth di php.

In ogni caso funziona e riesco a connettermi, basta aggiungere :

client.print("Authorization: Basic codice\n"); // il codice deve essere nel formato user:password, il tutto convertito in base 64

però stavo vedendo se riuscivo a fare una lib per la generazione della stringa in base 64, oppure che gestisca direttamente la connessione.

allora, il php auth va configurato comunque..

non è una cosa facile..

ad ogni modo credo sia fattibile, appena ne ho l'opportunità provo sul mio host aruba

ora finiamo ardumap :P

Non vedo l'utiltà di restringere l'accesso alla cartella con gli htacceess quando puoi fare semplicdemente tutto con 3 righe di php.

Guglio: Non vedo l'utiltà di restringere l'accesso alla cartella con gli htaccess quando puoi fare semplicemente tutto con 3 righe di php.

Lo faccio perché aruba (l'hosting su cui sto facendo le prove) obbliga ad usare questa modalità.

Sei sicuro? Fino a poco tempo fa avevo in gestione un sito su Aruba per il quale ho fatto un piccolo script che usava l’ http auth e funzionava…
Prova questo codice in una cartella NON protetta:

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Test"');
header('HTTP/1.0 401 Unauthorized');
print("E' necessario autenticarsi");
exit;
} else {
print($_SERVER['PHP_AUTH_USER']);
print("
");
print($_SERVER['PHP_AUTH_PW']);
}
?>

Guglio:
Sei sicuro? Fino a poco tempo fa avevo in gestione un sito su Aruba per il quale ho fatto un piccolo script che usava l’ http auth e funzionava…
Prova questo codice in una cartella NON protetta:

<?php

if (!isset($_SERVER[‘PHP_AUTH_USER’])) {
header(‘WWW-Authenticate: Basic realm=“Test”’);
header(‘HTTP/1.0 401 Unauthorized’);
print(“E’ necessario autenticarsi”);
exit;
} else {
print($_SERVER[‘PHP_AUTH_USER’]);
print("
");
print($_SERVER[‘PHP_AUTH_PW’]);
}
?>

Provare qua per credere !!

Praticamente la variabile PHP_AUTH_PW resta sempre vuota, e quindi loopa all’infinito.
poco male, l’altro metodo funziona comunque, secondo me lo hanno fatto per ragioni di sicurezza…

guarda che i file htaccess e htpassword o cos'era ti permettono di restringere la cartella, quindi avrai una cartella con un file per utente riempiendo spazio inutile visto che con htaccess puoi usare il modrewrite e usare un solo file in php. anche 5MB a file sono tanti, 200 utenti sono 1 giga. se poi farai update (come immagino e spero) a un server dedicato o vps sei fregato.