contatore geiger arduino

Salve ragazzi,mi servirebbe un aiuto riguardo al contatore geiger con arduino.
ho bisogno di archiviare i dati in un database mysql per poterli poi pubblicare sul web.
come hardware ho svariati contatori con arduino , moduli enc28j60 ethernet , r3 ethernet shield arduino.

voi che siete esperti ,dove posso trovare il programma per inviare questi dati al database?ho cercato con google ho visto che esistono per impaginare i dati .ma non per inserirli in un database
attualmente uso arduino geiger + programma su pc ma vorrei rende arduino indipendente con un modulo ethernet .
grazie

.

Prova a leggere qui --> Scrittura Mysql - Generale - Arduino Forum

non sembra aver risolto.......

Quel topic del forum è vecchio. Se vai al link di quel connector, ci sono aggiornamenti al 4/2/2014:
https://launchpad.net/mysql-arduino
Io non ho più provato.

La cosa più semplice mi sembra che gli Arduini inviino i dati al PC e questi lo scriva nel database.
Oppure provi quella libreria e ci aggiorni su come và (così fai da tester ]:slight_smile: :smiley: )

La libreria sha1.h mancante la trovi qui --> https://code.google.com/p/cryptosuite/downloads/list
Però così com'è non è compatibile con l'IDE 1.0.x.
Nella lib precedente trovi dei file diff. Forse sono le patch da applicare.

Non è che io sia tanto pratico....... ....son quì apposta.

Veramente in pochi han usato quelle librerie. Anzi oserei dire quasi nessuno sul forum.
Come detto prima, la cosa più semplice mi sembra che gli Arduini inviino i dati al PC e questi lo scriva nel database.
IN questo caso molti più utenti potrebbero aiutarti.

Questo è lo il programma che vorrei modificare
il programma richiama una pagina php sul server per inserire i dati in un database mysql.
vorrei lasciare dei sensori per temperatura,umidità ecc.
e inserire la lettura impulsi al posto del sensore Q

#include <SPI.h>
#include <Ethernet.h>
 #define TIME_MISURA 60000
 byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char server[] = "www.miosito.it";
char buffer[150];
 
char codiceImpianto[32] = "3456789012345678901";
int sensoreA = 0;
int sensoreB = 0;
int sensoreC = 0;
int sensoreD = 0;
int sensoreE = 0;
int sensoreF = 0;
int sensoreG = 0;
int sensoreH = 0;
int sensoreI = 0;
int sensoreL = 0;
int sensoreM = 0;
int sensoreN = 0;
int sensoreO = 0;
int sensoreP = 0;
int sensoreQ = 0;
 
EthernetClient client;
 
void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
 
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
    // no point in carrying on, so do nothing forevermore:
    for(;;)
      ;
  }
  delay(1000);
}
 
void loop() {
  sensoreA = 1;
  sensoreB = 1;
  sensoreC = 1;
  sensoreD = 1;
  sensoreE = 1;
  sensoreF = 1;
  sensoreG = 1;
  sensoreH = 1;
  sensoreI = 1;
  sensoreL = 1;
  sensoreM = 1;
  sensoreN = 1;
  sensoreO = 1;
  sensoreP = 1;
  sensoreQ = 1;
 
  send2server();
  delay( TIME_MISURA );
}
 
void send2server() {
  Serial.println("connecting...");
 
  if (client.connect(server, 80)) {
    Serial.println("connected");
    sprintf(buffer, "%s%s%s/%s/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d/%d %s", "GET http://", server, "/progetto/saveData.php", codiceImpianto, sensoreA, sensoreB, sensoreC, sensoreD, sensoreE, sensoreF, sensoreG, sensoreH, sensoreI, sensoreL, sensoreM, sensoreN, sensoreO, sensoreP, sensoreQ, "HTTP/1.1" );
    Serial.println( buffer );
 
    client.println(buffer);
    client.println();
  }
 
  while (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
 
  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
  }
}

questo è il programma attuale che uso,chiaramente non mi serve lcd e altre cose che fà lo script ma solo la parte del contatore.
da inserire sul primo script,
io ci capisco poco se qualcuno cortesemente mi può dare una mano…

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(3,4,5,6,7,8);


// Threshold values for the led bar
#define TH1 45
#define TH2 95
#define TH3 200
#define TH4 400
#define TH5 600

// Conversion factor - CPM to uSV/h
#define CONV_FACTOR 0.00812

// Variables
int ledArray [] = {10,11,12,13,9};
int geiger_input = 2;
long count = 0;
long countPerMinute = 0;
long timePrevious = 0;
long timePreviousMeassure = 0;
long time = 0;
long countPrevious = 0;
float radiationValue = 0.0;

void setup(){
  pinMode(geiger_input, INPUT);
  digitalWrite(geiger_input,HIGH);
  for (int i=0;i<5;i++){
    pinMode(ledArray[i],OUTPUT);
  }

  Serial.begin(19200);

  //set up the LCD\'s number of columns and rows:
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Radiation Sensor");
  lcd.setCursor(0,1);
  lcd.print("Board - Arduino");  
  delay(1000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" Cooking Hacks");
  delay(1000);

  lcd.clear();
  lcd.setCursor(0,1);  
  lcd.print("www.cooking-hacks.com");
  delay(500);
  for (int i=0;i<5;i++){
    delay(200);  
    lcd.scrollDisplayLeft();
  }
  delay(500);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("  - Libelium -");
  lcd.setCursor(0,1);
  lcd.print("www.libelium.com");    
  delay(1000);

  lcd.clear();  
  lcd.setCursor(0, 0);
  lcd.print("CPM=");
  lcd.setCursor(4,0);
  lcd.print(6*count);
  lcd.setCursor(0,1);
  lcd.print(radiationValue);

  attachInterrupt(0,countPulse,FALLING);

}

void loop(){
  if (millis()-timePreviousMeassure > 10000){
    countPerMinute = 6*count;
    radiationValue = countPerMinute * CONV_FACTOR;
    timePreviousMeassure = millis();
    Serial.print("cpm = "); 
    Serial.print(countPerMinute,DEC);
    Serial.print(" - ");
    Serial.print("uSv/h = ");
    Serial.println(radiationValue,4);      
    lcd.clear();    
    lcd.setCursor(0, 0);
    lcd.print("CPM=");
    lcd.setCursor(4,0);
    lcd.print(countPerMinute);
    lcd.setCursor(0,1);
    lcd.print(radiationValue,4);
    lcd.setCursor(6,1);
    lcd.print(" uSv/h");

    //led var setting  
    if(countPerMinute <= TH1) ledVar(0);
    if((countPerMinute <= TH2)&&(countPerMinute>TH1)) ledVar(1);
    if((countPerMinute <= TH3)&&(countPerMinute>TH2)) ledVar(2);
    if((countPerMinute <= TH4)&&(countPerMinute>TH3)) ledVar(3);
    if((countPerMinute <= TH5)&&(countPerMinute>TH4)) ledVar(4);
    if(countPerMinute>TH5) ledVar(5);

    count = 0;

  }

}

void countPulse(){
  detachInterrupt(0);
  count++;
  while(digitalRead(2)==0){
  }
  attachInterrupt(0,countPulse,FALLING);
}

void ledVar(int value){
  if (value > 0){
    for(int i=0;i<=value;i++){
      digitalWrite(ledArray[i],HIGH);
    }
    for(int i=5;i>value;i--){
      digitalWrite(ledArray[i],LOW);
    }
  }
  else {
    for(int i=5;i>=0;i--){
      digitalWrite(ledArray[i],LOW);
    }
  }
}