繁体   English   中英

如何让带有 esp32 的 sim7600E 连接到 inte.net?

[英]How do I get my sim7600E with a esp32 to connect to the internet?

我正在使用 TTGO 的 T-SIM7600E-L1C 4G LTE ESP32,我的问题是它无法连接到 inte.net? 这是我正在使用的代码。

 // Arduino file start here
#define TINY_GSM_MODEM_SIM7600
#define SerialMon Serial
//#define TINY_GSM_DEBUG SerialMon
#include <HCSR04.h>
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701
HardwareSerial SerialAT(1);

#if !defined(TINY_GSM_RX_BUFFER)
#define TINY_GSM_RX_BUFFER 650
#endif
#define TINY_GSM_YIELD() { delay(2); }
const char apn[]  = "Vodacom APN"; 
const char gprsUser[] = "";
const char gprsPass[] = "";
const char server[] = ""; 
const char resource[] = "";
const int  port = 80;
unsigned long timeout;

const int trigPin = 25;  
const int echoPin = 26; 
long duration;
int distance;
#include <TinyGsmClient.h>

TinyGsm modem(SerialAT);
TinyGsmClient client(modem);

void setup() 
{
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  
  SerialMon.begin(115200);
  delay(10);
  SerialMon.println("Wait...");
  SerialAT.begin(115200,SERIAL_8N1,26,27, false);
  delay(600);
  SerialMon.println("Initializing modem...");
}

void loop()
 {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;

  modem.restart();
  SerialMon.print("Waiting for network...");
  if (!modem.waitForNetwork()) {
    SerialMon.println(" fail");
    delay(1000);
    return;
  }
  SerialMon.println(" success");
  if (modem.isNetworkConnected()) 
  {
    SerialMon.println("Network connected");
  }

  SerialMon.print(F("Connecting to "));
  SerialMon.print(apn);
  if (!modem.gprsConnect(apn, gprsUser, gprsPass)) 
  {
    SerialMon.println(" fail");
    delay(1000);
    return;
  }
  SerialMon.println(" success");

  if (modem.isGprsConnected()) 
  {
    SerialMon.println("GPRS connected");
  }

  if (!client.connect(server, port))
   {
    SerialMon.println(" fail");
   }
  SerialMon.println("Performing HTTP POST request...");
  String httpRequestData = "key=a@4K%3&distance="+ String(distance) +"";
  client.print(String("POST ") + resource + " HTTP/1.1\r\n");
  client.print(String("Host: ") + server + "\r\n");
  client.println("Connection: close");
  client.println("Content-Type: application/x-www-form-urlencoded");
  client.print("Content-Length: ");
  client.println(httpRequestData.length());
  client.println();
  client.println(httpRequestData);
  timeout = millis();
  while (client.connected() && millis() - timeout < 10000L)
   {
    while (client.available())
     {
      char c = client.read();
      SerialMon.print(c);
      timeout = millis();
     }
  }
  SerialMon.println();
  client.stop();
  SerialMon.println(F("Server disconnected"));
  modem.gprsDisconnect();
  SerialMon.println(F("GPRS disconnected"));
}

失败信息:

et.Rչ� 8�016 0�'&&��SH�HH���0� (POWE���%UMQ�,boot:�� (DO���} =OT(UAR�UART1iE%=}I%�REO_V2JJC�W�ѥng for"�ݹ����5ets Jun 8 2016 00:22:57rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)configsip: 0, SPIWP:0xeeclk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00mode:DIO, clock div:1load:0x3fff0018,len:4load:0x3fff001c,len:1216ho 0 tail 12 room 4load:0x40078000,len:9720ho 0 tail 12 room 4load:0x40080400,len:6352entry 0x400806b8Wait
...Initializing modem
...Waiting for network
...fail

当您在 Arduino 项目中使用 inte.net 调制解调器时,您需要验证移动设备存在的许多问题。 问题包括,例如,电流不足(需要提供 2A 电流才能正常工作),杜邦电缆/跳线有时无法工作(连接电缆需要短),以及 APN,当我工作时对于这种 SIMCOM 调制解调器,我还需要购买遥测 SIM 卡。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM