Close

UNO+Shield W5100= občas neposílá data

Úvodní stránka Fórum Hardware Arduino UNO+Shield W5100= občas neposílá data

  • Toto téma obsahuje celkem 0 odpovědí. Do diskuze (1 diskutující) se naposledy zapojil uživatel dejvicz a poslední změna proběhla před 7 roky a 11 měsíci.
Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Autor
    Příspěvky
  • #10233
    dejvicz
    Účastník

    Ahoj..

    po delší době jsem se vrátil ke snaze odesílat teplotu přes Arduino do DB.
    Vše funguje „dobře“ až do chvíle kdy jsem ho místo VDSL linky připojil do LTE T-Mobile.
    Na VDSL lince mi z 10 teplot do databáze dorazilo občas jen 6 teplot, ale i to by šlo tolerovat, ale po připojení na LTE router tak mi přijde tak 1 z 20.
    Původně jsem měl nastavený interval odesílání 10 minut, což by bohatě stačilo pokud to chodí jak má. I když jsem zkrátil interval na jednu minutu tak stále dostanu teplotu tak jednou za hodinu, občas tři ne..
    Původní DHCP přidělování jsem změnil na pevnou IP, stále žádná změna.

    
    #include "DHT.h"
    #include "Ethernet.h"
    #include <SPI.h>
    
    byte mac[] = { 0x90, 0xAD, 0xDA, 0x0F, 0x96, 0xFE }; // MAC adresa
    IPAddress dnServer(192, 168, 8, 1); // IP adresa DNS serveru
    IPAddress gateway(192, 168, 8, 1); //  IP adresa brany
    IPAddress subnet(255, 255, 255, 0); // MASKA
    IPAddress ip(192, 168, 8, 2); // IP adresa zarizeni 
    
    EthernetClient client;
    
    #define DHTPIN 2 // Cislo digitalniho PINu
    #define DHTTYPE DHT11 // TYP senzoru - ADAFRUIT knihovna podporuje vice typui
    DHT dht(DHTPIN, DHTTYPE);
    
    long previousMillis = 0;
    unsigned long currentMillis = 0;
    long interval = 250000; // READING INTERVAL
    
    int t = 0;	// TEMPERATURE VAR
    int h = 0;	// HUMIDITY VAR
    String data;
    void setup() { 
    	Serial.begin(115200);
    {
    	 Ethernet.begin(mac, ip, dnServer, gateway, subnet);
      //print out the IP address
      Serial.print("IP = ");
      Serial.println(Ethernet.localIP());
    	}
    
    	dht.begin(); 
    	delay(10000); // GIVE THE SENSOR SOME TIME TO START
    
    	h = (int) dht.readHumidity(); 
    	t = (int) dht.readTemperature(); 
    
    	data = "";
    }
    
    void loop(){
    
    	currentMillis = millis();
    	if(currentMillis - previousMillis > interval) { // READ ONLY ONCE PER INTERVAL
    		previousMillis = currentMillis;
    		h = (int) dht.readHumidity();
    		t = (int) dht.readTemperature();
    	}
    
    data = "temp1=" + String(t) + "&hum1=" + String(h);
    
    	if (client.connect("www.motomotycin.cz",80)) { // REPLACE WITH YOUR SERVER ADDRESS
    		Serial.println("Data pro odeslani");
        Serial.println(data);
    		client.println("POST /add.php HTTP/1.1"); 
    		client.println("Host: motomotycin.cz"); // SERVER ADDRESS HERE TOO
    		client.println("Content-Type: application/x-www-form-urlencoded"); 
    		client.print("Content-Length: "); 
    		client.println(data.length()); 
    		client.println(); 
    		client.print(data); 
    	} 
    
    	if (client.connected()) { 
    		client.stop();	// DISCONNECT FROM THE SERVER
    	}
    
    	delay(50000); // WAIT FIVE MINUTES BEFORE SENDING AGAIN
    }
    
    
Aktuálně je na stránce zobrazen 1 příspěvek (celkem z 1)
  • Pro reakci na toto téma se musíte přihlásit.