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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Sketch für ENC28J60 vorhanden. Muss aber für W5100 Ethernet Shield.. :-(
18.12.2013, 16:35 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2013 16:39 von ElektroMatze.)
Beitrag #1
Arduino Sketch für ENC28J60 vorhanden. Muss aber für W5100 Ethernet Shield.. :-(
Hallo Ihr alle,

ich hoffe Ihr könnt mir helfen.
Bin nicht so besonders fit auf dem Gebiet, erhoffe mir dennoch Hilfe.

Und zwar, möchte ich Messwerte in ein log.txt auf einem Server schicken. Folgende Sketch habe ich. Meine Hardware ist aber das W5100.


-----------------------------------------------------------------------------------------
Hier mal der Code:

// USE AT YOUR OWN RISK !!!

#include <EtherCard.h>

#include <stdio.h>
#include <stdlib.h>

static byte mymac[] = { 0x74,0x62,0x69,0x2D,0x30,0x31 };


int impState = 0;
int lastimpState = 0;
int impCounter = 0;


byte Ethernet::buffer[700];
static uint32_t timer;

char website[] PROGMEM = "meindatenlogger.de"; // URL der Webseite

// called when the client request is complete
static void my_callback (byte status, word off, word len) {
Ethernet::buffer[off+300] = 0;
String stringOne = ((const char*) Ethernet::buffer + off);
}



void setup () {



pinMode(2, INPUT);
digitalWrite(2, HIGH);


if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
digitalWrite(2, LOW);
if (!ether.dhcpSetup())
digitalWrite(2, LOW);

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

if (!ether.dnsLookup(website))
digitalWrite(2, LOW);

ether.printIp("SRV: ", ether.hisip);
}

void loop () {
ether.packetLoop(ether.packetReceive());


impState = digitalRead(2);


if (impState != lastimpState) {
if (impState == LOW) {
impCounter++;
delay(20);
}
}
lastimpState = impState;






if (millis() > timer) {
timer = millis() + 600000;


char myIntAsString[3300];
itoa(impCounter, myIntAsString, 10);

ether.browseUrl(PSTR("/logger.php?client=4849&impulse="), myIntAsString, website, my_callback); // PHP-Datei, Client Key, Impulse


impCounter = 0;


}

}

Also ich habe nen Sketch laufen, der mir 4 Werte im Browser anzeigt. Diese 4 Werte möchte ich als Liveansicht behalten.

Das wäre der Sketch, der erweitert werden müsste, das mir die 4 Messwerte, in log.txt, log1.txt, log2.txt und log3.txt auf meinem Server geschrieben werden.


So sollte das dann in der log.txt aussehen
18.12.2013 16:39 13.4
18.12.2013 16:29 12.3

------------------------------------------------------------------------------------

#include "floatToString.h"
#include <Ethernet.h>
#include <WebServer.h>
#include <SPI.h>

int sensorPinStrom = A0;
int sensorPinSpannung = A1;
int sensorPinStrom1 = A2;
int sensorPinSpannung1 = A3;
int sensorPinStrom2 = A4;
int sensorPinSpannung2 = A5;

int sensorValue = 0;
float messw=0;




// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,178,151 };
EthernetServer server(80);


//****Programm******

void setup() {
// start the Ethernet connection:
Ethernet.begin(mac, ip);
// start the serial library:
Serial.begin(9600);
// give the Ethernet shield a second to initialize:
delay(2000);

}

void loop() {

//webserver------------------------------------------------------------
// listen for incoming clients
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write©;
// if you've gotten to the end of the line (received a newline
// character) and the line is blank, the http request has ended,
// so you can send a reply
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"); // the connection will be closed after completion of the response
client.println("Refresh: 2"); // refresh the page automatically every 5 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<title>Solarlog v0.1</title>");
client.print("<body style=background-color:#C0C0C0>");
// webserverENDE--------------------------------------------




//******STROM SOLARERTRAG*****
sensorValue = analogRead(sensorPinStrom1); //Hole Wert
//510=0A
sensorValue = sensorValue -518;//510=0A 0=-31A 1023=31A
//springen um 0 reduzieren

if(sensorValue==1)sensorValue=0;
if(sensorValue==-1)sensorValue=0;
//Umwandeln um einen Wert zuwischen -31 und +31 zu erhalten
messw=(float)31/518*sensorValue;
//über Webinterface ausgeben
client.println("<br />");
client.println("Panel Ladestrom: <br />");
client.print(floatToString(buffer,messw,2));
client.println(" Ampere<br />");


//******SPANNUNG SOLARERTRAG*****
sensorValue = analogRead(sensorPinSpannung1); //Hole Wert
//Wert umwandeln für Anzeige 0..24.0 Volt
messw=(float) 24/1023*sensorValue-1.8;
//über Webinterface ausgeben
client.print(floatToString(buffer,messw,2));
client.println(" Volt<br />");

//-----------------------------------------------------------

//******LADESTROM AKKU *****
sensorValue = analogRead(sensorPinStrom2); //Hole Wert
//510=0A
sensorValue = sensorValue -522;//510=0A 0=-31A 1023=31A
//springen um 0 reduzieren

if(sensorValue==1)sensorValue=0;
if(sensorValue==-1)sensorValue=0;
//Umwandeln um einen Wert zuwischen -31 und +31 zu erhalten
messw=(float)31/522*sensorValue;
//über Webinterface ausgeben
client.println("<br />");
client.println("Verbrauch Wechselrichter: <br />");
client.print(floatToString(buffer,messw,2));
client.println(" Ampere<br />");
//******LADESPANNUNG AKKU*****
sensorValue = analogRead(sensorPinSpannung2); //Hole Wert
//Wert umwandeln für Anzeige 0..24.0 Volt
messw=(float)24/1023*sensorValue-2;
//über Webinterface ausgeben
client.print(floatToString(buffer,messw,2));
client.println(" Volt<br />");

delay(1000); //1 -Sekunde warten


// output the value of each analog input pin
for (int sensorPinStrom = 0; sensorPinStrom < 6; sensorPinStrom++) {




}
client.println("</html>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(2);
// close the connection:
client.stop();

}


}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  CP2102 und USB Host Shield ?? DL1AKP 0 40 01.12.2016 08:55
Letzter Beitrag: DL1AKP
  Arduino UNO und Ethernet Shield 2 POE und Fritzbox 3272 tr3 2 152 19.11.2016 10:46
Letzter Beitrag: tr3
  Kommunikation über das WiFi-Shield Flap 3 230 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Ethernet Modul Enc28j60 Pin13 LED Schalten BennIY 16 501 27.09.2016 20:30
Letzter Beitrag: BennIY
  Arduino Lan Shield - Visual Basic ZackiE 6 214 20.09.2016 19:26
Letzter Beitrag: ZackiE
  adafruit V2.3 Shield Hangloose 6 291 08.09.2016 17:13
Letzter Beitrag: rpt007
  Can-Bus Shield ok, aber keine Daten Clubsport 38 1.533 01.09.2016 14:17
Letzter Beitrag: Clubsport
  Arduino mega 2560 mit TFT LCD Touch Shield V1 Clemens55555 17 934 02.08.2016 20:51
Letzter Beitrag: Clemens55555
  Sketch vom Arduino Board Herunterladen Sarius 2 343 27.07.2016 15:26
Letzter Beitrag: Sarius
  SainSmart 3.2 TFT + 5" TFT/SD Shield + Due SAM3X8E ARM (Arduino Due) Techniker_UE 13 3.220 24.07.2016 14:34
Letzter Beitrag: Eichner

Gehe zu:


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