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
  Anfängerfrage-Projekte zusammenfügen aber wie? Opa-Bernd 5 140 19.11.2017 19:33
Letzter Beitrag: Tommy56
  I2C Slave Empfang geht aber Senden? Franz54 9 344 09.11.2017 22:05
Letzter Beitrag: Tommy56
  Aptotec V1.2 Can Bus Shield / Auto Marc2014 23 1.136 01.11.2017 07:30
Letzter Beitrag: Bitklopfer
  Arduino MEGA + EthernetShield W5100 und weiteres SPI Device ? Stargazer 12 578 11.10.2017 19:03
Letzter Beitrag: Tommy56
  Kommunikation über das WiFi-Shield Flap 13 1.546 12.09.2017 22:12
Letzter Beitrag: Flap
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 424 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Brauche einen Sketch zum Testen HDT 12 872 22.06.2017 07:37
Letzter Beitrag: HDT
  Sketch ändern für ACS712 Sandro2504 3 357 04.06.2017 05:55
Letzter Beitrag: Bitklopfer
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 1.146 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 480 10.04.2017 12:20
Letzter Beitrag: hotsystems

Gehe zu:


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