Un serveur Web GPRS

Appelé par un téléphone mobile, ce serveur se connecte au réseau GPRS pour nous permettre de consulter les données lues localement par deux sondes et accède à Internet par un navigateur. L’adresse IP à spécifier dans la barre des adresses pour accéder à la page web du dispositif est l’IP publique que le modem a obtenu durant la connexion et qu’il nous a communiquée par SMS.



Internet, le grand réseau reliant des millions d’usagers à travers le vaste monde, étend chaque jour un peu plus sa Toile (“Web”) ; son accès est de plus en plus facile, il devient donc populaire, grâce entre autres au développement de technologies permettant même à des personnes privées (et plus seulement à de riches sociétés) de se connecter et de travailler à des vitesses naguère inimaginables.
Non contents des résultats obtenus avec le réseau câblé, nous avons assisté ces dernières années à une montée en puissance fulgurante de nombreuses techniques “wireless” (sans fil) parmi lesquelles on trouve celles rendant le Web accessible à partir d’un téléphone mobile : après une période WAP (sur les lignes GSM) pas très convaincante, nous sommes parvenus au système GPRS, soit l’accès à Internet par mobile à la vitesse respectable de 171 kbps, sans appel à effectuer (un peu comme avec l’ADSL), puisqu’il suffit de spécifier les paramètres du serveur, la connexion à celui-ci étant instantanée à partir du moment où le téléphone la demande.

Notre réalisation
L’importance du système GPRS et notre exigence croissante de rendre accessible par le Web des données ayant une certaine utilité, nous a poussé à réaliser le serveur Web décrit dans cet article. Cet appareil, à la demande d’un usager habilité, se connecte au réseau GPRS et, une fois obtenue l’adresse IP publique que le service attribue à son modem, la communique de façon à rendre l’accès à Internet possible.
Dans cette première phase, nous vous proposons une application, disons didactique (notre vocation jamais abjurée), consistant à accéder par Internet, à l’aide d’un modem doté de son IP et d’un PC disposant d’un navigateur (peu importe lequel), à la page Web de notre système et à visualiser les températures (appelons-les interne et externe par convention) relevées par deux capteurs à semiconducteurs placées dans le même circuit.
Une fois la logique de fonctionnement apprise et les notions de base assimilées (vous trouverez une partie du logiciel de gestion du micro et du modem GSM/GPRS GR47 figures 5 et 6), vous disposerez des moyens vous permettant de réaliser des applications beaucoup plus substantielles et mieux adaptées à vos attentes que notre exemple ne le comporte.

Figure 1 : L’accès au serveur Web GPRS.

Pour accéder au serveur Web, il faut procéder selon trois phases : la première est le couplage au téléphone utilisé pour activer la connexion ; il faut envoyer un SMS au serveur Web avec le téléphone mobile (ce SMS contient le mot de passe, c’est-à-dire les cinq derniers chiffres de l’IMEI du module GPRS) et attendre un SMS de confirmation. A la suite de l’appel, le serveur Web se connecte au réseau GPRS et, quand l’IP est obtenue, il la communique au mobile avec un message.
Il est alors possible d’accéder à la page Web depuis n’importe quel PC relié à Internet : il suffit pour cela de taper l’IP contenue dans le SMS dans la barre des adresses.

Le schéma électrique
Notre serveur Web, dont le schéma électrique est visible figure 2, se compose d’un mobile GSM/GPRS Sony Ericsson, bien connu de nos plus fidèles lecteurs.

Figure 2 : Schéma électrique du serveur Web GPRS.

Le fonctionnement de l’appareil
Il est géré par un microcontrôleur Microchip PIC16F876, dont les fonctions sont : lire les températures relevées par deux sondes intelligentes et les publier dans une page Web statique, sur demande, le module Sony Ericsson rend disponible pour qui y accède via Internet. L’accès est subordonné à la connexion au réseau GPRS, connexion qui, afin d’éviter des problèmes de “time-out” (délai dépassé), n’a lieu que sur demande.
En fait le serveur Web fonctionne ainsi : quand le module reçoit un appel d’un numéro de téléphone préalablement mémorisé et habilité, il se connecte au réseau GPRS et attend que celuici lui donne une IP publique pour la connexion ; quand il l’obtient et la reconnaît, il prépare un message de texte et l’envoie au numéro qui l’a appelé pour activation. L’usager lit le SMS et, connaissant alors l’IP, il peut (par Internet) visualiser la page de données de températures relevées ; il lui suffit pour cela d’ouvrir le navigateur installé sur son PC et de taper l’IP dans la barre des adresses, avec la syntaxe de commande bien connue :
http://ipaddress:4000/index.htm

