C’est avec plaisir que nous réservons ces quelques lignes en signe de gratitude et de profonde
reconnaissance à l’égard de tous ceux qui nous ont aidés à la réalisation de notre projet de fin
d’étude.
Avant d’entamer ce rapport, nous tenons à remercier notre encadreur interne, Madame
SMIDA FETEN pour l’aide, les suggestions et les conseils concernant les travaux effectués
durant la période de stage.
Nous profitons aussi de l’occasion pour remercier notre encadreur externes Monsieur FETHI
DZIRI pour sa résonnant, sa gentillesse et ses conseils.
Nos remercîments s’adressent aussi à tous les techniciens aux seins de la société laitière de
Mahdia « Vitalait » pour leurs compréhension et gentillesses.
Nos profonds remerciements vont également à toutes les personnes qui nous ont encouragés.
1
Dédicaces
Nos chers parents, que nulle dédicace ne puisse exprimer nos sincères sentiments
Pour leur patience illimitée, leur encouragement contenu, leur aide, en témoignage
Nos chers frères pour leurs amour et leurs soutiens qu’ils trouvent ici l’expression de nos
hantes gratitudes.
Nos chers amis qui sans leurs encourageants ce travail n’aura jamais vu le jour.
2
Sommaire
Introduction générale .................................................................................................................. 8
Chapitre1 :.................................................................................................................................. 9
I. Introduction : ................................................................................................................. 10
Chapitre2 :................................................................................................................................ 20
I. Introduction : ................................................................................................................. 21
Chapitre3 :................................................................................................................................ 42
I. Introduction : ................................................................................................................. 43
I. Introduction : ................................................................................................................. 50
Annexes ................................................................................................................................... 67
Sitographie ............................................................................................................................... 81
4
Table de figures
5
Figure 32: envoie d'un SMS par le bouclier GSM SIM900vers le téléphone portable ................ 40
Figure 33: message reçu sur le portable depuis le sim900 ......................................................... 40
Figure 34: Réception d’un message par le bouclier GSM SIM900 ............................................ 41
Figure 35: Envoie d’un SMS par un téléphone portable vers le SIM900 .................................... 41
Figure 36: page d'accueil du logiciel Proteus 8.5 ....................................................................... 43
Figure 37: Schéma du système de signalisation à distance ........................................................ 44
Figure 38: schéma ISIS en cas d'ouvrir l'interrupteur ................................................................ 45
Figure 39: Message d'alarme .................................................................................................... 45
Figure 40: Traitement d’affichage du message d’alarme en cas d'ouvrir l'interrupteur ............... 46
Figure 41: simulation de capteur de pression ............................................................................ 46
Figure 42: valeur de pression .................................................................................................... 47
Figure 43: réafficher la valeur de pression ................................................................................ 47
Figure 44: Schémas fonctionnel de l'acquisition de la pression.................................................. 47
Figure 45: Schémas théorique du montage de la fonction de signalisation ................................. 50
Figure 46: Emplacement du relais thermique et de son contact NC au niveau de l‘installation du
variateur ................................................................................................................................... 51
Figure 47: Schéma théorique du montage de la fonction de commande ..................................... 55
Figure 48: Schémas théorique du montage d’acquisition ........................................................... 60
6
Liste des tableaux
Tableau 1 : : les différents composants du système de signalisation à distance .......................... 19
Tableau 2: Présentation des caractéristiques de la carte Arduino UNO ...................................... 22
Tableau 3: Différentes broches entrées/sorties numériques ....................................................... 24
Tableau 4: caractéristiques du module GSM sim900 ................................................................. 26
Tableau 5: les différents LEDs du GSM SIM900 ...................................................................... 29
Tableau 6: les différents modes d’alimentation du module GSM SIM900 ................................. 30
7
Introduction générale
D’après beaucoup d’analyse et statistique effectuées, il s’avère que de plus en plus d’internautes
se connectent désormais à internet via leurs téléphones portables, ceci provoque un développent
exponentiel des appareils mobiles qui sont répandus comme une trainée de poudre dans le monde
de développent et révolutionnant le domaine des communications notamment les zones rurales.
C’est dans ce cadre qu’entre le sujet de notre PFE. Il s’agit en fait de concevoir et de développer
une solution informatique assurant l’envoie des informations d’une station de forage loin de 5km
à la société laitière de Vitalait. Les opérateurs reçoivent une information par téléphone portable
qui indique l’état de la pompe du forage (en marche ou en arrêt ainsi que les différentes mesures
donnés par ses capteurs de pression et de niveau d’eau
Ce rapport détaille les différentes phases dont nous sommes passées par dans le but d’aboutir à
une application fiable et satisfaisante. Pour cela le rapport est composé de trois chapitres. Dans le
premier chapitre nous présentons l’entreprise d’accueil ainsi que le cahier des charges proposé.
Le deuxième chapitre est consacré aux analyses et spécification des besoins. Le dernier chapitre
développe les détails de réalisation de notre application.
8
Chapitre1 :
Présentation du cadre
de projet
9
I. Introduction :
Ce chapitre va servir dans un premier temps à la présentation de l'organisme d'accueil Vitalait.
Nous définissons dans un deuxième temps le sujet et l'objectif principal du projet. La deuxième
partie sera consacrée à la définition de la méthodologie et la troisième partie s’intéresse au
formalisme adoptée lors de la réalisation de ce projet.
La réalisation de ce projet nécessite une étude approfondie sur certaines notions qui touchent non
seulement le cadre général du projet, mais aussi son implémentation.
1. Présentation de la société :
Dans ce paragraphe, nous allons présenter la société « Centrale Laitière de Mahdia Vitalait » en
identifiant les différents services.
a. Historique :
CLM « Centrale Laitière de Mahdia Vitalait» est une centrale laitière entrée en activité en 1998
disposant actuellement d’une capacité de production de 50.000.000 litres par an et d’une gamme
de produits variée : lait, beurre et lait aromatisé.
Nom commercial : VITALAIT.
Date de création : Juin 1997.
Forme juridique : S.A.
Capital social : 9 468 900 dinars.
Date d’entrée en production du lait en bouteille plastique et du beurre : 07/12/1998.
Lancement de la production du lait en brique, du lait aromatisé du jus en briques : juin
2000.
Lancement de la production en demi-litre : juin 2007
Lancement de la production de produit frais (yaourt aromatisé, yaourt à boire et lait
fermenté) : septembre 2007.
10
b. Les produits du Vitalait :
La capacité moyenne de l’usine est de 130.000 à 140.000 litres de laits frais par jour, soit une
capacité globale de transformation de l’ordre de 50 millions de litres par ans.
Elle possède une gamme de produits diversifiée :
Lait stérilisé en bouteille plastique 1litre (entier, demi-écrémé et écrémé)
Lait UHT en carton de 1litre (entier, demi-écrémé et écrémé) et ½ litre (demi-écrémé)
Beurre (carton 5kg, seaux 2.5kg et conditionné 200 et 100g)
Produits frais (leben, raieb, yaourt).
11
c. Organigramme de la société
Conseil
d’administration
Président
directeur général
12
d. Organigramme de l’usine
Service de l’usine
Section Traitement
Magasin des énergétique lait cru
pièces
Production
Atelier UHT Production
maintenance bouteilles
mécanique
Production
Atelier beurre Production
maintenance leben et
électrique raieb
13
2. Etude du projet :
a. Introduction :
Voici un schéma descriptif du fonctionnement de la station :
10/ vanne
3/débit mètre
9/capteur de pression
8/pressostat
Cette station contient une pompe immergée qui assure le pompage de l’eau vers l’usine. La
pompe immergée est une électropompe multicellulaire destinée à puiser de l'eau à plus de 8 m de
profondeur. Donc c’est une pompe de puits ou pompe de forage, dont le profil effilé est conçu
pour une installation dans des espaces très étroits. En plus, le fonctionnement de la pompe est
contrôlé par un relais thermique (lr2 d13) afin de protéger la pompe contre les surcharges et les
coupures de phase.
Le fonctionnement de la pompe est relié à un capteur de pression qui donne une pression entre
0bar et 4bar, ce capteur est protéger par un pressostat.
Pour gérer mieux le fonctionnement de la pompe, un variateur de vitesse est associé l’armoire de
cette dernière.
14
La figure ci-dessous présente l’armoire électrique de la station de forage :
15
Le contacteur manométrique (ou Pressostat) permet d'automatiser la pompe lorsqu'elle est
associée à un réservoir suppresseur. Il est programmé selon 2 pressions : une haute (lorsqu'elle
est atteinte, il coupe alors la pompe), une basse (il la redémarre).
Voici le variateur de vitesse (figure ci-dessous) qui permet de régler la vitesse et le couple d'un
moteur électrique à courant alternatif en faisant varier la fréquence et la tension, respectivement
le courant, délivrées à la sortie de celui-ci
La station est équipée aussi par un capteur de débit qui mesure le niveau d’eau dans le puits
16
Parmi les éléments de l’armoire de la station on trouve le relais thermique qui assure la
protection contre surcharge :
17
La figure suivante est associée au circuit de commande ainsi que le circuit de puissance du
relais :
b. Problématique :
Le problème dans cette station est l’arrêt de fonctionnement de la pompe sans prévenir la
société, ce qui provoque la baisse de niveau d’eau dans les réservoirs de l’usine, la remise à
niveau des réservoirs d’eau demande du temps ce qui influe la production.
-une augmentation brusque de la pression (plus que 3 bar) ou une diminution de la pression
(jusqu’à la valeur 0bar)
-déclanchement du disjoncteur
c. Solutions proposé :
Pour remédier au problème décrit précédemment et dans le cadre du projet de fin des études nous
proposons de réaliser un système de signalisation à distante connectée via une carte Arduino
(UNO) avec un module GSM (SIM900), permettant le contrôle de la pompe électrique à distance
et l’envoie sous demande de certaines mesures données par les capteurs (pression ou niveau).
L’utilisation de cette solution est facile, en effet un ouvrier reçoit un message sur son téléphone
si la pompe tombe panne et il peut aussi demander la pression dans les canalisations.
18
d. Cahier de charge proposé :
Notre système de signalisation à distance consiste à :
-un SMS sera envoyé à l’opérateur lorsque la pompe est arrêter (c’est le problème globale de
cette station).
II. Conclusion
Au cours de ce chapitre, nous avons cité le cadre général de notre projet de fin des études intitulé
« système de signalisation à distance de la station de forage de Chiba de la société laitière de
Mahdia Vitalait ». Nous avons détaillé le cahier des charges en décrivant la démarche du projet
que nous allons suivre.
Dans le chapitre suivant nous donnerons les étapes ainsi que le matériel nécessaire pour réaliser
notre solution.
19
Chapitre2 :
Spécification des
besoins
20
I. Introduction :
Au cours de ce chapitre nous allons présenter la carte de programmation ARDUINO puis l’entité
intervenant dans la transmission des données à distance, le module GSM, avec toutes ces
particularités.
Enfin, on va concevoir comment établir la connexion entre la carte Arduino et le module GSM
puis on va tester quelques commandes AT sur ARDUINO.
21
La plateforme Arduino se présente sur plusieurs séries à savoir : Arduino Méga 2560, Arduino
Nano, Arduino Lilypad, Arduino DUE et Arduino UNO qui sera le cœur de notre système de
signalisation. Dans les annexes ont va développer les caractéristiques de ces types des cartes
Arduino par contre dans cette partie nous avons intéressés par la carte Arduino UNO.
a. Arduino UNO :
L’Arduino UNO est une carte électronique basée sur le microcontrôleur ATmega328. Elle
dispose de 14 broches numériques d'entrée / sortie (dont 6 disposent d'une sortie PWM), 6
entrées analogiques, un résonateur céramique (Quartz) à 16 MHz, une connexion USB, une prise
d’alimentation, un connecteur ICSP, et un bouton de réinitialisation.
Il contient tout le nécessaire pour soutenir le microcontrôleur, tout simplement le connecter à un
ordinateur avec un câble USB ou allumez-le avec un adaptateur ou batterie pour commencer.
La figure ci-dessous est associée à la carte Arduino UNO :
b. Caractéristiques :
Le tableau suivant est associée à différentes caractéristiques de la carte Arduino UNO :
Microcontrôleur ATmega328
Tension de fonctionnement 5V
22
Broches d'entrée analogiques 6
SRAM 2 Kb(ATmega328)
EEPROM 1 Kb (ATmega328)
c. Alimentation :
L'Arduino UNO peut être alimentée via la connexion USB ou avec une alimentation externe.
Dans le premier cas, la source d'alimentation est automatiquement sélectionnée.
Externe (non-USB) alimentation peut provenir d’un adaptateur AC –DC ou batterie. L'adaptateur
peut être connecté en branchant une prise de centre positif de 2,1 mm dans le connecteur jack de
la carte Les fils en provenance d'un bloc de piles ou d'accus peuvent être insérés dans les
connecteurs des broches de la carte appelées GND (masse ou 0V) et Vin (Tension positive en
entrée) du connecteur d'alimentation.
Le conseil d'administration peut fonctionner sur une alimentation externe de 6 à 20 volts. Si
fourni avec moins de 7V, cependant, la broche 5V peut fournir moins de 5 volts et le conseil
d'administration peut être instable. Si vous utilisez plus de 12V, le régulateur de tension peut la
carte, il est donc fortement recommandé de bien respecter la plage idéale de tension de 7 à 12
volts.
e. Broches analogiques :
La carte Arduino UNO dispose de 6 entrées analogiques, chacune pouvant fournir une mesure
d'une résolution de 10 bits (c.-à-d. sur 1024 niveaux soit de 0 à 1023) à l'aide de la très utile
fonction analogRead ( ) du langage Arduino. Par défaut, ces broches mesurent entre le 0V
(valeur 0) et le 5V (valeur 1023), mais il est possible de modifier la référence supérieure de la
plage de mes ure en utilisant la broche AREF et l'instruction analogReference ( ) du langage
Arduino. Note : les broches analogiques peuvent être utilisées en tant que broches numériques.
f. Autres broches :
Il y a deux autres broches disponibles sur la carte :
AREF : Tension de référence pour les entrées analogiques (si différent du 5V). Utilisée avec
l'instruction analogReference ( ).
RESET : Mettre cette broche au niveau BAS entraîne la réinitialisation (= le redémarrage) du
microcontrôleur. Typiquement, cette broche est utilisée pour ajouter un bouton de réinitialisation
sur le circuit qui bloque celui présent sur la carte.
g. Le branchement de la carte :
La carte Arduino UNO a de nombreuses possibilités de communications avec l’extérieur.
L’Atmega328 possède une communication série UART TTL (5V), grâce aux broches
numériques 0 (RX) et 1 (TX). On utilise (RX) pour recevoir et (TX) transmettre (les données
séries de niveau TTL). Ces broches sont connectées aux broches correspondantes du circuit
intégré ATmega328 programmé en convertisseur USB – vers – série de la carte, composant qui
assure l'interface entre les niveaux TTL et le port USB de l'ordinateur. Comme un port de
communication virtuel pour le logiciel sur l’ordinateur, La connexion série de l'Arduino est très
pratique pour communiquer avec un PC, mais son inconvénient est le câble USB, pour éviter
cela, il existe différentes méthodes pour utiliser ce dernier sans fil
24
h. Choix de l’arduiono UNO :
Il y a de nombreuses cartes électroniques qui possèdent des plateformes basées sur des
microcontrôleurs disponibles pour l'électronique programmée. Tous ces outils prennent en
charge les détails compliqués de la programmation et les intègrent dans une présentation facile à
utiliser. De la même façon, le système Arduino simplifie la façon de travailler avec les
microcontrôleurs tout en offrant à personnes intéressées plusieurs avantages cités comme suit :
Le prix (réduits) : les cartes Arduino sont relativement peu coûteuses comparativement aux
autres plates-formes. La moins chère des versions du module Arduino peut être assemblée à la
main, (les cartes Arduino préassemblées coûtent moins de 2500 DA.
Multi plateforme : le logiciel Arduino, écrit en JAVA, tourne sous les systèmes d'exploitation
Windows, Macintosh et Linux. La plupart des systèmes à microcontrôleurs sont limités à
Windows.
25
et SIMCOM enhanced AT Command. Le shield dispose aussi des 12 GPIOs, 2 sorties PWM et
du convertisseur Analogique/Digital (ADC) du module SIM900 (accessible sur la carte, logique
2.8volts).
a. Caractéristiques :
Le module GSM SIM900 possède plusieurs caractéristiques qui sont montrées le tableau
suivant :
Température de fonctionnement – 40 °C à + 85 °C
RoHS Oui
Poids 0.4 kg
26
b. Idées sur l’application :
RTC
UART
GPIOs
ADC
PCM
I2C
LCD/SP
I
Flash
27
d. Description matérielle du shield SIM900 GSM / GPRS
Le blindage SIM900 GSM / GPRS est conçu pour entourer la puce SIM900 de tout le nécessaire
pour s'interfacer avec Arduino, ainsi que quelques accessoires supplémentaires pour profiter des
fonctionnalités uniques de la puce.
Support
carte SIM
28
e. Les LED indicateurs d'état :
Il ’y a trois LED sur le shield SIM900 GSM / GPRS qui indiquent la connectivité ou l'état
d'alimentation. En observant ces LED, nous pouvons obtenir un retour visuel sur ce qui se passe
avec le bouclier.
La figure présentée est associé aux différents LEDs du module :
Les indications données par les 3 DELs sont présentées dans le tableau suivant :
Tableau 5: les différents LEDs du GSM SIM900
29
f. Alimentation du bouclier SIM900 :
L'une des parties les plus importantes pour faire fonctionner le bouclier SIM900 est de lui fournir
suffisamment de puissance.
Selon l'état dans lequel il se trouve, le SIM900 peut être un appareil relativement gourmand en
énergie. La consommation de courant maximale de la puce est d'environ 2 A pendant la rafale de
transmission. Il ne tire généralement pas autant, mais peut nécessiter environ 216 mA lors des
appels téléphoniques ou 80 mA lors des transmissions réseau.
30
Nous pouvons ajouter une alimentation externe au shield avec la prise DC 5,5 mm, à laquelle
nous pouvons connecter n'importe quel adaptateur mural 5V-9V DC dont nous disposons. À côté
de la prise DC, se trouve un interrupteur à glissière pour sélectionner la source d'alimentation
étiquetée EXTERN. Pour utiliser une source d'alimentation externe, on déplace le curseur
comme indiqué ci-dessus.
Notons que l'alimentation doit pouvoir fournir au moins 2 A de courant de surtension, sinon la
puce continuera de s'éteindre.
Liaison série
Le shield SIM900 GSM / GPRS utilise le protocole UART pour communiquer avec un Arduino.
La puce prend en charge le débit en bauds de 1200 bps à 115 200 bps avec détection automatique
des bauds.
La figure ci-dessous indique les cavaliers de la liaison dans le module GSM SIM900
31
Maintenant que nous savons tout sur le bouclier, nous pouvons commencer à le brancher à notre
Arduino.
Pour commencer, on connecte les broches D7 (Tx) et D8 (Rx) sur le shield aux broches
numériques # 7 et # 8 sur Arduino. Comme nous utiliserons le logiciel série pour parler au
bouclier, nous assurons que le capuchon du cavalier est placé sur le logiciel du port série
sélectionné.
On alimente le blindage à l'aide d'une alimentation externe nominale 5V 2A. On ne doit pas
connecter cette broche à une alimentation 5V sur Arduino, car le blindage peut ne pas
fonctionner en raison du manque de courant d'alimentation. On s’assure également de
sélectionner la source d'alimentation externe avec l'interrupteur à glissière à côté de la prise DC.
Enfin, on connecte l'antenne, on insère la carte SIM entièrement activée dans la prise.
Selon la fiche technique, tirer la broche PWRKEY sur la puce LOW pendant au moins 1 seconde
allumera / éteindra la puce. Il y a deux façons de le faire avec notre bouclier.
32
g. Déclencheur matériel :
Le bouclier est livré avec un interrupteur tactile à angle droit situé près de l'indicateur LED
PWR. Vous devez appuyer sur ce commutateur pendant environ 2 secondes pour mettre le
bouclier sous / hors tension.
h. Déclencheur logiciel :
Au lieu d'appuyer manuellement sur le PWRKEY à chaque fois, on peut activer / désactiver le
SIM900 par programme.
Tout d'abord, nous devons souder le cavalier SMD nommé R13 sur le bouclier comme mis en
évidence dans l'image.
33
Figure 23: Connexion de la broche D9 du blindage à la broche D9 de l'Arduino.
Les commandes AT sont un jeu de commandes textuelles permettant de gérer la plupart des
modems ou des modules GSM. Ces commandes commencent toujours par les lettres « AT » et se
terminent obligatoirement par un retour chariot.
b. Configuration de la liaison série logicielle :
34
ports séries logiciels avec des vitesses allant jusqu'à (115200bps) cependant un seul peut recevoir
des données à la fois.
La figure ci-dessous présente la bibliothèque qu’il faut utiliser comme première étape pour
réaliser n’importe quel programme :
#include <SoftwareSerial.h>
Exemple : Création d’une liaison série logicielle pour la liaison Bluetooth sur les
broches 7 (Rx) et 8 (Tx) :
SoftwareSerial MyGSM(7, 8)
35
La figure suivante est associé à la fonction « Begin » qui définir la vitesse utilisée par la liaison
série
Fonction « begin »
Nom_Liaison.begin(Vitesse) ;
Cette fonction qui doit être appelée au moins une fois, généralement dans la fonction
setup(),// permet de définir la vitesse utilisée par la liaison série.
La valeur prise par la variable « Vitesse » doit être une des vitesses définies par la
norme RS232.
SIM900.begin(9600);
Code PIN
Pour entrer le code il faut envoyer la commande AT suivante :
AT+CPIN = "XXXX"
Si le code PIN est correct, le module GSM répondra à cette commande par « +CPIN:
READY ».
MyGSM.println ("AT+CPIN = \"1234\"") ; // Code PIN carte SIM
36
-sélectionner le mode texte (la figure ci-dessous)
Code PIN
Le shield GPRS peut envoyer des SMS selon deux modes : le mode texte et le mode
PDU (binaire). Pour envoyer un message lisible, il faut sélectionner le mode texte en
envoyant la commande AT :
AT+CMGF = 1
-Envoyer un SMS à une autre SIM comme il est indiqué dans la figure suivante :
Numéro destinataire SMS
Il faut ensuite indiquer le numéro du téléphone du destinataire du SMS. Pour cela il
faut utiliser la commande AT ci-dessous. Le numéro doit être indiqué au format E.123.
AT+CMGS = "+XXXXXXXXXXX"
La figure suivante est associée au mode pour désactiver la répétition d’envoi du message :
37
Recevoir un message texte (SMS)
Lorsque le GPRS Shield reçoit un SMS, le module SIM900 envoi spontanément un message
similaire à "+CMTI : "SM",21". « +CMTI : » servira de détecteur pour identifier la réception du
message. Le « 21 » indiqué dans l'exemple ci-dessus identifient la position "mémoire" où le
message est stocké. Il s'agit d'une information importante.
La carte SIM dispose de 25 emplacements pour stocker les SMS en cours de réception. Une fois
le message traité, l'emplacement mémoire devrait être libéré à l'aide de la commande AT
adéquate. S’il n’y a plus de notifications « +CMTI » c'est probablement parce que la mémoire est
saturée
Pour lire le contenu d'un SMS, il faut utiliser la commande suivante avec « XX »
représentant la " la position mémoire où est stocké le message.
AT+CMGR = "XX"
Le+CMGR:
module SIM900 produira le résultat suivant :
"REC UNREAD","+21695118206","","13/07/20,14:00:39+08" Message
Le programme suivant permet d’émettre un SMS lorsqu’un caractère est entré dans le moniteur
série et de recevoir des SMS en direct :
#include <SoftwareSerial.h>
//Créer un objet série logiciel pour communiquer avec SIM900
SoftwareSerial SIM900 (9, 10) ; //SIM900 Tx & Rx est connecté à Arduino # 7 & # 8
Void setup()
{
//Commencez la communication série avec Arduino et SIM900
SIM900.begin(9600) ;
38
//Commencez la communication série avec Arduino et Arduino IDE (Moniteur
série)
Serial.begin(9600) ;
Delay(100) ;
SIM900.println ("AT+CMGF=1") ; // met le module GSM en mode texte
Delay(1000) ; // Délai de 1000 milli secondes ou 1 seconde
SIM900.println ("AT+CNMI=2, 2,0,0,0"); //AT Command pour recevoir un SMS en direct
Delay(1000);
}
void loop()
{
if (Serial.available()>0)
if(Serial.read()==’s’)
{
EnvoyerMessage();
}
if (SIM900.available()>0)
Serial.write(SIM900.read()); //Transférer le logiciel Serial reçu au port série
}
void EnvoyerMessage()
{
SIM900.println("AT+CMGS=\"+21695118206\"\r"); // Remplacez x par le numéro de
mobile
Delay(1000) ;
SIM900.println("Alerte") ; // Le SMS que nous souhaitons envoyer
Delay(1000) ;
SIM900.println((char)26); // Code ASCII de CTRL + Z
Delay(1000);
}
39
Emission d’un SMS
La capture d'écran ci-dessous montre les SMS envoyés depuis le bouclier SIM900 GSM / GPRS
vers un téléphone mobile :
Figure 32: envoie d'un SMS par le bouclier GSM SIM900vers le téléphone portable
La figure ci-dessous est associée à un SMS envoyé de la carte SIM dans le module GSM vers un
téléphone mobile :
40
Réception d’un SMS
La capture d'écran ci-dessous montre les SMS reçu par le bouclier SIM900 GSM / GPRS depuis
un téléphone portable :
Figure 35: Envoie d’un SMS par un téléphone portable vers le SIM900
II. Conclusion
Dans ce chapitre nous avons donné les différents blocs à suivre afin de transmettre le signal en
utilisant le réseau GSM, en commençant par le module SIM900 et en terminant par l’ARDUINO
UNO. Ce chapitre est ainsi d’une utilité majeure pour ce qui suit puisqu’il détaille des notions
exploitées tout au long de la partie réalisation de notre projet.
41
Chapitre3 :
Conception du système
42
I. Introduction :
Au cours de ce chapitre on va réaliser un schéma explicatif de notre système de signalisation à
distance en utilisant logiciel Proteus8.5 ainsi qu’on va câbler le module GSM SIM900 avec la
carte Arduino UNO
43
2. Développement du schéma de simulation:
Dans le but de réaliser un schéma explicatif du système on va utiliser les matériels suivants :
-interrupteur
- deux afficheurs
-voltmètre
-lampe (L1)
-un relais
Voici un modèle en Proteus qui illustre la réalisation de notre système dans la figure 35 :
44
Notre simulation sera sur trois composants : le capteur de pression MPX4115, l’interrupteur et le
relais.
Suite à la simulation une fenêtre Virtual terminal sera ouvrir et un message d’alarme sera affiche
comme indique la figure ci-dessous :
45
b. Schéma fonctionnel :
Message
Suite à la simulation une fenêtre Virtual terminal sera ouvrir et la valeur de pression sera affiche
comme indique la figure ci-dessous :
46
Figure 42: valeur de pression
Lors de la variation de la pression le « Virtual terminal » réaffichera la valeur de pression comme
indique la figure en bas :
c. Schéma fonctionnel
Sortie de capteur donner ordre pour envoyer
Carte Arduino Module Gsm
SIM900
la valeur de pression
Valeur de pression
Virtual terminal
Affichage
47
Le capteur de pression transmet un signal vers la carte Arduino, cette dernière donne l’ordre au
module GSM SIM900 d’afficher la valeur de pression dans l’afficheur « Virtual Terminal ».lors
de la variation de la valeur de pression le cycle d’afficher le message recommencera.
II. Conclusion
Au cours de ce chapitre, on a réussi à réaliser un schéma électrique illustrant notre système
de signalisation à distance de la station de forage avec le logiciel de simulation Proteus
Professional 8.5 ainsi le développement du programme Arduino pour la simulation.
Le chapitre suivant consiste à réaliser réellement notre système de signalisation au sein de
la station de forage.
48
Chapitre4 : réalisation
du système
49
I. Introduction :
Après avoir choisir les matériels correspondant à notre système de signalisation à distance et
développer un schéma électrique qui résume ce système ainsi que son programme, maintenant
on va réaliser réellement le système à distance dans la station de forage.
Schémas électrique :
La figure ci-dessous illustre le câblage pour le système de signalisation.
50
Instructions et explication du montage :
En ce qui concerne le contact auxiliaire du relais thermique :
Afin de détecter les pannes au niveau de la pompe, on a utilisée le relais thermique du variateur.
Le contact auxiliaire de ce relais s’ouvre lorsqu’un défaut est survenu au niveau du circuit. La
figure ci-dessous montre l’emplacement du relais thermique sur l’installation du variateur. Le
contact auxiliaire normalement fermé est situé entre les broches 03 et 01 du variateur.
Maintenant on doit lire l’état du contact pour détecter le défaut lorsqu’il survient. La lecture de
l´état du contact auxiliaire est d’une extrême simplicité que ce soit avec un Arduino ou avec
n’importe quel autre microcontrôleur. Il suffit, en effet de relier ce dernier entre une entrée de la
51
carte et le 5V. L’entrée est par ailleurs ramenée au niveau logique bas par une résistance de
tirage (pull down) pouvant aller de 10 KΩ a 100 KΩ pour des impératifs de faible
consommation. Tant que le contact est ouvert, l’entrée est vue comme étant au niveau logique
bas. Lorsqu’il est fermé, l’entrée est vue comme étant au niveau logique haut.
-Les broches D7 (Tx) et D8 (Rx) sur le module GSM seront connectées aux broches numériques
# 7 et # 8 de l’Arduino (liaison série logicielle).
Sous-programme :
#include <SoftwareSerial.h> // Bibliothèque pour utiliser la communication série
void setup() {
pinMode(brocheRelais, OUTPUT);
digitalWrite(brocheRelais, HIGH);
pinMode(brocheContact, INPUT);
Serial.begin(9600);
52
SIM900.begin(9600) ;
Delay(20000) ;
SIM900.print("AT+CMGF=1\r");
Delay(100);
// Configurer le module pour envoyer des données SMS à la sortie série à la réception
SIM900.println("AT+CNMI=2,2,0,0,0");
Delay (1000);
Void loop() {
etatContact = digitalRead(brocheContact);
// si l'état a changé
if (etatContact != dernierEtatContact) {
If (etatContact == LOW) {
send_sms();
digitalWrite(brocheRelais, HIGH);
Delay(50);
// Sauvegarde l'état actuel comme dernier état, pour l'utiliser la prochaine fois dans la boucle
53
dernierEtatContact = etatContact;
void send_sms(){
SIM900.println("AT+CMGS=\"+21695118206\"\r");
Delay(250) ;
Delay(100) ;
SIM900.println((char)26);
Delay(250);
Pour démarrer la pompe, if suffit d’envoyer un SMS au module GSM, contenant le message
« Démarrer la pompe ».
Une fois le message est arrivé au module GSM, la carte va lire le message puis commander la
pompe à travers un relais.
54
Schéma-électrique :
La figure ci-dessous est associée au schéma théorique réalisé pour commander la pompe :
Instructions du montage :
En ce qui concerne le relais :
Le relais servira comme un interrupteur qui permet d'ouvrir et de fermer le circuit alimentant la
bobine du contacteur :
55
Sous-programme :
String donneesEntrantes;
String etatPompe;
// Le message à envoyer
String message;
void setup() {
pinMode(brocheRelais, OUTPUT);
digitalWrite(brocheRelais, HIGH);
pinMode(brocheContact, INPUT);
Serial.begin(9600);
56
SIM900.begin(9600);
Delay(20000) ;
SIM900.print("AT+CMGF=1\r");
Delay(100) ;
// Configurer le module pour envoyer des données SMS à la sortie série à la réception
SIM900.println("AT+CNMI=2,2,0,0,0");
Delay (1000) ;}
void loop()
if (SIM900.available()>0) {
if(donneesEntrantes.indexOf("Arreter la pompe")>=0 )
Delay(10);
digitalWrite(brocheRelais, HIGH);
etatPompe = "arreter";
send_sms(message);
57
}
Delay(10);
digitalWrite(brocheRelais, LOW);
send_sms(message);
donneesEntrantes= "";
if(donneesEntrantes.indexOf("ETAT")>=0)
send_sms(message);
donneesEntrantes = "";
delay(10);
58
// UTILISEZ LE CODE DE FORMAT INTERNATIONAL POUR LES NUMÉROS
MOBILES
SIM900.println("AT+CMGS=\"+21695118206\"\r");
Delay(250);
SIM900.print(message);
Delay(100);
SIM900.println((char)26);
Delay(250);
59
c. Contrôle de la valeur de pression :
Cette fonction permet de afficher la pression au niveau du canal de pompage, partout où il y’a un
réseau GSM peu importe la distance.
Si l’operateur veut afficher la pression sur son portable, il doit envoyer un SMS contenant le
message « Pression » au numéro du module GSM. Après quelque secondes, le module répond
avec la valeur de la pression.
Cette fonction permet par ailleurs, d’informer l’operateur lorsque le capteur tombe en panne et
lorsque la pression dépasse 3 bars.
Schémas électrique :
La figure ci-dessous illustre le câblage pour contrôler de la pression :
La carte Arduino ne peut lire ce type de signal. Pour cette raison nous avons utilisé une
résistance de valeur 250 Ohms, reliée entre la sortie du capteur et la masse, afin de convertir ce
signal en une tension.
Lorsque le courant traverse la résistance, une tension de valeur U= R*I est produite.
60
D’après cette équation :
250Ohmsx0.004Amps=1V
250 Ohms x 0.020Amps = 5V
La sortie sera ensuite connectée à la broche analogique A0 de l’Arduino pour lire la pression.
Noter qu’une résistance de 10 k ohm doit être utilisée pour protéger la broche contre la
surcharge de tension, avec la broche négative de l’alimentation du capteur connectée à la
masse de l’Arduino.
Sous-programme :
Pour la plage de courant 4-20mA, les valeurs ADC 204,8 - 1023 sont utilisées lors de la lecture
directe d’une résistance de terminaison de 250 ohms (204,8 correspond à 1V et 1023 a 5V).
Ce capteur passe également du côté négatif (1,6 mA / bar), donc 2,4 mA est une pression absolue
de 0 bar ou -1 bar.
String donneesEntrantes;
String dataMessage;
// Variables de mesures :
Float inputVariable0 = 0 ;
Float inputVariable1 = 0 ;
61
int i = 0 ;
void setup()
pinMode(A0, INPUT);
Serial.begin(9600) ;
SIM900.begin(9600) ;
Delay(20000);
SIM900.print("AT+CMGF=1\r");
Delay(100);
// Configurer le module pour envoyer des données SMS à la sortie série à la réception
Delay (1000);
void loop()
// lire deux fois avec un petit delais pour avoir une lecture précise.
analogRead(A0);
delay(2);
62
inputVariable1 = analogRead(A0);
if(SIM900.available()>0)
donneesEntrantes=SIM900.readString();
delay(10);
// Creer un message contenant la valeur de pression avec deux décimale aprés la virgule.
send_sms(dataMessage);
donneesEntrantes="";
if (inputVariable0 > 3 )
Delay(10);
send_sms(dataMessage);
63
{
Delay(10);
send_sms(dataMessage);
inputVariable0 = 0 ; // Cette valeur doit être effacée avant la lecture des 10 prochaines
boucles
SIM900.println("AT+CMGS=\"+21695118206\"\r");
delay(250);
SIM900.print(dataMessage);
delay(100);
SIM900.println((char)26);
delay(250);
64
II. Conclusion :
Au cours de ce chapitre on a réussi à faire une réalisation réelle a notre système de
signalisation à distance au sein d la station de forage de chiba .
65
Conclusion générale
L’élaboration de ce travail dans le cadre de stage de fin des études, accompli au sein de
l’entreprise VITALAIT, nous a permis d’apprendre des nouvelles techniques, et d’enrichir nos
connaissances. Nous avons pu mettre en pratique nos connaissances théoriques acquises durant
notre formation, de plus, nous sommes confrontés aux difficultés réelles delà vie professionnelle
et du management d’équipes.
Par ailleurs, l’objectif de notre projet est atteint dans son ensemble, il nous à été bénéfique sur le
plan technique : nous sommes familiarisé aux systèmes automatisés et nous avons eu l’occasion
de manipuler une multitude de matériel et logiciels afin de valider nos compétences appropriés
lors de notre études à l’ISET. Ceci constitue une expérience adéquate pour la formation d’un
futur technicien supérieur en installation électrique et automatisme.
La deuxième est associé aux choix du matériel de notre système et élaborer une simulation
virtuelle à l’aide d’un logiciel de simulation
La dernière partie est consacrée à la mise en marche du système réellement dans la station
66
Annexes
Programmes de simulation :
#include <SoftwareSerial.h>
Int pressurePin = 0 ;
Int relayPin = 11 ;
Int contactPin = 2 ;
// Variables
Int val ;
Void setup () {
Delay(1000) ;
67
}
Void loop () {
SendMessage () ;
lastState = currentState ;
If (Serial.available()>0)
switch(Serial.read())
Case 'o' :
Break ;
Case 'f' :
Break ;
Case ‘p’ :
/* avoir la pression*/
68
Serial.print(pbar) ;
Delay(100) ;
Break ;
Void SendMessage ()
Delay(100) ;
mySerial.println ("La pompe est arretee") ; // Le SMS que vous souhaitez envoyer
Delay(100) ;
69
Datasheet du capteur de pression :
70
71
72
Datasheet du module GSM SIM900 :
73
74
75
76
77
Data sheet du variateur vlc HVAC drive :
78
79
80
Sitographie
1/https://www.jumia.com.tn/arduino-carte-de-developpement-sim900-85090018001900-mhz-
gprsgsm-209387.html?fbclid=IwAR06M5ET-
Za7c8qfxfIJyuhjpeO2FYQc_NNEqETE3asdkqafvM3l-7Gon0Q
2/https://www.jumia.com.tn/arduino-carte-arduino-uno-r3-avec-cable-usb-
197512.html?fbclid=IwAR1XYaWO_4si80opVIqjg2cI4QNDBaIJ1rkGmKTu1uo8cjvlzzE_Cl0-
118
3/https://www.jumia.com.tn/arduino-module-de-relais-1-canal-5v-10a-
204614.html?fbclid=IwAR2HeCLEwgxhaQWbr6xhg9Vy1LMM7jtCEmW7zrZF4-
lExfREPsLBMc1yhhU
4/https://www.arduino.cc/en/main/software?fbclid=IwAR25gU_OOYHDfrV9v7bXJskXWG6K
6kLgeSbpF5xsl4ZHCy9G1yld5d1ALiA
6/https://www.google.com/search?q=sim900%20send%20and%20recieve%20sms&oq=sim900
%20send%20and%20recieve%20sms&aqs=chrome..69i57j0.5851j1j4&client=ms-android-
samsung-gj-rev1&sourceid=chrome-mobile&ie=UTF-
8&fbclid=IwAR014e3rlkA4I4aOFEDNffo9n0E7ew5EibWvWxzbSh1ElI5theYhjKF-Bxw
81