Benutzer:Dominik Rebein: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 23: | Zeile 23: | ||
== Software== | == Software== | ||
Hier wird die Software beschrieben | Hier wird die Software beschrieben | ||
=== Arduino Programm=== | |||
<code> | |||
#if ARDUINO > 18 | |||
#include <SPI.h> // Für Arduino Version größer als 0018 | |||
#endif | |||
#include <Ethernet.h> | |||
#include <TextFinder.h> | |||
#include <SD.h> | |||
int temp=50; | |||
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x57, 0x90 }; // MAC-Adresse des Ethernet-Shield | |||
byte ip[] = { 192, 168, 0, 88 }; // IP zum aufrufen des Webservers | |||
byte sdPin = 4; // Pin der SD-Karte | |||
EthernetServer server(80); // Server port | |||
File webFile; | |||
void setup() | |||
{ | |||
Ethernet.begin(mac, ip); // Client starten | |||
server.begin(); // Server starten | |||
Serial.begin(9600); | |||
Serial.println("ARDUINO - STEUERUNG"); | |||
Serial.println("Initialisiere SD-Karte..."); | |||
if (!SD.begin(sdPin)) | |||
{ | |||
Serial.println(" - Initialisierung der SD-Karte fehlgeschlagen!"); | |||
return; | |||
} | |||
Serial.println(" - SD-Karte erfolgreich initialisiert."); | |||
if (!SD.exists("index.htm")) | |||
{ | |||
Serial.println(" - Datei (index.htm) wurde nicht gefunden!"); | |||
return; | |||
} | |||
Serial.println(" - Datei (index.htm) wurde gefunden."); | |||
Serial.println(); | |||
Serial.println("Verbraucher schalten"); | |||
} | |||
void loop() | |||
{ | |||
EthernetClient client = server.available(); // Auf Anfrage warten | |||
if(client) | |||
{ | |||
/***************************************** | |||
Ausgänge über das Webformular steuern * | |||
*****************************************/ | |||
TextFinder finder(client); | |||
if(finder.find("GET")) | |||
{ | |||
while(finder.findUntil("pin", "\n\r")) | |||
{ | |||
char typ = client.read(); | |||
int pin = finder.getValue(); | |||
int val = finder.getValue(); | |||
if(typ == 'D') | |||
{ | |||
pinMode(pin, OUTPUT); | |||
digitalWrite(pin, val); | |||
Serial.print(" - D"+String(pin)); | |||
} | |||
else if(typ == 'A') | |||
{ | |||
analogWrite(pin, val); | |||
Serial.print(" - A"+String(pin)); | |||
} | |||
else Serial.print(" - Falscher Typ"); | |||
if(val==1) Serial.println(" ein"); else Serial.println(" aus"); | |||
} | |||
} | |||
/************************ | |||
Webformular anzeigen * | |||
************************/ | |||
boolean current_line_is_blank = true; // eine HTTP-Anfrage endet mit einer Leerzeile und einer neuen Zeile | |||
while (client.connected()) | |||
{ | |||
if (client.available()) // Wenn Daten vom Server empfangen werden | |||
{ | |||
char c = client.read(); // empfangene Zeichen einlesen | |||
if (c == '\n' && current_line_is_blank) // wenn neue Zeile und Leerzeile empfangen | |||
{ // Standard HTTP Header senden | |||
client.println("HTTP/1.1 200 OK"); | |||
client.println("Content-Type: text/html"); | |||
client.println("Connection: close"); | |||
client.println(); | |||
// Website von SD-Karte laden | |||
webFile = SD.open("index.htm"); // Website laden | |||
if (webFile) | |||
{ | |||
while(webFile.available()) | |||
{ | |||
client.write(webFile.read()); // Website an Client schicken | |||
} | |||
webFile.close(); | |||
} | |||
break; | |||
} | |||
if (c == '\n') | |||
{ | |||
current_line_is_blank = true; | |||
} | |||
else if (c != '\r') | |||
{ | |||
current_line_is_blank = false; | |||
} | |||
} | |||
} | |||
delay(1); | |||
client.stop(); | |||
} | |||
} | |||
</code> |
Version vom 6. Januar 2014, 11:45 Uhr
Im Rahmen unseres Elektrotechnik Fachpraktiukums war es unsere Aufgabe einen Android-App zu entwickeln mit der ein Pelletgrill gesteuert werden kann. Die Gruppenmitglieder sind: Kathrin Liedmann, Benedikt Schulte und Dominik Rebein.
Einleitung
Hier kommt die Einleitung des Projekts
Hardware
Hier wird die Hardware beschrieben
Arduino
HAMA WLAN Adapter
Software
Hier wird die Software beschrieben
Arduino Programm
- if ARDUINO > 18
- include <SPI.h> // Für Arduino Version größer als 0018
- endif
- include <Ethernet.h>
- include <TextFinder.h>
- include <SD.h>
int temp=50;
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x57, 0x90 }; // MAC-Adresse des Ethernet-Shield
byte ip[] = { 192, 168, 0, 88 }; // IP zum aufrufen des Webservers
byte sdPin = 4; // Pin der SD-Karte
EthernetServer server(80); // Server port
File webFile;
void setup()
{
Ethernet.begin(mac, ip); // Client starten
server.begin(); // Server starten
Serial.begin(9600);
Serial.println("ARDUINO - STEUERUNG");
Serial.println("Initialisiere SD-Karte...");
if (!SD.begin(sdPin))
{
Serial.println(" - Initialisierung der SD-Karte fehlgeschlagen!");
return;
}
Serial.println(" - SD-Karte erfolgreich initialisiert.");
if (!SD.exists("index.htm"))
{
Serial.println(" - Datei (index.htm) wurde nicht gefunden!");
return;
}
Serial.println(" - Datei (index.htm) wurde gefunden.");
Serial.println();
Serial.println("Verbraucher schalten");
}
void loop()
{
EthernetClient client = server.available(); // Auf Anfrage warten
if(client)
{
/*****************************************
Ausgänge über das Webformular steuern *
*****************************************/
TextFinder finder(client);
if(finder.find("GET"))
{
while(finder.findUntil("pin", "\n\r"))
{
char typ = client.read();
int pin = finder.getValue();
int val = finder.getValue();
if(typ == 'D')
{
pinMode(pin, OUTPUT);
digitalWrite(pin, val);
Serial.print(" - D"+String(pin));
}
else if(typ == 'A')
{
analogWrite(pin, val);
Serial.print(" - A"+String(pin));
}
else Serial.print(" - Falscher Typ");
if(val==1) Serial.println(" ein"); else Serial.println(" aus");
}
}
/************************
Webformular anzeigen *
************************/
boolean current_line_is_blank = true; // eine HTTP-Anfrage endet mit einer Leerzeile und einer neuen Zeile
while (client.connected())
{
if (client.available()) // Wenn Daten vom Server empfangen werden
{
char c = client.read(); // empfangene Zeichen einlesen
if (c == '\n' && current_line_is_blank) // wenn neue Zeile und Leerzeile empfangen
{ // Standard HTTP Header senden
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
// Website von SD-Karte laden
webFile = SD.open("index.htm"); // Website laden
if (webFile)
{
while(webFile.available())
{
client.write(webFile.read()); // Website an Client schicken
}
webFile.close();
}
break;
}
if (c == '\n')
{
current_line_is_blank = true;
}
else if (c != '\r')
{
current_line_is_blank = false;
}
}
}
delay(1);
client.stop();
}
}