Show Posts
Pages: [1]
1  International / Deutsch / Re: Ethershield, HTTP Fragen on: February 08, 2012, 12:04:20 pm
Ahhhh smiley-eek Vielen Dank!
Okay, ich werde das morgen mal versuchen einzubauen.
Ja grundlegend ist mein Passwort in der URL enthalten, aber natürlich erst nachdem ich es eingegeben habe, also für mich ist das okay.
Das heist beim Aufruf einer Seite nach dem Login gebe ich einfach mein Passwort mit?

Wie sieht meine Probelmatik mit den "Links" aus?
Ich brauche also nach dem Login eine Liste von Links haben hinter denen sich die einzelnen Funktionen verstecken, da müsste ich ja auch das Passwort mitgeben? ;)Gruß
2  International / Deutsch / Ethershield, HTTP Fragen on: February 08, 2012, 09:55:31 am
Guten Tag alle zusammen,
da mein altes Thema noch im Alten Forum hängt kann ich dort nicht weiter posten.
Aber grundlegend habe ich versucht mit dem Arduino UNO und einem Ethernetshield einen Webserver zu errichten.
Dies ist mir auch gelungen.
Grundlegende Problematik war früher das ich eine Passwortabfrage realisieren wollte via " GET", dies hat auch schlussendlich geklappt.
Jedoch, neues Jahr neue Herrausforderungen.

Die Abfrage mit GET geht zwar aber nun will ich mehr, undzwar eine " Richtige" internetseite.
Nach diesem Motto : Arduino wird via Ip im Browser aufgerufen und es zeigt sich eine "Log In" Page.
Nachder erfolgreichen Eingabe des Passworts möchte ich zu ein paar "Links" gelangen : Temperatur Drinnen / Draußen / Luffeuchtigkeit/ IO Controll.


Problem ist in dem Zusammenhang das ich Zwar die Login seite bekomme jedoch scheitert es dann schon an den Links.
Also habe ich einfach mal alle Daten ( Temp, innen aussen, IO controll usw ) auf die Seite nach dem Einloggen gepackt.
Nicht schön aber geht erstmal, das IO Controll geht Via Checkboxen..  sobalt ich eine Anhake fliege ich wieder auf die "Login" page,
Ist auch klar weil in der URL nichtmehr das Passwort steht was ich mit GET abfrage..
Wie lässt sich das ganze lösen?

Ich hatte mal den Ansatz via POST jedoch weiß ich weder genaue syntax noch richtige Anwendung.

Code etwas unsauber, jedoch funktional. ( Luftfeuchtemessung ist zurzeit noch nicht integriert)

Code:
#include <String.h>
#include <Wire.h>
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#define ONE_WIRE_BUS 7
DeviceAddress insideThermometer, outsideThermometer;
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
float tempC = sensors.getTempC(insideThermometer);
float Temperatur;

//##################################################################################################

byte mac[] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};         // MAC Adresse des Arduino Boards
byte ip[] = {192, 168, 178, 5 };         // IP Adresse des Arduino Boards
byte gateway[] = {192, 168,178, 1 }; // Gateway Fritzbox
byte subnet[] = {255, 255, 255, 0 }; // Subnet Maske
Server server = Server(80);                 // Port Einstellung (Standard 80)

//##################################################################################################
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);       


//##################################################################################################

int ledPin = 5;
String readString = String(30);
boolean LEDON = false;

//##################################################################################################

////
String PW= "POST /?Passwort=Passwort";
////



void setup() {
 
 
  Wire.begin();
  Ethernet.begin(mac, ip);//, gateway, subnet);                // Ethernet starten
  server.begin();        // Auf Clients warten
  Serial.begin(9600);
  sensors.begin();
  lcd.begin(16, 2);
  pinMode(10,OUTPUT);

}



void loop() {

 

  float tempC = sensors.getTempC(insideThermometer);
  Client client = server.available();                // Prüfen, ob Client Seite aufruft
   
  if (client) {
    while (client.connected()) {
   if (client.available()) {
    char c = client.read();
   if (readString.length() < 30)
      {
       
      readString = readString + c;
      } 
     Serial.print(c);
       
        if (c == '\n') {
           
         
                   
          if(readString.indexOf("LED")>0)
           {
           
             digitalWrite(ledPin, HIGH);   
             LEDON = true;
           }
           if(readString.indexOf("LED")<1)
         {
         digitalWrite(ledPin, LOW);   
             LEDON = false;
         }
   
//############################################################################################


    server.print("HTTP/1.0 200 OK\r\nServer: arduino\r\nContent-Type: text/html\r\n\r\n");
    server.print("<HTML><HEAD><TITLE>");
    server.print("Arduino Temperatur");
    server.print("</TITLE>");
    server.print("</HEAD><BODY>");
    server.print("<body bgcolor='#CCFFCC'>");
    server.print("<b> <font color='#2076CD'>  Arduino Temperaturmonitor  </font color></b><br />");
    server.print("<br>");
    server.print("ArduinoUNO Temperaturen :  ");
    server.println("<form method=post/getvalue name=PASSWORTABF >Passwort <input name=Passwort type=text ><br><input type=submit value=Bestätigen></form>");
   
    if(readString.startsWith(PW))
    {
   
    {
    if (tempC < frierpunkt)
    server.print( "<font color='#FF0000'> Achtung Glatteis Gefahr!</font color>" );
    }
   
   
    server.print("<br>");
    server.print("<br>");
    server.print("Aussen Temperatur ");
    server.print(tempC);
    server.print(" C");
    server.print("<br>");
    server.print("<br>");
    server.print("Zimmer Temperatur ");
    server.print(Temperatur);
    server.print(" C");
    server.print("<meta http-equiv= refresh content=100; URL=http://19.168.178.5/");
    server.print(" Celsius<br /> ");
    server.print(" </BODY></HTML> ");
    server.print("<br>");
    server.print("<br>");     

//!!       
// Hier startet die zurzeit auskommentierte Checkbox abfrage!
//!!
   
         // server.println("<form method=get name=LED><input type=checkbox name=Passwort/Check value=1>LED<br><input type=submit value=Besaetigen></form>"); 
     
   
          // server.println("<br />");
          //server.print("LED Status: ");
          //if (LEDON)
          //server.println("<font color='green' size='3'>EIN");
          // else
          //server.println("<font color='red' size='3'>AUS");
   
      }
    readString="";
    delay(10); // Kurz warten, um Daten zu senden
    client.stop(); // Verbindung mit dem Client trennen
   
}



   }}}

{


Temperatur = analogRead(A3);         
Temperatur = (5.0 * Temperatur *100.0 )/1024.0;
Serial.print (Temperatur);
}   

{
  if (!sensors.getAddress(insideThermometer, 0));
  sensors.requestTemperatures();
  Serial.println(sensors.getTempCByIndex(0)); 
  float tempC = sensors.getTempC(insideThermometer);
}
 
 
 
 lcd.setCursor(0, 0);
 lcd.print("In");
 
 lcd.setCursor(4, 0);
 lcd.print(Temperatur);

 lcd.setCursor(0, 1);
 lcd.print("Out");
 
 lcd.setCursor(4, 1);
 lcd.print(tempC);

lcd.setCursor(9, 1);
 lcd.print("  ");


//{
 // if(tempC >weiss)
 
  //{
  //digitalWrite(5,HIGH);
 // digitalWrite(6,HIGH);
  //digitalWrite(7,HIGH);
//}

//if(tempC < blau)

//{
 //digitalWrite(5,LOW);
 //digitalWrite(6,HIGH);
 // digitalWrite(7,LOW);


//}


//if(tempC >gelb)

//{
 //digitalWrite(5,HIGH);
 // digitalWrite(6,LOW);
  //digitalWrite(7,HIGH);


//}

//if(tempC >rot)

//{
 //digitalWrite(5,LOW);
 //digitalWrite(6,LOW);
  //digitalWrite(7,HIGH);


//}
//}
}
                             
3  International / Deutsch / USB Hostshield Wiimote Problem on: June 21, 2011, 03:03:20 pm
Guten Abend,

ich habe mir das USB - Hostshield von Sparkfun.com besorgt.
Das ganze mit einem Bluetoothdongle kombiniert und mit meiner Wiimote verbunden.
(Nach dem ich den PS3 Controller unter keinen Umständen zu irgendwelchen Ausgaben bringen konnte)
Das ganze ( Arduino-Usb-Bluetooth-Wiimote) habe ich von hier "abgekupfert" :http://www.circuitsathome.com/mcu/ps3-and-wiimote-game-controllers-on-the-arduino-host-shield-part-1

Ein Sketch konnte ich auch noch ergattern, da kommen wir zu meinem Problem.
Ich möchte gerne mit z.b. der "B" Taste einen Pin auf HIGH setzen, sobalt ich "B" loslasse soll der Besagt Pin auf LOW gesetzt werden. 
Ansich sehr simpel, bedarf eig. keiner neuen Topic.
Jedoch kann ich absoulute nicht die "B" taste in dem Sketch finden, es gibt die Zeile "#define buttonB_pressed      (hid_buttons & 1 << 10)"
Wenn ich buttonB_pressed jedoch nutze stürzt der MC einfach ab.
Ich habe auch (hid_buttons, HEX), versucht zu nutzen ( Der "B" button hat die 400)
jedoch bekomme ich dort garkeinen Rückgabewert.

Möglicherweise liegt es an der Spätenstunde aber ich finde einfach keine Lösung. smiley-cry

Sketch:
https://github.com/ribbotson/USB-Host/blob/master/examples/wiiblue.pde

4  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 20, 2011, 03:51:09 pm
Sehr schön mit GET =D
Werde ich am Wochenende mal ausprobieren!

Danke !! smiley
5  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 08, 2011, 06:22:59 pm
Sorry, Doppelpost  >smiley-sad

Nja, ich habe jetzt eine HTML textzeile. diese lese ich blöderweise als String aus. (readString.indexOf).

Kann mir jem. readString.indexOf erklären?  :-/
Ich kann nicht ordendlich auf einen Zahlenwert vergleichen.
Oder muss das ganze erst in Int?

6  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 08, 2011, 12:07:21 pm
Alles klar, habe mir das ganze angelesen. Klappt leider nicht auf der Aktuellen version 0022.

Klappt doch durch leichte Modifikationen.
Gut ich kann nun eine Checkbox auslesen.
Wenn ich jetzt eine "textbox" auslesen und vergleichen kann habe ich ja schon meine "Passwortkontrolle"
Mal sehen wie ich das anstelle, werde ich morgen mal probieren
Irgendwe schon ideen?


und Thx @ all
7  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 08, 2011, 07:49:59 am
Ok, ich bin gerade wohl sehr dumm.
Wie bekomme ich diese Datei geöffnet?
8  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 08, 2011, 05:58:42 am
Also danke erstmal für die Antwort!

Variante2. kommt eig. nicht infrage.
Zu Variante 1, hast du dazu vill. einen kurzen beispielcode?

Ich habe auch noch etwas gefunden und wollte mal nachfragen ob ich einen php Code auf dem Arduino zum rennen bringen kann?
Denkanstoss war bei mir der angehängte Code.
Dort wird die Auth. relativ einfach realisiert denke ich.

Code:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) &#123;
    
header('WWW-Authenticate: Basic realm="My Realm"');
    
header('HTTP/1.0 401 Unauthorized');
    echo 
'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
    exit;
&
#125; else &#123;
    
echo "<p>Hallo &#123;$_SERVER['PHP_AUTH_USER']&#125;.</p>";
    echo 
"<p>Sie gaben &#123;$_SERVER['PHP_AUTH_PW']&#125; als Passwort ein.</p>";
&
#125;
?>

9  Forum 2005-2010 (read only) / Deutsch / Re: Probleme Mit Arduino Ethernetshield. on: January 07, 2011, 09:14:29 am
@ apogee

Ja das habe ich auch schon gefunden bin mir aber mit der Umsetzung total unsicher, ich mein ich kann das ja nich einfach kopieren und gut ist.

@Poldi

ich habe mir dein projekt auch gestern mal runtergeladen, jedoch ist es (zumind. bei mir) relativ instabiel.
Ich habe noch meine Temp. Auslesung eingefügt danach hat der Controller nur noch unsinn gemacht.
Manchmal komplett absturz, manchmal die Seite 5-6 fach angezeigt, manchmal gibgs 10 min glatt..
Ich werde mich aber auch mal zu deinem Thema melden.

Danke für die Links !
10  Forum 2005-2010 (read only) / Deutsch / Probleme Mit Arduino Ethernetshield. on: January 07, 2011, 07:26:00 am
Guten Tag,

ich beschäftige mich seit einigenwochen mit dem Arduino UNO.
Vor ein paar tagen habe ich mir dann das zugehörige Ethernetshield besorgt.
Grundlegend war dies auch kein Problem ans Internet zu bekommen.
Ich kann auf meiner Dyndns Seite jetzt immer die aussen und die zimmer Temp. sehen.
Jedoch möchte ich das Ganze mit einem Passwort sichern.
Frage ist jetzt: Kann ich eine htaccess Datei erzeugen und auf dem Arduino verwenden? (ich denke nicht)
Wie kann ich das ganze System sonst mit einem Passwort schützen?
Hat jem. vill. dazu ein beispiel Code?


Pages: [1]