<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-test.hshl.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Grill_Arduino_Programmcode</id>
	<title>Grill Arduino Programmcode - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-test.hshl.de/wiki/index.php?action=history&amp;feed=atom&amp;title=Grill_Arduino_Programmcode"/>
	<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;action=history"/>
	<updated>2026-04-30T12:37:10Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in HSHL Mechatronik</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;diff=2784&amp;oldid=prev</id>
		<title>Dominik Rebein am 5. Februar 2014 um 18:16 Uhr</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;diff=2784&amp;oldid=prev"/>
		<updated>2014-02-05T18:16:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;amp;diff=2784&amp;amp;oldid=723&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Dominik Rebein</name></author>
	</entry>
	<entry>
		<id>https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;diff=723&amp;oldid=prev</id>
		<title>Dominik Rebein: Die Seite wurde neu angelegt: „&lt;pre&gt;  #if ARDUINO &gt; 18 #include &lt;SPI.h&gt; // FÃ¼r Arduino Version grÃ¶ÃŸer als 0018 #endif #include &lt;Ethernet.h&gt; #include &lt;TextFinder.h&gt; #include &lt;SD.h&gt;  …“</title>
		<link rel="alternate" type="text/html" href="https://wiki-test.hshl.de/wiki/index.php?title=Grill_Arduino_Programmcode&amp;diff=723&amp;oldid=prev"/>
		<updated>2014-01-15T11:43:28Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&amp;lt;pre&amp;gt;  #if ARDUINO &amp;gt; 18 #include &amp;lt;SPI.h&amp;gt; // FÃ¼r Arduino Version grÃ¶ÃŸer als 0018 #endif #include &amp;lt;Ethernet.h&amp;gt; #include &amp;lt;TextFinder.h&amp;gt; #include &amp;lt;SD.h&amp;gt;  …“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#if ARDUINO &amp;gt; 18&lt;br /&gt;
#include &amp;lt;SPI.h&amp;gt; // FÃ¼r Arduino Version grÃ¶ÃŸer als 0018&lt;br /&gt;
#endif&lt;br /&gt;
#include &amp;lt;Ethernet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;TextFinder.h&amp;gt;&lt;br /&gt;
#include &amp;lt;SD.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
boolean grillAn = false;&lt;br /&gt;
boolean statusrequest = true;  //Unterscheidung, ob Daten abgerufen werden oder die HTML Seite&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char actionString[16];&lt;br /&gt;
const int fileStringLength = 24;       // length of the file requested&lt;br /&gt;
const int typeLength = 6;&lt;br /&gt;
char requestTypeString[typeLength];&lt;br /&gt;
char fileString[fileStringLength];&lt;br /&gt;
&lt;br /&gt;
byte mac[] = {&lt;br /&gt;
  0x90, 0xA2, 0xDA, 0x0D, 0x57, 0x90 }; // MAC-Adresse des Ethernet-Shield&lt;br /&gt;
byte ip[]  = {&lt;br /&gt;
  192, 168, 0, 88 };                   // IP zum aufrufen des Webservers&lt;br /&gt;
