This may be subtly different to the SoftwareSerial implementation of 'regular' Arduino boards.
This is confusing semantics. I'm also not sure what a "regular" Arduino board is. If I had to guess, I'd guess they mean an Arduino UNO. Or perhaps only the boards one would find on Arduino's Hardware page:
https://www.arduino.cc/en/hardware
But this sort of goes against the general concept of Arduino. Ideally, an Arduino library should work on any Arduino board, where "Arduino board" means there is an Arduino Board Support Package for the given board/platform, like there is for AVR (what the first Arduino boards were, ex: UNO), ARM (much more powerful processor), ESP32 (cousin to ESP8266), ESP8266 (what you have), etc. So there is no "regular".
However, that's the ideal. Since all these hardware platforms have their specifics, actually achieving that for everything that needs to be done can be tricky. So there can be libraries that end up just not working on certain platforms. But that should be called out in the library - "ESP8266 not supported", etc. Or on the hardware product page that uses the library.
you might like to try ditching the PlantMonitor extension entirely and send serial commands directly to the PlantMonitor.
What they are suggesting here is to just not use the mm_plant_monitor library, which is this:
https://github.com/monkmakes/mm_plant_monitor
Instead, create a SoftwareSerial interface as done in the basic example:
https://docs.arduino.cc/learn/built-in- ... are-serial
and then *you* would write the necessary code to talk to the PlantMonitor via that SoftwareSerial interface, using the various read() and write() commands. Essentially, this means you'd be writing what the library code should be doing. The protocol is very simple and documented in the datasheet PDF they link:
- proto.png (78.29 KiB) Viewed 104 times
But still, you'd be writing the code to do the reading/writing in your user sketch.