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);
}
}