Bonjour, Aujourd'hui je viens avec un autre exemple de la manipulation du PIC18F4550, Comme il est inclut au titre de cet article aujourd'hui je vais vous expliquer comment interfacer un microcontr�leur comme le PIC18F4550 avec un tel module GSM.
Il faut savoir avant tout:
- C'est quoi le module GSM
- C'est quoi les commandes AT
- C'est quoi l'UART
- Comment envoyer un SMS
- Comment r�aliser un appel vocal.
La num�rique facile d�finisse GSM comme �tant une norme de t�l�phonie mobile. On parle de r�seau GSM pour d�signer le r�seau num�rique de t�l�phonie mobile. Bien qu'on l'appelle aussi r�seau de 2 �me g�n�ration, c'est en r�alit� le premier r�seau d�velopp� avec ampleur dans le monde. On parle aussi de GSM lorsqu'on d�signe les t�l�phones mobiles utilisant ce r�seau pour communiquer.
Le "DCS 1800" utilise les fr�quences comprises entre 1710-1880 MHz.
- le GSM 850, utilisant les fr�quences situ�es entre 824 et 894 MHz.
- le GSM 1900 (appel� PCS 1900), utilisant les fr�quences entre 1850 et 1990 MHz.
Le "DCS 1800" utilise les fr�quences comprises entre 1710-1880 MHz.
- le GSM 850, utilisant les fr�quences situ�es entre 824 et 894 MHz.
- le GSM 1900 (appel� PCS 1900), utilisant les fr�quences entre 1850 et 1990 MHz.
GSM veut dire Global System for Mobile Communications. Il pr�sente un fonctionnement cellulaire : au coeur de chaque cellule, qui d�signe une zone g�ographique plus ou moins �tendue, il y a une antenne relais qui permet de faire le lien entre les t�l�phones mobiles et le r�seau. Le r�seau permet de passer d'une cellule � une autre sans interrompre la communication et sans que l'utilisateur ne s'en rende compte.
Le r�seau GSM utilise les fr�quences situ�es dans la bande 890-960 MHz.On parle du "GSM 900" dans ce cas.
D'autres r�seaux, connus sous un nom diff�rent, sont aussi des r�seaux GSM, mais utilisant d'autres bandes de fr�quences.
Les commandes AT sont d�finies dans la norme GSM 07.07(pour les SMS cf. GSM 07.05). AT est l�abr�viation de ATtention. Ces 2 caract�res sont toujours pr�sents pour commencer une ligne de commande sous forme de texte (codes ASCII). Les commandes permettent la gestion compl�te du mobile.
- TE : Terminal Equipment (envoi et affiche les commandes.
- TA : Terminal Adaptator (interface entre l�utilisateur et le mobile).
- ME : Mobile Equipment.
Un UART,Universal Asynchronous Receiver Transmitter, est un �metteur-r�cepteur asynchrone universel.
En langage courant, c'est le composant utilis� pour faire la liaison entre l'ordinateur et le port s�rie . L'ordinateur envoie les donn�es en parall�le (autant de fils que de bits de donn�es). Il faut donc transformer ces donn�es pour les faire passer � travers une liaison s�rie qui utilise un seul fil pour faire passer tous les bits de donn�es.
Un DUART (Dual Universal Asynchronous Receiver Transmitter) combine deux UART dans une seule puce. Un USART (Universal Synchronous/Asynchronous Receiver Transmitter) peut communiquer de fa�on synchrone.
Aujourd'hui, les UART sont g�n�ralement int�gr�s dans des composants comme des microcontr�leurs. Ils ne sont dans ce cas plus un composant � proprement parler, mais une fonction p�riph�rique du composant.
Le module UART est repr�sente au PIC18F4550 sur les deux pins TX et RX.
Alors pour conclure le travail qu'on va faire ici on pourra dire qu'on aura une discussion instantan�e entre deux composantes �lectroniques, le premier c'est le microcontr�leur et le deuxi�me c'est le module GSM.
- Le Module GSM il va lire les commandes AT et les transmettre on des actions bien d�finis.
- Le Pic 18F4550 Va a travers sont UART transmettre les commandes AT.
Alors commen�ons un test virtuel sur la Proteus ISIS en rempla�ant le Module GSM par un Virtuel Terminal ou une interface qui sera seriallement virtuellement � travers VSPD reli�. On ajoute un Pic18F4550, quelques boutons poussoirs et quelques condensateurs.
La programmation est toute � fait simple, on va que discuter avec l'UART du PIC18F4550 d'une fa�on artificielle et au but d'envoyer un SMS ou de r�aliser un appel vocale.
Le module GSM qui discutera avec notre �C c'est GSM shield i900.// Letselectronic.blogspot.com
// PIC184550 with 8Mhz like input Quartz
// Interfacing with GSM shield i900
void sendsms(){
UART1_Write_Text("This is AT Command should we use to send the sms");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "ATE0\r\n : This one is to make echo OFF ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "AT\r\n");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "AT+CMGF = 1\r\n " );
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "AT+CNMI=1,2,0,0,0\r\n");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "AT+CMGS=\"+xxxxxxxxx\"\r\n : You Have to replace the X's by the number ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "this is the sms: letselectronic.blogspot.com \r\n : The message that you want to send ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "Thats it :) ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
}
void voicecall(){
UART1_Write_Text("Ring .... Ring.... lool,");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "I m killing because this is the AT Command should you use ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "AT+CHFA = 1\r\n : This one is to select audio chanel");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "ATDxxxxxxxxxx\r\n : You have to replace the x's by the number" );
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "ATH\r\n : Here you Terminate your phone call");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
UART1_Write_Text( "That's it :)");
UART1_Write(10);
UART1_Write(13);
Delay_ms(3000);
}
void main() {
ADCON1 = 0x0F; // Configure all ports with analog function as digital
CMCON = 7; // Disable comparators
TRISB=0; // PortB like output
TRISA=1; // Port A is an input
UART1_Init(9615); // Initialize UART module at 9600 bps
Delay_ms(100); // Wait for UART module to stabilize
UART1_Write_Text("How GSM Sim 9000 Works With Pic 18F4550");
UART1_Write(10);
UART1_Write(13);
delay_ms(2000);
UART1_Write_Text("----------------- Letselectronic.blogspot.com -----------------");
UART1_Write(10);
UART1_Write(13);
delay_ms(2000);
UART1_Write_Text("Make your choice SMS/Voice Call by Cliking the Button");
UART1_Write(10);
UART1_Write(13);
delay_ms(2000);
while (1) { // Endless loop
if (portA.f2 == 1) {
PortB.f0 = 1;
UART1_Write_Text("SMS Loading ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(1000);
sendsms();
UART1_Write_Text("SMS Sended ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(1000);
}
else
{
PortB.f0 = 0;
}
if (portA.f1 == 1){
PortB.f1 = 1;
UART1_Write_Text("Voice Call Loading ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(1000);
VoiceCall() ;
UART1_Write_Text("Voice Call Done ");
UART1_Write(10);
UART1_Write(13);
Delay_ms(1000);
}
else
{
PortB.f1 = 0;
}}}
Mes derniers remarques sont:
- Il faut bien prendre en compte le r�glage du Quartz a utiliser avec le PIC18F4550, J'ai introduit �a dans mon article pr�c�dant.
- Il faut savoir bien les commandes utiliser avec le Module GSM pour la tache qu'on cherche (Les commandes sont tous trouvables ici).
- Initialer votre module GSM avec de r�aliser la communication (Reset button included).
- Au dessous c'est une vid�o d�monstrative de communication de PIC18F4550 avec Hyper Terminal. Suivez les d�tails et mettez moi en contact si il y a des probl�mes.
No comments:
Post a Comment