Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Arduino
Forum - C/C++ - Arduino

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 16:39
Lunedì, 04/04/2011
Ciao ragazzi ho comprato Arduino non so se lo conoscete, in pratica è un processore programmabile in c/c++ e altri linguaggi.. "atmega"
vorrei capire se è possibile fare dell'inserimenti all'interno del database instaurando una connessione via telnet da arduino al mysql sul server web in internet.

premetto che ho arduino collegato ad un sensore di umidità


quello che sto sperimentando in pratica sarebbe una stazione meteo, che ogni cinque minuti mi invia le letture dei sensori ad un db remoto,
e tramite la pagina web leggo i dati.




PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 17:05
Lunedì, 04/04/2011

tutto è possibile, ma non credo che sia il modo migliore quello di comprare qualcosa e sperare che qualcuno ti dia dei lumi sul come fare quello che ti sei messo in testa :)

considera che come tutte le cose "non dirette" quello che chiedi si comporrà di almeno 3/4 passaggi da hw a sw, ognuno dei quali coinvolge tecnologie che vanno conosciute, pena il fallimento di tutta la "catena".

detto questo, ti presento il tuo migliore amico: www.google.it

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 19:08
Lunedì, 04/04/2011
me lo aspettavo questo tipo di risposte ma il mio problema, è che quando compilo qualsiasi tipo di aplicativo client/server mi mancano tutte le librerie di rete quali

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

e questo se utilizzassi telnet per concepire il tutto,  se volessi invece usare il connector di mysql dunque non saprei come inserirci il pacchetto .tgz e compilarlo su arduino.
ora mi domando:  potrei compilare su un ubuntu normale le lib del connector e copiarle singolarmente nella dir delle librerie?
funzionerebbero ugualmente?







PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:17
Lunedì, 04/04/2011

vedi che il problema è alla base :)

se stai programmando sotto windows NON hai quei file header :)

ah giusto, quelli sono headers non librerie, quest'ultime sotto windows hanno estensione .lib (statiche) e .dll (dinamiche), sotto linux sono .so

sostituisci tutti gli include con un semplice:

#include <windows.h>
#include <winsock2.h>

per la seconda cosa, dubito che ci sia abbastanza hardware sull'arduino per compilare e far girare un'intero connector di mysql, ma non credo neanche a calci :)

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 19:29
Lunedì, 04/04/2011
uso linux in remoto, e poi volendo ho sull'arduino shield una microsd da 1 gb

