Benutzer:Dominik Rebein: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
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, 10: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

  1. if ARDUINO > 18
  2. include <SPI.h> // Für Arduino Version größer als 0018
  3. endif
  4. include <Ethernet.h>
  5. include <TextFinder.h>
  6. 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();
 }

}