Bonjour,
J'avance sur mon projet domotique.
Avant de choisir des matériels j'avais expliqué mon projet en détail pour valider la faisabilité et le choix des composants (https://forum.arduino.cc/index.php?topic=671582.0)
J'ai pu tester les écrans tactiles TFT 2.8" (https://www.amazon.fr/gp/product/B0749N3S33/) basés sur des ILI9341 avec les librairies Adafruit_GFX.h, Adafruit_ILI9341.h et URTouch.h
Un peu déçu, ces écrans sont très lents il va falloir que je conçoive judicieusement l'interface utilisateur sinon l'utilisation sera très pénible.
Je dois maintenant tester les modules Ethernet à base de W5100 (https://www.amazon.fr/gp/product/B07CJYXLWW)
Il va sans dire que le module Ethernet doit fonctionner AVEC l'écran TFT tous deux branchés sur l'Arduino UNO. L'écran TFT et le module Ethernet utilisent le bus SPI qui est prévu pour utiliser plusieurs périphériques, j'avais vérifié ce point avant.
Première déconvenue : en épluchant les docs et les tutoriels avant de tenter de faire marcher le module Ethernet, je découvre qu'il est plein de défauts (The W5100 bug(s) – and how to fix it (them) – Arduino, ESP8266, ESP32 & Raspberry Pi stuff) C'est assez gonflant de découvrir ça après avoir acheté un produit qui m'a été recommandé.
En particulier, il faut :
- soit faire fonctionner le module Ethernet seul sur le bus SPI
- soit bricoler le module Ethernet en soudant un fil sur un composant CMS et en ajoutant un inverseur low voltage externe... c'est à dire le genre de truc que voulais absolument éviter (fiabilité du bricolage, risque d'endommager la carte, bidouille à refaire 'n' fois et en cas de remplacement/réparation)
Pas de soucis, je n'ai qu'à câbler l'afficheur TFT sur d'autres broches... après tout, la commande Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO); permet de choisir avec #define le numéro des broches
Là aussi, ça ne fonctionne pas... j'ai fini par trouver dans un forum en anglais que la librarie Adafruit doit utiliser les broches SPI de l'Arduino et aucune autre... La encore c'est pas clair, la doc et le code source laisse croire que la librairies est versatile et permet d'utiliser les broches que l'on veut.
Avant de résoudre ces problèmes de câblages, j'ai commencé à créer un programme, en partant de mon exemple qui fonctionne avec l'afficheur TFT et sa dalle tactile, et en ajoutant juste les librairies et le code de base nécessaire pour initialiser le module Ethernet... Voilà la troisième déconvenue : la mémoire de l'Arduino UNO est occupée à 80% - autrement dit, il ne reste pas grand chose pour mon programme...
Petite question : est-ce possible de m'en sortir :
- réussir à faire fonctionner l'écran TFT sur d'autres broches
- optimiser le code des librairies en supprimant ce que je ne vais pas utiliser pour libérer un peut de mémoire
Ou bien faut-il que j'abandonne les Arduino UNO pour n'utiliser que des Arduinos MEGA et acheter d'autres modules Ethernet ?
Je suis conscient qu'il faut bien préparer son projet en amont, se renseigner et faire des recherches avant de choisir un produit et de commencer à câbler. Et c'est ce que j'ai fait, on m'a conseillé des produits (Arduino UNO, les TFT, les modules Internet) que j'ai acheté en plusieurs exemplaires, et ces produits se révèlent pas assez puissants ou non conformes. Les défauts des modules Ethernet n'ont été indiqués ni dans les commentaires des sites marchants, ni dans les réponses que j'ai eue...
Bref un immense gâchis (5 Arduinos UNO, 4 écrans TFT, 5 modules Ethernet), beaucoup de temps perdus, et si je recommande du matériel je le recevrais en totalité que dans deux mois... pour peut être encore me retrouver avec des produits qui ne possèdent pas les caractéristiques requises...
Je commence a avoir de sérieux doutes sur l'écosystème Arduino...
Qu'en pensez vous ?
Mon besoin à la base est le suivant : faire des petites interface homme machine (écran + clavier ou écran tactiles) que je peux programmer, et qui seront reliées via des câbles Ethernet à une carte électronique qui fera office d'unité centrale.
Merci
A bientôt