io avrei tirato fuori questo codice pèotrebbe andare?

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <mysql.h>
  3.  
  4. int sensorPin = A0;    // select the input pin for the potentiometer
  5. int ledPin = 13;      // select the pin for the LED
  6. int sensorValue = 0;  // variable to store the value coming from the sensor
  7.  
  8. void setup() {
  9.   // declare the ledPin as an OUTPUT:
  10.   pinMode(ledPin, OUTPUT);  
  11. }
  12.  
  13. void loop() {
  14.   // read the value from the sensor:
  15.   sensorValue = analogRead(sensorPin);    
  16.   // turn the ledPin on
  17.   digitalWrite(ledPin, HIGH);  
  18.   // stop the program for <sensorValue> milliseconds:
  19.   delay(sensorValue);          
  20.   // turn the ledPin off:        
  21.   digitalWrite(ledPin, LOW);  
  22.   // stop the program for for <sensorValue> milliseconds:
  23.   delay(sensorValue);                  
  24.  
  25.     MYSQL *conn;
  26.     MYSQL_RES *result;
  27.     MYSQL_ROW row;
  28.      
  29.     const char* host = "192.168.1.185"; // host
  30.     const char* database = "table1"; // database
  31.     const char* db_user = "root"; // nome utente
  32.     const char* db_pass = "passwdprova"; // password
  33.      
  34.     int main (int argc, char *argv[])
  35.     {
  36.     conn = mysql_init (NULL);
  37.     mysql_real_connect (conn, /* connection handler */
  38.     host, /* host */
  39.     db_user, /* user name */
  40.     db_pass, /* password */
  41.     database, /* database */
  42.     0, /* porta */
  43.     NULL, /* socket */
  44.     0); /* flags */
  45.      
  46.     mysql_query(conn, "INSERT INTO TABLE1 VAL1=(sensorValue)");
  47.     result = mysql_use_result(conn);
  48.      
  49.     mysql_close (conn);
  50.     exit (0);
  51.     }


Ultima modifica effettuata da mastergov il 04/04/2011 alle 20:06
PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 20:47
Lunedì, 04/04/2011
anch'io mi sto interessando ad arduino...è un pò di giorni che mi informo in rete..per prima cosa devi comprare una ethernet shield per poterti connettere via cavo a qualche rete o una xbee shield per il wirless.
poi ci dovrebbero essere le funzioni di libreria apposite (non quelle di windows) per gestire la scheda di rete..
un consiglio:

impara prima a usare bene arduino, poi comincia con i progetti avanzati..

PM Quote
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Segnala al moderatore
Postato alle 21:01
Lunedì, 04/04/2011
Testo quotato

Postato originariamente da mastergov:

uso linux in remoto, e poi volendo ho sull'arduino shield una microsd da 1 gb

io avrei tirato fuori questo codice pèotrebbe andare?

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <mysql.h>
  3.  
  4. int sensorPin = A0;    // select the input pin for the potentiometer
  5. int ledPin = 13;      // select the pin for the LED
  6. int sensorValue = 0;  // variable to store the value coming from the sensor
  7.  
  8. void setup() {
  9.   // declare the ledPin as an OUTPUT:
  10.   pinMode(ledPin, OUTPUT);  
  11. }
  12.  
  13. void loop() {
  14.   // read the value from the sensor:
  15.   sensorValue = analogRead(sensorPin);    
  16.   // turn the ledPin on
  17.   digitalWrite(ledPin, HIGH);  
  18.   // stop the program for <sensorValue> milliseconds:
  19.   delay(sensorValue);          
  20.   // turn the ledPin off:        
  21.   digitalWrite(ledPin, LOW);  
  22.   // stop the program for for <sensorValue> milliseconds:
  23.   delay(sensorValue);                  
  24.  
  25.     MYSQL *conn;
  26.     MYSQL_RES *result;
  27.     MYSQL_ROW row;
  28.      
  29.     const char* host = "192.168.1.185"; // host
  30.     const char* database = "table1"; // database
  31.     const char* db_user = "root"; // nome utente
  32.     const char* db_pass = "passwdprova"; // password
  33.      
  34.     int main (int argc, char *argv[])
  35.     {
  36.     conn = mysql_init (NULL);
  37.     mysql_real_connect (conn, /* connection handler */
  38.     host, /* host */
  39.     db_user, /* user name */
  40.     db_pass, /* password */
  41.     database, /* database */
  42.     0, /* porta */
  43.     NULL, /* socket */
  44.     0); /* flags */
  45.      
  46.     mysql_query(conn, "INSERT INTO TABLE1 VAL1=(sensorValue)");
  47.     result = mysql_use_result(conn);
  48.      
  49.     mysql_close (conn);
  50.     exit (0);
  51.     }



Hedo ti ha già risposto prima, non puoi usare il mysql connector su arduino.
Una cosa che potresti fare è interfacciare arduino con un router (se non sbaglio c'è il modulo ethernet da comprare) in modo da poter inviare pacchetti delle rilevazioni ad un server che gestisce i dati.
Ciao GuglielmoS.

PM Quote
Avatar
TheKaneB (Member)
Guru^2


Messaggi: 1792
Iscritto: 26/06/2009

Segnala al moderatore
Postato alle 22:31
Lunedì, 04/04/2011
arduino è un microcontroller e va usato come tale.

Una volta collegato alla porta USB del computer, creati un software (in Visual Basic o in qualche altro linguaggio semplice) per PC, che interroghi periodicamente il microcontroller sulla porta COM, o ttyS se usi Linux, ne legga le misurazioni e poi ne faccia quello che gli pare (compreso mandarli su un DB se necessario).

Se non hai la possibilità di attaccargli direttamente un PC tramite USB, nell'industria si usa molto il Can BUS per connettere microcontrollori e sensori con decine di metri di cavo. Probabilmente esiste uno shield che implementa tale specifica.

In alternativa puoi usare lo shield ethernet per collegarti in telnet ad un PC. In tutti i casi comunque ti serve un PC che legga i dati e li gestisca.

Il microcontrollore serve solo a pilotare i sensori e a comunicare i dati, il resto deve farlo un computer.

PM Quote
Avatar
mastergov (Normal User)
Rookie


Messaggi: 22
Iscritto: 26/03/2010

Segnala al moderatore
Postato alle 0:34
Martedì, 05/04/2011
Io ho anche la schedina supplementare, ethershield gia collegata in rete infatti se gli inserisco il webserver ho gia quello che mi serve quando apro il browser e mi ci collego in http://ip/
ho tutte le letture di tutti gli ingressi analogici con i valori.

il mio problema visto che quando tento di compilare anche un qualsiasi client
esempio un ftp server in c mi mancano le librerie basi per tale comunicazione,
però mi sorge un dubbio,
sull'altra scheda che ho dove cè rj45 ho anche uno slot per una microsd, e ce ne ho messa una da 1 gb, all'interno di essa non potrei metterci il connector gia compilato su un altro linux, e richiamare le librerie dentro essa dal codice?

TheKaneB

cmq poi non potrei nemmeno ogni volta che mi servono i dati connettermi con una seriale altrimenti che senso ha usare lo shield ?

mica posso usare un canBUS lungo 10km no?
avevo pensato di usare un logo della siemens per fare questo però costa molto
e fare qualche esperimento non è che posso spendere uno stipendio :D


PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo