Twitter senza ethernet shield

Ciao a tutti, come sempre sono ancora nuovo, sto smanettando un pochino con Arduino e mi diverte molto.
Ho cercato sul web come far funzionare in IN e OUT arduino con twitter, cioè postando un mess su twitter ARDU esegue e ARDU invia ogni tot tempo dei valori o dei messaggi su twitter.
Ho trovato un pò di cose interessanti, ma i primi esperimenti vorrei farli con ARDU collegato all'USB del pc e senza modulo ethetnet. Qualcuno sa suggerirmi qualcosa? Ho dato un occhio a lettura e scrittura Serial ma non ho capito una "chip"....

Grazie a tutti

Inizia con cose semplici come fare blink dei LED!! (http://arduino.cc/en/Tutorial/HomePage)
Poi passerai a cose più complicate!
Comunque per postare su twitter senza eth shield devi scriverti un programma sul pc che faccia da ponte fra la seriale dell'arduino e il web!

Ciao Guglio, i tutorial base di arduino utilizzando i sensori inclusi nel kit li ho fatti. Sto aspettando di comprare dei componenti (rele e motori passo passo). Ho provato ad interfacciarmi con flash e ho realizzato delle interfacce, ad esempio dato un potenziometro regolo il canale alpha del movie piuttosto che data la temperatura oppure la luminosità.
Per fare questo ho utilizzato il firmdata, devo orientarmi verso lo stesso procedimento?
Secondo te posso usare flash e il proxy?
Come fare per interfacciarmi con il proxy e altri programmi e fare delle chiamate http?

Ciao e grazie

maurobs,
per interfacciare Arduino a Internet senza Ethernet Shield, devi sostanzialmente programmare Arduino per lavorare via seriale - ci son anche degli esempi nell'IDE, senza considerare quel che trovi tra i tutorial (come ha suggerito Guglio).

Dopodichè con Flash, Php, Java. Perl o quel che ti piace di più, vai a scrivere un programmino che dia in input o legga i valori dati in output sulla seriale di Arduino (per intenderci, quella che nell'IDE vedi sotto Tools -> Serial Port).

Quindi sarà questo tuo programmino a interfacciarsi a Twitter (per esempio).
Spero di non aver creato confusione..

Caio a tutti, grazie delle risposte. In effetti ho qualche problemi a leggere la seriale con php, sono riuscito però attraverso flash+serproxy+firmdata a fare qualcosina, facendo generare un file temporaneo da php, e con l'app in flash continuo a leggere e processare il file temp e gestisco Arduino.
Ma se compro l'ethshield mi semplifico la vita? Cioè, voi avete detto che senza l'eth devo fare tutto questo casino ma con l'ethshield si occupa lui di gestire il flush dei dati e quindi agire sugli ingressi e sulle uscite?

Ciao e grazie

Ciao

ho qualche problemi a leggere la seriale con php, sono riuscito però attraverso flash+serproxy+firmdata a fare qualcosina, facendo generare un file temporaneo da php, e con l'app in flash continuo a leggere e processare il file temp e gestisco Arduino.

..accipicchia che giro

Ma se compro l'ethshield mi semplifico la vita? Cioè, voi avete detto che senza l'eth devo fare tutto questo casino ma con l'ethshield si occupa lui di gestire il flush dei dati e quindi agire sugli ingressi e sulle uscite?

diciamo che l'Ethernet Shield se ne occupa per come lo programmi tu :D, cmq le potenzialità son quelle che cerchi.

con l'eth shield hai una comunicazione via ethernet con librerie che implementano il protocollo tcp/ip.
le richieste nel protocollo http te le devi programmare da solo, forse esiste qualche libreria non ufficiale.
ma lavori con linux o windows? se con linux, probabilmente il php non va direttamente perchè devi impostare i permessi sulla seriale all'utente apache!

Grazie pitusso, mi sa che la ordino e provo a giochicchiarci.

Ciao Lesto, io utilizzo Winzoz, ma se eseguo lo script php sotto Wamp non mi trova la porta ed utilizzando questa libreria PHP Serial: Communicate with a serial port - PHP Classes mi da degli errori di apertura porta. Se eseguo il mio script da terminale con il php-cli invece esegue lo script, arduino vede che la porta viene aperta perchè lampeggia, poi però si mette a blinkare e si ferma senza eseguire le istruzioni :cry: Non so perchè ma non funziona, per questo ho utilizzato il giro del flash per non accedere direttamente con il php dato che non riuscivo e anche perchè se lo script php non è in locale ma in internet posso accedere al file con flash e trasportare i dati in locale comunicando con Arduino. Devo impostare qualche diritto sulla porta dell'apache o avere delle lib di php apposite?

Ciao e grazie.

purtroppo su winz non mi son mai messo a usare apache o php, dalle guide che ho visto è quasi peggio che compilarsi i sorgenti da soli :slight_smile:
comunque windows (tranne gli NT) non ha problemi di permessi, ed è proprio questo uno dei suoi grossi problemi! :smiley:
la libreria che hai usato dichiara:

==> /!\ WARNING /!\ : it's working with linux for r/w, but with windows i've only been able to make write working. If you're a windows user, try to access the serial port through network with serproxy instead.
The class have been reported to work fine with Mac OS X, but i've not tested it, so I've left the OS test in the sourcecode, but feel free to add macos in it.

quì ho trovato qualcosa che sembra anche abbastanza semplice solo PHP(guarda la terza risposta)

Finalmente!!!
Grazie 1000 lesto :smiley: ;D :smiley: utilizzando lo spunto al link che mi hai dato sono riuscito a risalire ad altri script interessanti in php.
Ho trafficato un pò ma alla fine ce l'ho fatta, utilizzando il serproxy. Con il serproxy posso usare in php i comandi fsockopen e vedere la seriale (anche se mi sono intraminato via a settarla) scriverci con fputs e leggerla con fgets.
Per scriverci per ora ho utilizzato un tasto acceso/spento, che fatto con Ajax e jquery è carino, al cambio di stato richiamo la mia pagina inviandogli i dati e "putto" il dato sulla seriale.
Ho ancora dei problemi con fgets, cioè ho collegato, a quest'ora infame, un potenziometro da 10k e attraverso arduino scrivo sulla seriale il valore e e lo leggo con fgets, l'unico problema è che continuando a scorre i valori e non avendo inserito un carattere di fine stringa anzichè leggere es 254 legge a volte 2 a volte 25 ecc, dipende dal refresh della pagina insomma.
Sono soddisfatto perchè ora, in locale, posso attaccarmi a qualsiasi applicativo web con api che supportino il php e giocarci, finchè non mi arriva l'ethshield.

Dimenticavo... S.O. WINZOZ XP :-/ (purtroppo)

Posto il codice e le fonti se servisse a qualcuno:
Serproxy by Bursti/Mellis
Oltre al link che hai segnalato segnalo anche questo http://it-comp.confusenet.com/showthread.php?t=71493 da dove ho preso il codice e modificato.

Codice Arduino:

int in = 0;
int ledPin = 13;
int st=LOW;
int sensorPin=A0;
int sensorValue=0;

void setup() {
Serial.begin(9600);      // opens serial port, sets data rate to 9600 bps
pinMode(ledPin,OUTPUT);
}

void loop() {
  delay(100);
 sensorValue = analogRead(sensorPin); 
 Serial.println(sensorValue, DEC);
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
in = Serial.read();
if(in==49){
st=LOW;
}
if(in==50){
st=HIGH;
}

// say what you got:
//      Serial.print("I received: ");
//      Serial.println(incomingByte, DEC);
}
digitalWrite(ledPin,st);
}

Codice PHP(eseguire lo script dopo aver avviato serproxy):

<?php

function invia_seriale($messaggio){
$serproxy=true;
if ($serproxy) 
{
 $fp = fsockopen ("localhost", 5331, $errno, $errstr, 30);
 if (!$fp) 
      {
            echo "$errstr ($errno)";
      } 
 else 
      {
            $string = $messaggio;
            echo $string;
            fputs ($fp, $string );
            fclose ($fp);
      }

}
}
//variabile recuperata da link ajax
$stato=$_GET["stato"];
invia_seriale ($stato);

?>

Per ilt asto modello switch Iphone ho usato questo
http://papermashup.com/jquery-iphone-style-ajax-switch/
sostituendo nella pagina index.php le pagina di risposta dati cioè:
anzichè usare on.html e off.html (che trovate all'interno dello script) ho inviato interruttore.php?stato=2 (acceso) e interruttore.php?stato=2 .

Grazie a tutti, adesso cercherò di risolvere il problema lettura dei valori.
Ciao

Per ilt asto modello switch Iphone ho usato questo
http://papermashup.com/jquery-iphone-style-ajax-switch/

bellissimo, ne avevo usato uno molto simile su una pagina che pilotava una scheda relays (8 "interruttori" più 1 per il tutto acceso / tutto spento).
La resa grafica è assicurata.
Inoltre jquery è troppo avanti!

grande!
direi che così è più comodo. :wink:
ora per il problema di lettura del potenziometro vedo 2 soluzioni:
1 invii il dato in binario, così ogni byte ricevuto è una lettura
2 usi una serial.printLN() così il carattere di fine stringa è '\n'