Ethernet board használat

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Szilu88
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2014. március 2. vasárnap, 16:31

Re: Ethernet board használat

HozzászólásSzerző: Szilu88 » 2014. április 8. kedd, 21:02

Sziasztok!
Szeretnék egy olyan megoldást, ahol először egy bejelentkezés történik, sikeres bejelentkezés után viszont egy index.htm fájlt beolvas az sd kártyáról. Ennek a fájlnak a feladata az, hogy betesz egy szintén az sd kártyán lévő pic.jpg háttérképnek.
Ezt a beléptető felületet találtam(webduino): (http://ten-fingers-and-a-brain.com/ardu ... /webduino/)

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

/* Web_Authentication.ino - Webduino Authentication example */

/* This example assumes that you're familiar with the basics
 * of the Ethernet library (particularly with setting MAC and
 * IP addresses) and with the basics of Webduino. If you
 * haven't had a look at the HelloWorld example you should
 * probably check it out first */

/* you can change the authentication realm by defining
 * WEBDUINO_AUTH_REALM before including WebServer.h */
#define WEBDUINO_AUTH_REALM "Weduino Authentication Example"

#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"

/* CHANGE THIS TO YOUR OWN UNIQUE VALUE.  The MAC number should be
 * different from any other devices on your network or you'll have
 * problems receiving packets. */
static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

/* CHANGE THIS TO MATCH YOUR HOST NETWORK.  Most home networks are in
 * the 192.168.0.XXX or 192.168.1.XXX subrange.  Pick an address
 * that's not in use and isn't going to be automatically allocated by
 * DHCP from your router. */
static uint8_t ip[] = { 192, 168, 1, 210 };

/* This creates an instance of the webserver.  By specifying a prefix
 * of "", all pages will be at the root of the server. */
#define PREFIX ""
WebServer webserver(PREFIX, 80);

void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) = "<h1>Hello, World!</h1><a href=\"private.html\">Private page</a>";
    server.printP(helloMsg);
  }
}

void privateCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  /* if the user has requested this page using the following credentials
   * username = user
   * password = user
   * display a page saying "Hello User"
   *
   * the credentials have to be concatenated with a colon like
   * username:password
   * and encoded using Base64 - this should be done outside of your Arduino
   * to be easy on your resources
   *
   * in other words: "dXNlcjp1c2Vy" is the Base64 representation of "user:user"
   *
   * if you need to change the username/password dynamically please search
   * the web for a Base64 library */
  if (server.checkCredentials("dXNlcjp1c2Vy"))
  {
    server.httpSuccess();
    if (type != WebServer::HEAD)
    {
      P(helloMsg) = "<h1>Hello User</h1>";
      server.printP(helloMsg);
    }
  }
  /* if the user has requested this page using the following credentials
   * username = admin
   * password = admin
   * display a page saying "Hello Admin"
   *
   * in other words: "YWRtaW46YWRtaW4=" is the Base64 representation of "admin:admin" */
  else if (server.checkCredentials("YWRtaW46YWRtaW4="))
  {
    server.httpSuccess();
    if (type != WebServer::HEAD)
    {
      P(helloMsg) = "<h1>Hello Admin</h1>";
      server.printP(helloMsg);
    }
  }
  else
  {
    /* send a 401 error back causing the web browser to prompt the user for credentials */
    server.httpUnauthorized();
  }
}

void setup()
{
  Ethernet.begin(mac, ip);
  webserver.setDefaultCommand(&defaultCmd);
  webserver.addCommand("index.html", &defaultCmd);
  webserver.addCommand("private.html", &privateCmd);
  webserver.begin();
}

void loop()
{
  char buff[64];
  int len = 64;

  /* process incoming connections one at a time forever */
  webserver.processConnection(buff, &len);
}

Az index.htm fájl tartalma:

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

<!DOCTYPE html>

<html>
   
<head>

<link rel="shortcut icon" href="/favicon.ico">   
</head>
   
<body>
<BODY background="pic.jpg" style="background-position:top center; background-repeat:no-repeat; background-attachment:fixed">
</body>

</html>

