04-09-2017, 09:36
Witam
Mam taki problem iz moje arduino z czujnikiem wysyła dane do bazy danych ale wiele wyników nie jest zapisywana.
Arduino powinno wysyłać co 300000ms czyli co 5 min. co na dobę daje 288 wpisów, w wpisywanych jest ok 200. Przeglądałem logi servera i w logach są tylko wpisane wartości. Arduino wysyła zapytanie do servera a php get pobiera i wstawia dane. Arduino jest w sieci lokalnej i łączy się przez router.
- wykluczam raczej problem po stronie servera
- połączenie neta raczej stabilne
- przypuszczam ze problem lezy w sprzęcie arduino albo błąd w samym kodzie.
Może mnie ktoś nakieruje ???
Mam taki problem iz moje arduino z czujnikiem wysyła dane do bazy danych ale wiele wyników nie jest zapisywana.
Arduino powinno wysyłać co 300000ms czyli co 5 min. co na dobę daje 288 wpisów, w wpisywanych jest ok 200. Przeglądałem logi servera i w logach są tylko wpisane wartości. Arduino wysyła zapytanie do servera a php get pobiera i wstawia dane. Arduino jest w sieci lokalnej i łączy się przez router.
- wykluczam raczej problem po stronie servera
- połączenie neta raczej stabilne
- przypuszczam ze problem lezy w sprzęcie arduino albo błąd w samym kodzie.
Może mnie ktoś nakieruje ???
Kod:
// program pogodynka 0.1 02-09-2017
#include <SPI.h>
#include <Ethernet2.h>
#include <dht.h>
#define DHT21PIN 2 //przypisanie pinu 2 Arduino jako odczyt z sensora
dht DHT21;
byte mac[] = { 0x90, 0xA2, 0xDA, 0x10, 0xE0, 0xD0 };
IPAddress ip(192,168,0,35); //ip adress
char server[] = "pogodynka.abcflex.eu"; //
EthernetClient client;
void setup() {
// Serial.begin starts the serial connection between computer and Arduino
Serial.begin(115200); //inicjalizacja monitora szeregowego
Ethernet.begin(mac); // start the Ethernet connection
Serial.println("Program pogodynki.");
Serial.println();
}
void loop() {
int chk = DHT21.read(DHT21PIN); //sprawdzenie stanu sensora, a następnie wyświetlenie komunikatu na monitorze szeregowym
Serial.print("Sensor: ");
switch (chk)
{
case DHTLIB_OK:
Serial.print("OK, ");
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println("Błąd sumy kontrolnej");
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println("Koniec czasu oczekiwania - brak odpowiedzi");
break;
default:
Serial.println("Nieznany błąd");
break;
}
Serial.print("Hum(%): "); //wyświetlenie wartości wilgotności
Serial.print(DHT21.humidity, 0);
Serial.print(" _ ");
Serial.print("Temp*C: "); //wyświetlenie temperatury
Serial.println((float)DHT21.temperature, 0);
delay(300000); //opóźnienie między kolejnymi odczytami - 5min
// Connect to the server (your computer or web page)
if (client.connect(server, 80)) {
float temp = (DHT21.temperature);
Serial.println( temp );
client.print("GET /pogodynka/add1.php?"); // zaczyna lancych
client.print("temp1="); // definicja temperatury
client.print((float)DHT21.temperature, 0); // dana temperatura
client.print("&hum="); // definicja wilgotnosci
client.println((float)DHT21.humidity, 0); // dane wilgotnosci
client.println(" HTTP/1.1"); // Part of the GET request
client.println("Host: pogodynka.abcflex.eu"); //
client.println("Connection: close"); //
client.println(); // Empty line
client.println(); // Empty line
client.stop(); // Closing connection to server
}
else {
Serial.println("--> connection failed\n");
}
delay(300000); // przerwa pomiedzy nastepnym wyslaniem danych 5min
}