Le gentil facteur vient de me livrer les shields RTC (DS3231 AT24C32 IIC) forcément, je joue avec.
Pour l'instant, tout se passe bien, mise à jour de l'heure, lecture de l'heure courante, lecture de la t°...
J'utilise par défaut la lib RTC by Makuna qui était proposée dans l'EDI Arduino. Mais je trouve que pour ne faire presque rien, mon Uno est déjà bien chargé (21% de l'espace de stockage programmes, 20% pour les variables)
Je me demande donc si vous aviez l'habitude d'utiliser d'autres bibliothèques ou si celle ci convenait
Mes besoins sont:
Support du uno et de l'ESP-12e
DS3231
Pourquoi pas introduction de la classe DateTime et gestion des alarmes comme le fait la Makuna
C'est bien le coté qui blesse avec les bibliothèques qui font tout, même ce dont tu n'as pas besoin.
Elles créent des tonnes de variables dont tu n'as pas forcément besoin, des tonnes de #define machin truc qui peuvent (?) bouffer de la flash ou de la ram (je ne suis pas très clair sur le sujet des #define, donc s'il existe des analyses fiables je suis preneur).
Si tu n'a que des besoins simples tu peux faire l'effort de lire :
la datasheet du circuit intégré DS3231 et si tu compte te servir de l'eeprom celle de AT24C32 .
une bibliothèque existante pour t'en inspirer et ne pas réinventer la roue
et faire ta propre bibliothèque avec uniquement ce dont tu as besoin.
Je ne sais pas comment l'IDE Wiring/arduino compile les bibliothèque des tierce parties.
Les siennes il les compile en "bibliothèque statique" --> toute fonction non utilisée est virée par le compilateur et n’occupe pas de place inutile en flash, mais, comme elles ne sont pas placée au même endroit, en est de même pour les bibliothèques utilisateur ?
Comme simplification on pourrait par exemple virer tout ce qui concerne la mise à l'heure : le module ayant une pile de sauvegarde c'est inutile.
S'il faut remettre le module à l'heure une fois par an ce sera bien plus simple à faire à partir d'un tout petit programme qui ne fera que cela.
A titre personnel j'estime qu'avec des micro-contrôleurs qui n'ont pas beaucoup de mémoire les bibliothèques qui font tout sont une erreur, c'est de l' <> à la microsoft pour qui il faut toujours des processeurs plus puissants.
J'ajoute qu'en modifiant et élaguant des bibliothèques monstrueuses (quand c'était possible, j'ai eu des échecs) j'ai appris des points de programmation que j'ignorais --> cela demande des efforts mais après c'est tout bénéfice.
Je suis dans le même cas que toi.
Je viens de recevoir le même composant. DS3231 + 24CN32.
J'ai téléchargé deux libs pour l'instant: Lib Rodan
et une autre dont j'ai perdu le lien et qui s'appelle "DS3231-Simple".
J'ai commencé à regarder les sources, rien qui me convienne complètement.
Je vais donc, comme le suggère 68tjs et comme à mon habitude, faire le tri et ajouter/modifier moi même ce qu'il me faut.
Au contraire, merci pour vos réponses
Si tous le monde est d'accord pour dire que les lib ne sont pas au top, je vais aussi me coller au nettoyage
D'un autre coté, depuis tout à l'heure je décortique les fichiers .h et .cpp de la lib et je n'ai pas encore bien vu de quoi retirer.
Je vais peut etre me passer de toute la gestion d'alarme pour faire comme dans les tutos, comparer la date courante avec celle du déclenchement prévu... Un peu bourrin coté cpu mais plus léger coté taille du code à compiler
Moi aussi il y a longtemps que j'ai décidé de me passer de la RTClib que l'on trouve partout.
J'ai mis le fruit de mon travail ici
A vous de voir si elle peut correspondre à vos besoins.
C'est une version assez minimaliste d'accès au RTC, réduite à la lecture/écriture de l'horloge, pour les cas d'usages simples.
Donc elle n'embarque pas la gestion des accès à la NVRAM personnalisable, ni les alarmes, ni la gestion de l'eeprom qui accompagne souvent un DS1307 sur un tinyRTC.
Par contre je l'ai un poil réalourdie par une fonctionnalité qui me semblait indispensable et que l'on ne trouve pas dans les lib RTC : la gestion automatique des changements d'heure été/hiver.
A vous de voir si elle peut correspondre à vos besoins.
Merci beaucoup.
Je vais partir de là pour faire ma propre librairie.
En effet, mon besoin est celui d'avoir un scheduler qui déclenche selon l'heure et le jour de la semaine (mise en marche arret de chauffage)
Je vais donc faire une classe correspondant à un déclenchement (jour de la semaine, heure, minute) et une classe gestionnaire de déclenchement (tableau de déclenchements, ajouter/supprimer un déclenchement à la liste, renvoyer le prochaine déclenchement....)
D'ailleurs, pour écrire des bibliothèques ou autres croquis, vous utilisez l'EDI Arduino ?
Je le trouve plutot faible. Travaillant avec VS, j'ai l'habitude de l'autocompletion et de l'analyse de code en temps réel...
Je me demande si je ne vais pas utiliser ce dernier et garder l'EDI Arduino uniquement pour compiler téléverser et deboguer....
C'est clair que la gestion d'un programmateur journalier est un cas d'usage fréquent dans les montages arduino.
J'avais d'ailleurs commencé à écrire quelque chose là-dessus, mais pas fini / pas publié.
L'idée était bêtement de transposer les fonctionnalités d'un programmateur horaire classique (ceux électroniques, où on règle les jours de la semaine, l'heure de début et l'heure de fin).