2017-10-17 48 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地址之間進行轉換互聯網可能會隨着時間而改變,這可能很容易成爲您解決方案的一個問題