A kettőt kellene valahogyan összehozni, de nekem sehogyan sem sikerül :( Hosszas keresgetés és próbálkozás után eljutottam addig, hogy néha kiírja az index.htm tartalmat szövegként, de a kép sehogy nem akar előjönni :( Kérem valaki segítsen, már kifogytam az ötletekből :( Hálás lennék.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. április 8. kedd, 21:10

A arduino kódban hol kezeled le a kép bekérését?
A W5100 belső memóriája sallangokkal együtt 8k! Azaz 4-4.5k-nál nagyobb képpel ne is próbálkozz....

A kódban _tele van_ beépített függvényekkel, ami elrejti a belét a lényegnek. Ezzel mindent lehet, csak fejleszteni nem:(

Szilu88
Újonc
Újonc
Hozzászólások: 14
Csatlakozott: 2014. március 2. vasárnap, 16:31

Re: Ethernet board használat

HozzászólásSzerző: Szilu88 » 2014. április 9. szerda, 9:45

Köszönöm a válaszát! :)
Két módszerrel próbálkoztam, az egyik ez:
Itt csak próbaképpen írtam be, hogy ha private2.html-t írok a címsorba, akkor behozza-e a képet, de csak üres oldalt kapok. Ha megnézem az üres oldal forrását, akkor is szintén üres oldalt kapok.

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

/* Web_Authentication.ino - Webduino Authentication example */

/* This example assumes that you're familiar with the basics
 * of the Ethernet library (particularly with setting MAC and
 * IP addresses) and with the basics of Webduino. If you
 * haven't had a look at the HelloWorld example you should
 * probably check it out first */

/* you can change the authentication realm by defining
 * WEBDUINO_AUTH_REALM before including WebServer.h */
#define WEBDUINO_AUTH_REALM "Weduino Authentication Example"

#include "SPI.h"
#include "Ethernet.h"
#include "WebServer.h"
#include "SD.h"
/* CHANGE THIS TO YOUR OWN UNIQUE VALUE.  The MAC number should be
 * different from any other devices on your network or you'll have
 * problems receiving packets. */
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);

/* This creates an instance of the webserver.  By specifying a prefix
 * of "", all pages will be at the root of the server. */
#define PREFIX ""
WebServer webserver(PREFIX, 80);

void defaultCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  server.httpSuccess();
  if (type != WebServer::HEAD)
  {
    P(helloMsg) = "<h1>Hello, World!</h1><a href=\"private.html\">Private page</a>";
    server.printP(helloMsg);
  }
}

void privateCmd(WebServer &server, WebServer::ConnectionType type, char *, bool)
{
  /* if the user has requested this page using the following credentials
   * username = user
   * password = user
   * display a page saying "Hello User"
   *
   * the credentials have to be concatenated with a colon like
   * username:password
   * and encoded using Base64 - this should be done outside of your Arduino
   * to be easy on your resources
   *
   * in other words: "dXNlcjp1c2Vy" is the Base64 representation of "user:user"
   *
   * if you need to change the username/password dynamically please search
   * the web for a Base64 library */
  if (server.checkCredentials("dXNlcjp1c2Vy"))
  {
    server.httpSuccess();
    if (type != WebServer::HEAD)
    {
      P(helloMsg) = "<h1>Hello User</h1>";
      server.printP(helloMsg);
    }
  }
  /* if the user has requested this page using the following credentials
   * username = admin
   * password = admin
   * display a page saying "Hello Admin"
   *
   * in other words: "YWRtaW46YWRtaW4=" is the Base64 representation of "admin:admin" */
  else if (server.checkCredentials("YWRtaW46YWRtaW4="))
  {
    server.httpSuccess();
    if (type != WebServer::HEAD)
    {
      P(helloMsg) = "<h1>Hello Admin</h1>";
      server.printP(helloMsg);

    }
  }
  else
  {
    /* send a 401 error back causing the web browser to prompt the user for credentials */
    server.httpUnauthorized();
  }
}
void sdHTML(WebServer &server, WebServer::ConnectionType type, char *url_tail, bool tail_complete)
{
  server.httpSuccess();
 
  File datei;
 
  datei = SD.open("index.htm", FILE_READ);
  if(datei)
  {
    int16_t c;
    while((c = datei.read()) >= 0) {
      server.print((char)c);
    }
    datei.close();
  }
  else
  {
    Serial.println("Datei wurde nicht gefunden");
  }
}
void setup()
{
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  webserver.setDefaultCommand(&defaultCmd);
  webserver.addCommand("index.html", &defaultCmd);
  webserver.addCommand("private.html", &privateCmd);
  webserver.addCommand("private2.html", &sdHTML);
  webserver.begin();
}

void loop()
{
  char buff[64];
  int len = 64;

  /* process incoming connections one at a time forever */
  webserver.processConnection(buff, &len);
}


A másik egy kicsivel bonyolultabb számomra, mert vegyített:
Itt bejelentkezés után kiírja, hogy sikeres, majd továbbít a STARTWEB részre, aminek a kép bekérése lenne az SD kártyáról a feladata(külön működik).
Itt viszont nem a képet hozza be a böngésző, hanem az sd kártyán lévő index.htm fájl szöveges tartalmát, mintha szerkesztésre nyitnám meg.

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

#include <SPI.h>
#include <Ethernet.h>
#include <WebServer.h>
#include <SdFat.h>
#include <SdFatUtil.h>

#define REQ_BUF_SZ   20
#define BUFSIZ 100
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
char rootFileName[] = "index.htm";
EthernetServer server(80);
byte USER_AUTHENDICATED=0;
/************ SDCARD STUFF ************/
Sd2Card card;
SdVolume volume;
SdFile root;
SdFile file;
int t=15;
// store error strings in flash to save RAM
#define error(s) error_P(PSTR(s))

void error_P(const char* str) {
  PgmPrint("error: ");
  SerialPrintln_P(str);
  if (card.errorCode()) {
    PgmPrint("SD error: ");
    Serial.print(card.errorCode(), HEX);
    Serial.print(',');
    Serial.println(card.errorData(), HEX);
  }
  while(1);
}
/////////////////////////////////////////////////////////////////////////////////////
#define PREFIX ""
WebServer webserver(PREFIX, 80);
/////////////////////////////////////////////////////////////////////////////////////
void privateCmd(WebServer &serverA, WebServer::ConnectionType type, char *, bool)
{
  if  (serverA.checkCredentials("YWRtaW46YWRtaW4="))
  {
    serverA.httpSuccess();
    USER_AUTHENDICATED=1;
    delay(20);
    P(helloMsg) = "<html><head><meta http-equiv='refresh' content=3;></head><body bgcolor='#000000' style='font-family:Verdana;color:#ffffff;font-size:12px;'><form>Login Succesfull!</form></body></html>";
    serverA.printP(helloMsg);
    delay(20);
    STARTWEB();
  }
  else
  {serverA.httpUnauthorized();
   USER_AUTHENDICATED=0;

  }
}


void loop() {
    char buff[64];
  int len = 64;
  // listen for incoming clients0
  webserver.processConnection(buff, &len);
 
 if (USER_AUTHENDICATED==1)
    {
     
      STARTWEB();
    }
 
}

void defaultCmd(WebServer &serverA, WebServer::ConnectionType type, char *, bool)
{
  if  (serverA.checkCredentials("YWRtaW46YWRtaW4="))
  {
    serverA.httpSuccess();
    USER_AUTHENDICATED=1;
    delay(20);
    P(helloMsg) = "<html><head><meta http-equiv='refresh' content=4;></head><body bgcolor='#000000' style='font-family:Verdana;color:#ffffff;font-size:12px;'><form>Login Succesfull!</form></body></html>";
    serverA.printP(helloMsg);
    delay(20);
    STARTWEB();
  }
  else
  {serverA.httpUnauthorized();
   USER_AUTHENDICATED=0;
  }
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() {
 // Open serial communications and wait for port to open:
  Serial.begin(115200);
PgmPrint("Free RAM: ");
  Serial.println(FreeRam()); 
 
  // initialize the SD card at SPI_HALF_SPEED to avoid bus errors with
  // breadboards.  use SPI_FULL_SPEED for better performance.
  pinMode(10, OUTPUT);                       // set the SS pin as an output (necessary!)
  digitalWrite(10, HIGH);                    // but turn off the W5100 chip!

  if (!card.init(SPI_HALF_SPEED, 4)) error("card.init failed!");
 
  // initialize a FAT volume
  if (!volume.init(&card)) error("vol.init failed!");

  PgmPrint("Volume is FAT");
  Serial.println(volume.fatType(),DEC);
  Serial.println();
 
  if (!root.openRoot(&volume)) error("openRoot failed");

  // list file in root with date and size
  PgmPrintln("Files found in root:");
  root.ls(LS_DATE | LS_SIZE);
  Serial.println();
   
  // Recursive list of all directories
  PgmPrintln("Files found in all dirs:");
  root.ls(LS_R);
 
  Serial.println();
  PgmPrintln("Done");
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
 
   
  /////////////////////////////////////////////////////////////////////////////
    webserver.setDefaultCommand(&privateCmd);
   // webserver.addCommand("private.html", &defaultCmd);

  webserver.begin();
  /////////////////////////////////////////////////////////////////////////////
}


void STARTWEB()
{
  char clientline[BUFSIZ];
  char *filename;
  int index = 0;
  int image = 0;
  //Start Webserver with classic arduino way.......
  EthernetClient client = server.available();
  if (client) {
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    index = 0;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        if (c != '\n' && c != '\r') {
          clientline[index] = c;
          index++;
          // are we too big for the buffer? start tossing out data
          if (index >= BUFSIZ)
            index = BUFSIZ -1;
           
          // continue to read more data!
          continue;
        }
                clientline[index] = 0;
        filename = 0;
       
        // Print it out for debugging
        Serial.print("ELSO ELLENORZO PONT:");
        Serial.println(clientline);
        delay(100);
        if (strstr(clientline, "GET / ") != 0) {
          filename = rootFileName;
          Serial.print("MASODIK ELLENORZO PONT:");
          Serial.println(filename);
        }
       
        if (strstr(clientline, "GET /") != 0) {
        if (!filename) filename = clientline + 5; // look after the "GET /" (5 chars)
          // a little trick, look for the " HTTP/1.1" string and
          // turn the first character of the substring into a 0 to clear it out.
          (strstr(clientline, " HTTP"))[0] = 0;
        Serial.print("HARMADIK ELLENORZO PONT:");
        Serial.println(filename);
////////////////////////////////////////////////////////////////////////
       
        if (file.open(&root, filename, O_READ)) {Serial.println("NEGYEDIK ELLENORZO PONT"); }
       
        client.println("HTTP/1.1 200 OK");
          if (strstr(filename, ".htm") != 0)
             client.println("Content-Type: text/html");
         else
             client.println("Content-Type: text");

                  int16_t c;
          while ((c = file.read()) >= 0) {
              // uncomment the serial to debug (slow!)
              //Serial.print((char)c);
              client.print((char)c);
              Serial.println("OTODIK ELLENORZO PONT");
          }
        file.close();
 
}
    else {
          // everything else is a 404
          client.println("HTTP/1.1 404 Not Found");
          client.println("Content-Type: text/html");
          client.println();
          client.println("<h2>File Not Found!</h2>");
         Serial.println("Nincs meg a fájl"); 
         }
            break;
      }
}
    // give the web browser time to receive the data
    delay(1);
    client.stop();
  }

}