commande dans laquelle ipaddress est l’adresse et 4000 indique que l’accès se fait par le port 4000.
Précisons à ce propos qu’habituellement les connexions à Internet passent par le port 80 (celui défini par le paramétrage de réseau du système d’exploitation mais qui, malheureusement, ne permet pas le passage à notre application. Pour indiquer au serveur Internet que l’on désire utiliser le port 4000, on pourrait aussi ne pas l’écrire dans la barre des adresses et modifier le paramétrage de réseau, toutefois nous vous le déconseillons car cela exclut l’accès à la plupart des pages Web ! Mieux vaut donc pour cela définir ce paramètre dans la barre des adresses.
Quand la connexion a été faite, le navigateur affiche la page html des températures relevées par les sondes ; la page visualisée est statique, en ce sens que les valeurs sont référées au moment où le module GPRS du serveur Web les acquiert du microcontrôleur.
Nous avons décidé de ne pas les mettre à jour en temps réel afin de ne pas appesantir le logiciel de gestion du module Sony Ericsson (notre application a, nous l’avons dit, une visée didactique) et de réduire le coût d’exploitation (en effet, le service GPRS se paie en fonction de la quantité de données transmises et non en fonction du temps). Si vous vous sentez déjà de taille à modifier ce logiciel et à développer une application perso, vous pourrez, si vous préférez, obtenir une page Web mise à jour en permanence en temps réel.
Après l’exploration de la page ou, à défaut d’accès par Internet, après un délai, le serveur Web se déconnecte ; pour visualiser à nouveau la page, il faut rappeler le dispositif, attendre qu’il donne le signal occupé ; quand le SMS contenant l’IP arrive, on peut reprendre la connexion en tapant l’adresse dans la barre du navigateur comme ci-dessus (bref, bis repetita).
Notez que ce passage est obligé parce que, lorsqu’on se déconnecte et se reconnecte, normalement le serveur Web reçoit une IP publique différente de la précédente ; alors, si on tape la même adresse, le navigateur risque d’afficher un message d’erreur ou bien de vous connecter à un autre usager étranger.
Bon, nous avons dit que le module Sony Ericsson se connecte au réseau GPRS seulement quand il reçoit un appel du numéro habilité ; mais comment enregistrer ce numéro de téléphone ? Facile : avec le mobile que vous utiliserez pour gérer le serveur Web, envoyez au module un message de texte contenant seulement les cinq derniers chiffres du code IMEI dudit module (il est facilement lisible sur son étiquette, comme le montre la figure 8) sans espace ni tiret. Quand vous l’aurez fait, vous serez sûr que le serveur Web ne s’activera que quand il recevra un appel de ce téléphone (à l’exclusion de tout autre). Par contre, si d’un autre mobile vous envoyez un nouveau message contenant les cinq derniers chiffres de l’IMEI, le numéro de ce mobile remplacera le numéro précédemment enregistré (habilité, donc) ; en effet, le serveur Web n’admet qu’un seul numéro habilité à la fois et donc chaque nouveau SMS de commande, s’il est correct, désactive le précédent numéro en mémoire et le remplace par le dernier numéro ayant envoyé une commande valide.
Voilà synthétiquement comment fonctionne l’appareil, du moins pour ce qu’on peut en voir de l’extérieur.

Le fonctionnement vu de plus près
Mais à l’intérieur il se passe beaucoup plus de choses, essentiellement orchestrées par le microcontrôleur PIC16F876.
Après la mise sous tension et l’initialisation des lignes d’E / S, il fait tourner son programme principal (“main program”) dont le rôle est, notamment, de recevoir les données du module GSM/GPRS, d’interroger les deux sondes de température et d’envoyer à son tour des données traitées au module, afin de préparer le message de texte. Le PIC continue de vérifier si le module GSM qu’il gère détecte l’arrivée d’un nouveau message de texte ou d’un appel.
Dans le premier cas, il analyse le texte et, si les cinq derniers chiffres de l’IMEI s’y trouvent, il mémorise le numéro du mobile ayant envoyé le SMS.
Dans le second, il vérifie le numéro de téléphone qui appelle puis interrompt la connexion en faisant en sorte que l’appelant reçoive la tonalité occupé (ainsi, l’interrogation ne coûte rien à l’appelant).
Deux choses peuvent alors se produire : la première, le numéro de téléphone de l’appelant est différent de celui ayant envoyé le dernier SMS de configuration reçu ; dans ce cas le PIC ignore l’opération et se dispose à attendre des appels ou des messages.
La seconde, le numéro est bien celui mémorisé, habilité donc à commander la connexion GPRS ; dans ce cas le module GSM ne répond pas et raccroche, pendant que le micro attend que la connexion avec le service GPRS soit établie ; quand celle-ci est établie, il demande au module quelle est l’IP actuelle et, quand il la connaît, il prépare un message de texte qu’il envoie au numéro de téléphone dont il a reçu l’appel. Le dialogue entre le PIC et le module Sony Ericsson se fait par une ligne de communication série dotée d’un adaptateur de niveau (car le GSM travaille en 3,6 V et le micro avec des signaux TTL 0-5 V). D4 et D5, quand les lignes du micro sont à zéro volt, contraignent au niveau logique bas TD et TD3 du module ; quand ces lignes sont à 5 V, les diodes étant bloquées, les résistances de tirage R13 et R20 portent à 3,6 V (niveau logique haut) les lignes correspondantes. Voilà ce qu’il en est en transmission de micro à module.
La réception se fait à travers les interfaces réalisées avec les transistors T4/T5 et T6/T7 ; voyons la première, quand la sortie RD3 du GSM est au niveau logique haut (3,6 V), T5 est saturé et contraint R10 à presque 0 V, ce qui détermine la polarisation de la base de T4 lequel, étant un PNP, entre lui aussi en saturation (ce qui met à environ 5 V la ligne RA5 du PIC).
En revanche, avec RD3 au niveau logique zéro , les transistors T4 et T5 restent bloqués, ce qui laisse à zéro volt la broche 7 de l’intégré U1. Toujours à propos d’interface, avec l’UART interne (broches RC6/TX et RC7/RX) le micro envoie au module GSM les commandes et en reçoit les éventuelles réponses ; les données du module (caractères des messages, numéros appelant ou envoyant des SMS) transitent par la ligne RA5 (RD3 du module GSM) initialisée comme entrée.
Enfin, les informations sur les numéros à appeler et sur le texte des messages à envoyer aux mobiles sont transmises par le microcontrôleur à travers l’UART (contenues dans les commandes Hayes) et entrent dans le GSM par la broche TD3.
Le micro détecte l’arrivée des messages par la condition de la ligne IO1 du module, qu’il lit à travers RB1 ; la sortie pour la LED est lue par le PIC au moyen de RB0, afin que l’on sache si le GSM1 est en réseau ou non.
Le contrôle des deux relais qui gèrent les sorties OUT1 e OUT2 est confié aux lignes RC5 et RB3 ; à ce propos, dans cette application, conçue avec une forte intention didactique (c’est pour cela qu’on le répète inlassablement !), le logiciel ne s’occupe pas des relais.
Les deux se trouvent dans le circuit pour ceux d’entre vous qui, après s’être familiarisés avec le système, souhaiteraient réaliser un programme résident en mesure de commander RL1 et RL2 directement à partir de la page Web ou au moyen de commandes locales ou via SMS, par exemple quand un certain seuil programmable de température est dépassé Le lignes RB4 et RC2 produisent les signalisations de la LED bicolore LD3, en se mettant au niveau logique haut, une à la fois pour produire le rouge ou le vert, ou ensemble pour produire l’orange.
Les sondes de température sont lues au moyen de deux canaux indépendants, dont chacun comporte une ligne d’horloge et une sur laquelle transitent les données proprement dites ; pour la sonde S1, le micro utilise RC1 comme sortie pour l’envoi de l’horloge série et RC0, initialisée comme ligne bidirectionnelle sur laquelle transitent les commandes de demande des données relevées (du micro vers la sonde) et les données proprement dites (de la sonde vers le micro).
Pour S2 ce sont les lignes RA3 (horloge) et RA2 (E / S bidirectionnelles du canal données) ; comme prévu par le constructeur, toutes les lignes destinées à la communication avec les sondes sont pourvues de résistances de tirage reliées au positif 5 V, indispensables pour assurer les niveaux logiques hauts.
Le protocole de communication avec les capteurs de température prévoit l’interrogation de la part du PIC au moyen d’une instruction qui commence en mettant au niveau logique bas la ligne DATA quand SCK est au niveau logique haut ; donc en envoyant, DATA se portant et se maintenant au niveau logique haut, une impulsion au zéro logique quand SCK a repris elle aussi le niveau logique haut.
Après la mise sous tension et l’initialisation des lignes d’E / S, le programme résident du PIC réinitialise l’interface de communication avec les sondes en envoyant à chacune d’elles une série de neuf impulsions d’horloge (le long de la ligne SCK) pendant qu’il maintient DATA au niveau logique haut.
La commande de “reset” de la ligne de communication et de l’unité logique du capteur peut avoir lieu à tout moment, quand des problèmes d’échange de données peuvent surgir ; pas de risque de perte d’informations échantillonnées (température et humidité), car elle ne concerne que la section de communication et non le “buffer” où les données résident.
Il ne nous reste qu’à dire trois mots sur l’alimentation : l’alimentation principale 12 Vcc est appliquée aux points + et –PWR ; le régulateur U2 fournit 5 V au microcontrôleur et U3, un régulateur à rétroaction (par R1 et R2), fournit 3,6 V entre la masse et la broche 5 du module Sony Ericsson.

Figure 3a : Schéma d’implantation des composants du serveur Web GPRS.

Figure 3b-1 : Dessin, à l’échelle 1, du circuit imprimé double face du serveur Web GPRS, côté soudures.

Figure 3b-2 : Dessin, à l’échelle 1, du circuit imprimé double face du serveur Web GPRS, côté composants.

Figure 4a : Photo d’un des prototypes du serveur Web GPRS, côté composants.

Figure 4b : Photo d’un des prototypes du serveur Web GPRS, côté soudures (où l’on monte le lecteur de carte SIM).

Liste des composants
R1 ....... 200 k 1%
R2 ....... 100 k 1%
R3 ....... 4,7 k
R4 ....... 1 k
R5 ....... 470
R6 ....... 470
R7 ....... 4,7 k
R8 ....... 10 k
R9 ....... 10 k
R10 ...... 4,7 k
R11 ...... 10 k
R12 ...... 4,7 k
R13 ...... 4,7 k
R14 ...... 4,7 k
R15 ...... 470
R16 ...... 4,7 k
R17 ...... 4,7 k
R18 ...... 4,7 k
R19 ...... 4,7 k
R20 ...... 4,7 k
R21 ...... 10 k
R22 ...... 10 k
R23 ...... 4,7 k
R24 ...... 10 k
R25 ...... 4,7 k
R26 ...... 2,2 k
R27 ...... 4,7 k
R28 ...... 4,7 k
R29 ...... 4,7 k
R30 ...... 4,7 k
R31 ...... 4,7 k
C1 ....... 100 nF multicouche
C2 ....... 1 000 μF 25 V électrolytique
C3 ....... 100 nF multicouche
C4 ....... 1 000 μF 25 V électrolytique
C5 ....... 100 nF multicouche
C6 ....... 1 000 μF 25 V électrolytique
C7 ....... 1 μF 100 V électrolytique
C8 ....... 100 nF multicouche
C9 ....... 100 nF multicouche
C10 ...... 1 μF 100 V électrolytique
C11 ...... 10 pF céramique
C12 ...... 10 pF céramique
C13 ...... 100 nF multicouche
D1 ....... 1N4007
D2 ....... 1N4007
D3 ....... 1N4007
D4 ....... BAT85
D5 ....... BAT85
LD1 ...... LED 3 mm rouge
LD2 ...... LED 3 mm rouge
LD3 ...... LED 3 mm bicolore
T1 ....... BC547
T2 ....... BC547
T3 ....... BC547
T4 ....... BC557
T5 ....... BC547
T6 ....... BC557
T7 ....... BC547
U1 ....... PIC16F876-EF590A déjà programmé en usine
U2 ....... 7805
U3 ....... MIC2941
GS1 ...... GR47-EF590B déjà programmé en usine
Q1 ....... quartz 20 MHz
RL1 ...... relais 12 V
RL2 ...... relais 12 V
S1 ....... sonde SHT71
S2 ....... sonde SHT71

Divers :
1 prise d’alimentation
2 borniers 3 pôles 90°
2 barrettes mâles verticales 4 broches
3 cavaliers 2 broches
1 support 2 x 14
2 boulons 3 MA 12 mm
2 dissipateurs ML26
2 entretoises 5 mm
1 lecteur de SIM-Card


Figure 5 : “Listing” du lecteur de sonde.
SENSOR :
            ‘ mesure la temperature
            GoSub Idle1
            GoSub ResetComm1
            GoSub TransStart1
            OByte = shtMT
            GoSub WriteByte1
            Pause 300
            GoSub ReadByte1             ‘ lit l’octet haut
            SOt.Byte1 = IByte
            GoSub ReadByte1             ‘ lit l’octet bas
            SOt.Byte0 = IByte
            IF ERRORE1=1 THEN
                    RETURN
              ENDIF


           SOt1=SOt/100
            SOt2=SOt-(SOt1*100)
            if(SOt1>=40) then           ‘ temp pos
                    SOt1=SOt1-40
           else
                    SOt1=-(SOt1-40)     ‘temp neg
           endif

            ‘ measure the humidity
            GoSub Idle1
            GoSub ResetComm1
            GoSub TransStart1
            OByte = shtMH               ‘ mesure l’humidité
            GoSub WriteByte1
            Pause 400                   ‘ achève la conversion
            GoSub ReadByte1
            SOrh.Byte1 = IByte
            GoSub ReadByte1
            SOrh.Byte0 = IByte

            ‘lecture registre
            GoSub Idle1
            GoSub ResetComm1
            GoSub TransStart1
            OByte = shtsrr               ‘ mesure l’humidité
            GoSub WriteByte1
            Pause 400                    ‘ achève la conversion
            GoSub ReadByte1
            SOreg = IByte


           Sorh1=Sorh*4/100
           Sorh2=(Sorh*4)-(Sorh1*100)
           Sorh1=sorh1-4


            ‘calcule humidité avec compensation de la température
            ‘c1 =0.01
            ‘c2=0.00008
           if (SOt1 >=25) then           ‘se temp > 25°C
              SOrhtrue=t2/10
              rhtrue=(sot1-25)*(1/100+sorhtrue)+(sorh1)
              rhtrue1=rhtrue/100
              rhtrue2=rhtrue-(rhtrue*100)

              DEBUG “HUMY = “, dec rhtrue,”,”,DEC rhtrue2,” %RH”, 13,10
            else

             DEBUG “HUMY = “, dec Sorh1,”,”,DEC Sorh2,” %RH”, 13,10

           endif


RETURNTesto...



Figure 6 : “Listing” de la page Web.
scpy(comandoat,»AT+CGDCONT=1»);
scat(comandoat,»\,\»IP»);
scat(comandoat,»\»,»);
scat(comandoat,»\»»);
scat(comandoat,apn);
       scat(comandoat,»»);
scat(comandoat,»\»»);


err = atsnd (comandoat, dmyRes, slen(comandoat) , 100, &dmySize);
dlys(1);
if(err==0)
{
prtf(«\n context creato»);
break;
}
else prtf(«\n ERREUR!!!CREATION CONTESTO,code:%d»,err);

aterr = atsnd («AT*E2OTR?»,tempMicro, 10, 100, &tempMicroSize);

for (i=14;i<16; i++)
       {temp[i-14]=tempMicro[i];
       }
scpy(home,»<html><head><body><center><h1>gr 47 Webserver </h1></center>»);
scat(home,»<hr></h1>»);
scat(home,»<h2>maintenant tu pourras contrôler les températures de ton environnement</h2>»);
scat(home,»<h1>température interne module :»);
scat(home,temp);
scat(home,» °C</h1>»);
scat(home,»</body></head></html>\r\n»);

if(!err)
       {
prtf(«\n pdp context written»);
       err = pdpa(1,1);
       }
       if(!err)
          {prtf(«\n pdp context activé»);
       val = ipi(0);
       }
else
{
prtf(«\n ERREUR!!!PDP CPNTEXT-code= %d»,err);
return(err);
}
inviosms(destinataire,»ip»);

       err=ipo(1,&Sck);
if(err==0)
            err=tcpl(Sck,PORTNUM);
}

       if(err==0)
{
int Port = 0;
       int Addr = 0;

err=tcpa(Sck,Port,Addr);
       prtf(«\n Accept error = %d»,err);

       }
   else prtf(«\erreur fonction tcpl!!!»);

