INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
EtherCard.h Library
21.09.2015, 15:28 (Dieser Beitrag wurde zuletzt bearbeitet: 21.09.2015 15:42 von arduino_weatherstation.)
Beitrag #1
EtherCard.h Library
Hallo Leute

Ich will einen Wert eines Temperatursensors auf einen Webserver hochladen. Zum Einsatz kommt ein ENC28J60. Der Webserver funktioniert super und gibt einen konstanten Text aus. Dazu nutze ich folgenden Sketch:

Code:
// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

#define STATIC 1  // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,130 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
  "<head><title>"
    "Arduino Testserver"
  "</title></head>"
  "<body>"
    "<h3>Arduino Testserver</h3>"
    "<p><em>"
      "Dies ist ein Testerver!<br />"
    "</em></p>"
  "</body>"
"</html>"
;

void setup(){
  Serial.begin(9600);
  Serial.println("\n[backSoon]");
  
  if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
    Serial.println( "Failed to access Ethernet controller");
#if STATIC
  ether.staticSetup(myip, gwip);
#else
  if (!ether.dhcpSetup())
    Serial.println("DHCP failed");
#endif

  ether.printIp("IP:  ", ether.myip);
  ether.printIp("GW:  ", ether.gwip);  
  ether.printIp("DNS: ", ether.dnsip);  
}

void loop(){
  // wait for an incoming TCP packet, but ignore its contents
  if (ether.packetLoop(ether.packetReceive())) {
    memcpy_P(ether.tcpOffset(), page, sizeof page);
    ether.httpServerReply(sizeof page - 1);
  }
}

Dieser Sketch gibt ein konstanter Text aus, der sich nicht verändert. Wie lautet der Befehl, wenn ich z.B einen Temperaturwert all 10 Sekunden auf den Webserver laden will?

Danke für jede Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.09.2015, 15:58
Beitrag #2
RE: EtherCard.h Library
Ich vermute, dies ist der feste Text:

"Dies ist ein Testerver!<br />"
den du sendest.

An Stelle des Textes setzt du eine Variable, die du mit deinem gewünschte Text (Temperaturwert) füllst.

Dann startest du die Übertragung per Timer (SimpleTimer.h) alle 10 sek.
Die Temperaturwerte Musst du aber vorher immer auslesen und in die Variable schreiben.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.09.2015, 16:08
Beitrag #3
RE: EtherCard.h Library
Könntest du ein Beispiel geben? z.B für eine Variable namens T?

Wenn ich die Variable einsetze kommt diese Fehlermeldung:

backSoon:34: error: expected ',' or ';' before 'T'

Sketch:

// Present a "Will be back soon web page", as stand-in webserver.
// 2011-01-30 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

#include <EtherCard.h>

#define STATIC 1 // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC
// ethernet interface ip address
static byte myip[] = { 192,168,1,130 };
// gateway ip address
static byte gwip[] = { 192,168,1,1 };
#endif

// ethernet mac address - must be unique on your network
static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

const char page[] PROGMEM =
"HTTP/1.0 503 Service Unavailable\r\n"
"Content-Type: text/html\r\n"
"Retry-After: 600\r\n"
"\r\n"
"<html>"
"<head><title>"
"Service Temporarily Unavailable"
"</title></head>"
"<body>"
"<h3>This service is currently unavailable</h3>"
"<p><em>"
""T"<br />"
"</em></p>"
"</body>"
"</html>"
;

void setup(){
Serial.begin(9600);
Serial.println("\n[backSoon]");

if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)
Serial.println( "Failed to access Ethernet controller");
#if STATIC
ether.staticSetup(myip, gwip);
#else
if (!ether.dhcpSetup())
Serial.println("DHCP failed");
#endif

ether.printIp("IP: ", ether.myip);
ether.printIp("GW: ", ether.gwip);
ether.printIp("DNS: ", ether.dnsip);
}

void loop(){
// wait for an incoming TCP packet, but ignore its contents
if (ether.packetLoop(ether.packetReceive())) {
memcpy_P(ether.tcpOffset(), page, sizeof page);
ether.httpServerReply(sizeof page - 1);
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.09.2015, 16:24
Beitrag #4
RE: EtherCard.h Library
Oh, sorry, habe übersehen, das es ja HTML-Code ist.
Du must quasi die komplette page umschreiben und diese dann in der Loop einbinden.
Nur einfach die Variable einsetzen geht da nicht, da die page ja im Setup erstellt wird.

Da muss ich leider gestehen, da fehlt mir die Erfahrung, habe bisher noch nichts mit einer EtherCard zu tun gehabt.
Evtl. hilft dir ja dieser Beitrag weiter:
http://projects.lb-home.de/2013/01/einen...erstellen/

oder dieser:
http://www.blog.sa2bfo.com/categories/26-Projekt-7

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Library unter Linux Mint installieren atmel900 1 78 22.11.2016 14:12
Letzter Beitrag: rkuehle
  Dallas Temp Library und LiquidCrystal_i2c relay 20 463 27.10.2016 12:20
Letzter Beitrag: hotsystems
  Problem mit SD Card Library BennIY 4 186 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Wo kann ich hier noch Code spahren? (SPI-,Ethernet-,SD-,GSM-Library) avoid 4 377 05.06.2016 14:16
Letzter Beitrag: avoid
  [Suche] Library Programmierer/in für privates Projekt avoid 8 577 19.05.2016 15:01
Letzter Beitrag: avoid
  PID ohne Library MeisterQ 5 526 01.05.2016 09:23
Letzter Beitrag: MeisterQ
  Problem mit Pin Change Interrupt in Library Retian 0 319 10.02.2016 23:37
Letzter Beitrag: Retian
  433 MHZ RCSwitch Library Frage Marc2014 5 706 11.01.2016 16:28
Letzter Beitrag: hotsystems
  Library - Variable in Memberfunktion Scheams 1 405 10.01.2016 22:40
Letzter Beitrag: Rene
  Accel Stepper Library für Schrittmotoren Problem Rampe fahren Schrittmotor 0 986 13.10.2015 21:03
Letzter Beitrag: Schrittmotor

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste