Go Down

Topic: Arduino e php/mysql (Read 1 time) previous topic - next topic

juan_1987

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

PaoloP

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

juan_1987

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?

pitusso

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 (http://arduino.cc/playground/Interfacing/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).

juan_1987

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

freedomotic

Ciao, se ti interessa la comunicazione seriale con php senza ricorrere all'ethernet shield puoi leggere questa mini guida http://lnx.virtualcalcio.com/emmecilab/index.php?section=6&arg=4.
Si tratta di alcuni esperimenti fatti qualche tempo fa.
Ciao
Freedomotic Open IoT Framework
http://www.freedomotic.com
We need your help. Please contact us for contributing

juan_1987


juan_1987

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 (10*60*1000) 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

mauroz

ti si aggiorna solo quando carichi la pagina http:
Code: [Select]
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

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy