Boudhar Lies
Boudhar Lies
Boudhar Lies
Thème
Devant le jury :
Remerciements :
ُ شكر هللا
فمن َع ِجز عن،شكر عباد هللا الذين جعلهم هللا سببًا في مساعدتي ُ من
.شكر هللا أعجز ُ فهو عن،شكر النَّاس
ُ
Je remercie en premier lieu هللاtout puissant de m’avoir accordé la puissance
Dédicace :
A mes beaux-parents,
A mes amis.
Table des matières
Figure 1 : Les différentes étapes de la genèse d'un sol (Rihani, 2012) .............................................. 3
Figure 2 : Répartition moyenne en % des différentes phases du sol .................................................. 4
Figure 3 : Triangle textural USDA ................................................................................................................. 5
Figure 4 : Effet du tassement sur la macro et microporosité du sol. ................................................... 8
Figure 5 : Pénétromètre à cône vertical avec capteurs pour la teneur en eau du sol et la
conductivité électrique apparente (Sun et al., 2008). ...................................................... 16
Figure 6 : Structure interne d’un microcontrôleur ................................................................................. 22
Figure 7 : Arduino Uno R3 Officiel ............................................................................................................. 27
Figure 8 : Description carte Arduino Uno ................................................................................................ 27
Figure 9 : Carte Arduino MEGA .................................................................................................................. 28
Figure 10 : Carte Arduino DUE ................................................................................................................... 28
Figure 11 : Carte Arduino nano .................................................................................................................. 28
Figure 12 : Arduino IDE 1.8.0 ...................................................................................................................... 36
Figure 13 : Arduino IDE 1.8.0 ...................................................................................................................... 37
Figure 14 : forces au niveau du tracteur................................................................................................... 49
Figure 15 : Système a dent et jauge de contrainte ................................................................................ 52
Figure 16 : Radar Doppler MDU1130 ....................................................................................................... 54
Figure 17 : Dimension d’un pneu ............................................................................................................... 55
Figure 18 : Emplacement des capteurs à l'intérieur des roues ........................................................... 56
Figure 19 : Brochage de la carte Arduino Mega 2560 ......................................................................... 60
Figure 20 : Schéma électrique de l’unité principale .............................................................................. 61
Figure 21 : Schéma de connexion de l’unité principale ....................................................................... 62
Figure 22 : Clavier matriciel 4x4 .................................................................................................................. 63
Figure 23 : Brochage du clavier matriciel 4x4 à l’Arduino Mega 2560 ........................................... 63
Figure 24 : Module LCD 128x64 ................................................................................................................. 65
Figure 25 : Brochage du module LCD 128x64 ....................................................................................... 65
Figure 26 : Brochage du module LCD 128x64 a l’Arduino Mega 2560 .......................................... 67
Figure 27 : Schéma électrique du RTC DS1307 ...................................................................................... 68
Figure 28 : RTC DS1307 Tiny........................................................................................................................ 68
Figure 29 : Brochage du RTC DS1307 Tiny à l’Arduino Mega 2560 ................................................ 69
Figure 30 : Module Bluetooth HC-05......................................................................................................... 71
Figure 31 : Brochage du module HC-06 a l’Arduino Mega 2560 .................................................... 73
Figure 32 : Module nRF24L01 ..................................................................................................................... 75
Liste des figures
INTRODUCTION GENERALE
Le tracteur est lié directement à l'histoire des machines agricoles, et est intéressant,
car il met l'accent sur la forme de la mécanisation la plus ancienne et la plus décisive
pour l'évolution de l’humanité. Le tracteur reste le symbole de la mécanisation agricole
moderne ; il reste parmi les phénomènes technologiques les plus importants. Les
développements technologiques de ces dernières années, ne sont pas un changement
technique mais une mutation technologique. La technologie du tracteur est à la pointe,
les outils de travail du sol ont connu le même processus.
Le tracteur est utilisé dans la plupart des travaux au niveau des exploitations
agricoles. Il prend en charge tous les travaux de l’itinéraire technique pour la
préparation du lit de semence. Il est le plus grand consommateur d’énergie surtout
pendant l’opération de labour, la diminution de cette consommation d’énergie
nécessite des connaissances en temps réel des caractéristiques mécaniques et
physiques du sol pour agir instantanément sur les opérations agricoles au niveau du
tracteur.
Le travail du sol qui a pour but, l'ameublissement du sol, la préparation du lit de
semence, le contrôle des mauvaises herbes, modifie la résistance du sol en la réduisant
et la porosité en l’augmentant, il modifie aussi l’humidité ; donc en général, il modifie
les propriétés mécaniques et physiques du sol. Le compactage du sol peut limiter
fortement la croissance des racines et l'infiltration de l'eau, ce qui entraîne une baisse
en rendement quantitatif et qualitatif. La résistance du sol à la pénétration verticale peut
aider à identifier les zones où les caractéristiques physiques du sol ont un impact négatif
sur le rendement d’une culture. Toutefois, selon (Ayers and Perumpral, 1982; Morrison
and Bartek, 1987; Hummel, Ahmad and Newman, 2004.). La résistance du sol à la
pénétration verticale est fonction de l'humidité du sol, de la porosité et le type de sol
ainsi que le compactage et la vitesse de pénétration du cône. L'instrument classique et
standard pour mesurer la résistance du sol à la pénétration verticale est le pénétromètre
à cône. La mesure de la résistance du sol à la pénétration verticale par un pénétromètre
à cône est nommée indice de cône (CI) et est ponctuelle. L’indice de cône est utilisé
comme un indicateur important pour le compactage du sol et le développement
INTRODUCTION GENERALE
racinaire des cultures, ni au moins il faut réaliser plusieurs mesures qui demandent
beaucoup de travail pénible et fatigant.
Dans le cadre de l'agriculture numérique. Le développement d’un système de
capteur pour la mesure en temps réel, et en continu, des propriétés mécaniques et
physiques du sol, semble très intéressant, car il nous fournit un outil valable pour obtenir
des informations peu coûteuses et rapides, afin de prévoir dans le contexte de
l'agriculture de précision, une bonne gestion de l'état actuel et futur du sol, un schéma
de développement racinaire des cultures, et un gain en énergie pendant les déférentes
étapes du travail du sol. Mais l’énorme difficulté à obtenir les caractéristiques d’un sol
agricole rapidement à moindre coût et in situ reste une des plus grandes limitations de
l'agriculture de précision. Nombreux chercheurs et fabricants ont tenté de développer
des capteurs pour les mesures in situ et en temps réel pour mesurer les propriétés
mécaniques et physiques d’un sol agricole. Ces capteurs sont fondés sur l’électrique
l’électromagnétique, l’optique, la radiométrique, la mécanique, l’acoustique et le
pneumatique. Alors que seuls les capteurs électriques, électromagnétiques et optiques
sont largement utilisés jusqu’à présent. Plusieurs travaux ont été faits dans ce domaine,
soit pour automatiser les opérations de travail du sol selon l’état du sol afin de minimiser
les dépenses d’énergie, ou bien pour avoir une idée future à la destination de ce sol.
L’objet de la thèse est le développement d’un système de capteur pour la mesure
en temps réel, et en continu, de la résistance mécanique du sol agricole.
Par évidence, selon (G. Jahns, et H. Speckmann, 1999.) une agriculture saine et
durable sans électronique est inconcevable aujourd'hui, les systèmes électroniques sont
utilisés pour réduire les intrants agricoles, protéger l’environnement, augmenter le
revenu agricole et produire des produits de haute qualité. Alors ce système de capteur
se base sur plusieurs études faites sur le sol et le travail du sol et utilise plusieurs nouvelles
technologies à savoir les capteurs les microcontrôleurs, l’électronique et la
programmation en langage C et il est embarqué sur un tracteur.
Trois contributions ont été traitées : sélection et utilisation des modèles traitant les
propriétés physico-mécaniques du sol, conception et réalisation d’un système
électronique de mesure et enfin écriture des programmes avec une application Android
qui gère tout le système de capteurs. Le manuscrit est divisé en deux parties, chaque
partie est divisée en chapitres.
INTRODUCTION GENERALE
La première partie est divisée en 7 chapitres, c’est un état de l’art écrit sous forme
d’une étude bibliographique. Après une petite introduction elle commence par des
définitions, liste des travaux dans le domaine de la mesure de la résistance mécanique
du sol agricole, puis une description des outils et des moyens existant pour le
développement du système et se termine par une conclusion bibliographique.
La deuxième partie est divisée en 5 chapitres. Après une petite introduction elle
présente les modèles de Brixius, et comment on les utilise pour déterminer la résistance
pénétrométrique du sol, suivi par le chapitre développement matériel du système, dans
lequel on étudie comment la partie matérielle du système est conçue et fonctionne, et
décriait l’interconnexion entre les différentes cartes électroniques du système. Dans les
trois autres chapitres on étudie comment la partie logicielle du système est conçue et
fonctionne. Les programmes sont en open source.
Première partie :
ETUDE BIBLIOGRAPHIQUE
L’objectif de cette partie est d’introduire au cours de quelques paragraphes
introductifs, les principes scientifiques et technologiques des notions théoriques et
expérimentales sur le sujet de recherche, afin de familiariser le lecteur avec le sol et ses
paramètres mécaniques et physiques, comment rendre ces paramètres mesurables
dans le cadre de l’agriculture de précision et de l’agriculture numérique à travers
quelques travaux de recherche. On termine avec les moyens technologiques et
techniques qui nous permettent de développer un système de mesures pour
cartographier simultanément la teneur en eau du sol et la résistance mécanique du sol
pour les objectifs de travail du sol et la conservation d’énergie.
I. LE SOL AGRICOLE
I.1 Définition générale du sol
Le sol fait partie intégrante des écosystèmes terrestres et constitue l’interface entre
la surface de la terre et le socle rocheux. Il se subdivise en couches horizontales
successives aux caractéristiques physiques, chimiques et biologiques spécifiques. Il a
également différentes fonctions. Du point de vue de l’histoire et de l’utilisation des sols
ainsi que d’une perspective écologique et environnementale, le concept de sols
embrasse également les roches poreuses sédimentaires, les autres matériaux
perméables, en plus de l’eau qu’ils contiennent et des réserves d’eau souterraine.
(Winfried E.H. Blum, 2001 in Camuzard J.-P.).
I.6.4 La porosité
La porosité d’un horizon, qui est en étroite relation avec les notions de réserve en
eau, de circulation de l’eau et de l’air ou encore d’enracinement, peut être définie par
l’ensemble des vides que comporte cet horizon.
La porosité est la fraction de l'unité de volume du sol en place qui n'est pas occupée
par la matière solide (HENIN et al., 1969). En d’autres termes, c’est le volume occupé par
les constituants liquides et gazeux ; ce sont aussi les voies des transferts solides, liquides
et gazeux, ainsi que de l’activité biologique.
Ainsi la porosité exprime le pourcentage de vide par rapport au pourcentage de
sol en place et on distingue la microporosité de la macroporosité :
La microporosité est constituée des espaces lacunaires les plus fins qui sont
occupés par l’eau ;
La macroporosité est constituée des espaces les plus grands, réservés à l’air dans
un sol normalement ressuyé.
Généralement, la porosité s'exprime en pourcentage (%) par la formule suivante :
Vv
P(%)= x100 où V =V V + V S
𝑉
Avec :
P : Porosité du sol (%);
V : Volume total;
I.6.6 La portance :
C’est une caractéristique qui définit la capacité d’un sol à supporter les charges qui
lui sont appliquées. Elle dépend de la nature du sol, du pourcentage d’eau et du degré
de compactage. La portance du sol est déterminée par l’essai Proctor.
Il existe une relation entre la portance, déformation de la surface du sol et le
tassement, mais cette relation varie suivant l’importance relative du fluage. On peut,
suivant La nature du sol et sa teneur en eau, avoir d’importantes déformations de
surface sans tassement ou la situation inverse. L'allure de la surface du sol après roulage
n'est donc pas on bon indicateur des dégâts qu'il a subis.
En sens inverse. Il existe également une relation entre tassement et portance, qui
constitue une conséquence favorable du celui-ci. Un sol tassé est moins déformable et
sa portance est accrue. (Guerif, 1983)
détermination de la teneur en eau du sol est une détection sur le terrain. Les données
géo référencées sont recueillies lors du déplacement sur un paysage de l’instrument de
mesure (Adamchuk et al., 2004). Plusieurs capteurs d'humidité de sol ont été
développés en fonction, soient des principes radiométriques ou électriques. La
spectroscopie d'absorption infrarouge proche est basée sur La capacité de l'eau à
absorber de l'énergie lumineuse à certaines bandes du spectre (Norris, 1964). Un
spectrophotomètre VIS / NIR a été testé par Mouazen et al. (2005) pour développer un
système de capteur pour la mesure exacte de la teneur en eau du sol en mesurant la
réflectance de la lumière.
La résonance magnétique nucléaire est une Technique qui dépend de l'interaction
entre les moments magnétiques nucléaires de l'hydrogène et un champ magnétique. Il
a été utilisé pour développer un instrument qui peut être monté sur un tracteur, et qui
avait une puissance d'alimentation relativement élevée (Paetzold et al., 1985). Une
technique prometteuse de capteurs à base de capacitance a été explorée par certains
chercheurs. Dean et al. (1987) ont développé un capteur à capacité fonctionnant à 150
MHz. Un capteur similaire a été évalué dynamiquement par Whalley et al. (1992) en
utilisant des vitesses typiques de plantation de semences, il a été jugé sensible aux
fluctuations de la densité apparente du sol ainsi que la CEC. Liu et al. (1996) et plus tard
Andrade-Sanchez et al. (2007) ont évalué un capteur d'humidité diélectrique dans des
conditions dynamiques en l'incorporant dans un bloc en nylon qui était attaché à une
dent d’un cultivateur, une série d'études ont démontré que la salinité, la texture et la
température affectaient également les mesures des capteurs. Un capteur de type
capacité similaire a été évalué plus récemment par Adamchuk et al. (2009), Qui ont
conclu que leur capteur était capable de donner des valeurs de la teneur en eau du sol
avec une haute résolution et une erreur standard relativement faible (0,027 g / g ou
0,039 ml / ml). La densité apparente du sol était également prédite dans cette étude en
mesurant simultanément la résistance du sol à la pénétration et l'humidité du sol.
kN/m2 psi
0 0
Sol léger ou sableux 350 51 Récolte de riz.
(CI = 450) 480 70 Discage sur un terrain labouré ou
Exploitation des terres basses.
700 101 Labour de printemps ou
Terrassement sur sol humide.
des sols (Franzen et al., 1994). Typiquement le sol est plus sec à des valeurs de CI plus
élevées (Francis et al., 1987; Tekeste et al., 2008). Busscher et al. (1997) ont trouvé une
relation linéaire inverse entre CI et l’humidité du sol, tandis que Ohu et al. (1988) ont
trouvé une relation exponentielle entre le CI et la teneur en humidité des sols limoneux
et argileux. Le CI est également lié à la densité apparente du sol et les paramètres
texturaux du sol. Ayers et Perumpral (1982) Ont signalé une relation directe entre l'IC
et la densité apparente.
On peut dire donc que l'indice de cône du sol est lié aux propriétés physiques du
sol tel que les paramètres texturaux du sol (le sable, le limon et la teneur en argile),
teneur en humidité, densité apparente et système de culture, ainsi que les pratiques de
travail du sol.
Dans la littérature scientifique, deux différentes méthodes sont utilisées pour
mesurer la résistance à la pénétration du sol. Dans la première méthode, les échantillons
de sol sont prélevés sur le terrain à une certaine profondeur de sol à l'aide d'un tube,
ensuite les échantillons sont analysés en laboratoire pour déterminer la résistance à la
pénétration. Avec l'autre méthode, on utilise un pénétromètre à cône. Afin de
déterminer l'indice de cône du sol, on utilise généralement des pénétromètres statiques
ou dynamiques. Le cône agit perpendiculairement sur la surface du sol pour les deux
pénétromètres. La différence entre les deux pénétromètres réside dans la façon dont la
force de pénétration du cône dans le sol est fournie.
Le pénétromètre dynamique de construction très simple, il est composé d'une tige
verticale terminée par la pointe d’un cône. Une masselotte coulisse autour de la tige.
On la remonte manuellement et on la laisse tomber : le choc sur une butée provoque
l'enfoncement de la pointe dans le sol.
En reportant sur un graphique les enfoncements successifs et les nombres de
coups correspondants, on obtient un profil pénétrométrique en énergie de pénétration.
En utilisant la formule empirique dite" des Hollandais », on obtient les valeurs
correspondantes de la résistance à la pénétration. Ce type de pénétromètre est souvent
utilisé lorsque le sol est très dur. (BILLOT. 1982).
M2 × h n
RP = ×
2(M + m)S Z
Figure 5 : Pénétromètre à cône vertical avec capteurs pour la teneur en eau du sol et
la conductivité électrique apparente (Sun et al., 2008).
temps et sont très variables d'un point à l’autre. Cette méthode de mesure ne permet
donc pas d’être embarquée sur des tracteurs, afin de réaliser des mesures en continues
et en temps réel. Elle ne permet pas de réaliser des systèmes de contrôle des travaux du
sol selon l’état actuel du sol afin de prendre des décisions in situ et en temps réel.
D’autres travaux ont été faites dans ce domaine, afin de trouver des méthodes ou des
systèmes de mesures, avec des capteurs adéquats de la résistance de sol en continu et
en temps réel. On trouve parmi ces travaux, Abbaspour-Gilandeh, (2009) ont conçu et
construit un système de mesures avec plusieurs tiges instrumentées pour mesurer la
résistance mécanique du sol à des différentes profondeurs sur l'ensemble des 40 cm du
profil du sol tout en se déplaçant à travers le champ. (Hemmata et al, 2014) ont mis au
point un pénétromètre horizontal acoustique à multiple point de mesures, avec trois
corps prismatiques d’un angle de 30° fixés horizontalement aux dents d’un cultivateur
en forme de S et travaille à des profondeurs de 10, 20 et 30 cm. Les bouts travaillant à
10 et 30 cm de profondeur ont été équipés de microphones.
Des groupes de recherche à travers le monde se concentrent sur le
développement de nouvelles techniques d’acquisition des données (Adamchuk et al.,
2004). Cette recherche était basée sur la cartographie sur place des propriétés du sol en
intégrant plusieurs capteurs dans une seule unité mobile. Dans cette étude, un système
de cartographie intégrée des sols (ISMS) a été développé pour combiner trois différents
capteurs du sol ensemble pour mesurer la teneur en humidité du sol, la matière
organique du sol et la résistance mécanique du sol dans un seul passage au champ. Un
capteur à capacitance a été utilisé pour mesurer la constante diélectrique du sol afin de
calculer la teneur en eau du sol, ces données ont été utilisées pour prédire la teneur
volumétrique en eau gravimétrique du sol (pondérale). Pour prédire la teneur en
matière organique du sol, deux capteurs optiques ont été utilisés pour mesurer la
réflectance du sol à deux longueurs d'onde différentes, une cellule de charge de type
capacité a été développée pour mesurer la force de cisaillement du sol en un seul
passage pour le calcul de la résistance mécanique du sol.
Sensor type
Electrochemical
Mechanistic
Gamma-ray
Radio wave
Microwave
Electrical
Optical
X-ray
Soil property1
Chemical
Total carbon D D D
Organic carbon I D
Inorganic carbon I D
Total nitrogen D D D
Nitrate-nitrogen I I I D
Total Phosphorus D D I
Extractable phosphorus
Total Potassium D D D
Extractable potassium I I
Other major nutrients D D D
Micronutrients, elements D D D
Total Iron D D D I
Iron oxides I D I
Heavy metals D D I
CEC I I I
Soil pH I I D D
Buffering capacity and LR I I
Salinity and sodicity D D D
Physical
Color D
Water content D D D D D I
Soil matric potential I D I
Particle size distribution I I I I I
Clay minerals I D D I I
Soil strength D
Bulk density I I D I
Porosity D
Rooting depth I D
1 – Soil properties directly (D) or indirectly (I) predictable using different types of proximal soil sensors
V. Les microcontrôleurs
Avec les progrès de la miniaturisation, et la standardisation des besoins des
microprocesseurs et les contrôleurs de périphériques, toute une carte mère a pu être
mise dans une seule puce appelée microcontrôleurs. L’usage de microcontrôleurs est
actuellement en plein développement et est dans tous les domaines de la vie industrielle
et courante, et à tous les degrés de complexité (de 8 pattes à près de 200 pattes et plus).
Une mémoire morte (ROM) généralement mémoire flash pour stocker le firmware.
Mais différentes technologies peuvent être employées : EPROM, EEPROM ;
Un oscillateur pour le cadencement. Il peut être un quartz, un circuit RC ou une PLL ;
Des périphériques, pour effectuer des tâches spécifiques. Dont on peut citer :
- Les convertisseurs analogiques-numériques (ADC),
- Les convertisseurs numériques-analogiques (DAC),
- Les générateurs de signaux à modulation de largeur d'impulsion (PWM pour
Pulse Width Modulation),
le Freescale 68HC11 ;
la famille Freescale 68HC08 ;
la famille Freescale 68HC12 ;
la famille des PIC de Microchip ;
la famille des dsPIC de Microchip ;
la famille des ST6, ST7, STM8, ST10, STR7, STR9, STM32 de STMicroelectronics ;
la famille PICBASIC de Comfile Technology;
V.3.3 Le compilateur
Une fois le programme écrit, il faut le compiler, c’est à dire transformer le code
source en code binaire instructions directement compréhensibles par le processeur du
microcontrôleur. Le fabricant du microcontrôleur utilisé proposera un compilateur
spécifique à son matériel, allant généralement de pair avec l’outil de développement.
C’est le cas, par exemple, pour le compilateur XC qui accompagne l’outil MPLAB X, le
compilateur Keil pour MDK-ARM ou le compilateur IAR pour l’outil du même nom.
V.3.4 Le programmateur
Une fois le programme compilé, il faut pouvoir l’inscrire dans la mémoire du
microcontrôleur ciblé. Pour cela, il faut un outil matériel communément appelé un
programmateur.
V.3.5 Le débogueur
Le débogueur permet d’exécuter le programme et de superviser son
fonctionnement en temps réel depuis un ordinateur.
V.3.6 Le simulateur
Le simulateur et un logiciel fonctionnant sur un pc et qui permet de tester le code
d’un programme pour microcontrôleur sans que la partie matérielle ne soit disponible.
Il faut retenir qu’un programme qui fonctionne sans problème sur un simulateur
n’implique pas forcément qu’il fonctionnera aussi bien sur un microcontrôleur.
Note : ces outils vont nous servir pour le développement du système de mesures.
VI. L’ARDUINO
Beaucoup de cartes sont équipées de l’ATMega328 (Uno, Pro Mini, Nano, ...) mais,
parmi les AVR, on trouve aussi l’ATMega32u4. Ce dernier se distingue par une interface
USB intégrée qui permet de se passer du convertisseur USB/série pour la
communication avec l’ordinateur et par une quantité de mémoire vive de 25 % plus
élevée. L’ATMega32u4 équipe entre autres le Leonardo, le Micro et le Pro Micro. En
théorie, les cartes à base d’ATMega32u4 devraient être moins chères mais, ce n’est pas
le cas.
Serial Out (TX) & Serial In (RX) - (RX) utilisé pour recevoir et (TX) transmettre des données
en série avec la technologie TTL. Ces broches sont connectées aux broches
correspondantes de la puce ATmega 16U2 (USB-to-TTL). Elle est également employée
pour dialoguer avec certains modules comme les modules radio XBee ou certains
modules Wi-Fi ou encore Bluetooth.
Interruptions externes - les broches 2 et 3 peuvent être configurées pour déclencher
une interruption sur une valeur faible, un front montant ou descendant ou un
changement de valeur.
PWM - selon les Arduinos, de 6, pour l’Arduino Uno précède par le tilde ~ (3, 5, 6, 9, 10
et 11), à 15 broches, pour l’Arduino Mega, certaines broches peuvent être configurées
en sortie PWM (Pulse-Width Modulation). Le rapport cyclique de la PWM est réglé par
programme entre 0, le signal est constamment à l’état bas, 0V, à 255, le signal est
constamment à l’état haut, 3,3V ou 5V selon l’Arduino, soit un rapport cyclique de
100%. La PWM trouve son emploi lorsqu’il s’agit de commander un moteur électrique à
courant continu, ou une intensité lumineuse, par exemple une LED.
SPI - broches 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). SPI signifie Interface Périphérique
Série. Ces broches prennent en charge la communication SPI à l'aide de la bibliothèque
SPI.
Broches d'entrée analogique - les Arduinos sont pourvus de 6, pour l’Uno, à 16 entrées
analogiques, pour le Mega. Ce sont les broches étiquetées A suivie d’un nombre.
Chacune fournissant 10 bits de résolution (c'est-à-dire 1024 valeurs différentes). Ces
broches peuvent lire le signal d'un capteur analogique (comme un capteur de
température) et le convertir en une valeur numérique utilisable. Le MCU des Arduinos
possède une référence de tension interne de 1,1V qui peut être sélectionné à la place
de la tension d’alimentation. Cela permet une meilleure résolution, environ 1mV, sur les
faibles valeurs de tension à convertir. Il est également possible de sélectionner la tension
fournie sur la broche AREF comme tension de référence.
I2C - les broches A4 (SDA) et A5 (SCL) sont utilisées pour communiquer en utilisant la
Bibliothèque Wire. Elles constituent le bus I2C. L’I2C est l’un des bus de communication
disponibles pour dialoguer soit avec un autre Arduino soit avec des circuits
périphériques disposant de ce bus. 2 broches sont employées pour l’I2C, l’horloge et
l’adresse/donnée. De nombreux circuits périphériques disposent d’une interface I2C.
Broche de Réinitialisation - mettre cette ligne à l’état LOW réinitialise le microcontrôleur.
Généralement utilisé pour ajouter un bouton de réinitialisation aux blindages qui
bloquent celui sur la carte.
VI.3.7 Auto-reset
Le circuit imprimé de l’Uno contient une piste qui peut être coupée pour supprimer
l’auto-reset. Bien qu’il n’est pas conseiller de procéder à cette modification, sous peine
de perdre certaines fonctionnalités (notamment pour le téléchargement de code). Cette
opération n’est pas irréversible : il suffit de ressouder les deux extrémités de cette piste
ensemble. Il y a un marquage qui précise l’endroit où opérer : "RESET-EN". Il est aussi
possible de supprimer l’auto-reset en connectant une résistance de 110 ohms entre le
5V et la ligne « reset ».
VI.3.12 Utilisation
Notre projet de thèse utilise la carte Arduino nano et la carte Arduino MEGA pour
plus de détails voire partie étude et réalisation.
Afin d’utiliser les cartes Arduinos le logiciel Arduino IDE est obligatoire. Comme a
été dit au début l'Arduino est une plateforme open-source d'électronique programmée
basée sur une simple carte à microcontrôleur (de la famille AVR) et un logiciel servant
d'interface entre l’ordinateur et l'Arduino créant un environnement de développement
qui va permettre d'écrire, de compiler et de transférer un programme vers la carte
Arduino. L'environnement Arduino simplifie la façon de travailler avec les
microcontrôleurs : il est peu coûteux, multiplateforme (Windows, Mac, GNU/Linux), son
environnement de programmation est simple - clair - open source - extensible.
Pour écrire, modifier ou injecter (téléverser) les programmes (le code) dans le
microcontrôleur, on utilisera une interface graphique appelée IDE (Integrated
Development Environment). Cet environnement de développement intégré est
téléchargeable sur le site Arduino.
VI.5 Android
Android est un système d'exploitation open source a noyau Linux puissant,
moderne, simple et flexible. Android est développé avec le langage de programmation
java et ou C/C++, il s’adapte à des architectures différentes à processeur ARM.
Android offre aux développeurs la possibilité de créer et d’améliorer des
applications tournant sur sa plateforme.
Le noyau Linux lui fournit une grande mémoire, la gestion de processus, le modèle
de sécurité, le soutien des bibliothèques partagé...etc.
Android Studio qui est un IDE qui contient le kit de développement (SDK)
d'Android, un ensemble complet d'outils de développement d’applications Android.
Le diagramme de la figure 13 illustre les principaux composants du système
d’exploitation Android.
VI.5.1 Applications
Android est fourni avec un ensemble de programmes de base, nommés
applications natives, permettant d'accéder à plusieurs fonctionnalités comme les Mails,
les SMS, le téléphone, le calendrier, les photos, le Web, … etc. Ces applications sont
VII. Conclusion
Cette étude bibliographique est essentielle dans ce travail de recherche, car par
laquelle on a peut conclure les choses suivantes.
L'agriculture de précision implique une production agricole basée sur la gestion de
l'information afin de soutirer des avantages économiques, agronomiques et
environnementaux. Une révolution technique est apparue dans le monde agricole qui
aura un impact dans un avenir très proche sur l'agriculture de précision, cette révolution
que j’appellerai agriculture numérique est la fusion des machines, des capteurs et des
modèles.
Les propriétés mécaniques et physiques du sol ont une influence sur la croissance
des plantes et sur la consommation d’énergie. La méthode conventionnelle de la
collecte des données sur les propriétés du sol consiste à prendre des échantillons du sol
sur le champ et de les envoyer au laboratoire d'analyses. Cette méthode en plus de
prendre beaucoup de temps, elle exige beaucoup de travail et est Coûteuse, cette
méthode ne produit pas de vraies cartes des propriétés du sol, car les points
d'échantillonnage sont peu peuplés et ne suffisent pas à identifier la variabilité dans
l'espace des propriétés du sol.
Les objectifs de cette étude étaient la conception d'un système de capteurs pour
l’analyse en temps réel des propriétés physico-mécanique du sol, pour la mesure
intégrée et en continu de la teneur en eau du sol, de la résistance mécanique du sol et
être ouvert à d’autres propriétés du sol. Ces mesures permettent de réaliser une carte
des propriétés du sol pour être réutilisé dans le cadre de l'agriculture de précision.
Deuxième partie :
MATERIELS ET METHODES
Introduction
Le fonctionnement du système qui est embarqué sur un tracteur se base sur les
mesures en temps réel du glissement, du rayon dynamique des roues motrices, de la
force de résistance à la traction, de l’humidité de sol, et sur les équations développer par
plusieurs chercheurs et approuver, et qui mettent en relation la résistance du sol avec
le glissement, la force de résistance à la traction, l’humidité, la porosité, et la texture.
La texture du sol qui permet d’indiquer les tendances du sol quant à ses qualités
physiques est une constante à l’échelle humaine, on la prend comme constante dans le
système pour un sol donné. Les variables mesurables en temps réel sont l’humidité, le
rayon dynamique des roues motrices du tracteur, la force de résistance à la traction, les
vitesses de déplacement théorique et réel du tracteur.
Pour la mesure des paramètres indiqués comme variable, on a dû réaliser un
système électronique composé de plusieurs modules selon le besoin. Ce système
comporte une carte principale à microcontrôleur l’Arduino méga 2560 sur laquelle vient
se griffer des modules nécessaires pour le bon fonctionnement de l’ensemble, des cartes
annexes comportant elles aussi des modules de mesures et de communication avec la
carte principale. Dans cette grande partie, on explique la constitution matérielle du
système, le fonctionnement de chaque module qui le constitue, leur rôle ainsi que son
utilité dans l’ensemble. On détaillera la composition de chaque module, et on
expliquera comment est fait le firmware qui le fait fonctionner. Cette partie sera divisée
en trois chapitres, un chapitre pour étudier le développement matériel, un autre pour
étudier le développement des programmes qui font fonctionner les modules et le
système tout entier et un chapitre pour étudier les modèles mathématiques que le
système utilise.
𝑇
= 𝑎1 (1 − 𝑒 −𝑎2 ∙𝐵𝑛 )(1 − 𝑒 −𝑎3 ∙𝑆 ) + 𝑎4 (02)
𝑟∙𝑊
𝑀𝑅 𝑎5 𝑎6 ∙𝑆
= + 𝑎4 + (03)
𝑊 𝐵𝑛 √𝐵𝑛
Ou K1, K2, a1, a2, a3, a4, a5, et a6 sont des coefficients de traction selon le type du
pneu (tableau 04)
𝑃 𝑇 𝑀𝑅
= − (04)
𝑊 𝑟∙𝑊 𝑊
𝑃 𝑎5 𝑎6 ∙𝑆
= 𝑎1 (1 − 𝑒 −𝑎2 ∙𝐵𝑛 )(1 − 𝑒 −𝑎3 ∙𝑆 ) − ( + ) (05)
𝑊 𝐵𝑛 √𝐵𝑛
Soit : 𝐴 = (1 − 𝑒 −𝑎3 ∙𝑆 ) et 𝐶 = 𝑎6 ∙ 𝑆
L’équation (05) devient l’équation (06)
𝑃 𝑎5 𝐶
= 𝑎1 (1 − 𝑒 −𝑎2 ∙𝐵𝑛 )𝐴 − ( + )
𝑊 𝐵𝑛 √𝐵𝑛
𝑃 𝑎1 ∙𝐴 𝑎5 𝐶
= 𝑎1 ∙ 𝐴 − 𝑎2 ∙𝐵𝑛 − − (06)
𝑊 𝑒 𝐵𝑛 √𝐵𝑛
𝐵𝑛∙𝑊
𝛿 = 𝐶𝐼 (07)
1+𝐾1
𝑏∙𝑑( ℎ
𝑏)
1+𝐾2
𝑑
𝑃 𝑎1 ∙𝐴 𝑎5 𝐶
= 𝑎1 ∙ 𝐴 − − − (06)
𝑊 𝑒 𝑎2 ∙𝐵𝑛 𝐵𝑛 √𝐵𝑛
𝑎1 ∙ 𝐴 𝑎5 𝐶 𝑃
+ + + − 𝑎1 ∙ 𝐴 = 0
𝑒 𝑎2∙𝐵𝑛 𝐵𝑛 √𝐵𝑛 𝑊
𝑎1 𝐴 𝑎5 𝐶 𝑃
𝑓(𝐵𝑛) = + + + − 𝑎1 𝐴 = 0
𝑒 𝑎2∙𝐵𝑛 𝐵𝑛 √𝐵𝑛 𝑊
Calcul de la dérivée de f(𝐵𝑛)
𝑎1 𝑎2 𝐴 𝑎5 𝐶
𝑓 ′ (𝐵𝑛) = − −
𝑒 𝑎2∙𝐵𝑛 𝐵𝑛2 2√𝐵𝑛3
𝑓 ′ (𝐵𝑛) < 0 𝑝𝑜𝑢𝑟 𝐵𝑛 > 0 𝑎𝑙𝑜𝑟𝑠 𝑓(𝐵𝑛) 𝑒𝑠𝑡 𝑑𝑒𝑐𝑟𝑜𝑖𝑠𝑠𝑎𝑛𝑡𝑒
𝑃
lim 𝑓(𝐵𝑛) = +∞ 𝑒𝑡 lim 𝑓(𝐵𝑛) = − 𝑎1 𝐴
𝐵𝑛 →0 𝐵𝑛 →+∞ 𝑊
𝑓(𝐵𝑛)
𝐵𝑛
𝑃
− 𝑎1 𝐴
𝑊
𝑃
Si − 𝑎1 𝐴 est ≥ 0 la fonction f(𝐵𝑛) n’admet pas de solution
𝑊
motrice, S coefficient de patinage, ainsi que les coefficients K1, K2, a1, a2, a3, a4, a5, et a6
(tableau 4).
Pour mesurer le glissement, divers chercheurs ont utilisé différentes techniques
comme l'effet Doppler radar, circuits électroniques utilisant des photo-capteurs, etc.
pour une mesure précise du glissement ses techniques s’avèrent compliqués et
coûteuses (Raheman and Jha, 2006).
𝑉
Pour le calcul de S, le système utilise : 𝑆 =1− (08)
𝜔𝑟
Le système calcule la vitesse angulaire de la roue motrice en mesurant N en
tours par minute, r le rayon dynamique de la même roue en (m) et utilise la méthode
GPS DGPS pour calculer la vitesse réelle Vr en (m/s). Pour mesurer N la vitesse de
rotation des roues motrices (voir mesure de la vitesse rotation des roues motrices), le
système utilise la position angulaire du gyroscope. Lorsque le gyroscope passe à travers
la même position angulaire, il en résulte un tour, un demi-tour ou un quart de tour,
mesurée pendant une durée t, ainsi le système calcule le nombre de tours par minute.
𝜔 = 2𝜋𝑁 et 𝑉𝑡 = 𝜔𝑟
K1 5 5 5
k2 3 3 3
a1 0,88 0,88 0,88
a2 0,1 0,1 0,1
a3 7,5 8,50–10,50 9,5
a4 0,04 0,03–0,035 0,032
a5 1 0,9 0,9
a6 0,5 0,5 0,5
a: de Brixius (1987).
la roue avant,
Xr distance du centre de gravité du tracteur à son essieu arrière,
arrière Or,
ef distance du point d’action de la réaction normale du sol au centre de la roue
avant Of.
Les variables dans le cas général sont :
a vecteur accélération.
ah composante horizontale du vecteur accélération.
an composante normale du vecteur accélération.
Rf force de résistance au roulement des roues avant du tracteur.
Rr force de résistance au roulement des roues arrière du tracteur.
Ra résistance de l’air.
Px composante parallèle de la force de traction.
Py composante normale de la force de traction.
Somme des moments de toutes les forces par rapport au point d’intersection à
l'interface sol-roue avant :
Puisque l’accélération est nulle ainsi que la résistance de l’air alors les équations des
moments (1) et (2) deviennent :
𝑃𝑥 = 𝑃𝑠𝑖𝑛𝜃
𝑃𝑦 = 𝑃𝑐𝑜𝑠𝜃
Les constantes sont Wt, Wo, X, Xf, Xr, Xp, Xo, Hc, hp.
Les variables sont Px, Py, , .
Pour trouver Wr, les constantes sont introduites une fois pour toute dans
l’application, pour les variables elles sont mesurées par le système ou fixées par
l’utilisateur du système, on peut aussi fixer la valeur de er et ef déférente de zéro.
Le système commence par la mesure de , et P puis il calcule Px et Py pour enfin
il calcule Wr.
𝑎𝑑
𝑃𝑥 = 𝐹3
𝑏𝑐
Si 𝑎 = 𝑐 𝑒𝑡 𝑏 = 𝑑 𝑎𝑙𝑜𝑟𝑠 𝑜𝑛 𝑎𝑢𝑟𝑎 𝑃𝑥 = 𝐹3
Donc la jauge de contrainte mesure Px et non pas P, pour trouver P on divise Px par
sin.
L’angle est pris comme une constante et est introduit lors de de l’introduction des
constantes.
(x1 –x0) / t
Il existe un autre moyen plus efficace pour la mesure de la vitesse d’avancement,
est l’utilisation du radar a effet Dopple le MDU1130 (figure 16) qui s’adapte bien à notre
système mais il est introuvable sur la marche algérienne.
En plus du cône index on détermine aussi la texture du sol l’humidité du sol et les
performances de traction du tracteur.
entre 0,1 et 0,7, les déflexions statiques radiaux des pneus variant de 10% à 30% de la
hauteur de la section du pneu non défléchie et des valeurs W / (bd) comprises entre 15
et 55kN / m2 (normes ASABE, 2011).
Début si
Si type de pneu=radial
Alors a1=0,88, a2=0,1, a3=9,5, a4=0,032, a5=0,9, a6=0,5,
Sinon a1=0,88, a2=0,1, a3=7,5, a4=0,04, a5=1, a6=0,5,
Fin si
TE = NTR / (GTR) (1 - S)
Fin.
Note : Le programme de cet algorithme est écris en java dans l’application Android
SoilTractorPrediction.
La carte Arduino Mega 2560 (figures 9,19) peut se programmer avec le logiciel
Arduino. Le bootloader du microcontrôleur ATMega2560 permet de modifier le
programme sans passer par un programmateur.
Un capteur d'humidité du sol pour mesurer la permittivité diélectrique du sol qui est
une fonction de la teneur en eau et, avec laquelle le système peut calculer la teneur
en eau du sol.
a) Principe de fonctionnement
Le clavier comporte 16 touches, dont 10 numériques (0-9) et 6 touches marquées
# * A B C D. Il est matriciel : au lieu d'avoir 16 fils (1 par touche) et une masse, le
multiplexage n'utilise que 8 sorties : 4 lignes et 4 colonnes.
Les lignes sont des sorties. Les colonnes sont des entrées maintenues au niveau
haut par une résistance interne dans Arduino. Le système envoie par balayage un
niveau bas sur chaque ligne (1 seule à la fois) et balaye les colonnes en lecture. Quand
il lit un niveau bas, c'est que la colonne est reliée par une touche appuyée à la ligne qui
est basse à ce moment.
On n'a pas besoin de programmer ce balayage, c'est la bibliothèque qui le fait. La
bibliothèque keypad.h permet de gérer facilement un tel clavier matriciel.
On le branche sur les 8 entrées successives de la carte Arduino Mega 2560 de A8
à A15 indiqué par la figure 23.
b) Utilisation
Afin que l’on puisse utiliser le clavier on fait appel à la librairie « Keypad.h », pour
l’intégrer dans le fichier source, il suffit de cliquer sur le menu « Import Library » et d’aller
chercher la bonne. Une ligne #include <Keypad.h> apparait en haut de la page du
sketch.
On définit les constantes,
const byte ROWS = 4;
const byte COLS = 4;
char hexaKeys[ROWS][COLS] = {
{'0','4','8','C'},
{'1','5','9','D'},
{'2','6','A','E'},
{'3','7','B','F'}
};
byte rowPins[ROWS] = {A8, A9, A10, A11};
byte colPins[COLS] = {A12, A13, A14 A15};
a) Caractéristiques :
Interface de contrôle : 8 ou 4 bits en mode parallèle (mode par défaut) ou 3 bits
en mode sériel (SPI)
Alimentation : 4.5 - 5.5V CC
Contrôleur : ST7920
Résolution : 128×64 pixels
Couleur d'affichage : caractères noir sur fond jaune
Angle de vision : 170°
Type d'écran LCD : STN
Contrôle du rétro-éclairage et du contraste
Dimensions du module : 93 x 70 x 22 mm
Dimensions de l'affichage : 73 x 39 mm
b) Câblage :
Commun :
GND -> la masse (0v)
VCC -> +5v
VO -> contraste (entre 0v et 5v)
RST -> reset (actif à LOW)
PSB -> choix mode (LOW = SPI, HIGH = parallèle)
c) Utilisation
Afin que l’on puisse utiliser, dans notre cas le module LCD 128x64 en mode SPI, on
fait appel à la librairie « U8glib.h », pour l’intégrer dans le fichier source, il suffit de cliquer
sur le menu « Import Library » et d’aller chercher la bonne. Une ligne #include <
U8glib.h> apparait en haut de la page du sketch.
On crée une instance à partir de l’objet U8GLIB_ST7920_128X64_1X appelée
Display en écrivant :
U8GLIB_ST7920_128X64_1X Display (22, 23, 24, U8G_PIN_NONE);
Pour la gestion de l’afficheur graphique on utilise les fonctions de la librairie
U8glib.h. (https://github.com/olikraus/u8glib/wiki/userreference)
La puce RTC utilise le bus I²C pour communiquer, et cette connexion est réalisée
au moyen de 2 lignes :
SDA (Serial Data Line) : ligne de données bidirectionnelle,
SCL (Serial Clock Line) : ligne d’horloge de synchronisation bidirectionnelle.
a) Caractéristiques :
Interface I2C deux fils
Heures : Minutes : Secondes AM / PM
Jour Mois, Date - Année
Compensation de l'année
Calendrier précis jusqu'en 2100
La broche de sortie de 1Hz
RTC à base de DS1307 avec la batterie LCR2032
c) Utilisation
Le module RTC DS1307 Tiny servira pour la mesure des vitesses angulaires et
linéaires, ainsi que la fréquence de réalisation des mesures des paramètres du sol et
autres mesures liées au projet. Pour pouvoir utiliser le module RTC DS1307 Tiny, on
utilise la librairie « RTClib.h». Pour l’intégrer c’est très simple, il suffit de cliquer sur le
menu « Import Library » et d’aller la chercher. Une ligne #include < RTClib.h> apparait
en haut de la page du sketch. On crée une instance à partir de l’objet RTC_DS1307
appelé RTC en écrivant : RTC_DS1307 RTC; et on démarre l’instance dans setup en
écrivant : RTC.begin();
Pour la gestion du module RTC DS1307 Tiny on utilise les fonctions de la librairie
RTClib. (Https://github.com/adafruit/RTClib)
b) Présentation
Il existe deux sortes de module Bluetooth, tous deux compatibles Arduino. On les
distingue par le nombre de pattes d’entrée /sorties :
HC-05 : 6 pattes d’entrées /sorties. Ce module peut être maître ou esclave. On mode
maître, il peut proposer à un autre élément Bluetooth de s’appairer avec lui, par
contre on mode esclave, il ne peut que recevoir des demandes d’appairage.
HC-06 : 4 pattes d’entrées / sorties. Ce module ne peut être qu’esclave, il ne peut
recevoir que des demandes d'appairage.
Les deux modules peuvent être utilisés en mode COMMANDE, pour les
programmer avec des « commandes AT », ou en mode DATA, pour échanger des
données.
Le module Bluetooth HC-06 ou HC-05 (figure 30) permet d'établir une liaison
Bluetooth (liaison série sans fil) entre une carte Arduino et un autre équipement
possédant une connexion Bluetooth (Smartphone, tablette, seconde carte Arduino,
etc.…).
c) Caractéristiques
Module de type JY-MCU / HC-05 maître ou esclave
Paramétrage par défaut du port série : 9600, N, 8, 1.
Le baudrate est paramétrable de 4800 à 1382400 (par commande AT,
uniquement si le module n'est pas associé, et maxi 115200 pour pouvoir l'utiliser
avec une carte Arduino).
Alimentation de 3.3 à 5V DC
LED indicatrice : statut de connexion.
Fonctionnement Bluetooth sur la bande 2.4 GHz, modulation GFSK.
Le module est apparié avec un mot de passe (1234) modifiable.
L’identificateur du module est généralement HC-05 modifiable.
f) Important
Il faut croiser Rx et Tx entre le module et l'Arduino.
La tension d'alimentation de ces modules doit être comprise entre 3,3 et 6 V, mais
la broche RX ne peut recevoir qu'une tension maximale de 3,3 V. Il faudra prévoir
un pont diviseur de tension pour ramener la tension 5 V délivrée par la carte
Arduino pour ne pas endommager la broche RX du module Bluetooth.
g) Utilisation
Le module Bluetooth HC-06 est utilisé pour l’échange des informations entre la
carte Arduino Mega et l’application Android SoilTractorPrediction. Pour pouvoir utiliser
le module HC-06, on utilise la librairie « SoftwareSerial.h» par l’intégration de la ligne
#include < SoftwareSerial.h> dans le sketch et on crée une instance à partir de l’objet
SoftwareSerial appelé BltHC06 en écrivant : SoftwareSerial BltHC06(19, 18); puis on
démarre l’instance dans setup en écrivant : BltHC06.begin(9600);
Pour la gestion du module HC-06 on utilise les fonctions de la librairie
SoftwareSerial. (Https://github.com/PaulStoffregen/SoftwareSerial)
a) Caractéristiques
Fréquence : 2.4 GHz ISM (Industrial, Scientific and Medical) band
Tension d’alimentation : 1.9 à 3.6 V
Interface SPI jusqu’à 10 Mb/s (tolérant 5 V)
Vitesses de transmission : 250 kb/s, 1 Mb/s et 2 Mb/s
Très basse consommation (plusieurs mois, voire années avec une pile bouton ou
des piles AA/AAA). 900 nA deep sleep mode. 13.3 mA Radio RX at 2 Mb/s on-air
data-rate.
Portée : quelques mètres avec une antenne PCB (modèle présenté ici) et jusqu’à
un kilomètre avec une antenne externe.
Protocole propriétaire Enhanced ShockBurst™ qui permet la communication
bidirectionnelle avec mise en mémoire tampon des paquets de données,
confirmation des paquets reçus et retransmission automatique des paquets
perdus.
Chip Enable
CE input Ce signal est actif à 1 et sert à configurer le module en mode
de réception (RX) ou de transmission (TX)
1 GND GND
2 VCC 3.3V
3 CE D49
4 CSN D48
5 SCK D52
6 MOSI D51
7 MISO D50
8 IRQ -
b) Utilisation
Pour pouvoir utiliser le module NRF24L01, les librairies suivantes « SPI.h, Mirf.h,
nRF24L01.h, et MirfHardwareSpiDriver.h » doivent être ajoutées au sketch par l’ajout
des lignes suivantes.
#include <SPI.h> // Pour la communication via le port SPI
#include <Mirf.h> // Pour la gestion de la communication
#include <nRF24L01.h> // Pour les définitions des registres du
nRF24L01
#include <MirfHardwareSpiDriver.h> // Pour la communication SPI
b) Caractéristiques
Tension d’alimentation : 2.6V ~ 5.5V
Courant : <1,6mA
Température de fonctionnement : -40 ~ 85 ° C
Gain réglable de 32,64 à 128
Fréquence : 50 et 60hz
Sensibilité en sortie : 1.0±0,15 mV/V
Capacité de surcharge : 200 % F.S
c) Jauge de contrainte
Il s'agit d'un capteur de force à demi-pont (cellule de charge) de mesure allant
jusqu'à 50 kg (pour des essais au laboratoire). Il peut être utilisé pour mesurer le poids,
la force linéaire ou même la poussée.
d) Câblage à réaliser
Le câblage total à réaliser est indiqué dans le tableau 7 et schématiser par les
figures 40 et 41.
e) Important
Pour l’expérimentation, on connecte une cellule de charge de 50 kg au module
d'amplificateur de cellule de charge HX711. Le HX711 est un convertisseur analogique-
numérique analogique (ADC) de précision à 24 bits conçu pour la mesure de force et
les applications de contrôle industriel pour s'interfacer directement avec un capteur de
pont. Le multiplexeur d'entrée sélectionne l'entrée différentielle du canal A ou B dans
l'amplificateur de gain programmable à faible bruit (PGA). Le canal A peut être
programmé avec un gain de 128 ou 64, correspondant à une tension d'entrée
f) Utilisation
Pour pouvoir utiliser le module HX711, la librairie suivante « hx711.h » doit être
ajoutée au sketch avec la définition des entrées par l’ajout des lignes suivantes.
#include "HX711.h"
#define DOUT 3
#define CLK 2
HX711 scale(DOUT, CLK);
float calibration = -96650;
.
Figure 42 : Le module GY 521
a) Caractéristiques
Caractéristiques du gyroscope
Capteurs de vitesse angulaire (gyroscopes) à 3 axes X, Y et Z à sortie numérique
avec une plage en pleine échelle programmable par l’utilisateur de ± 250, ±
500, ± 1000 et ± 2000 ° / s
Le signal de synchronisation externe connecté à la broche FSYNC prend en
charge la synchronisation de l’image, de la vidéo et du GPS
ADC 16 bits intégrés permettant l’échantillonnage simultané des axes X, Y et Z
Le biais amélioré et la stabilité de température de sensibilité réduit le besoin
d’étalonnage d’utilisateur
Amélioration des performances de bruit à basse fréquence
Filtre passe-bas programmable numériquement
Courant de fonctionnement du gyroscope : 3.6mA
Courant de veille : 5μA
Facteur d’échelle de sensibilité calibré en usine
Autotest utilisateur
Caractéristiques de l’accéléromètre
Accéléromètre à 3 axes à sortie numérique avec une gamme d'échelle
programmable de ± 2g, ± 4g, ± 8g et ± 16g
b) Broches de connexion
Le module GY 521 possède huit broches:
VCC (Le module est équipé d'un régulateur de tension, ce qui nous permet de le
connecter à des sources de 3,3 V et 5 V).
GND
SCL (Ligne d'horloge série du protocole I2C.)
SDA (Ligne de données série du protocole I2C.)
XDA (données auxiliaires => données série I2C maître pour la connexion du
module à des capteurs externes.)
XCL (Horloge auxiliaire => Horloge série I2C maître pour la connexion du
module aux capteurs externes.)
AD0 (Si cette broche est BASSE, l'adresse I2C de la carte sera 0x68, sinon, si la
broche est HAUTE, l'adresse sera 0x69.)
INT (Sortie numérique d'interruption)
et 20 sera un SDA, le port 02 sert pour changer l’adresse du module pour éliminer le
conflit d’adresse avec l’horloge RTC.
le rayon statique et le rayon dynamique des roues motrices. L’unité annexe est placée à
l'intérieur de la roue (figure 18) elle contient un firmware qui gère les différents modules
de mesure, et la communication avec l’unité principale. L’unité annexe est alimentée
par une pile de 9V directement après une régulation de la tension à 5V.
EEPROM : 1 KO (ATmega328)
Vitesse d'horloge : 16 MHz
Dimensions 0.73" x 1.70"
c) Entrées – Sorties
Les E/S digitales du Nano peuvent être utilisées en entrée ou en sortie avec un
niveau logique de 5v. Chaque pin peut fournir 40mA au maximum et comporte une
résistance de pull-up interne (désactivée par défaut) de 20-50 KOhms.
Certains pins peuvent avoir des fonctions spéciales :
Série : 0 (Rx) et 1 (Tx)
Interruptions externes : 2 et 3. Ces pins peuvent être configurés pour déclencher
une interruption sur n’importe quel changement d’état
PWM : 3, 5, 6, 9, 10 et 11. Ces pins produisent une sortie PWM sur 8-bit
SPI : 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ces pins peuvent servir pour la
communication avec d’autres périphériques SPI.
LED : 13. C’est une LED sans fonction spéciale, connectée à la sortie digitale 13.
La carte Arduino Nano a 8 entrées analogiques, chacune ayant une résolution de
10 bits (1024 valeurs). Les pins analogiques 6 et 7 sont les seules qui ne peuvent pas
être reconfigurées en pins digitales.
Certains pins ont également des fonctions spéciales :
I²C : 4 (SDA) et 5 (SCL). Supporte la communication I²C (TWI) avec des
composants externes, en utilisant la librairie Wire.
Il existe quelques autres pins spéciaux sur le Nano :
AREF : Voltage de référence pour les entrées analogiques.
RESET : passez cette ligne à LOW pour redémarrer le microcontrôleur.
Habituellement utilisé pour rajouter une fonction ou un bouton de reset
directement sur les shields/modules.
II.2.2.2 HC-SR04
Le capteur HC-SR04 est un capteur à ultrason (figure 54), utilise les ultrasons pour
déterminer la distance d'un objet. Ce capteur fonctionne avec une tension
d'alimentation de 5 volts, et dispose d'un angle de mesure d’environ 15° et permet de
faire des mesures de distance entre 2 centimètres et 4 mètres avec une précision de
3mm théorique. Il offre une excellente plage de détection sans contact, avec des
mesures de haute précision et stables. Son fonctionnement n’est pas influencé par la
lumière ou des matériaux sombres, bien que des matériaux comme les vêtements
puissent être difficiles à détecter.
.
Figure 49 : Le capteur HC-SR04
a) Caractéristiques
Dimensions : 45 mm x 20 mm x 15 mm
Tension de fonctionnement : 5V DC
Courant de fonctionnement : 15mA
Plage de mesure : 2 cm à 400 cm
Résolution de la mesure : 0.3 cm
Angle de mesure efficace : 15 °
Fréquence de fonctionnement : 40kHZ
Largeur d'impulsion sur l'entrée de déclenchement : 10 μs (Trigger Input Pulse
width)
b) Broches de connexion
Vcc = Alimentation +5 V DC
Trig = Entrée de déclenchement de la mesure (Trigger input) D3
Echo = Sortie de mesure donnée en écho (Echo output) D2
GND = Masse de l'alimentation
𝑡 1 𝑡
𝑑 = 𝑣 · ∙ =𝑣 · (2)
2 1000 2000
d : distance en mm
v : vitesse en mm/μs
t : temps en μs
Dans l'air, à pression atmosphérique normale, la vitesse du son est donnée par la
formule :
𝑡
𝑑 = (331,35 + 0,607 ∙ 𝑇) · (4)
2000
d : distance en mm
v : vitesse en mm/μs
t : temps en μs
T : température en C
La fonction setup() initialise les ports séries, met la broche TRIGGER du capteur en
sortie et à LOW, et met la broche ECHO du capteur en entrée.
pinMode(trigPin_1, OUTPUT);
pinMode(echoPin_1, INPUT);
pinMode(trigPin_2, OUTPUT);
pinMode(echoPin_2, INPUT);
Pour la gestion des capteurs HC-SR04 on utilise la fonction pulseIn() qui accepte au
maximum trois paramètres et retourne un nombre entier long (unsigned long)
correspondant à la durée de l'impulsion mesurée en microsecondes.
Le capteur DS18B20 est un capteur One-Wire (figure 60), cela signifie qu'il
communique avec une carte maître au moyen d'un bus One -Wire. Plusieurs capteurs
peuvent être reliés sur un même bus One -Wire. De plus, chaque capteur possède une
adresse unique programmée lors de sa fabrication, il n'y a donc pas de risque de conflit.
Un bus One-Wire est composé classiquement de trois fils : un fil de masse, un fil
d'alimentation (5 volts) et un fil de données. Un seul composant externe est nécessaire
pour faire fonctionner un bus One-Wire : une simple résistance de tirage de 4.7k sur
la broche de données reliée à l'alimentation suffit.
Comme tout périphérique 1-Wire, le DS18B20 contient un "scratchpad" qui est une
sorte de mémoire tampon sécurisée ou l’on peut venir lire et / ou écrire des données.
C'est dans cette mémoire qu'on vient lire les données de mesures et écrire les
informations de configuration du capteur.
a) Caractéristiques
Plage de mesure : -55°C à +125°C
Tension de fonctionnement : 5V DC
Précision analogique du capteur : 0,5°C entre -10°C et +85°C
a) Caractéristiques
Conditionnement de signal sur puce, calibré et compensé en température
Erreur maximum de 2.5% entre 0°C et 85°C
Il est parfaitement adapté pour les systèmes basés sur un microprocesseur ou un
microcontrôleur.
Jauge de contrainte à cisaillement silicium breveté
Gamme de pression de -15KPa à 700KPa
Gamme de tension d'alimentation simple de 4.75VDC à 5.25VDC
Sensibilité de 6,4mV/KPa
Temps de réponse 1ms
Elément unicorps en époxy durable
Gamme de température d'utilisation de -40°C à 125°C
1 GND GND
2 VCC 3.3V
3 CE D7
4 CSN D8
5 SCK D13
6 MOSI D11
7 MISO D12
8 IRQ -
Pour pouvoir utiliser le module NRF24L01, les librairies suivantes « SPI.h, Mirf.h,
nRF24L01.h, et MirfHardwareSpiDriver.h » doivent être ajoutées au sketch par l’ajout
des lignes suivantes.
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>
Mirf.cePin = 7;
Mirf.csnPin = 8;
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.channel = 1;
Mirf.payload = 32;
Mirf.config();
Mirf.setTADDR((byte *) "nrf02");
Mirf.setRADDR((byte *) "nrf01");
Début
Réception
des données
Non
de mesures
Fin de réception
Demande Traitement de
clavier la demande
Non
Demande Traitement de
Android la demande
Non
Début
Demande de transmission
vers la carte principale
Non Demande
accorder
.
Figure 67 : activités input et output de l’application Android
Début
Initialisation de l’application
Non Connexion
Quitté avec Arduino
Non Mega
Réception
Calcule de Bn par la des données
méthode itérative puis Non
de mesures
calcule du CI
Mesure de la vitesse
Affichage des résultats
d’avancement réelle du
des calculs et des
tracteur
mesures
Calcule de la vitesse
Non théorique du tracteur et
Quitté
du glissement
VI. Conclusion
Durant la réalisation du projet certains modules ont été changés par d’autres
modules plus récents ou plus efficaces ou par leurs manques sur le marché. Le module
d’affichage graphique a été remplacé par un autre plus récent et plus efficace un (0.96″
128×64 White OLED). Le module GPS, est retiré de la carte principale pour être
remplacé par celui du smartphone, même chose pour la carte mémoire sd pour le
stockage des données de mesures.
Par manque de matériel nécessaire et disponible, le système en entier n’a pas pu
être testé sur le terrain en grandeur réelle. La grandeur réelle ne concerne que le
mécanisme de mesure de la force de traction, par contre le capteur de force a été testé
seul. Les différentes parties du système à savoir la carte principale, les cartes annexes, et
l’application Android ont été testées séparément.
Le firmware de la carte principale fonctionne normalement et contrôle bien les
modules connectés à cette dernière, le transfert des données de la carte annexe ce fait
sans perte, même chose pour le firmware de la carte annexe. Mais il n'en est pas moins
que ces firmwares nécessitent des améliorations dans les fonctions de mesures.
L’application Android quant à elle, est en version de test, et nécessite beaucoup
d’amélioration dans la facilité d’utilisation. Pour le moment, l’application réalise les
fonctions voulues à savoir, mesure et calcule l’indice de cône, la force de traction, les
performances de traction, la texture du sol, brixius number.
Pour l’humidité du sol, il existe des modèles pour la prédire à partir de l’indice de
cône, comme celui de (Collins, 1971; Wells and Treesuwan, 1977) qui disent que
𝑙𝑛(𝐶𝐼) = 𝐶1 + 𝐶2 × 𝑙𝑛(𝑀𝐶)
Ou, Cl est de l’indice de cône, MC est l’humidité du sol, C1 et C2 des constantes qui
dépendent du type de sol.
Comme dans notre cas on utilise un capteur pour mesurer la conductivité
électrique du sol, par laquelle on peut estimer l’humide du sol après étalonnage.
CONCLUSION GENERALE :
Si une seule conclusion était à garder de cette thèse, c’est que l’utilisation des
nouvelles technologies à savoir l’électronique, la robotique, l’informatique est une
chose inévitable et incontournable en agriculture de futur et en sciences agronomiques,
et ce serait aveugle d’esprit de dire l’inverse.
Le système de capteurs pour l’analyse des propriétés physico-mécaniques du sol
en temps réel et en continu, est un système conçu spécialement pour être évolutif de
côté hardware que de côté software. Côté hardware, il y a possibilité de lui ajouter des
capteurs ou de lui changer ses capteurs avec des capteurs plus performants de moment
que, la méthode de dialogue des capteurs avec la carte Arduino est du type I2C ou one
wire. Côté software (application Android) on peut modifier les équations de prédiction
et de calculs ou ajouté d’autres pour augmenter les paramètres d’analyse.
Ce système entre dans le cadre du développement de l’agriculture numérique et
de l’agriculture de précision afin de mettre à la disposition des chercheurs, des
industriels, et agriculteurs, un outil performant capable de rependre aux exigences de
ces derniers chacun dans son domaine.
Pour les chercheurs, il servira pour le développement de la recherche sur les
performances de traction des engins qui roulent sur des sols accidentés comme les sols
agricoles, afin de vérifier les performances des nouveaux modèles ou de les comparer
avec des modèles existants, et de connaitre en temps réel les caractéristiques
mécaniques d’un sol donné.
Pour les agriculteurs ; le système ainsi réalisé, suit et calcule le glissement à partir
de la vitesse de rotation des roues motrices et de la vitesse d’avancement réelle du
tracteur, donc si on lui ajoute un mécanisme qui modifie la profondeur du travail du sol,
on peut contrôler et maintenir le glissement des roues motrices dans une plage près
définie en ajustant automatiquement la profondeur de labour si c’est un labour, alors
on agira directement sur la consommation du carburant.
Ce travail de recherche a fait l'objet d'une expérience très intéressante, qui nous a
permis d’apprendre et d'améliorer nos connaissances et nos compétences dans le
domaine du sol agricole, du tracteur, de la programmation, de l’électronique
numérique, et des capteurs.
REFERENCES BIBLIOGRAPHIQUES
[15] Busscher, W.J., P.J. Bauer, C.R. Camp, and R.E. Sojka. 1997. Correction of cone index
for soil water content differences in a coastal plain soil. Soil & Tillage Research, 43:
205-217.
[16] Campbell, D.J., O’Sullivan M.F., 1991. The cone penetrometer in relation to
trafficability, compaction, and tillage. In Soil Analysis: Physical Methods, 399−429.
K. A. Smith and C. E. Mullins, eds. New York, N.Y.: Marcel Dekker.
[17] Camuzard J.-P., Le sol, un milieu complexe au pouvoir épurateur limité. ENGREF
Paris.
[18] Chen, Y., C. Cavers, S. Tessier, and D. Lobb. 2005. Short-term tillage effects on soil
cone index and plant development in a poorly drained, heavy clay soil. Soil & Tillage
Research 82(2): 161-171.
[19] Chunga S.O., Sudduthb K.A., Motavallic P.P., Kitchenb N.R., 2013. Relating mobile
sensor soil strength to penetrometer cone index. Soil and Tillage Research. 129, 9–
18.
[20] Ciza Thomas., 2011. SENSOR FUSION - FOUNDATION AND APPLICATIONS. Edited
by Ciza Thomas. Published by InTech Janeza Trdine 9, 51000 Rijeka, Croatia. ISBN
978-953-307-446-7
[21] Collins, J.G., 1971. Forecasting trafficability of soils. Technical Memo. 3-331, U.S.
Army Corps of Engineers Waterways Experiment Station, Vicksburg, MS.
[22] De Paul M. A., Bailly M., 2005. À propos de la pression exercée par les pneus,
chenilles et sabots. La Forêt Wallonne, (78), 21-33.
[23] Dean, T. J., J. P. Bell and A. J. B. Baty. 1987. Soil moisture measurement by an
improved capacitance technique, Part I. Sensor design and performance. Journal
of Hydrology 93(1-2): 67-78.
[24] Derdour H., Angers D.A. et Loverdiere M.R., 1993. Caractérisation de l’espace poral
d’un sol argileux : Effet de ses constituants et du travail du sol. Can. J. soil sci. (73)
299 – 307.
[25] Doan, V., Y. Chen, and B. Irvine. 2005. Effect of residue type on the performance of
no-till seeder openers. Canadian Biosystems Engineering, 47: 2.29-2.35.
[26] Drummond, P.E.; Christy, C.D.; Lund, E.D. Using an Automated Penetrometer and
Soil EC Probe to Characterize Rooting Zone. In Proceedings of the Fifth
International Conference on Precision Agriculture, Bloomington, MN, USA, July
27–30, 2000; pp. 34-54.
[27] Duchaufour Ph., 1997. Pédologie Tome 2 : Constituants ET propriétés du sol.
Elsevier Masson.
[28] Ehlers W., Köpke U., Hesse F., Böhm W., 1983. Penetration resistance and root
growth of oats in tilled and untilled loess soil. Soil and Tillage Research. 3(3): 261-
275.
[29] Francis, G.S., K.C. Cameron, and R.S. Swift. 1987. Soil physical conditions after six
years of direct drilling or conventional cultivation on silt loam soil in New Zealand.
Journal of Soil Research, 25: 517-520.
[30] Franzen, H., R. Lal, and W. Ehlers. 1994. Tillage and mulching effects on physical
properties of a tropical Alfisol. Soil & Tillage Research, 28: 329-346.
[31] Grenier G., 2014. Les Enjeux de l'Agriculture de Précision. Bordeaux Sciences Agro.
[32] Guerif J., 1983. Le compactage. Séminaire CEE Agimed.
[33] Hamza, M. A. and W. K. Anderson. 2005. Soil compaction in cropping systems – A
review of nature, causes and possible solutions. Soil & Tillage Research 82(2): 121-
145.
[34] Hemmata, A., Rahnamaa T., Vahabib Z., 2014. A horizontal multiple-tip
penetrometer for on-the-go soil mechanical resistance and acoustic failure mode
detection. Soil and Tillage Research. Vol 138, 17–25
[35] HENIN S., 1976. Cours de Physique du Sol. 2 vol. ORSTOM-Editest.
[36] Hénin S., Gras R., Monnier G., 1969 - Le profil cultural. Principes de physique du sol.
Masson et Cie, Paris - 331.
[37] HILLEL, D., 1980. Stress-strain relations and soil strength. Fundamentals of soil
physic, Academic Press Inc., University of Massachusetts. 318-354.
[38] Hummel, J.W., Ahmad, I.S., Newman, S.C., 2004. Simultaneous soil moisture and
cone index measurement. ASAE Trans. 47 (3): 607-618.
[39] Isavi S., Mahmoudi A., 2013. Design, fabrication and evaluation of a mechanical
transducer for real time measurement of tilth aggregate sizes. Agric Eng Int: CIGR
Journal. 15(2): 130-137.
[40] Jahns, G., Speckmann, H., 1999. Development and application of an agricultural
BUS for data transfer. Computers and Electronics in Agriculture 23(3): 219-237.
[41] Liu, W., S. K. Upadhyaya, T. Katakoa and S. Shibusawa. 1996. Development of a
texture/soil compaction sensor. In proceedings of the third international
conference on precision agriculture 617-630.
[42] Manuwa, S. and O.C. Ademosun. 2007. Draught and soil disturbance of model
tillage tines under varying soil parameters. Agricultural Engineering International:
the CIGR Ejournal Vol. IX (March): pp14.
[43] Mari, G.R., C. Ji, J. Zhou, and F.S. Bukhari. 2006. Effect of tillage machinery traffic on
soil properties, corn root development and plant growth.Agricultural Engineering
International: the CIGR Ejournal Vol. VIII (December): pp12.
[44] Merz, B. and A. Bárdossy. 1998. Effects of spatial variability on the rainfall runoff
process in a small loess catchment. Journal of Hydrology 212-213304-317.
[45] Monnier G., Stengel P., Fies J. C., 1973. Une méthode de mesure de la densité
apparente de petits agglomérats terreux. Application à l’analyse des systèmes de
porosité du sol. Ann. agron., 24 (5), 533-545.
[46] Morrison Jr., J.E., Bartek, L.A., 1987. Design and field evaluation of a hand-pushed
digital soil penetrometer with two cone materials. ASAE Trans. 30 (3) : 646-651.
[47] Mouazen, A. M., J. De Baerdemaeker and H. Ramon. 2005. Towards development
of online soil moisture content sensor using a fibre-type NIR spectrophotometer.
Soil and Tillage Research 80(1-2): 171-183.
[65] Weil Ray R., Brady Nyle C., 2008.The Nature and Properties of soils. Pearson
Education.
[66] Wells L.G., Lewis C.O., Distler R.J., 1981. Remote electronic acquisition of soil cone
index measurement. Journal of Terramechanics. 18(4): 201-207.
[67] Wells, L.G. and Treesuwan, O., 1977. The response of various soil strength indices
to changing water content. ASAE paper No. 77-1055, St. Joseph, MI.
[68] Whalley, W. R., T. J. Dean and P. Izzard. 1992. Evaluation of the capacitance
technique as a method for dynamically measuring soil water content. Journal of
Agricultural Engineering Research 52:147-155.
[69] YORO G., GODO G., 1990. Les méthodes de mesure de la densité apparente. Cah.
ORSTOM, sér. Pédol., 24 (4), 423-429.
[70] Zenga Q., Suna Y., Schulze Lammersb P., Maa D., Linc J., Huegingd H., 2008.
Improvement of a dual-sensor horizontal penetrometer by incorporating an EC
sensor. Computers and electronics in agriculture (64) 333-337.
[71] Zwaenepoel P., Le Bars J.M., 1997. L’agriculture de précision. Ingénieries – E A T,
IRSTEA, 12: 67-79. <hal-00461080>.
Annexes A
Annexes B
Firmware des cartes annexes
Description du sketch
1. Lecture de la pression,
2. Lecture de la température,
3. Lecture de l’angle de rotation en continu et détection de l’angle 0 et 180 ,
4. Lecture de HC-SR04 (1) et HC-SR04 (2) en continu avec détection de la valeur de mesure
des HC-SR04 (1) et HC-SR04 (2) a 0 et 180 ,
5. Envoi des données de mesures vers la carte principale via NRF24L01 et recommence à
partir de 1.
Le sketch
/*
*/
void setup() {
Serial.begin(9600); //Définit le débit pour la transmission de données en série
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
void loop() {
unsigned int one = 0;
sensors.requestTemperatures();
T = sensors.getTempCByIndex(0);
read_angle();
if(x<3){
H0 = read_distance(T , trigPin_1, echoPin_1);
H180 = read_distance(T , trigPin_2, echoPin_2);
}
if(x<1 | one == 0){
N++;
one = 1;
}
if(x>2){
one = 0;
}
transmit_data();
}
AcX=Wire.read()<<8|Wire.read();
AcY=Wire.read()<<8|Wire.read();
AcZ=Wire.read()<<8|Wire.read();
//Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
//Mesure le temps (en μs) entre l'envoi de l'impulsion ultrasonique et son écho (s'il existe)
long measure = pulseIn(ECHO_PIN, HIGH, 0);
int message[5];
message [0] = int (pressureValue); // pression en kPa
message [1] = int (T); // température en C
message [2] = int (H0); // H0 en mm
message [3] = int (H180); // H180 en mm
message [4] = int (W); // tr/s
Annexes C
Description du sketch
Le sketch
/*
Project name: Soil and Tractor Prediction
Code name: doctorat
Author: Lies BOUDHAR
Copyright: (1985-2018).
Circuit: Carte principale
Date: 28/11/2017 at 19:30
Last Revision: 23/05/2018 at 02:46
- Initial release;
Description:
* Test configuration:
MCU: ATmega2560
Dev. Board: ARDUINO MEGA
Oscillator: 16 MHz
Ext. Modules: nRF24L01, GY 521, HC-05, HX711, ESP_ssd1306_128x64_SPI, keypad 4x4, RTC1307
SW: C/C++ ARDUINO
* NOTES:
*/
#define OLED_MOSI 11
#define OLED_CLK 13
#define OLED_DC 10
#define OLED_CS 12
#define OLED_RESET 9
U8GLIB_SSD1306_ADAFRUIT_128X64 Display(OLED_CLK, OLED_MOSI, OLED_CS, OLED_DC,
OLED_RESET);
long loop_timer;
int lcd_loop_counter;
int num, menu, X, Y, L;
float traction;
float angle;
float conductivity;
int humidite;
int Datas[8];
void setup() {
Serial.begin(9600); //Définit le débit pour la transmission de données en série
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
TractionCell.set_scale(2280.f); //
TractionCell.tare(); //
num = 0;
X = 33;
Y = 10;
L = 14;
draw_accu();
delay(5000);
loop_timer = micros();
lcd_loop_counter = 0;
}
void loop() {
int message[5];
if(Mirf.dataReady()){
Mirf.getData((byte *) &message); // Réception du paquet
Datas[0] = message [0]; // pression en kPa
Datas[1] = message [1]; // temperature en C
void sendAndroidValues(){
Serial.flush();
for(int k=0; k<7; k++){
Serial.print(Datas[k]);
Serial.print('+');
}
}
//traitement clavier
void key_traitement(){
// Ecran d'accueil
void draw_accu(){
Display.firstPage();
do {
Display.setFont(u8g_font_unifont);
Display.drawStr(1, 10, "BOUDHAR LIES");
Display.drawStr(1, 25, "ENSA 04/2018");
Display.drawStr(1, 40, "These doctorat");
Display.setPrintPos(64, 1);
} while( Display.nextPage() );
}
// Ecran MENU
void draw_menu(void) {
Display.firstPage();
do {
Display.setFont(u8g_font_profont12);
Display.drawStr( 0, 10, "MENU");
Display.setFont(u8g_font_profont11);
Display.drawStr( 35, 10, "Controle");
Display.drawStr( 35, 20, "Reglages");
Display.drawStr( 35, 30, "Ecran d'accueil");
Display.drawHLine(X, Y, L);
Display.drawHLine(X, Y+1, L);
Display.drawVLine(X, Y-8, 10);
Display.drawVLine(X-1, Y-8, 10);
} while( Display.nextPage() );
menu=0;
}
} while( Display.nextPage() );
menu=0;
}
// Ecran Reglages
void draw_set(void) {
Display.firstPage();
do {
} while( Display.nextPage() );
menu=0;
}
Annexes D
import android.support.v7.app.AppCompatActivity;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
import android.os.Bundle;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bluetooth_button = findViewById(R.id.Bluetooth_button);
Bluetooth_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startBluetoothActivity();
}
input_button = findViewById(R.id.input_button);
input_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startInputActivity();
}
});
output_button = findViewById(R.id.output_button);
output_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startOutputActivity();
}
});
info_button = findViewById(R.id.info_button);
info_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startInfoActivity();
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_output);
GTR_output = findViewById(R.id.GTR_output);
MRR_output = findViewById(R.id.MRR_output);
NTR_output = findViewById(R.id.NTR_output);
TE_output = findViewById(R.id.MRR_output);
Bn_output = findViewById(R.id.Bn_output);
CI_output = findViewById(R.id.CI_output);
H_output = findViewById(R.id.H_output);
Pull_output = findViewById(R.id.Pull_output);
Wr_output = findViewById(R.id.Wr_output);
Va_output = findViewById(R.id.Va_output);
Vr_output = findViewById(R.id.Vr_output);
Structure_output = findViewById(R.id.Structure_output);
Slip_output = findViewById(R.id.Slip_output);
TyreType = 1;
Pull = 8;
Wr = 36;
Va = 3;
Vr = 3.8;
K1 = 5.0;
K2 = 3.0;
b = 0.25;
d = 1.5;
δ = 9.0;
h = 45.0;
Go_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (TyreType == 1){ // diagonal
a1=0.88; a2=0.1; a3=7.5; a4=0.04; a5=1.0; a6=0.5;
}else{ // radial
a1=0.88; a2=0.1; a3=9.5; a4=0.032; a5=0.9; a6=0.5;
}
S = 1 - Va/Vr;
Slip_output.setText(String.format ("%.2f", S*100) + " %");
Pull_output.setText(String.format ("%.2f", Pull) + " daN");
Wr_output.setText(String.format ("%.2f", Wr) + " daN");
Va_output.setText(String.format ("%.2f", Va) + " km/h");
Vr_output.setText(String.format ("%.2f", Vr) + " km/h");
Get_Bn_CI();
Tractor_Performance();
}
});
}
x =Iteration(x, 1, 0);
x =Iteration(x - 1, 0.1, n);
x =Iteration(x - 0.1, 0.01, n);
Bn = x - 0.01;
CI=(Bn*Wr)/(b*d)*((1+K1*(δ/h))/(1+K2*(b/d)));
Bn_output.setText(String.format ("%.2f", Bn));
CI_output.setText(String.format ("%.2f", CI) + " kPas");
}
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public double clay, sand, silt, b, h, d, di, X, Xf, Xr, Hc, Xp,Wt;
public String texture = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_input);
Texture = findViewById(R.id.Texture_output);
clay_input = findViewById(R.id.Clay_input);
sand_input = findViewById(R.id.Sand_input);
silt_input = findViewById(R.id.Silt_input);
b_Input = findViewById(R.id.b_Input);
h_input = findViewById(R.id.h_input);
d_Input = findViewById(R.id.d_Input);
di_Input = findViewById(R.id.di_Input);
X_Input = findViewById(R.id.X_Input);
Xf_Input = findViewById(R.id.Xf_Input);
Xr_Input = findViewById(R.id.Xr_Input);
Hc_Input = findViewById(R.id.Hc_Input);
Xp_Input = findViewById(R.id.Xp_Input);
Wt_input = findViewById(R.id.Wt_input);
Texture_button.setOnClickListener(new View.OnClickListener() {
Clear_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clay = sand = silt = b = h = d = di = X = Xf = X = Hc = Xp = Wt = 0.0;
texture ="";
String string = Float.toString((float)0.0);
clay_input.setText(string);
sand_input.setText(string);
silt_input.setText(string);
Texture.setText(texture);
b_Input.setText(string);
h_input.setText(string);
d_Input.setText(string);
di_Input.setText(string);
X_Input.setText(string);
Xf_Input.setText(string);
Xr_Input.setText(string);
Hc_Input.setText(string);
Xp_Input.setText(string);
Wt_input.setText(string);
}
});
}
@Override
public void finish() {
Intent data = new Intent();
clay = Double.valueOf(clay_input.getText().toString());
sand = Double.valueOf(sand_input.getText().toString());
silt = Double.valueOf(silt_input.getText().toString());
data .putExtra("clay_init", Double.toString(clay));
data .putExtra("sand_init", Double.toString(sand));
data .putExtra("silt_init", Double.toString(silt));
data .putExtra("texture", Texture.getText().toString());
setResult(RESULT_OK, data );
super.finish();
}
}
ABSTRACT
The sensor system for the analysis of physicals and mechanicals properties of soil in real
time and continuously is a set of electronic circuit made around the Arduino Mega 2560. It
features an alphanumeric display, matrix keypad, a conditioning circuit for strain gauges, a
micro SD adapter, a Bluetooth module, two RF Module 2.4Ghz, two pressure sensors, four
distance sensors, an electrical soil conductivity sensor, two rotation speed sensors, a GPS. It
communicates with the application installed in Android. The Android application manages all
operations of calculations and decisions. The system embarks on a two-wheel drive tractor. The
Android application for calculations and decisions uses mathematical equations developed by
researchers that make relationship between the cone index, sliding, and the force of resistance
to traction, wet soil, and texture and soil structure.
Key words: Precision agriculture, tractor, Soil sensors, Arduino, microcontroller, firmware,
Android, soil strength, wheel slip.
Résumé
Le système de capteur pour l’analyse des propriétés physico-mécanique du sol en temps
réel et en continu est un ensemble de circuits électroniques réalisé autour de la carte Arduino
Mega 2560. Il comporte un afficheur alphanumérique, un clavier matriciel, un circuit de
conditionnement pour jauges de contrainte, un adaptateur pour mémoire micro SD, un
module Bluetooth, deux modules HF 2.4Ghz, deux capteurs de pression, quatre capteurs de
distance, un capteur de conductivité électrique de sol, deux capteurs de vitesse de rotation, un
GPS. Il communique avec un système Android où est installée l’application qui gère l’ensemble
des opérations de calculs et de prise de décision. Le système est embarqué sur un tracteur à
deux roues motrices. L’application Android pour les calculs et les prises de décision, utilise des
équations mathématiques développées par des chercheurs qui mettent en relation l’indice de
cône avec le glissement, la force de résistance à la traction, l’humide du sol, la texture et la
structure du sol.
نبذة مختصرة
نظام استشعار لتحليل الخصائص الفيزيائية والميكانيكية للتربة في الوقت الحقيقي وباستمرار عبارة عن مجموعة من الدوائر اإللكترونية
، دائرة تكييف لمقاييس الجهد، لوحة مفاتيح مصفوفة، وهي تتميز بشاشة أبجدية رقمية. Arduino Mega 2560 التي صنعت حول
، واثنين من أجهزة استشعار الضغط، غيغاهرتز2.4 واثنين من الترددات الالسلكية وحدة، وحدة بلوتوث، محولmicro SD و
ونظام، واثنين من أجهزة االستشعار سرعة الدوران، وجهاز استشعار توصيلية كهربائية كهربائية،وأربعة أجهزة استشعار عن بعد
يبدأ النظام. جميع عمليات الحسابات والقراراتAndroid يدير تطبيق. Android يتواصل مع التطبيق المثبت في.تحديد المواقع
للحسابات والقرارات المعادالت الرياضية التي طورها الباحثون التي تربط العالقةAndroid يستخدم تطبيق.على جرار ذات دفعتين
.بين مؤشر المخروط واالنزالق وقوة مقاومة الجر والتربة الرطبة والملمس وهيكل التربة
زلة العجالت، قوة التربة، البرامج الثابتة، المتحكم الدقيق، أجهزة استشعار التربة، الجرار، الزراعة الدقيقة:الكلمات المفتاحية
.Arduino, Android