Abstraction matérielle ESP8266/ESP32
Au cours du présent chapitre, la sélection de la plateforme Feather ESP8266 en première édition de l’ouvrage a permis d’adopter très facilement la version Feather ESP32 (même facteur de forme, même emplacement des bus, mêmes habitudes).
Il reste cependant deux points épineux :
-
Les broches utilisées pour le bus I2C sur un ESP8266 sont différentes de celles utilisées sur un ESP32.
-
La LED utilisateur est sur la broche 0 pour un ESP8266 et la broche 13 sur un ESP32. La LED d’un ESP8266 fonctionne en logique inverse (niveau bas pour être allumée) mais celle de l’ESP32 fonctionne en logique normale (niveau haut pour être allumée).
Il y a donc deux possibilités pour réaliser la mise à jour de cet ouvrage :
-
Option 1 : avec tous les scripts en deux versions : une version pour ESP8266 et une version pour ESP32.
-
Option 2 : créer une couche d’abstraction matérielle permettant aux scripts de fonctionner aussi bien sur un ESP8266 qu’un ESP32.
La première option ne manquera pas d’être à la fois fastidieuse et source d’erreurs durant la maintenance des deux versions de script, c’est donc bien entendu, l’option 2 qui sera privilégiée dans cet ouvrage. Nous allons ainsi faire en sorte que les scripts puissent fonctionner aussi bien sur un ESP8266 qu’un ESP32 en y apportant le moins...