Comment surveiller le niveau d'humidité et le pH des sols
Avec la contribution de Rédacteurs nord-américains de DigiKey
2018-03-29
Le maintien d'une humidité et d'un pH appropriés du sol est une exigence fondamentale pour la santé des plantes, qu'il s'agisse d'une agriculture à grande échelle ou d'un simple jardin familial. Cependant, pour mesurer ces caractéristiques du sol, les développeurs doivent concevoir des chaînes de signaux analogiques de précision rentables et capables de convertir des données brutes en informations utiles requises pour des applications de mesures des sols spécifiques.
Une approche pour atteindre ces objectifs de précision consiste à utiliser une conception de référence avec un logiciel suffisamment flexible. Un bon exemple d'une telle solution est le pack logiciel et la carte EVAL-CN0398-ARDZ d'Analog Devices.
Cet article traite des applications et des exigences associées à la surveillance du pH et de l'humidité du sol avant de présenter la conception de référence et la carte CN0398 d'Analog Devices. L'article explique dans quelle mesure les principaux composants utilisés dans la conception CN0398 répondent aux exigences de conception clés et examine leur rôle dans l'application globale. L'article se termine en démontrant comment les développeurs peuvent utiliser la carte CN0398 et le pack logiciel associé pour évaluer et personnaliser rapidement les applications de surveillance des sols.
La nécessité d'une mesure précise du sol
La nécessité de maintenir une teneur en eau et un niveau de pH appropriés du sol est une exigence fondamentale pour les producteurs de plantes à toutes les échelles de production. Les carences en eau du sol se traduisent directement par une réduction de la photosynthèse pour toute plante, ainsi que par un déclin d'autres processus biologiques, comme la fixation de l'azote dans des cultures importantes de légumineuses telles que le soja.
De même, les modifications du sol dues à la fertilisation ou à des phénomènes naturels peuvent avoir un impact considérable sur le pH du sol, entraînant une réduction des microbes essentiels et des nutriments du sol. Pour certaines cultures, un pH du sol inadéquat aux premiers stades de croissance conduit à des taux de croissance et à un rendement final inférieurs.
Sans systèmes de surveillance du sol appropriés, l'humidité du sol et le pH peuvent évoluer vers des valeurs défavorables, entraînant une détérioration éventuelle de la santé des plantes. Utilisés ensemble, le pack logiciel et la carte EVAL-CN0398-ARDZ d'Analog Devices fournissent une conception complète de surveillance des sols que les développeurs peuvent utiliser directement ou modifier pour répondre à leurs besoins spécifiques.
La conception de référence et la carte CN0398 d'Analog Devices ont été spécialement conçues pour être utilisées avec des capteurs externes d'humidité, de pH et de température dans les applications de mesure du sol. Le circuit intégré de la carte comprend une conception à plusieurs capteurs complète, requise pour produire des données de sortie d'humidité et de pH accessibles via une interface série. Même avec ses fonctionnalités étendues, la conception ne consomme qu'un maximum de 1,95 milliampère (mA) et fournit des fonctions d'économie d'énergie, notamment l'utilisation de la modulation de largeur d'impulsion (PWM) pour alimenter des capteurs externes.
Les développeurs peuvent utiliser la carte CN0398 pour démarrer des conceptions matérielles personnalisées ou utiliser la carte avec la carte de base compatible Arduino EVAL-ADICUP360 d'Analog Devices. Conçue comme un shield Arduino, la carte CN0398 se branche directement sur la carte mère, fournissant une plateforme pour le développement rapide d'applications.
Pour accélérer le développement du logiciel, les ingénieurs peuvent utiliser le pack logiciel open-source ADuCM360_demo_cn0398 d'Analog Devices, conçu pour être utilisé avec la carte de capteur CN0398, la carte de base ADICUP360 et CrossCore Embedded Studio d'Analog Devices. Outre les pilotes de base et les utilitaires de support système, le pack logiciel inclut des fichiers source et d'en-tête C++ complets, y compris une application logicielle complète de mesure du sol.
La combinaison du pack logiciel et du jeu de cartes d'Analog Devices fournit aux développeurs une conception matérielle complète et une application logicielle prête à être utilisée immédiatement dans les applications de mesure du sol. Tout aussi importants, la conception de référence et le logiciel d'exemple CN0398 constituent le modèle de développement rapide de systèmes de mesure de sol personnalisés, capable de répondre aux exigences uniques de ces applications.
Traitement des signaux du capteur
La conception du matériel CN0398 comprend trois sous-circuits distincts pour les capteurs externes d'humidité, de pH et de température. Chaque sous-circuit fournit tous les circuits nécessaires à l'interface avec chaque type de capteur. Par conséquent, les développeurs doivent uniquement brancher chaque capteur au connecteur correspondant de la carte CN0398 et fournir une alimentation pour le fonctionnement du capteur. Cette fonctionnalité est développée autour des modules AD7124-8 d'Analog Devices, qui associent un circuit d'entrée complet de mise en forme des signaux à un convertisseur analogique-numérique (CAN) sigma-delta (Σ-Δ) 24 bits (Figure 1).

