Lire deux capteur d'humidité a intervalle différent non bloquant.

C'est normal, tu définis les variables humidite et niveaucanal comme variables locales des fonctions togglecanal () et togglecapthumidite ()
Si tu veux les utiliser dans la loop, il faut soit les définir en variables globales (avant le setup) soit les renvoyer en sortie de tes fonctions.

Une petite coquille au passage :
  delay(5000); // Attendre 4 seconde (prendre des mesures toutes les 4 secondes)le delay(5000) attend 5 secondes, pas 4.