Arduino e php/mysql

Salve Ragazzi,
sto facendo una tesi di laurea con temi arduino e android, per ora ho creato la piccola applicazione per far si che si accenda e spenga il led su arduino uno.
Io però voglio far mostrare una tabella in mysql tramite php che mi dice quante volte è avvenuta la cosa, devo per forza acquistare l'ethernet shield o si può ovviare??
grazie

Dipende da come vuoi comunicare con Arduino: Seriale, Bluetooth, Lan o Wifi.

seriale per ora, e leggendo in giro ho visto che per comunicare con mysql c'è bisogno della ethernet shield per via del client o mi sbaglio?

Ciao,
se devi memorizzare i dati su mysql ti basta una seriale.
Per esempio, potresti utilizzare Python per leggerti i dati da seriale (es. con pyserial http://pyserial.sourceforge.net/) e poi registrarli su mysql .
Ti basta cercare su google python + mysql per trovare esempi funzionanti di codice.

Oppure ancora potresti scriverti un'applicazioncina in java, usando la libreria RXTX (Arduino Playground - Java) per la comunicazione seriale, e un classico jdbc per gestire l'inserimento in mysql...

Poi per visualizzare i dati inseriti in questo db, utilizzerai php in abbinata con tool per realizzare grafici (ci son librerie php, framework js, etc).

mentre con l'ethernet shield sarebbe più facile?? ora provo a vedere questo metodo
grazie

Ciao, se ti interessa la comunicazione seriale con php senza ricorrere all'ethernet shield puoi leggere questa mini guida VirtualCalcio.com is for sale | HugeDomains.
Si tratta di alcuni esperimenti fatti qualche tempo fa.
Ciao

grazie :slight_smile:

sto cercando di far registrare nel database su phpmyadmin i dati relativi alla temperatura percepita dal sensore, che voi sappiate, perchè la tabella prende i dati solo quando vado a flashare l'arduino??
il codice è questo...
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = {
0x90, 0xA2, 0xDA, 0x0D, 0x1F, 0x41 };
byte ip[] = {
192, 168, 1, 2 };
byte server[] = {
192, 168, 1, 1 }; // Local Server

EthernetClient client;

char strURL[70];
unsigned long previousMillis = 0;
unsigned long currentMillis = 0;
long interval = 600000; // 10 minutes (10601000) 600000

void setup() {
Ethernet.begin(mac, ip);
Serial.begin(9600);
delay(2000);
Serial.println("connecting...");

if (client.connect(server, 80)) {
Serial.println("connected");
getTemp();
client.stop();
} else {
Serial.println("connection failed");
}
}

void loop() {
currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if(client.connect(server, 80)) {
getTemp();
}
else {
Serial.println("failed to connect. Trying again later.");
}
delay(1000);
client.stop();
}
}

void getTemp() {
Serial.println("connected, writing ...");
int temp = analogRead(5);
delay(50);
sprintf(strURL,"GET /temp.php?t=%d",temp);
client.println(strURL);
client.println();
Serial.println(strURL);
}
perchè non lo fa sempre anche quando non lo flasho??
avete idee??
dovrebbe farlo ciclicamente, che rileva la temperatura

ti si aggiorna solo quando carichi la pagina http:

if(client.connect(server, 80)) { //qui si ferma e aspetta che un client si connetta, poi aggiorni la temperatura
      getTemp();

per farla semplice potresti aggiornare la temperatura ogni tot. sec. con millis , guarda l'esempio blink without delay