Figure 1 : Grâce à sa chaîne de signaux intégrée et à son CAN, l'AD7124-8 d'Analog Devices simplifie la conception des systèmes à plusieurs capteurs requis pour la mesure du sol. (Source de l'image : Analog Devices)
Le multiplexeur de signaux de l'AD7124-8 permet d'acheminer 8 entrées différentielles ou 15 entrées asymétriques via la chaîne de signaux programmable intégrée vers le CAN Σ-Δ intégré et le filtre numérique pour la conversion et la mise en forme. Les développeurs utilisent l'interface série de l'AD7124-8 pour connecter le dispositif à un hôte microcontrôleur pour le contrôle des dispositifs et la conversion des données.
Grâce aux fonctionnalités étendues, les développeurs peuvent répondre à de nombreuses exigences de conception avec peu de composants supplémentaires au-delà des circuits du capteur et d'une source de tension stable. Pour la conception de référence CN0398, Analog Devices utilise sa référence de tension ADR3433 comme alimentation analogique (AVDD) et référence de tension (REFIN1) (Figure 2). Comme décrit ci-dessous, les conceptions pour chacun des trois circuits de capteur ne nécessitent que quelques composants supplémentaires.

Figure 2 : En utilisant l'AD7124-8 d'Analog Devices, les développeurs peuvent implémenter des conceptions de capteurs avec peu de composants supplémentaires au-delà de circuits d'entrée de capteur spécifiques et d'une référence de tension de précision telle que l'ADR3433 d'Analog Devices. (Source de l'image : Analog Devices)
Mesure de l'humidité
Les systèmes d'humidité des sols déterminent généralement la teneur en eau en tirant parti de la différence de constante diélectrique de l'eau (80) par rapport à l'air (1). Pour ces systèmes, les développeurs actionnent un capteur simple à 3 fils, par exemple un capteur HPP809A033 de TE Connectivity Measurement Specialties, avec une tension d'excitation pour générer une tension de sortie proportionnelle à la teneur en eau du sol.
Dans la conception CN0398, le circuit d'entrée d'humidité du sol utilise un régulateur linéaire à faible chute de tension (LDO) ADP7118-2.5 d'Analog Devices pour fournir une tension d'excitation stable (Vsensor) au capteur (Figure 3). Pour alimenter le LDO, les développeurs peuvent utiliser l'énergie de la carte de base ADICUP360 ou de leurs conceptions personnalisées.

Figure 3 : La conception CN0398 d'Analog Devices utilise le régulateur à faible chute de tension (LDO) ADP7118-2.5 de la société pour fournir une source de tension Vsensor stable pour un capteur d'humidité capacitif. (Source de l'image : Analog Devices)
Bien que l'ADP7118 puisse fournir un niveau continu de tension du capteur, les problèmes de consommation électrique et les exigences spécifiques de certains capteurs d'humidité imposent l'utilisation d'une source à impulsions pour commander le capteur. Pour répondre à ces exigences, les développeurs peuvent fournir au capteur des impulsions de tension en commandant le port d'activation (EN) du LDO avec une sortie PWM de microcontrôleur.
Grâce à son circuit de mise en forme des signaux et à son CAN intégrés, l'AD7124-8 peut échantillonner et convertir de manière fiable la sortie de tension d'un capteur d'humidité. Pour les applications de mesure du sol, cependant, la relation entre les données de capteur converties et l'humidité du sol peut être complexe.
En évaluant l'humidité du sol, les experts en santé du sol comparent généralement les niveaux d'humidité du sol en termes d'humidité volumétrique du sol (VWC), soit le rapport entre le volume d'eau et le volume total du sol. Les fabricants de capteurs d'humidité fournissent généralement des équations pour convertir la sortie de leurs capteurs en VWC. Cependant, les conditions du sol ou la nature de l'application elle-même peuvent nécessiter l'utilisation d'une équation de conversion plus adaptée à leur propre situation.
Analog Devices présente l'utilisation de l'une ou l'autre approche dans son pack logiciel. En permettant une définition utilisant USE_MANUFACTURER_MOISTURE_EQ dans le fichier d'en-tête CN0398.h, les développeurs peuvent choisir d'utiliser les formules de conversion par échelon recommandées par le fabricant ou une équation de conversion standard fournie dans le logiciel. La routine d'exemple read_moisture() génère ici une sortie d'humidité en fonction de la plage de tensions de sortie du capteur si USE_MANUFACTURER_MOISTURE_EQ est défini (Liste 1). Si la définition est commentée dans l'en-tête CN0398.h, la routine peut convertir la tension en humidité en utilisant l'expression mathématique fournie.
float CN0398::read_moisture()
{
float moisture = 0;
#ifdef MOISTURE_SENSOR_PRESENT
DioSet(ADP7118_PORT, ADP7118_PIN);
set_digital_output(P3, true);
timer.sleep(SENSOR_SETTLING_TIME);
int32_t data = adcValue[MOISTURE_CHANNEL]= read_channel(MOISTURE_CHANNEL);
DioClr(ADP7118_PORT, ADP7118_PIN);
float volt = voltage[MOISTURE_CHANNEL - 1] = data_to_voltage_bipolar(data, 1, 3.3);
#ifdef USE_MANUFACTURER_MOISTURE_EQ
if(volt <= 1.1) {
moisture = 10 * volt - 1;
} else if(volt > 1.1 && volt <= 1.3) {
moisture = 25 * volt - 17.5;
} else if(volt > 1.3 && volt <= 1.82) {
moisture = 48.08 * volt - 47.5;
} else if(volt > 1.82) {
moisture = 26.32 * volt - 7.89;
}
#else
moisture = -1.18467 + 21.5371 * volt - 110.996 * (pow(volt, 2)) + 397.025 * (pow(volt, 3)) - 666.986 * (pow(volt, 4)) + 569.236 * (pow(volt, 5)) - 246.005 * (pow(volt, 6)) + 49.4867 * (pow(volt, 7)) - 3.37077 * (pow(volt, 8));
#endif
if(moisture > 100) moisture = 100;
if(moisture < 0 ) moisture = 0;
#endif
set_digital_output(P3, false);
return moisture;
}
Liste 1 : Le pack logiciel CN0398 d'Analog Devices fournit une routine d'humidité qui montre comment les développeurs peuvent utiliser les formules ou les équations de conversion du fabricant pour convertir la tension du capteur d'humidité en données d'humidité utiles. (Source du code : Analog Devices)
Mesure du pH
Un capteur de pH typique tel que celui du kit de pH SEN-10972 de SparkFun Electronics présente un circuit équivalent caractérisé par une source de tension haute impédance. Même en utilisant un CAN avec un circuit d'entrée de mise en forme des signaux intégré, les développeurs expérimentés ajoutent généralement un tampon entre la sortie du capteur et l'entrée CAN dans ces situations.
En conséquence, le circuit du capteur de pH dans la conception CN0398 comprend un amplificateur opérationnel ADA4661-2 d'Analog Devices (Figure 4). Parfaitement adapté aux applications basse consommation comme les circuits de détection, l'ADA4661-2 est un amplificateur opérationnel de précision qui offre un fonctionnement à alimentation simple, une basse consommation d'énergie et une faible tension de décalage sur toute la plage de tensions de fonctionnement.

Figure 4 : Dans la conception CN0398 d'Analog Devices, un amplificateur opérationnel ADA4661-2 d'Analog Devices fournit un tampon entre un capteur de pH haute impédance typique et l'entrée analogique AD7124-8 d'Analog Devices. (Source de l'image : Analog Devices)
Bien que la conception repose sur une seule tension d'alimentation, les capteurs de pH génèrent généralement une sortie de tension bipolaire. Dans ce cas, cependant, l'AD7124-8 fournit un moyen simple de polariser le capteur sur un niveau approprié au-dessus du sol. L'AD7124-8 intègre un générateur de tension de polarisation interne qui définit la tension de mode commun d'un canal sur AVDD/2. Comme dans ce cas, les concepteurs peuvent utiliser une broche de sortie AD7124-8 pour délivrer cette tension de polarisation au bas potentiel du capteur de pH (VBIAS dans la Figure 4). Les développeurs peuvent facilement restaurer l'entrée polarisée sur un résultat numérique bipolaire dans le logiciel.
Le pack logiciel open-source ADuCM360_demo_cn0398 inclut une routine d'exemple read_ph() illustrant le processus de conversion de la tension de sortie du capteur de pH en valeurs de pH. Comme pour la routine d'humidité du sol, la routine d'exemple du pH démontre l'utilisation des deux approches différentes pour générer des valeurs de pH (Liste 2).
float CN0398::read_ph(float temperature)
{
float ph = 0;
#ifdef PH_SENSOR_PRESENT
int32_t data;
set_digital_output(P2, true);
adcValue[PH_CHANNEL] = data = read_channel(PH_CHANNEL);
float volt = voltage[PH_CHANNEL - 1] = data_to_voltage_bipolar(data, 1, 3.3);
if(use_nernst)
{
ph = PH_ISO -((volt - ZERO_POINT_TOLERANCE) / ((2.303 * AVOGADRO * (temperature + KELVIN_OFFSET)) / FARADAY_CONSTANT) );
}
else
{
float m = (calibration_ph[1][0] - calibration_ph[0][0]) / (calibration_ph[1][1] - calibration_ph[0][1]);
ph = m * (volt - calibration_ph[1][1] + offset_voltage) + calibration_ph[1][0];
}
set_digital_output(P2, false);
#endif
return ph;
}
Liste 2 : La routine d'exemple d'Analog Devices pour la lecture des valeurs de capteur de pH illustre l'utilisation de l'équation standard de Nernst ou les valeurs d'étalonnage intégrées pour convertir la sortie de tension du capteur de pH en valeurs de pH. (Source du code : Analog Devices)
En définissant une variable use_nernst sur « true » dans le pack d'exemple, les développeurs peuvent générer le pH à l'aide de l'équation standard de Nernst. Définie sur « false », la variable fait en sorte que la routine utilise les valeurs créées lors d'une procédure d'étalonnage en deux points, généralement à l'aide de solutions de tampons pH de référence telles que celles du kit de pH SEN-10972 de SparkFun. Les routines du logiciel d'exemple sont fournies avec des valeurs d'étalonnage définies par défaut à l'aide de tables de correspondance NIST pour différentes solutions de tampons de pH et des valeurs de pH corrigées en température s'étendant de 0°C à 95°C. Les développeurs peuvent remplacer les valeurs par défaut par leurs propres données d'étalonnage personnalisées ou modifier facilement le code pour prendre en charge les valeurs par défaut et personnalisées.
Mesure de température
Comme illustré ci-dessus dans la Liste 2, le pH dépend de la température, soit explicitement comme dans l'équation de Nernst, soit implicitement dans les valeurs d'étalonnage personnalisées. De plus, la température affecte la sensibilité du capteur et la chaîne des signaux. Bien que le capteur de température intégré de l'AD7124-8 (voir la Figure 1) puisse répondre à certaines de ces préoccupations, une mesure fiable du sol dépend de la précision des lectures de température. En conséquence, le canal du capteur de température CN0398 est conçu pour assurer des lectures précises à partir d'un capteur de température à résistance (RTD) PT100 à 3 fils externe, tel que le 3290 d'Adafruit Industries.
Comme pour tout capteur résistif, les RTD nécessitent un courant d'excitation pour permettre la mesure des variations de tension en fonction de la température. Généralement, les développeurs utilisant des capteurs résistifs doivent étendre la conception de leurs capteurs avec des circuits d'attaque, des régulateurs et des capteurs de courant externes pour maintenir le courant d'excitation à des niveaux précis. Avec l'AD7124-8, les développeurs n'ont toutefois qu'à ajouter les réseaux passifs appropriés requis pour prendre en charge une configuration à 3 fils (Figure 5).

Figure 5 : Pour commander un capteur de température à résistance (RTD) à 3 fils, le CN0398 d'Analog Devices utilise les sources de courant constant programmables intégrées dans l'AD7124-8 d'Analog Devices. (Source de l'image : Analog Devices)
Intégrés dans l'AD7124-8, deux générateurs de courant constant fournissent une excitation à différents niveaux fixes de 50 à 1 000 microampères (µA), y compris le niveau de 500 µA utilisé dans la conception CN0398. Les développeurs définissent le niveau de courant et la broche de sortie en programmant respectivement les bits IOUTx et IOUTx_CH dans le registre de configuration IO_CONTROL du dispositif. Dans le cadre de sa routine d'initialisation, le pack logiciel CN0398 définit les canaux CAN AIN11 et AIN12 comme broches de sortie pour deux courants d'excitation de 500 μA, IOUT1 et IOUT2.
Bien que les générateurs de courant soient suffisamment précis pour de nombreuses applications, les développeurs peuvent facilement éliminer l'impact des variations de courant en utilisant une technique de mesure ratiométrique. Le circuit de capteur matériel de température CN0398 illustré à la Figure 5 utilise cette approche. Ici, le même courant IOUT1 traverse le RTD et une résistance de référence de précision RREF, se traduisant par une mesure ratiométrique. En même temps, IOUT2 produit une chute de tension sur la résistance RTD SENSE du RTD qui annule la chute de tension dans la résistance RTD+.
Comme pour les capteurs d'humidité et de pH, la conversion des valeurs de résistance en température nécessite une fonction de transfert appropriée. Pour un RTD typique, la relation entre la température et la résistance peut être exprimée mathématiquement de manière fiable. Cependant, deux expressions mathématiques différentes doivent être utilisées pour les températures supérieures et inférieures à 0°C. Le pack logiciel open-source ADuCM360_demo_cn0398 prend en charge les deux méthodes, ainsi qu'une simple conversion linéaire (Liste 3).
float CN0398::read_rtd()
{
float temperature = 0;
int32_t data;
adcValue[RTD_CHANNEL] = data = read_channel(RTD_CHANNEL);
float resistance = ((static_cast<float>(data) - _2_23) * RREF) / (TEMP_GAIN * _2_23);
#ifdef USE_LINEAR_TEMP_EQ
temperature = PT100_RESISTANCE_TO_TEMP(resistance);
#else
#define A (3.9083*pow(10,-3))
#define B (-5.775*pow(10,-7))
if(resistance < R0)
temperature = -242.02 + 2.228 * resistance + (2.5859 * pow(10, -3)) * pow(resistance, 2) - (48260.0 * pow(10, -6)) * pow(resistance, 3) - (2.8183 * pow(10, -3)) * pow(resistance, 4) + (1.5243 * pow(10, -10)) * pow(resistance, 5);
else
temperature = ((-A + sqrt(double(pow(A, 2) - 4 * B * (1 - resistance / R0))) ) / (2 * B));
#endif
return temperature;
}
Liste 3 : Pour convertir les valeurs de résistance en température, une routine d'exemple d'Analog Devices illustre le modèle de conception de base pour sélectionner la méthode appropriée en fonction des définitions statiques (USE_LINEAR_TEMP_EQ) ou des valeurs dynamiques (résistance < R0). (Source du code : Analog Devices)
Comme le montre la Liste 3, la routine read_rtd() permet aux développeurs de sélectionner une macro de conversion linéaire simple, PT100_RESISTANCE_TO_TEMP, définie dans le module CN0398.cpp. Les développeurs peuvent également utiliser les expressions mathématiques plus complexes fournies dans la routine d'exemple read_rtd(). Dans ce cas, le point d'inflexion 0°C pour choisir l'expression appropriée est implicite dans R0, qui est la résistance du RTD à 0°C.
Conclusion
Pour concevoir des systèmes de mesure des sols, les ingénieurs doivent faire face à de nombreux problèmes matériels et logiciels. Les conceptions matérielles doivent répondre aux exigences de l'interface du capteur, tandis que les logiciels doivent s'adapter à différentes approches pour convertir les données brutes en informations utiles.
Le pack logiciel open-source ADuCM360_demo_cn0398 et la carte CN0398 d'Analog Devices abordent les deux aspects de la conception du système de mesure des sols. Utilisés conjointement avec la carte de base ADICUP360 compatible Arduino d'Analog Devices, la carte et le logiciel CN0398 offrent une solution complète de mesure des sols.
Les développeurs peuvent utiliser cette solution clés en main pour créer des applications de mesure des sols ou étendre la conception de référence et le logiciel d'exemple pour créer des solutions personnalisées.
Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.