Megpróbáltam ugyan ezeket a módszereket 2,3k-s képpel de ugyan ezek a jelenségek. Akkor ön szerint nem is érdemes 20k-s kép behívásával sd kártyáról ezzel a hitelesítéssel? :( Esetleg másfajta beléptetést tudna ajánlani? Ugyanis ha távolról is elérhető lenne a program, nem akarom, hogy más is hozzáférjen. Előre is köszönöm a válaszát.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. április 9. szerda, 11:09

Egyszerű form alapú beléptetés felhasználónév/jelszó párossal?
A 20k kép esélytelen....


Ha az index.html szerkesztási képként nyílik meg: nem kerül a HTML fejléc (240/OK) elküldésre, csak a natív TEXT.

bgachip
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2013. november 5. kedd, 20:00

Re: Ethernet board használat

HozzászólásSzerző: bgachip » 2014. április 9. szerda, 21:02

Van kettő fájlom, mind a kettő sd kártyáról olvas be index.htm fájlt és jelenít meg böngészőben.
Elsőt megjeleníti megfelelően, másodiknál csak "ď" ...ennyit.

Nagy különbség nincs a két kód között, 2 napja nézem , de nem jövök rá.
TÖbb szem többet lát alapon töltöttem fel ide a kódokat, hátha valaki lát benne valamit.....

Köszönöm a segítségeteket, remélem valaki tud segíteni.

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

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

// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 17); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80

File webFile;

void setup()
{
    Ethernet.begin(mac, ip);  // initialize Ethernet device
    server.begin();           // start to listen for clients
    Serial.begin(9600);       // for debugging
   
    // initialize SD card
    Serial.println("Initializing SD card...");
    if (!SD.begin(4)) {
        Serial.println("ERROR - SD card initialization failed!");
        return;    // init failed
    }
    Serial.println("SUCCESS - SD card initialized.");
    // check for index.htm file
    if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file
    }
    Serial.println("SUCCESS - Found index.htm file.");
}

