NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
karbos166
Člen
Avatar
karbos166:7.12.2016 23:13

Ahoj potřeboval bych malou radu začínám být zoufalej. Mám arduino a ethernet shield a snažím se rozchodit zápis dat do databáze MySLQ. Jen se mi arduino nedaří připojit na tu stránku (jestli to říkám správně). Dělám to podle tohodle. a zdrojový kod

#include <SPI.h>
#include <Ethernet.h>
#include <dht11.h>
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Enter the IP address for Arduino, as mentioned we will use 192.168.0.16
// Be careful to use , insetead of . when you enter the address here
IPAddress ip(192,168,0,16);

dht11 cidlo;
int dht11pin = 5;
int teplota;
int vlhkost;

char server[] = "www.arduin.8u.cz"; // IMPORTANT: If you are using XAMPP you will have to find out the IP address of your computer and put it here (it is explained in previous article). If you have a web page, enter its address (ie. "www.yourwebpage.com")

// Initialize the Ethernet server library
EthernetClient client;

void setup() {

  // Serial.begin starts the serial connection between computer and Arduino
  Serial.begin(9600);

  // start the Ethernet connection
  Ethernet.begin(mac, ip);

}

void loop() {

  cidlo.read(dht11pin);
  teplota = cidlo.temperature;
  vlhkost = cidlo.humidity;

  // Connect to the server (your computer or web page)
  if (client.connect(server, 80)) {
    client.print("GET /logger.php?"); // This
    client.print("value="); // This
    client.print(teplota); // And this is what we did in the testing section above. We are making a GET request just like we would from our browser but now with live data from the sensor
    client.println(" HTTP/1.1"); // Part of the GET request
    client.println("Host: www.arduin.cz"); // IMPORTANT: If you are using XAMPP you will have to find out the IP address of your computer and put it here (it is explained in previous article). If you have a web page, enter its address (ie.Host: "www.yourwebpage.com")
    client.println("Connection: close"); // Part of the GET request telling the server that we are over transmitting the message
    client.println(); // Empty line
    client.println(); // Empty line
    client.stop();    // Closing connection to server

  }

  else {
    // If Arduino can't connect to the server (your computer or web page)
    Serial.println("--> connection failed\n");
  }

  // Give the server some time to recieve the data and store it. I used 10 seconds here. Be advised when delaying. If u use a short delay, the server might not capture data because of Arduino transmitting new data too soon.
  delay(10000);
}

a výpis na sériovým portu je

--> connection failed

byl bych rád za jakoukoliv radu :)

 
Odpovědět
7.12.2016 23:13
Avatar
Odpovídá na karbos166
Neaktivní uživatel:8.12.2016 1:13

arduin.8u.cz doména není na endoře registrovaná

Editováno 8.12.2016 1:13
Nahoru Odpovědět
8.12.2016 1:13
Neaktivní uživatelský účet
Avatar
karbos166
Člen
Avatar
Odpovídá na Neaktivní uživatel
karbos166:8.12.2016 6:56

Došlo z překlepu web je tady a takle je zapsaný i v tom arduino kódu. v případě že napíšu například tohle tak se mi hodnota normálně zapíše do databáze.

 
Nahoru Odpovědět
8.12.2016 6:56
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na karbos166
ostrozan:8.12.2016 10:29

V tom případě metoda print() asi nemá přetížení na posílání něčeho jiného, než stringu/ char[] - musel by ses podívat do souboru EthenetClient.h

zkus to převést na string

client.print(String(teplota));

případně

char str[10];
itoa(str,teplota,10);
client.print(str);
 
Nahoru Odpovědět
8.12.2016 10:29
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na karbos166
ostrozan:8.12.2016 11:06

Tak jsem se na to díval a print() je přetížená úplně na všechno - takže by to mělo jít - alespoň teda v EthernetClient z knihovny nejnovější verze Arduino IDE

 
Nahoru Odpovědět
8.12.2016 11:06
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na karbos166
ostrozan:8.12.2016 13:43

ve funkci setup() ti možná chybí

cidlo.begin();

to ale záleží na tom jakou máš DHT knihovnu - je jich spousta a každý to má trochu jinak
pro jistotu ale zkus, jestli ti to čidlo komunikuje a měří

Serial.println(teplota);
Serial.println(vlhkost);
 
Nahoru Odpovědět
8.12.2016 13:43
Avatar
karbos166
Člen
Avatar
Odpovídá na ostrozan
karbos166:21.12.2016 12:41

Zkousel jsem to na localhostu (xampp) a to bezi v pohode posila to i spravne data do databaze... Takze musi byt problem s tim odeslanim dat na ten server na endore...

Neni mozny ze kdyz to arduino posle na to www.xxxxxx.cz tak se to jeste nekam presmerovava a to arduino nezvladne zpracovat?

 
Nahoru Odpovědět
21.12.2016 12:41
Avatar
judyt
Člen
Avatar
judyt:5.7.2017 22:58

Pokud správně vidím, není nastavena výchozí brána a tak Arduino funguje jen v lokální síti

 
Nahoru Odpovědět
5.7.2017 22:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.