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

Posté sur: oct. 14, 2015

Catégories: 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

Commentaires

  • stephane
    août 13, 2017
  • teddy
    avril 30, 2017
  • dany
    avril 27, 2017
  • Model GSM SIM800L - DIYMaroc Blog
    janv. 7, 2017
  • DAVIDOMO
    mai 28, 2016
  • DAVIDOMO
    mai 28, 2016
  • manvalou
    févr. 8, 2016

laissez un commentaire

Se connecter