void loop()
{
    EthernetClient client = server.available();  // try to get client

    if (client) {  // got client?
        boolean currentLineIsBlank = true;
        Serial.println(client);
        while (client.connected()) {
            if (client.available()) {   // client data available to read
                char c = client.read(); // read 1 byte (character) from client
                // last line of client request is blank and ends with \n
                // respond to client only after last line received
                if (c == '\n' && currentLineIsBlank) {
                    // send a standard http response header
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println("Connection: close");
                    client.println();
                    // send web page
                    webFile = SD.open("index.htm");        // open web page file
                    if (webFile) {
                        while(webFile.available()) {
                            client.write(webFile.read()); // send web page to client
                        }
                        webFile.close();
                    }
                    break;
                }
                // every line of text received from the client ends with \r\n
                if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    currentLineIsBlank = true;
                }
                else if (c != '\r') {
                    // a text character was received from client
                    currentLineIsBlank = false;
                }
            } // end if (client.available())
        } // end while (client.connected())
        delay(1);      // give the web browser time to receive the data
        client.stop(); // close the connection
    } // end if (client)
}



2. kód

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

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

// MAC address from Ethernet shield sticker under board
byte mac[] = { 0xDE, 0xAC, 0xCE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,0,17); // IP address, may need to change depending on network
EthernetServer server(80);  // create a server at port 80

