INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
ESP8266 Wifi modul
31.12.2014, 13:56
Beitrag #9
RE: ESP8266 Wifi modul
Hallo hilgi,
am besten du stellst mal einen kompletten String rein und sagst dazu noch was du von diesem String auslesen möchtest. Da der String ja auf einer Variable liegen wird, wäre es gut wenn die Deklaration der Variable mit bei wäre.

Dann gucken wir mal was wir "zusammenhacken" können und schreiben noch sinnvolle Kommentare dazu Smile

Grüße RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2015, 18:19
Beitrag #10
RE: ESP8266 Wifi modul
he

habe mich hiermit durch geschlagen Tongue

Code:
#include <SoftwareSerial.h>

SoftwareSerial esp(2,3);

String vergleich = "";

int rhl = 4;
int rhr = 5;
int rvl = 6;
int rvr = 7;

char a = 0;
char b = 0;
char c = 0;
char d = 0;

char count = 0;

void setup()
{
  Serial.begin(9600);
  esp.begin(9600);
  
  pinMode(rhl, OUTPUT);
  pinMode(rhr, OUTPUT);
  pinMode(rvl, OUTPUT);
  pinMode(rvr, OUTPUT);
  
  digitalWrite(rhl, HIGH);
  digitalWrite(rhr, HIGH);
  digitalWrite(rvl, HIGH);
  digitalWrite(rvr, HIGH);
  delay(3000);
  esp.println("AT+CWJAP=\"Fifi\",\"qwertzui\"");
  delay(5000);
  esp.println("AT+CIPMUX=1");
  delay(1000);
  esp.println("AT+CIPSERVER=1,8888");
  delay(500);
}

void loop()
{

  while(esp.available())
  {
    vergleich += (char)esp.read();
  }

if(vergleich!="")
{
  Serial.println(vergleich);
}

if(vergleich.indexOf("vl") > 0)
{
  if(a == 0)
  {
    digitalWrite(rvl, LOW);
    a = 1;
  }
  else
  {
    digitalWrite(rvl, HIGH);
    a = 0;
  }
  }

if(vergleich.indexOf("vr") > 0)
{
  if(b == 0)
  {
    digitalWrite(rvr, LOW);
    b = 1;
  }
  else
  {
    digitalWrite(rvr, HIGH);
    b = 0;
  }
  }

if(vergleich.indexOf("hl") > 0)
{
  if(c == 0)
  {
    digitalWrite(rhl, LOW);
    c = 1;
  }
  else
  {
    digitalWrite(rhl, HIGH);
    c = 0;
  }
  }

if(vergleich.indexOf("hr") > 0)
{
  if(d == 0)
  {
    digitalWrite(rhr, LOW);
    d = 1;
  }
  else
  {
    digitalWrite(rhr, HIGH);
    d = 0;
  }
  }

if(vergleich.indexOf("aan") > 0)
{
  digitalWrite(rhl, LOW);
  digitalWrite(rhr, LOW);
  digitalWrite(rvl, LOW);
  digitalWrite(rvr, LOW);
  a = 1;
  b = 1;
  c = 1;
  d = 1;
}

if(vergleich.indexOf("aaus") > 0)
{
  digitalWrite(rhl, HIGH);
  digitalWrite(rhr, HIGH);
  digitalWrite(rvl, HIGH);
  digitalWrite(rvr, HIGH);
  a = 0;
  b = 0;
  c = 0;
  d = 0;  
}

vergleich = "";
delay(100);
}

ist leider nicht so elegant, vlt kann man das mit case noch professionalisieren? Tongue

is das soweit akzeptabel ? is ja immerhin selbst gemacht und... naja ich würd nich fragen wenn ich wüsste obs so auf dauer laufen wird

greetz

Nicht denken,...
...nachdenken... Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.01.2015, 13:32
Beitrag #11
RE: ESP8266 Wifi modul
(04.01.2015 18:19)Hilgi schrieb:  ist leider nicht so elegant, vlt kann man das mit case noch professionalisieren? Tongue
Hi,
naja, so schlecht ists nicht. Mit case kannst Du da nicht viel machen, da case nur mit "primitiven" Datentypen geht, was ein String eben nicht ist.
Das einzige Problem, das ich sehe, ist folgendes: Es kann u.U. passieren, dass während der "while(esp.available())"-Schleife noch nicht alle Daten da sind. Das wird durch das delay am Ende zwar etwas unwahrscheinlich, kann aber passieren.
Am einfachsten dürftest Du das vermeiden können, wenn Du erkennen kannst, dass eine Zeile zu Ende ist. Wahrscheinlich sendet das Modul am Ende ein CHR(10) oder CHR(13).
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
12.01.2015, 15:21
Beitrag #12
RE: ESP8266 Wifi modul
(05.01.2015 13:32)Thorsten Pferdekämper schrieb:  
(04.01.2015 18:19)Hilgi schrieb:  ist leider nicht so elegant, vlt kann man das mit case noch professionalisieren? Tongue
Hi,
naja, so schlecht ists nicht. Mit case kannst Du da nicht viel machen, da case nur mit "primitiven" Datentypen geht, was ein String eben nicht ist.
Das einzige Problem, das ich sehe, ist folgendes: Es kann u.U. passieren, dass während der "while(esp.available())"-Schleife noch nicht alle Daten da sind. Das wird durch das delay am Ende zwar etwas unwahrscheinlich, kann aber passieren.
Am einfachsten dürftest Du das vermeiden können, wenn Du erkennen kannst, dass eine Zeile zu Ende ist. Wahrscheinlich sendet das Modul am Ende ein CHR(10) oder CHR(13).
Gruß,
Thorsten