while(errorricezione!=0)
{
if(gtf(ip_data))
{
datalen=500;

errorricezione=tcpr(Sck,datareceve,&datalen);
prtf(«\n ricevuti %d bytes di dati»,datalen);
datareceve[datalen]=0;
prtf(«\n Risposta = %s», datareceve);
}
else
{prtf(«\n wait for send response»);
}

size=slen(home);
          err = tcps(Sck,home,&size);
   prtf(«\n Sent %d bytes, err = %d»,size,err);
                                 dlys(2);
                prtf(«\n waiting for data!»);

dlys(1);
       prtf(«\n SERVER Finished!»);




Figure 7 : La sonde de température.

Pour détecter les températures à publier sur la page Web, le microcontrôleur se base sur les deux capteurs Sensirion (www.sensirion.com) SHT71, chacun contenant une sonde thermique et un détecteur d’humidité relative ; les informations sont échantillonnées (au moyen d’un convertisseur A/N à 14 bits) et envoyées, à travers une logique adéquate, au circuit qui en fait la demande. Pour la communication, le capteur utilise une ligne à deux fils assimilable à un bus I2C : par sa broche DATA il reçoit les demandes et envoie les données de température et d’humidité détectées ; la communication est établie par le signal d’horloge reçu de la broche SCK. Les données envoyées par le micro utilisé pour gérer le composant et celles que l’unité logique de ce dernier envoie au micro sont lues au moment de chaque front de montée du signal d’horloge. En ce qui concerne la température, le SHT71 peut mesurer entre –40 et +123 °C ; quant à l’humidité, la gamme de mesure va de 0 à 100%. Le protocole de communication avec la sonde prévoit que le microcontrôleur commence la demande en mettant au niveau logique bas la ligne DATA quand l’horloge est au 1 logique ; donc, quand DATA est au niveau logique haut, en donnant une impulsion à zéro sur la ligne SCK. La structure de la réponse, contenant humidité et température, est celle qui apparaît ci-dessous ; elle prévoit des flux dont les données sont exprimées dans l’ordre du bit le plus significatif à celui le moins significatif (d’abord le bit 7, puis le bit 0) suivis d’une somme de contrôle servant au PIC pour en vérifier l’exactitude.

Figure 8 : L’habilitation du mobile.

Figure 9 : Comment fonctionne le GPRS.

Le GPRS (General Packet Radio Service) est le maillon entre le GSM et l’UMTS, le système actuellement utilisé pour la vidéotéléphonie radiomobile : il est supérieur au GSM car il optimise la bande utilisée ; toutefois, comme il fonctionne sur le réseau GSM, il est limité en vitesse de communication. Il est basé sur une méthode dite “à communication de paquet” et ses ressources radio ne sont effectivement mobilisées qu’au moment d’échanger des données et non pendant toute la durée de la connexion. Les données à transmettre sont divisées en paquets, chacun contenant les informations concernant sa propre destination. Les paquets sont ensuite insérés dans le réseau et ils doivent donc trouver leur route jusqu’au destinataire de manière autonome ; ce qui implique que l’envoyeur et le destinataire n’ont pas à être forcément reliés l’un à l’autre et que les données peuvent être reçues par une série de plusieurs envoyeurs/destinataires au cours d’un même appel. Il est ainsi possible pour plusieurs usagers d’utiliser en même temps des ressources du réseau, comme cela se fait dans une LAN ou sur Internet : sur chaque canal de trafic, dans des trames différentes, des paquets de divers usagers peuvent voyager.
La différence avec la technologie GSM est que ce dernier se base sur un système “à commutation de circuit”, ce qui signifie qu’à chaque usager est attribué en exclusivité un canal de trafic demeurant à sa disposition pendant toute la durée de la session, ce qui mobilise les ressources radio jusqu’à une demande explicite de “raccrochage” ; la ligne est ouverte et les données voyagent librement entre l’envoyeur et le destinataire. Si l’application demande une attente pour la réponse du destinataire, la ligne doit rester ouverte même si aucune donnée n’est transmise. En tant que solution pour le transport des données, le GSM est évidemment inefficace et extrêmement coûteux.
Avec la transmission par paquets garantie par le GPRS, les coûts de service pour le client sont optimisés car elle autorise l’accès aux services en continu et ne mobilise les ressources du réseau que pour la quantité d’informations effectivement transférées. Le téléphone reste constamment relié au réseau et l’usager peut simultanément effectuer les appels traditionnels et recevoir des informations (prévisions météo, cours de la bourse, etc.). En outre le GPRS permet de relier l’ordinateur portable à Internet à travers le téléphone mobile, sans les lenteurs subies jusqu’à aujourd’hui.
Si on souhaite approfondir l’argument, on peut ajouter que les téléphones et les modems GPRS communiquent avec la station GSM au moyen d’un Serving GPRS Support Node (SGSN) représentant la liaison avec l’infrastructure GSM qui envoie et reçoit les données par et pour l’appareillage mobile. Le SGSN communique avec le Gateway GPRS Support Node (GGSN), un système assurant les communications avec les autres réseaux comme Internet, ou les réseaux X.25 ou LAN privées. Un réseau GPRS peut utiliser plusieurs SGSN, mais requiert un GGSN unique pour la connexion à des réseaux externes. Quand l’appareillage mobile envoie des paquets de données, ces derniers passent du SGSN au GGSN qui les convertit au format compatible avec le réseau de destination. De la même manière, les paquets venant d’Internet pour l’appareillage mobile sont initialement reçus par le GGSN, puis passés au SGSN et enfin transmis à l’appareillage. La vitesse de transmission maximale du GPRS est théoriquement de 171,2 kbps (une amélioration non négligeable par rapport aux 9,6 ou 19,2 kbps du réseau GSM) et on peut l’obtenir tous les 8 “timeslots” disponibles et sans encourir d’erreur de protection. Bref, il est très improbable qu’un opérateur permette à un seul usager l’utilisation de tous les “timeslots” : la vitesse effective dépend donc des limitations propres au réseau et aux terminaux. Grâce à la vitesse qu’il permet, le GPRS rend possible l’accès à Internet et le chargement de fichiers du Web ; mais il autorise également une gestion efficace de la poste électronique, la consultation des banques de données et des services d’information disponibles en ligne ; le commerce électronique par téléphonie mobile peut ainsi se développer. Et tout cela sans oublier bien sûr le coup de téléphone traditionnel (après tout, c’est ce qui a fait la fortune de ces téléphones qu’on appela d’abord portables).
Les limites du système GPRS dépendent étroitement de sa structure : comme les paquets au moyen desquels les données sont transmises voyagent indépendamment les uns des autres, ils peuvent suivre des parcours divers et arriver au destinataire pas forcément dans l’ordre de leur envoi ; chaque paquet doit donc contenir toutes les informations pour pouvoir donner au destinataire la possibilité de reconstruire la séquence de transmission exacte. Comme la durée du voyage et donc le retard de leur arrivée ne sont pas prévisibles avec une bonne précision, il peut arriver que, pour reconstruire une information en partant des différents paquets, un délai assez long se produise, non cohérent avec le “data transfer” promis, lequel se réfère à un seul paquet : une limite pour les applications nécessitant un “data rate” constant. Autre inconvénient : quand tous les usagers utilisant le même canal GPRS veulent communiquer au même moment, une congestion du système risque de se produire, avec pour conséquence un retard dû aux codes de transmission. En outre, on l’a dit, quand les quantités de données à échanger deviennent significatives, le système de transfert de données par paquet n’est plus la solution optimale. Le principal problème est donc la charge effective du réseau en termes de “data transfer” et de nombre d’usagers connectés.

La réalisation pratique
La réalisation pratique de ce serveur Web est assez simple. La platine est constituée d’un circuit imprimé double face, dont les figures 3b-1 et 2 donnent les dessins à l’échelle 1. N’oubliez surtout pas de réaliser les liaisons entre les deux faces : d’abord avec de petits morceaux de fil de cuivre (des chutes de queues de composants) soudés des deux côtés et ensuite en soudant également sur les deux faces les fils et broches des composants, chaque fois que cela est possible.
Commencez par insérer (côté composants) les supports du PIC et du module GR47, les “straps” et les trois cavaliers à deux broches J1, J2 et J3.
Attention, en particulier, au support à 60 broches (2 x 30) du module GSM/GPRS, car c’est un support CMS : utilisez un fer à panne fine et du tinol de 0,5 mm. Vérifiez attentivement vos soudures (ni court-circuit entre pistes ou pastilles ni soudure froide collée).
Insérez et soudez ensuite tous les composants (comme le montrent les figures 3a et 4a), en poursuivant par les résistances, condensateurs, diodes, LED, transistors boitiers TO 92, régulateurs, quartz et relais et en terminant par les “périphériques” : la prise d’alimentation, les borniers à 3 pôles à 90°.
Attention à l’orientation des composants polarisés : PIC (repère-détrompeur en U vers le bas, mais insérez-le à la toute fin), diodes, LED, transistors, régulateurs et électrolytiques. Le quartz est monté debout. Les deux régulateurs sont montés couchés dans leurs dissipateurs ML26 et maintenus par des boulons 3 MA (comme il y a des pistes sous ces dissipateurs, il est préférable de les isoler avec du carton ou du Téflon gris). Le module sera inséré à la toute fin. Voilà pour le côté composants.
Retournez alors la platine côté soudures (voir figures 3a et 4b) et montez le lecteur de SIM-Card. Vérifiez bien toutes les polarités et (encore une fois) la qualité des soudures sur les deux faces de la platine, puis insérez le PIC et le module dans leurs supports (attention à la polarité du PIC).
Vous pouvez maintenant installer la platine dans un boîtier plastique de dimensions appropriées : le couvercle sera percé de trois trous pour le passage des LED et les deux petits côtés seront évidés, l’un pour la prise d’alimentation jack 12 V et l’autre pour le câble de l’antenne GSM et les deux borniers à 3 pôles.

Les essais et le paramétrage
Avant de refermer le couvercle du boîtier, insérez une carte SIM valide dans son lecteur et paramétrez les trois cavaliers en fonction des températures que vous souhaitez voir apparaître sur la page Web.
Souvenez-vous que J1 fermé habilite la publication de la valeur relevée par la sonde S1 et que J2 fermé permet la consultation de la lecture de S2 ; enfin, en fermant J3, on publie aussi la température lue par le capteur dont est doté le module GSM/GPRS GR47 et qui a été prévu pour détecter toute surchauffe due à un endommagement du circuit ou à une température ambiante excessive.
A propos du module, n’oubliez pas de le relier à une antenne 900/1 800 MHz adéquate, à l’aide d’un connecteur adaptateur MMCX/FME.
L’alimentation à brancher à la prise jack latérale doit fournir 12 Vcc pour un courant de 800 à 1 000 mA, attention, le + est au centre.
Quand vous alimentez le circuit, attendez que la LED bicolore s’allume en vert : cette couleur signale que l’on est en phase de mise sous tension (!) et d’initialisation. Avec un téléphone mobile, envoyez au serveur Web le message de configuration (adressez-le au numéro de la SIM insérée dans le lecteur au verso de la platine du circuit).
Quand le message est reçu, le circuit fait clignoter en jaune la LED bicolore et, si tout est OK, il envoie au téléphone mobile un message de confirmation “mobile habilité au système”.
Ah, dernier point : cela ne marche pas avec Vodaphone, car ce dernier insère un filtre empêchant d’accéder à l’unité mobile par le réseau Internet GPRS.

Aucun commentaire:

Enregistrer un commentaire