[Tuto] Module GSM SIM800L - Recevoir des données HTTP

Posted On: oct. 14, 2015

Categories: Arduino

Tags: arduino , gsm , http , sim800l

Pour voir le montage et la prise en main de ce module SIM800L, vous pouvez suivre le tuto sur cette page: Tuto SIM800L - Montage et prise en main

On souhaite consulter une page web et récupérer son contenu pour pouvoir l’afficher dans le moniteur série. Pour cela, on utilise le réseau GPRS du module. Pour une carte SIM Free, l’APN a renseigné est tout simplement "free". Pour d’autres opérateurs, il se peut qu’il y ai un identifiant et un mot de passe à renseigner. La commande AT à utiliser est alors : AT+CSTT=,,

// Importation des librairiesn#include n#include nSoftwareSerial sim800l(7,8);          //RX, TXnboolean data;nnvoid setup() {n  // Démarrage du modemn  sim800l.begin(9600);n  // Initialisation de la communication série n  Serial.begin(9600);n  delay(500);n  data = true;n}nnvoid loop() {n  if(data==true){n    getdata();n    data = false;n  }n  if (sim800l.available()>0) n    Serial.write(sim800l.read());n}nnnvoid getdata(){n  Serial.println("Get data HTTP");n  //set up GPRS, connection typen  sim800l.print("AT+SAPBR=3,1,"CONTYPE","GPRS"r");n  delay(1000);n  // set the APNn  sim800l.print("AT+SAPBR=3,1,"APN","free"r");n  delay(1000);n  //tries to connect to GPRSn  sim800l.print("AT+SAPBR=1,1r");n  delay(2000);n  // initialise embedded HTTP ruttinen  sim800l.print("AT+HTTPINITr");n  delay(2000);n  // set the HTTP sessionn  sim800l.print("AT+HTTPPARA="CID",1r");n  delay(1000); n  Serial.println("Enter the URL of the website: ");n  char url[100];n  readSerial(url);  // votre URLn  Serial.println(url);n  // set the HTTP URLn  sim800l.print("AT+HTTPPARA="URL","");n  sim800l.print(url);n  sim800l.print(""r");n  delay(1000);n  // start the sessionn  sim800l.print("AT+HTTPACTION=0r");n  delay(10000);n  // read the data of the HTTP servern  sim800l.print("AT+HTTPREADr");n  delay(1000);n  // terminate the HTTP servern  sim800l.print("AT+HTTPTERMr");n  delay(100);n  sim800l.println();n}nnint readSerial(char result[]) {n  int i = 0;n  while (1) {n    while (Serial.available() > 0) {n      char inChar = Serial.read();n      if (inChar == 'n') {n        result[i] = '';n        Serial.flush();n        return 0;n      }n      if (inChar != 'r') {n        result[i] = inChar;n        i++;n      }n    }n  }n}

Récapitulatif des AT commandes utilisées pour recevoir des données HTTP:

Commande Réponse Info

AT+CGATT ? +CGATT : Cherche le nombre de réseau disponible
AT+SAPBR=3,1,”CONTYPE”,”GPRS” OK Configure le profil 1, type de connexion internet : GPRS
AT+SAPBR=3,1,”APN”,”free” OK Configure le réseau APN
AT+SAPBR=1,1 OK Tentative de connexion GPRS
AT+HTTPINIT OK Initialisation
AT+HTTPPARA=”CID”,1 OK Configuration http
AT+HTTPPARA=”URL”,” OK Configure l’adresse URL
AT+HTTPACTION=0 OK Lance la session
AT+HTTPREAD +HTTPREAD :<date_len>, Lis les données DATA du serveur http
AT+HTTPTERM OK Fin
AT+CIFSR Retourne l’adresse IP

Comments

  • stephane
    août 13, 2017
    Bonjour,ntuto interessant.nnj'essaie de de faire le mouvement inverse : Envoyer des donn&eacute;es vers un sitenvous auriez un tuto svp sur la m&eacute;thode &agrave; utiliser.
  • teddy
    avril 30, 2017
    Bonjour, je viens de consutler votre code tres interessant. Quand &agrave; moi , je souhaiterai executer une requ&ecirc;te en mode POST, ou GET depuis l'arduino vers le serveur.nnJ'ai essay&eacute; de modifier votre code de tous les cot&eacute;s, sans succes.nnPouriez vous m'aidez?nMerci
  • dany
    avril 27, 2017
    Bonjour &agrave; tousnnje souhaiterai envoyer une requette http sur inernet via arduino uno et sim 800l mais je ne sais pas comment faire?
  • Model GSM SIM800L - DIYMaroc Blog
    janv. 7, 2017
    [&amp;#8230;] Module GSM SIM800L &ndash; Recevoir des donn&eacute;es HTTP [&amp;#8230;]
  • DAVIDOMO
    mai 28, 2016
    voici la liste complete des commande at pour MMSnhttps://cdn-shop.adafruit.com/datasheets/sim800_series_mms_application_note_v1.00.pdfnncelon votre op&eacute;rateur vous pouvez avoir besoin d'un USERnAT+SAPBR=3,1,&quot;USER&quot;,&quot;Free&quot; -&amp;gt; pour free par exemple
  • DAVIDOMO
    mai 28, 2016
    reponse un peut tardive mais avez vous essay&eacute; sans le +33 mais avec 0
  • manvalou
    févr. 8, 2016
    Tuto tr&egrave;s interressant.nJ'essaye de faire quelque chose de similaire, mais pour des MMS.nJ'arrive bien &agrave; me connecter en GPRS (La commande AT+CGATT? le prouve), mais lorsque je fais un AT+CMMSSEND=&quot;+336.......&quot; pour envoyer le MMS pr&eacute;alablement rempli avec du texte, je me prend syst&eacute;matiquement un CME Error 177: Connection Network is failed.nLa LED sur le module indique bien par son rythme de flash que la connexion GPRS est active.nJe suis preneur de tout conseil...

Leave a comment

Sign in