hi danke für den tip werde ich mal ausprobieren, soweit gehts ja und ein glück ist es nicht so viel code das packt der arduino ja Tongue

ich hab halt nur das gefühl das geht professioneller Tongue aber so is das als laie ne Smile
danke für die tips

Nicht denken,...
...nachdenken... Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.02.2015, 16:27 (Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2015 16:30 von Hilgi.)
Beitrag #13
RE: ESP8266 Wifi modul
hi,

liege zz krank im bett und guck mir n paar codes nochmal an, ich hab hier noch ne idee zu und wollte wissen ob das funktioniert...

compilieren tut ers aber ich kanns zz nich aus probieren, is das möglich bzw richtig ?

liebe grüsse
hilgi


Code:
#include <SoftwareSerial.h>

SoftwareSerial esp(2,3);

String vergleich = "";


int rhl = 4;
int rhr = 5;
int rvl = 6;
int rvr = 7;

char a = 0;
char b = 0;
char c = 0;
char d = 0;

char count = 0;

void setup()
{
  Serial.begin(9600);
  esp.begin(9600);
  
  pinMode(rhl, OUTPUT);
  pinMode(rhr, OUTPUT);
  pinMode(rvl, OUTPUT);
  pinMode(rvr, OUTPUT);
  
  digitalWrite(rhl, HIGH);
  digitalWrite(rhr, HIGH);
  digitalWrite(rvl, HIGH);
  digitalWrite(rvr, HIGH);
  delay(3000);
  esp.println("AT+CWJAP=\"Fifi\",\"qwertzui\"");
  delay(5000);
  esp.println("AT+CIPMUX=1");
  delay(1000);
  esp.println("AT+CIPSERVER=1,8888");
  delay(500);
}

void loop()
{

  while(esp.available())
  {
    vergleich += (char)esp.read();
  }

if(vergleich!="")
{
  Serial.println(vergleich);
}

if(vergleich.indexOf("vl") > 0)
{
  Schalter(a, rvl);
}

if(vergleich.indexOf("vr") > 0)
{
  Schalter(b, rvr);
}

if(vergleich.indexOf("hl") > 0)
{
  Schalter(c, rhl);
}

if(vergleich.indexOf("hr") > 0)
{
  Schalter(d, rhr);
}

if(vergleich.indexOf("aan") > 0)
{
  digitalWrite(rhl, LOW);
  digitalWrite(rhr, LOW);
  digitalWrite(rvl, LOW);
  digitalWrite(rvr, LOW);
  a = 1;
  b = 1;
  c = 1;
  d = 1;
}

if(vergleich.indexOf("aaus") > 0)
{
  digitalWrite(rhl, HIGH);
  digitalWrite(rhr, HIGH);
  digitalWrite(rvl, HIGH);
  digitalWrite(rvr, HIGH);
  a = 0;
  b = 0;
  c = 0;
  d = 0;  
}

vergleich = "";
delay(100);
}

void Schalter(int Test, int Pin)
{
  if (Test == 1)
  {
    digitalWrite(Pin, HIGH);
    Test = 0;
  }
    else
  {
    digitalWrite(Pin, LOW);
    Test = 1;
  }
}

Nicht denken,...
...nachdenken... Rolleyes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ESP32 Wie die Antwortzeit kurz halten bei WiFi oder BT rev.antun 6 182 28.11.2017 08:31
Letzter Beitrag: rev.antun
  "struct" wird auf einem ESP8266 anders behandelt wie auf einem Arduino ardu_arne 6 406 23.10.2017 12:07
Letzter Beitrag: ardu_arne
  ESP8266 als Brücke zum Hotel-Wifi Rasalino 9 918 11.10.2017 05:28
Letzter Beitrag: Gelegenheitsbastler
  Debug mit Telnet ESP8266 (und ESP32 ungetestet)) Tommy56 2 426 26.09.2017 19:16
Letzter Beitrag: Tommy56
  ESP8266 - gelegentliche Verbindungsabbrüche ardu_arne 27 2.301 25.09.2017 10:58
Letzter Beitrag: ardu_arne
Lightbulb Sonoff WiFi Wireless Switch per Webserver vom Tablet oder Smartphone aus schalten Fips 1 1.356 12.09.2017 20:45
Letzter Beitrag: Fips
  Welche OneWire Library für ESP8266-12E? ardu_arne 7 855 30.07.2017 20:21
Letzter Beitrag: Tommy56
  esp8266 OTA Uploadproblem(chen) ardu_arne 24 2.101 28.07.2017 22:22
Letzter Beitrag: Tommy56
  Einfacher Webserver Nodemcu Esp8266 Onboard Led (Pin) schalten Fips 0 1.132 18.07.2017 08:10
Letzter Beitrag: Fips
Lightbulb SPIFFS DOWNLOAD UPLOAD & DELETE Esp8266 NodeMCU Fips 24 2.248 14.07.2017 07:24
Letzter Beitrag: Fips

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste