Softserial Problem

Hallo Leute,

Habe schon Kopfweh vom vielen testen und wende mich in meiner Not hier an Euch.

Es geht um Softserial an Arduino UnoR3 mit ESP8266. Ich möchte den Arduino per remotexy app bedienen, da am hard serial schon ein Nextion hängt bleibt nur noch die softserial Variante.

Nun ist es aber leider so, das zum Ersten die Kommunikation via remotexy mit hardserial läuft, mit softserial aber keine Antwort vom ESP kommt. ( Mit minimalen Beispiel sketches von remotexy gestestet)

Zum Zweiten ist es aber auch so das in einem softserial beispielsketch bei identen baud und port Einstellungen wie zuvor im remotexy sketch die erwarteten Antworten vom ESP kommen.

Ohne hier gleich das volle programm an daten loszulassen frage ich deshalb mal vorsichtig in die Allgemeinheit ob ein solches Problem mit remotexy vielleicht ja schon bekannt ist und es unbürokratische Hilfe dazu gibt?

Für hilfreiche Unterstützung wäre ich sehr dankbar,

Peter

Ein UNO R3 hat keinen EP8266.

Fallst Du damit meinst, dass Du die beiden verbunden hast, solltest Du uns sagen, welchen ESP8266 Du verwendest und wie Du den an den UNO R3 angeschlossen hast.

Gruß Tommy

Fournierrf5:
.....
Für hilfreiche Unterstützung wäre ich sehr dankbar,

Gibt es deine Beschreibung auch noch in verständlich ?

Wir brauchen ein Schaltbild, deinen Sketch und einen Hyperlink zur verwendeten Software (remotexy)

Fournierrf5:
... unbürokratische Hilfe dazu gibt?

Du musst keinen Antrag ausfüllen und auch keine Nummer ziehen.

Aber etwas verständlicher beschreiben könntest Du. Und das mit Sketch(en) und Schaltbild(ern) garnieren.

Gruß

Gregor

Guten Morgen,

Im Anhang 3 sketches mein Anschlussschema des ESP8266-01, für softserial dann natürlich an den jeweils definierten pins.

sketch "hardserial_xy" funtioniert

