How to use SoftwareSerial with ESP8266

Bart picture Bart · Aug 14, 2019 · Viewed 18.1k times · Source

I'm trying to get an ESP8266 to work with Arduino by using PlatformIO. But, I get errors when importing SoftwareSerial.h

Tried: Arduino IDE, PlatformIO, Change baudrate, change port

How can I get SoftwareSerial to work with the ESP8266?

#include <SoftwareSerial.h>

SoftwareSerial BTserial(3, 1); // RX | TX

char Bluetooth_Name = ' ';

void setup() 
{
    // Arduino IDE serial monitor
    Serial.begin(9600);

    // HC-05 default serial speed for AT mode is 38400
    BTserial.begin(38400);  

    // Wait for hardware to initialize
    delay(1000);

    // Print debug string
}

void loop()
{

   // Keep reading from HC-05 and send to Arduino Serial Monitor
   if (BTserial.available())
   {
      reading = BTserial.read();
      Serial.println(reading);
   }

   // Keep reading from Arduino Serial Monitor and send to HC-05
   if (Serial.available())
   {
      reading = Serial.read();
      BTserial.write(reading);
   }
}

I want to use the SoftwareSerial without errors.


Error code:

Compiling .pio\build\huzzah\lib0be\EspSoftwareSerial_ID168\SoftwareSerial.cpp.o
In file included from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/SoftwareSerial.h:27:0,
                 from C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src\SoftwareSerial.cpp:23:
C:\Users\Bart\.platformio\lib\EspSoftwareSerial_ID168\src/circular_queue/circular_queue.h:144:10: error: expected ';' at end of member declaration
     bool IRAM_ATTR push(T&& val);
          ^

Answer

Luca picture Luca · Sep 9, 2019

Actually the standard software serial library didn't worked for me with my NodeMCU v1.0.... And in the rare cases that worked it was very limited. Maybe check out this library: ESP 8266/32 Software Serial Library