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
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 146 10.04.2017 12:20
Letzter Beitrag: hotsystems
  Can-Bus Shield ok, aber keine Daten Clubsport 54 3.266 02.04.2017 22:28
Letzter Beitrag: Bitklopfer
  arduino sketch Fuhsering 11 321 30.03.2017 12:47
Letzter Beitrag: hotsystems
  Keypad Shield luj1990 11 333 29.03.2017 21:15
Letzter Beitrag: Tommy56
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 592 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo
  Probleme mit einem Sketch für einen LED Cube 5x5x5 Frank1234 5 234 13.03.2017 12:12
Letzter Beitrag: Tommy56
  Problem mit Sketch senden an Uno feuerwehr 5 522 31.01.2017 20:41
Letzter Beitrag: Tommy56
  [Gelöst] SD Card (Ethernet Shield) IO funktioniert nicht __jb__ 7 550 05.01.2017 09:51
Letzter Beitrag: rpt007
  Sketch geht,geht nicht? malsehen 0 255 25.12.2016 21:24
Letzter Beitrag: malsehen
  CP2102 und USB Host Shield ?? DL1AKP 0 146 01.12.2016 08:55
Letzter Beitrag: DL1AKP

Gehe zu:


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