如何使用sim800l模块创建服务器?

时间:2017-10-17 15:11:59

标签: server arduino gsm

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

  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();
      }
  }

抱歉英语。

1 个答案:

答案 0 :(得分:0)

sim800l模块是一个网络接口,在本例中是一个GSM / GPRS网络。

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

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