/*
   -- hardserial --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.3.1 or later version;
     - for iOS 1.3.5 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL

#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600
#define REMOTEXY_WIFI_SSID "YOUR_SSID"
#define REMOTEXY_WIFI_PASSWORD "YOUR_PASS"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,1,0,0,0,13,0,8,13,0,
  1,0,46,24,12,12,2,31,88,0 };
  
// this structure defines all the variables of your control interface 
struct {

    // input variable
  uint8_t button_1; // =1 if button pressed, else =0 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_BUTTON_1 13


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_BUTTON_1, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
  
  // TODO you loop code
  // use the RemoteXY structure for data transfer


}

sketch "softserial_ok" funtioniert

#include "SoftwareSerial.h"

SoftwareSerial esp8266(A5, A4); // RX, TX

void setup()
{
  Serial.begin(9600); // serial port used for debugging
  esp8266.begin(9600);  // your ESP's baud rate might be different
}

void loop()
{
  if(esp8266.available())  // check if the ESP is sending a message
  {
    while(esp8266.available())
    {
      char c = esp8266.read();  // read the next character.

      Serial.print(c);  // writes data to the serial monitor
    }
  }

  if(Serial.available())
  {
    delay(10);  // wait to let all the input command in the serial buffer
    // read the input command in a string
    String cmd = "";
    while(Serial.available())
    {
      cmd += (char)Serial.read();
    }
    // send to the esp8266
    esp8266.println(cmd); 
  }
}

sketch "softserial_xy" kommt keine Antwort vom ESP am Monitor

   -- softserial --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.3.1 or later version;
     - for iOS 1.3.5 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP8266_SOFTSERIAL
#include <SoftwareSerial.h>

#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_SERIAL_RX 2
#define REMOTEXY_SERIAL_TX 3
#define REMOTEXY_SERIAL_SPEED 9600
#define REMOTEXY_WIFI_SSID "YOUR_SSID"
#define REMOTEXY_WIFI_PASSWORD "YOUR_PASS"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,1,0,0,0,13,0,8,13,0,
  1,0,46,24,12,12,2,31,88,0 };
  
// this structure defines all the variables of your control interface 
struct {

    // input variable
  uint8_t button_1; // =1 if button pressed, else =0 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

#define PIN_BUTTON_1 13


void setup() 
{
  RemoteXY_Init (); 
  
  pinMode (PIN_BUTTON_1, OUTPUT);
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
  
  // TODO you loop code
  // use the RemoteXY structure for data transfer


}

Hab leider nicht herausgefunden wie ich die Anhänge hier direkt posten kann, sorry!

Hoffnungsvoller Gruß,
Peter

arduino_esp_scheme.png

hardserial_xy.ino (2.15 KB)

Softserial_ok.ino (2.09 KB)

hardserial_xy.ino (2.15 KB)

Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *). So ist er auch auf portablen Geräten lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Fournierrf5:
Im Anhang 3 sketches mein Anschlussschema des ESP8266-01, für softserial dann natürlich an den jeweils definierten pins.

Beantwortest du auch die übrigen Fragen ?

HotSystems:
Beantwortest du auch die übrigen Fragen ?

Hab ich was übersehen?

Zum besseren Verständnis solltest du bei den Sketch noch beischreiben, welcher Sketch für welchen Controler gedacht ist.

Du hast den ESP8266 an Pin 0 und 1 am UNO angeklemmt. Die Schnittstelle ist aber schon durch den USB > seriell Wandler belegt. Da musst Du wohl auch Softserial nutzen.

Oder ist die Zeichnung falsch und der ESP8266 hängt an Pin 2 und 3?

Gruß, Jürgen

Katsumi_S:
Du hast den ESP8266 an Pin 0 und 1 am UNO angeklemmt. Die Schnittstelle ist aber schon durch den USB > seriell Wandler belegt. Da musst Du wohl auch Softserial nutzen.

Oder ist die Zeichnung falsch und der ESP8266 hängt an Pin 2 und 3?

Gruß, Jürgen

An pin 0 und 1 nur zu testzwecken ob der ESP antwortet, geht auch mit seriellem Monitor, nur beim hochladen muss der ESP weg.

Im normalfall soll der ESP mit softserial an andere pins ( wie eben zb. 2/3), funktioniert aber leider mit dem remotexy sketch nicht! ( mit dem softserial test sketch weiter oben funtioniert sofserial!)

HotSystems:
Zum besseren Verständnis solltest du bei den Sketch noch beischreiben, welcher Sketch für welchen Controler gedacht ist.

Wie eingangs beschrieben alles der gleiche Aufbau ( Arduino uno R3 mit ESP8266-01). Die geposteten sketches sollen mein Problem darstellen das mit dem romtexy sketch die softserial keine Antwort gibt!

Fournierrf5:
Wie eingangs beschrieben alles der gleiche Aufbau ( Arduino uno R3 mit ESP8266-01). Die geposteten sketches sollen mein Problem darstellen das mit dem romtexy sketch die softserial keine Antwort gibt!

Das beantwortet leider nicht meine Frage.

Hallo,

der Arduino Code für den UNO wird ja von dem online remotexy Tool generiert. Damit müsste die Lib den auf dem ESP vohandenen original AT Befehlssatz nutzen. Anscheinend ist das so auch vorgesehen und scheint ja mit der HW-Serial auch zu klappen. Jetzt wäre dann noch die Frage welche SW-Serial Lib von dem Tool unterstützt wird.

Eventuell fragst Du mal bei dem remotexy nach.

Heinz

HotSystems:
Das beantwortet leider nicht meine Frage.

Ok, könntest Du dann bitte die Frage so stellen dass ich als absoluter Laie und Anfänger eine Chance bekomme sie adequat zu beantworten? Bitte!

Rentner:
Hallo,

der Arduino Code für den UNO wird ja von dem online remotexy Tool generiert. Damit müsste die Lib den auf dem ESP vohandenen original AT Befehlssatz nutzen. Anscheinend ist das so auch vorgesehen und scheint ja mit der HW-Serial auch zu klappen. Jetzt wäre dann noch die Frage welche SW-Serial Lib von dem Tool unterstützt wird.

Eventuell fragst Du mal bei dem remotexy nach.

Heinz

Genau so ist es Heinz! Hab auch schon versucht Unterstützung im remotexy-Forum zu bekommen...bis jetzt leider erfolglos...

lg,
Peter

Fournierrf5:
Ok, könntest Du dann bitte die Frage so stellen dass ich als absoluter Laie und Anfänger eine Chance bekomme sie adequat zu beantworten? Bitte!

Ok, dann gerne noch einmal.

Du hast in Post #4 deine Sketche gezeigt.
Welcher davon ist für den Uno und welcher davon für den ESP8266 ?

ich hoffe, jetzt war es verständlich.

HotSystems:
Ok, dann gerne noch einmal.

Du hast in Post #4 deine Sketche gezeigt.
Welcher davon ist für den Uno und welcher davon für den ESP8266 ?

ich hoffe, jetzt war es verständlich.

Wie schon zweimal gesagt alle sketches für arduino uno R3 an dem via serial ( hard oder soft) ein ESP8266-01 angeschlossen ist!
...und ich Teile Deine Hoffnung das es jetzt verständlich ist :wink:

Fournierrf5:
Wie schon zweimal gesagt alle sketches für arduino uno R3 an dem via serial ( hard oder soft) ein ESP8266-01 angeschlossen ist!

Sorry, aber ich kann in deinen Beiträgen keine Info darüber finden, dass der Sketch speziell für den Uno ist.
Aber egal, jetzt hast du es ja (ein 3.mal) mitgeteilt.

HotSystems:
Ok, dann gerne noch einmal.

Du hast in Post #4 deine Sketche gezeigt.
Welcher davon ist für den Uno und welcher davon für den ESP8266 ?

ich hoffe, jetzt war es verständlich.

@ Dieter

auf dem esp2866-01 ist der originale AT Befehlssatz drauf. ich denke es liegt an der remotexy lib die kann nicht mit der verwendeten SW-Serial lib

Gab´s da nicht mal einen altSoftwareSerial ? kann aber eigendlich nur das remotexy Forum klären oder jemand hier der das kennt und schon mal verwendet hat.

Heinz