Selon leur type, les modules Arduino disposent d'une seule ou plusieurs liaisons série "physiques". Toutes les autres liaisons de ce type que l'on peut adjoindre à un Arduino ne sont qu'émulées par soft.
La bibliothèque SoftwareSerial et autres équivalents ne servent pas à ne pas utiliser la liaison physique mais à ajouter d'autres liaisons non disponibles "physiquement".
Quel port série tu veux utiliser?
Si tu compte utiliser Serial tu risques d'aller au devant de problèmes (mais ce n'est pas impossible) car c'est le port qui est utilisé pour communiquer avec le PC (sur les cartes avec processeur AVR)
soit tu modifies la librairie pour utiliser Serial2 soit tu utilises SoftwareSerial sur les pins 16 et 17 (ce qui est un peu dommage alors qu'il existe des serial hard libres).
Comme dit ChPr il faut remplacer toutes les références à SoftwareSerial par Serial2.
Si tu veux faire quelque-chose de plus universel, tu peux aussi passer un pointeur vers le SerialX que tu veux utiliser dans le constructeur. Tu peux aussi utiliser un template.
C’est parce que l’auteur a décidé d’en faire une sous classe de SoftwareSerial, ce qui est un choix d’architecture objet discutable
l’auteur aurait pu en faire une sous classe de Print et et avoir une variable d’instance qui pointe vers soit un HarwareSerial, soit un SoftwareSerial. Ce n’est pas super difficile à changer
Mais En pratique lisez les peu de lignes de la “librairie” les fonctions majoritairement ne font qu’encapsuler des this->print() codés en dur avec la commande AT qui va bien sans même se soucier de la réponse ‘donc pas super robuste ! )... le concept est général, faites en simplement des fonctions de votre projet et changez this-> enSerial2. quand il s’agit de fonctions héritées de la classe Stream ou Print et juste un appel de fonctions locale si c’est une des méthodes locales de l’objet.
Note
Si vous modifiez la librairie (elle est GPLV3 donc pensez aux attributions) il y a ces méthodes