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
  Kommunikation über das WiFi-Shield Flap 13 1.104 12.09.2017 22:12
Letzter Beitrag: Flap
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 258 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Brauche einen Sketch zum Testen HDT 12 658 22.06.2017 07:37
Letzter Beitrag: HDT
  Sketch ändern für ACS712 Sandro2504 3 289 04.06.2017 05:55
Letzter Beitrag: Bitklopfer
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 908 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 358 10.04.2017 12:20
Letzter Beitrag: hotsystems
  Can-Bus Shield ok, aber keine Daten Clubsport 54 4.289 02.04.2017 22:28
Letzter Beitrag: Bitklopfer
  arduino sketch Fuhsering 11 610 30.03.2017 12:47
Letzter Beitrag: hotsystems
  Keypad Shield luj1990 11 566 29.03.2017 21:15
Letzter Beitrag: Tommy56
Sad Sketch funktioniert auf dem Mega 2560 nicht Frank1234 16 985 26.03.2017 14:15
Letzter Beitrag: oOSpikeOo

Gehe zu:


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