Thanks pylon , I tried a lot but no success if you can explain more I will appreciate that.
I replaced HardwareSerial.h by uart.h in the library(in .h and .cpp) (I found uart library on Github Arduino/cores/esp8266 at master · esp8266/Arduino · GitHub ) but I always get the same error:
Arduino: 1.8.12 (Windows Store 1.8.33.0) (Windows 10), Board: "Arduino MKR WiFi 1010"
In file included from D:\Anass_PM\PMserial\PMserial.ino:1:0:
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:61:24: error: 'uart' has not been declared
SerialPM(PMS sensor, uart &serial) : pms(sensor) {
^~~~
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h: In constructor 'SerialPM::SerialPM(PMS, int&)':
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:62:13: error: cannot convert 'int*' to 'Stream*' in assignment
uart = &serial;
^~~~~~
D:\Anass_PM\PMserial\PMserial.ino: At global scope:
PMserial:17:24: error: no matching function for call to 'SerialPM::SerialPM(Pm*, int, int)'
SerialPM pms(PM, 13, 14); // PM Serial, RX, TX
^
In file included from D:\Anass_PM\PMserial\PMserial.ino:1:0:
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:61:3: note: candidate: SerialPM::SerialPM(PMS, int&)
SerialPM(PMS sensor, uart &serial) : pms(sensor) {
^~~~~~~~
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:61:3: note: candidate expects 2 arguments, 3 provided
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:45:7: note: candidate: constexpr SerialPM::SerialPM(const SerialPM&)
class SerialPM{
^~~~~~~~
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:45:7: note: candidate expects 1 argument, 3 provided
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:45:7: note: candidate: constexpr SerialPM::SerialPM(SerialPM&&)
C:\Users\Asus\OneDrive\Documents\Arduino\libraries\PMserial_library1/PMserial.h:45:7: note: candidate expects 1 argument, 3 provided
exit status 1
no matching function for call to 'SerialPM::SerialPM(Pm*, int, int)'
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.