File webFile;

String HTTP_req="";          // stores the HTTP request

void setup()
{
  Ethernet.begin(mac,ip);  // initialize Ethernet device
  server.begin();           // start to listen for clients 
  Serial.begin(9600);       // for diagnostics
  pinMode(2,OUTPUT);       // LED on pin 2

  Serial.print("Initializing SD card...");
  if (!SD.begin(4)) {
    Serial.println(" failed!");
    return;
  }
  Serial.println(" done.");
  if (!SD.exists("index.htm")) {
        Serial.println("ERROR - Can't find index.htm file!");
        return;  // can't find index file
    }
    Serial.println("SUCCESS - Found index.htm file.");

}

void loop()
{
  EthernetClient client = server.available();  // try to get client
  Serial.println("itt vagyok");
  if (client) {  // got client?
  boolean vizsgal=true;
   Serial.println("if en belul vagyok");
   Serial.println(client);
    while (client.connected()) {
      if (client.available()) {   // client data available to read
        char c= client.read(); // read 1 byte (character) from client
         // save the HTTP request 1 char at a time
        // last line of client request is blank and ends with \n
        // respond to client only after last line received
        HTTP_req+=c;
        if (c == '\n'&& vizsgal) {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");
          client.println();
          webFile = SD.open("index.htm");        // open web page file
          if (webFile) {
            while(webFile.available()) {
               client.write(webFile.read()); // send web page to client
          //     checkbox(client);
               HTTP_req="";
               break;
            }           
            webFile.close();
          }
          break;
        }
        if (c == '\n') {
                    // last character on line of received text
                    // starting new line with next character read
                    vizsgal = true;
                }
                else if (c != '\r') {
                    // a text character was received from client
                    vizsgal = false;
                }
           
    } // end if (client.available())
  } // end while (client.connected())
  delay(1);      // give the web browser time to receive the data
  client.stop(); // close the connection
} //end if (client)
}

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: Ethernet board használat