byte sdPin = 4;                                      // Pin der SD-Karte&lt;br /&gt;
&lt;br /&gt;
EthernetServer server(80);                           // Server port&lt;br /&gt;
&lt;br /&gt;
File webFile;&lt;br /&gt;
&lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  Ethernet.begin(mac, ip); // Client starten&lt;br /&gt;
  server.begin();          // Server starten&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  Serial.println(&amp;quot;ARDUINO - STEUERUNG&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  Serial.println(&amp;quot;Initialisiere SD-Karte...&amp;quot;);&lt;br /&gt;
  if (!SD.begin(sdPin))&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot; - Initialisierung der SD-Karte fehlgeschlagen!&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println(&amp;quot; - SD-Karte erfolgreich initialisiert.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  if (!SD.exists(&amp;quot;index.htm&amp;quot;))&lt;br /&gt;
  {&lt;br /&gt;
    Serial.println(&amp;quot; - Datei (index.htm) wurde nicht gefunden!&amp;quot;);&lt;br /&gt;
    return;&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println(&amp;quot; - Datei (index.htm) wurde gefunden.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println(&amp;quot;Verbraucher schalten&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  EthernetClient client = server.available(); // Auf Anfrage warten&lt;br /&gt;
  int requestType = 0;   // what type of request (GET or POST);&lt;br /&gt;
  int requestedFileLength = 0;&lt;br /&gt;
&lt;br /&gt;
  if(client)&lt;br /&gt;
  {&lt;br /&gt;
&lt;br /&gt;
    /*****************************************&lt;br /&gt;
     * AusgÃ¤nge Ã¼ber das Webformular steuern  *&lt;br /&gt;
     *****************************************/&lt;br /&gt;
    TextFinder finder(client);&lt;br /&gt;
&lt;br /&gt;
    if(finder.getString(&amp;quot;&amp;quot;,&amp;quot;/&amp;quot;, requestTypeString,typeLength)){&lt;br /&gt;
      // Do something different for GET or POST:&lt;br /&gt;
      if(String(requestTypeString) == &amp;quot;GET &amp;quot; ) {&lt;br /&gt;
        requestType = 1;&lt;br /&gt;
      }&lt;br /&gt;
      else if(String(requestTypeString) == &amp;quot;POST &amp;quot;) {&lt;br /&gt;
        requestType = 2;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // gather what comes after the / into an array,&lt;br /&gt;
      // it&amp;#039;s the filename the client wants:&lt;br /&gt;
      requestedFileLength = finder.getString(&amp;quot;&amp;quot;, &amp;quot; &amp;quot;,&lt;br /&gt;
      fileString, fileStringLength);&lt;br /&gt;
&lt;br /&gt;
      switch (requestType) {&lt;br /&gt;
      case 1:    // GET, Daten/Seite abrufen&lt;br /&gt;
        if (requestedFileLength &amp;lt; 2)&lt;br /&gt;
        {&lt;br /&gt;
          statusrequest = false;&lt;br /&gt;
          Serial.println(&amp;quot;HTML Steuerungsseite ausgeben&amp;quot;);&lt;br /&gt;
        }else{&lt;br /&gt;
          statusrequest = true;&lt;br /&gt;
          Serial.println(&amp;quot;Status ausgeben&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        break;&lt;br /&gt;
      case 2:    //POST, Schaltvorgang durchfÃ¼hren&lt;br /&gt;
        //Hier wird nur nach der lÃ¤nge des anfragestrings unterschieden, da ein suchen in der anfrage nicht gut funktioniert&lt;br /&gt;
        Serial.println(requestedFileLength);&lt;br /&gt;
        switch (requestedFileLength){&lt;br /&gt;
          case 22:  // /?action=switchgrillon = 22 Zeichen&lt;br /&gt;
&lt;br /&gt;
            //TODO: Hier Code zum anschalten&lt;br /&gt;
            //aufruf als POST&lt;br /&gt;
&lt;br /&gt;
            grillAn = true;&lt;br /&gt;
            Serial.println(&amp;quot;Grill anschalten&amp;quot;);&lt;br /&gt;
            break;&lt;br /&gt;
          case 23:  // /?action=switchgrilloff = 21 Zeichen&lt;br /&gt;
&lt;br /&gt;
            //TODO: Der Code zum abschalten&lt;br /&gt;
            //aufruf als POST&lt;br /&gt;
&lt;br /&gt;
            grillAn = false;&lt;br /&gt;
            Serial.println(&amp;quot;Grill ausschalten&amp;quot;);&lt;br /&gt;
            break;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    /************************&lt;br /&gt;
     * Webformular anzeigen  *&lt;br /&gt;
     ************************/&lt;br /&gt;
    boolean current_line_is_blank = true;       // eine HTTP-Anfrage endet mit einer Leerzeile und einer neuen Zeile&lt;br /&gt;
&lt;br /&gt;
      while (client.connected())&lt;br /&gt;
    {&lt;br /&gt;
      if (client.available())                   // Wenn Daten vom Server empfangen werden&lt;br /&gt;
      {&lt;br /&gt;
        char c = client.read();                 // empfangene Zeichen einlesen&lt;br /&gt;
        if (c == &amp;#039;\n&amp;#039; &amp;amp;&amp;amp; current_line_is_blank) // wenn neue Zeile und Leerzeile empfangen&lt;br /&gt;
        { // Standard HTTP Header senden&lt;br /&gt;
&lt;br /&gt;
          switch (requestType) {&lt;br /&gt;
          case 1: //GET, entweder Status oder Datei ausgeben&lt;br /&gt;
            if(statusrequest){&lt;br /&gt;
              client.println(&amp;quot;HTTP/1.1 200 OK&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Content-Type: application/json&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Access-Control-Allow-Origin: *&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Connection: close&amp;quot;);&lt;br /&gt;
              client.println();&lt;br /&gt;
              client.print(&amp;quot;{\&amp;quot;temperature\&amp;quot; : \&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
              //TODO: Hier die Temperatur ausgeben&lt;br /&gt;
&lt;br /&gt;
              client.print(random(10,4000));&lt;br /&gt;
              client.print(&amp;quot;\&amp;quot;, \&amp;quot;grillstatus\&amp;quot;: \&amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
              //TODO: Hier den Grillstatus ausgeben&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
              client.print(grillAn ? &amp;quot;an&amp;quot; : &amp;quot;aus&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;\&amp;quot;}&amp;quot;);&lt;br /&gt;
            }else{&lt;br /&gt;
              // Website von SD-Karte laden&lt;br /&gt;
              client.println(&amp;quot;HTTP/1.1 200 OK&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Content-Type: text/html&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Access-Control-Allow-Origin: *&amp;quot;);&lt;br /&gt;
              client.println(&amp;quot;Connection: close&amp;quot;);&lt;br /&gt;
              client.println();&lt;br /&gt;
&lt;br /&gt;
              webFile = SD.open(&amp;quot;index.htm&amp;quot;);  // Website laden&lt;br /&gt;
              if (webFile)&lt;br /&gt;
              {&lt;br /&gt;
                while(webFile.available())&lt;br /&gt;
                {&lt;br /&gt;
                  client.write(webFile.read()); // Website an Client schicken&lt;br /&gt;
                }&lt;br /&gt;
                webFile.close();&lt;br /&gt;
              }&lt;br /&gt;
            }&lt;br /&gt;
            break;&lt;br /&gt;
          case 2: //POST, wir kennen keine FehlerfÃ¤lle beim umschalten, geben immer OK zurÃ¼ck ;)&lt;br /&gt;
            client.println(&amp;quot;HTTP/1.1 200 OK&amp;quot;);&lt;br /&gt;
            client.println(&amp;quot;Content-Type: application/json&amp;quot;);&lt;br /&gt;
            client.println(&amp;quot;Access-Control-Allow-Origin: *&amp;quot;);&lt;br /&gt;
            client.println(&amp;quot;Connection: close&amp;quot;);&lt;br /&gt;
            client.println();&lt;br /&gt;
            client.print(&amp;quot;{\&amp;quot;result\&amp;quot; : \&amp;quot;OK\&amp;quot;}&amp;quot;);&lt;br /&gt;
            break;&lt;br /&gt;
          }&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
        if (c == &amp;#039;\n&amp;#039;)&lt;br /&gt;
        {&lt;br /&gt;
          current_line_is_blank = true;&lt;br /&gt;
        }&lt;br /&gt;
        else if (c != &amp;#039;\r&amp;#039;)&lt;br /&gt;
        {&lt;br /&gt;
          current_line_is_blank = false;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    delay(1);&lt;br /&gt;
    client.stop();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Dominik Rebein</name></author>
	</entry>
</feed>