ARDUINO, ESP8266 et ESP32 : console / logger et timers

Salut à tous.

Cette semaine j'ai ouvert un compte personnel BitBucket et j'y ai déposé deux projets :

1. Une librairie console / logger

Cette librairie permet différentes choses :

  • afficher sur le terminal (Serial, Serial1, Serial2, Serial3 ou SoftwareSerial)
  • attacher un flux pour pouvoir utiliser printf, puts, putchar
  • afficher des messages de logs sur Serial, Serial1, Serial2, Serial3 ou SoftwareSerial en les activant / désactivant dynamiquement avec plusieurs niveaux :
  • debug
  • info
  • warning
  • erreur
  • erreur critique
  • enregistrer des messages de logs en les activant / désactivant dynamiquement avec plusieurs niveaux
  • sur SD
  • sur SPIFFS (ESP8266, ESP32)

L'interface logicielle se rapproche de celle du logging PYTHON. Les fichiers de logs sont tournants, ils sont limités en taille (paramétrable) et un nombre de backups (paramétrable) est conservé.

Il est possible de créer plusieurs logger, par exemple pour afficher des messages de debug sur le terminal et enregistrer d'autres messages sur µSD.

Deux exemples de serveurs WEB ESP32 avec logs sur µSD ou SPIFFS sont fournis, et permettent la récupération des logs et leur visualisation.

Il va sans dire qu'avec un ARDUINO UNO ou NANO, il sera difficile d'exploiter toutes les possibilités de cette librairie, en particulier l'enregistrement de logs sur SD, mais si l'application est petite, pourquoi pas ?
Sur MEGA, ESP8266 et ESP32, c'est plus confortable.

Les explications ICI :

2. Une librairie de timers

Vous pourrez l'accrocher facilement sous TIMER1 ou TIMER2 (AtMega328) et jusqu'à TIMER5 (AtMega2560), ou les timers natifs ESP8266 ou ESP32.

Cette librairie permet de créer plusieurs timers, autant que nécessaire, ou autant que le permet les possibilités du microcontrôleur bien sûr.

Elle fonctionne aussi sur ESP8266 et ESP32 bien entendu.

L'interface logicielle est celle des timer kernel de LINUX, très simple.

Les explications ICI :

Cordialement
Henri