HozzászólásSzerző: kapu48 » 2014. április 10. csütörtök, 7:01

Szerintem a Break-kal idő előtt kiugrasz a While ciklusból.

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

            while(webFile.available()) {
               client.write(webFile.read()); // send web page to client
          //     checkbox(client);
               HTTP_req="";
               break;   //?????????????
            } 

:?:

Minek a : while(webFile.available()) ?
Ha rögtön kiugrasz belőle!

bgachip
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2013. november 5. kedd, 20:00

Re: Ethernet board használat

HozzászólásSzerző: bgachip » 2014. április 10. csütörtök, 8:37

Hmm, köszönöm az észrevételt, este ki is próbálom! :)
Még annyit, hogy pontosan mit is csinál az available()?
És hogyan lehetne, pl könyvtárból neten keresztül, elérni a index.htm felülelet?

Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3348
Csatlakozott: 2008. augusztus 29. péntek, 6:00
Tartózkodási hely: Újkígyós

Re: Ethernet board használat

HozzászólásSzerző: kapu48 » 2014. április 10. csütörtök, 12:23

Jelez, ha elérte a WebFile.végét.

(A HTM kodolásban Robi jártasabb.)

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. április 10. csütörtök, 17:01

Az available: "van-e még belőle?" v. "Elérhető-e még?"

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. április 13. vasárnap, 17:16


bgachip
DrótVégénSzéndarab
Hozzászólások: 49
Csatlakozott: 2013. november 5. kedd, 20:00

Re: Ethernet board használat

HozzászólásSzerző: bgachip » 2014. április 18. péntek, 17:07

Már meg tudtam csinálni, sd kártyáról beolvassa a htm file-t, a html get hatására kivillan a led, vagy kialszik... :)

Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00
Tartózkodási hely: Tápiószőlős

Re: Ethernet board használat

HozzászólásSzerző: GPeti » 2014. május 2. péntek, 7:55

Ez a web oldalam:
http://gpeti1977.uw.hu
A hőmérséklet adatokat egy Arduino uno + W5100 boarddal küldöm el a honlap ftp szerverének, ott egy fájlt írok mindig felül és ezt írom ki az oldalra. Így nem kell webszerver minden a szolgáltatónál fut ingyenesen! A hőmérséklet adatokból szeretnék grafikont rajzolni, csakhogy ezt úgy tudom ha meghívok egy php scriptet ami az adatbázisba ír, a szolgáltatónak van időzített futtatása napi 3x, de nekem pl. 10 percenként kellene.
Az a gond hogy (Arduino1.0 használok) hogy az fpt szerver neve:
char server[] = "ftp.uw.hu";
viszont a php oldalt a gpeti1977.uw.hu/*******.php
címen érem el ahol lefut a a mysql adatbázisba írás.
Sajnos az Arduino csökevényessége miatt nem tudok szerver nevet változtatni, azaz ha átírom erre
char server[] = "gpeti1977.uw.hu";
akkor már nem fogadja el.
Ha tudnék szerver nevet váltani innen a client.println("GET /******.php"); sorral tudnám elérni az oldalt.


Hogyan lehetne server nevét vagy IP címét megváltoztatni?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. május 2. péntek, 8:50

A feltöltési php script is tud meghívni külső állományt. Onnan nem tudod futtatni?
Grafikonhoz meg van pl. online google API. De van php script is képgenerálásra.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. május 2. péntek, 8:52

Az uw-n nem illik közvetlen fileelérést csinálni. A reklám megkerülésének tekintik. Azaz tilthatják az oldalt.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10033
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Ethernet board használat

HozzászólásSzerző: Robert » 2014. május 2. péntek, 8:55

HTML/php lapot hívj meg és paraméteréterátadással tedd be az adatot. A kódolatlan ftp nem az igazi, hogy kimennek a nevek/jelszavak...


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég