Arduino Uno mit offizellem Wifi shield LED Ansteuern

Hallo Zusammen

Wie kann ich mit dem offiziellen Wifi Shield von Arduino und einem Arduino Uno eine LED einschalten?

Ich habe bereits alles ausprobiert mit Ardumote, OSCtouch und mit Webserver. Jedoch finde ich immer nur Code Samples mit Ethernet shield, diese habe ich versucht anzupassen an die Wifi lib. Jedoch hat es bis jetzt noch nicht funktioniert. Kompilieren und Upload funktioniert immer, jedoch macht der Arduino nicht was er soll.

Hat jemand von euch erfahrung mit dem offizellen Wifi Shield welches seit kurzem Erhältlich ist?

Gruss kuppi

Niemand eine Idee?

Poste doch mal den Code, den Du schon hast und der sich zwar compilieren und auf den Arduino übertragen läßt, aber noch nicht macht was er soll.
Ist denn Dein Arduino mit dem Shield per WLAN wenigstens erreichbar (ping), oder fehlt es da schon?
Mario.

Edit: Ich hab gerade mal geschaut, bei den Beispielen ist doch ein Webserver-Example dabei, wo ist das Problem das anzupassen?

Hier der Code:

//Werbserver funktioniert, jedoch Ausgang geht nicht auf on

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "ixv-90240";
char pass[] = "g65y-j31q-qgje-qsjf";

WiFiServer server(80);
int z=0;
int Pin0 = 0;
int Pin1 = 1;
int Pin2 = 2;
int Pin3 = 3;

String readString = String(100); // string for fetching data from address
boolean Pin0ON = false; // Status flag
boolean Pin1ON = false;
boolean Pin2ON = false; // Status flag
boolean Pin3ON = false;

void setup(){
WiFi.begin(ssid, pass);
delay(10000);
server.begin();
pinMode(Pin0, OUTPUT);
pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);

Serial.begin(9600); }

void loop(){

if(z==0)
{
IPAddress ip = WiFi.localIP(); //Variable ip vom Typ IPAdress erhält die IP Adresse von Wifishield
Serial.print("IP Adresse: "); //Text "IP Adresse:" wird an Konsole gesendet
Serial.println(ip);
z=1;
}
// Create a client connection
WiFiClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();

//read char by char HTTP request
if (readString.length() < 100) {

//store characters to string
// readString.append(c); removed by Katsu
readString = readString + c; // insert by Katsu
// very simple but it works...
}

Serial.print(c); //output chars to serial port

if (c == '\n') { //if HTTP request has ended

// readString.contains() replaced with readString.indexOf(val) > -1 by Katsu
// indexOf locates a character or String within another String.
// Returns the index of val within the String, or -1 if not found.
if(readString.indexOf("0=ein") >-1) {
digitalWrite(Pin0, HIGH);
Serial.println("Pin 3 eingeschaltet!");
Pin0ON = true;
}
if(readString.indexOf("0=aus") >-1){
digitalWrite(Pin0, LOW);
Serial.println("Pin 0 ausgeschaltet!");
Pin0ON = false;
}
if(readString.indexOf("1=ein") > -1) {
digitalWrite(Pin1, HIGH);
Serial.println("Pin 1 eingeschaltet!");
Pin1ON = true;
}
if(readString.indexOf("1=aus") > -1){
digitalWrite(Pin1, LOW);
Serial.println("Pin 1 ausgeschaltet!");
Pin1ON = false;
}
///////////

if(readString.indexOf("2=ein") > -1) {
digitalWrite(Pin2, HIGH);
Serial.println("Pin 2 eingeschaltet!");
Pin2ON = true;
}
if(readString.indexOf("2=aus") > -1){
digitalWrite(Pin2, LOW);
Serial.println("Pin 2 ausgeschaltet!");
Pin2ON = false;
}
if(readString.indexOf("3=ein") > -1) {
digitalWrite(Pin3, HIGH);
Serial.println("Pin 3 eingeschaltet!");
Pin3ON = true;
}
if(readString.indexOf("3=aus") > -1){
digitalWrite(Pin3, LOW);
Serial.println("Pin 3 ausgeschaltet!");
Pin3ON = false;
}
//////////
if(readString.indexOf("allon=Alles+ein") > -1){
digitalWrite(Pin0, HIGH);
digitalWrite(Pin1, HIGH);
digitalWrite(Pin2, HIGH);
digitalWrite(Pin3, HIGH);

Serial.println("Alles eingeschaltet");

Pin0ON = true;
Pin1ON = true;
Pin2ON = true;
Pin3ON = true;
}
//////////
if(readString.indexOf("alloff=Alles+aus") > -1){
digitalWrite(Pin0, LOW);
digitalWrite(Pin1, LOW);
digitalWrite(Pin2, LOW);
digitalWrite(Pin3, LOW);

Serial.println("Alles ausgeschaltet");

Pin0ON = false;
Pin1ON = false;
Pin2ON = false;
Pin3ON = false;
}

//--------------------------HTML------------------------
client.println("HTTP/1.1 200 OK");

client.println("Content-Type: text/html");

client.println();

client.print("");

client.print("Poldis Arduino Webserver in Andreas Version");

client.println("");

client.println("Poldis Arduino Webserver in Andreas Version");
//Tabelle
client.println("");

client.println("

");

client.println("

");

client.println("

");

if (Pin0ON)
client.println("

");
else
client.println("");

client.println("

");

client.println("

");

client.println("

");

client.println("

");

if (Pin1ON)
client.println("

");
else
client.println("");

client.println("

");

client.println("

");

client.println("

");

client.println("

");

if (Pin2ON)
client.println("

");
else
client.println("");

client.println("

");

client.println("

");

client.println("

");

client.println("

");

if (Pin3ON)
client.println("

");
else
client.println("");

client.println("

");

client.println("

Ausgang 0

ON OFF
Ausgang 1 ON OFF
Ausgang 2 ON OFF
Ausgang 3 ON OFF
");

client.println("");
client.println("");

client.println("

");

client.println("");

//clearing string for next read
readString="";

//stopping client
client.stop();
}}}}}

Der Webserver funktioniert, jedoch lassen sich die Ausgänge nicht Ansteuern.

Der Webserver funktioniert, jedoch lassen sich die Ausgänge nicht Ansteuern.

Du müsstest schon etwas genauer werden. Welche URLs schickst Du an den Arduino und was ist die Reaktion auf der seriellen Schnittstelle? Was hast Du an den Ausgängen angeschlossen, um den Status zu prüfen? Welche Teile des Codes hast Du von der Ethernet-Version ändern müssen?

Und verwende die Code-Tags (der #-Button im Formular), damit der Code besser lesbar ist und vor allem nicht vom Tag-Parser verfremdet wird.

Was mir auffällt ist, das Du Pin 0 und Pin 1 verwendest. Gleichzeitig aber auch die Serielle Schnittstelle. Das beisst sich aber, den Pin 0 und Pin 1 sind RX und TX der seriellen Konsole.
Was ist denn an Deine Pin 0 bis Pin 3 angeschlossen, um zu sehen ob der Webserver schaltet. Hast die angeschlossenen "Geräte" (LED oder was auch immer) mal mit einem einfachen Sketch getestet, das tatsächlich beim Schalten der Pins etwas passiert?
Mario.

Hallo Kuppi,

habe genau die selben Probleme wie Du.

Habe bereits um die 10 Ethernetsketches versucht auf Wifi umzuschreiben, immer mit mäßigem Erfolg.

Es funktionierte immer nur teilweise.

Kann Dir gerne meine Codes posten, falls es interessiert.

Hast Du bereits Fortschritte erzielt?

Freue mich immer über neue Codeideen.

Viele Grüße.

Rokitz.