2017-10-17 77 views
0

我已经购买了sim800l模块,并设法连接到互联网作为客户端,但现在我想知道是否有可能使用此模块创建一个GSM服务器,我已经看到了一些示例,但使用了arduino库,它们是对于sim900模块,但我还没有找到一些达到相同效果的AT命令,所以我留给你一部分直到现在使用的源代码。如何用sim800l模块创建服务器?

void iniciar(){ 
     comandoAT("AT","OK",3000); // Comprueba que el modulo SIM800L esta arrancado 
     Serial.println("Conectando a la red..."); 
     delay(3000); 
     while(!comandoAT("AT+CREG?","+CREG: 0,1",1000)); //Espera hasta estar conectado a la red movil 
     Serial.println("Conectado a la red."); 
     comandoAT("AT+CGATT=1", "OK", 1000); //Iniciamos la conexión GPRS 
     comandoAT("AT+CSTT=\"internet.comcel.com.co\",\"comcel\",\"comcel\"", "OK", 3000); //Definimos el APN, usuario y clave a utilizar 
     comandoAT("AT+CIICR", "OK", 3000); //Activamos el perfil de datos inalámbrico 
     comandoAT("AT+CIFSR", "", 3000); //Obtenemos nuestra IP 
    } 

    void peticion(){ 
     char aux_str[50]; 
     char direccion[] = "GET /asciilogo.txt HTTP/1.1\r\nHost: arduino.cc\r\nConnection: close\r\n\r\n"; 
     if(comandoAT("AT+CREG?","+CREG: 0,1",1000)){ //Comprueba la conexion a la red 
      comandoAT("AT+CIPSTART=\"TCP\",\"arduino.cc\",\"80\"","CONNECT OK",5000); //Inicia una conexión TCP 
      // Envíamos datos a través del TCP 
      sprintf(aux_str, "AT+CIPSEND=%d", strlen(direccion)); 
      if (comandoAT(aux_str,">",10000)) 
      { 
      comandoAT(direccion, "OK", 10000); 
      } 
     }else{ 
      Serial.print("Reiniciando..."); 
      iniciar(); 
     } 
    } 

对不起英语。

回答

0

sim800l模块是一个网络接口,在这种情况下是GSM/GPRS网络。

理论上,如果您将Adrunio设置为服务器,则只要您的网络提供商支持对该接口的HTTP请求,它就可以使用任何接口发送和接收来自客户端的消息。

但是,许多移动网络提供商可能不允许传入HTTP请求,即使他们在分配给您的网络内的调制解调器的内部IP地址与您从外部IP地址之间进行转换互联网可能会随着时间而改变,这可能很容易成为您解决方案的一个问题