Arduino SQL

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
bbking
Újonc
Újonc
Hozzászólások: 10
Csatlakozott: 2014. március 4. kedd, 11:01

Arduino SQL

Hozzászólás Szerző: bbking »

Sziasztok

Egy kis segítségre lenne szükségem
A lenti programot kéne rendesen időzítenem de eddig nem sikerült "most jelenleg 0.7-0.9 másodpercenként ír az adatbázisba"
Két részből áll a kód fordulatszám mérés, illetve az sql rész jelenleg
Ha valaki tudna segíten nagyon megköszönném. lehetőség szerint változtatható legyen az időzítés 1-10másodperc

Kód: Egész kijelölése

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x4E, 0xD7 };
IPAddress ip(192,168,1,11);
IPAddress myDns(192,168,1,1);
EthernetClient client;
char server[] = "192.168.1.2";
unsigned long ultimaConexion = 0;          
boolean ultimoEstado = false;
const unsigned long intervaloConexion = 1000;   

// Használt változók számítások
 int NbTopsFan;
 int Calc;
// Az érzékelő pin
 int hallsensor = 2;
typedef struct{ // Meghatározza a szerkezetet többszörös ventilátorok és elválasztókat
 char fantype;
 unsigned int fandiv;
 }fanspec;
// meghatározásai a ventilátorok
 fanspec fanspace[3]={{0,1},{1,2},{2,8}};
char fan = 1; // Ez a varible lehet kijelölni a ventilátor és ez osztót, meg 1 egypólusú Hall-szenzor
 //and 2 for bipole hall effect sensor 
void rpm ()  { NbTopsFan++; } 

void setup() {
  pinMode(hallsensor, INPUT);
  attachInterrupt(0, rpm, RISING);
  Serial.begin(9600);
  Serial.println("#### SQL RPM ####");
  delay(1000);
  Ethernet.begin(mac);

  Serial.print("Direccion IP: ");
  Serial.println(Ethernet.localIP());
 }
// Loop principal
void loop() {
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }
  if (!client.connected() && ultimoEstado) {
    Serial.println();
    Serial.println("Lekapcsolódás...");
    client.stop();
    delay(2000);
  }
  if(!client.connected() && (millis() - ultimaConexion > intervaloConexion)) {
    httpRequest();
  }
    ultimoEstado = client.connected();}

void httpRequest() {
  
  if (client.connect(server, 80)) {
   
   // Serial.print (Calc, DEC); // Kiírja a számot a fent kiszámított
   // Serial.print (" rpm\r\n");// Azt írja "rpm" és egy új sorozat

       NbTopsFan = 0; // beállítása NbTops 0 készen számítások
   delay (2000); //Wait 1 second
   Calc = ((NbTopsFan * 30)/fanspace[fan].fandiv); // idők Nb Legjobb ventilátor (ami körülbelül a frekvencia a ventilátor forog) 60 másodpercet, mielőtt elosztjuk a ventilátorok osztót
  
    Serial.println("Kapcsolodas...");
    client.print("GET /sensorarduino.php?id=bbking&nev=fordulat&rpm=");
    client.print(Calc, DEC);
    client.println(" HTTP/1.1");
    client.print("Host: ");
    client.println(server);
    client.println("User-Agent: Arduino-Ethernet");
    client.println("Kapcsolat: bezarasa");
    client.println();

       ultimaConexion = millis();
  } 
  else {
   
    Serial.println("Csatlakozási hiba");
    Serial.println("Lekapcsolódás...");
    client.stop();
   delay(1000);
  }
}
Válasz küldése