GSM-модуль Sim800l не может подключить данные gprs

Я новичок в arduino. Я пытаюсь получить доступ к серверу MQTT, используя модуль GSM основной платы Sim800l с библиотекой Adafruit Fona/Tinygsm, но безуспешно. Поэтому я решил сначала проверить HTTP-запрос GET/POST с помощью AT-команды. В AT-командах все основные команды, следующие за www.exploreembedded.com/ wiki/Setting_up_GPRS_with_SIM800L работает нормально, но всякий раз, когда я делаю запрос GET с помощью "AT+CIPSTART=", модуль перезагружается сам. с помощью AT-команд Я также попробовал пример библиотеки GPRS_HTTP для библиотеки seeduino, он выдает мне "ошибку: CIPSTART" и перезапускает модуль. Хотя этот код сработал только один раз, это код

#include <gprs.h>
#include <SoftwareSerial.h>

char http_cmd[] = "GET /media/uploads/mbed_official/hello.txt 
HTTP/1.0\r\n\r\n";
char buffer[512];

GPRS gprs;

void setup() {
Serial.begin(9600);
while(!Serial);
Serial.println("GPRS - HTTP Connection Test...");  
gprs.preInit();
while(0 != gprs.init()) {
 delay(1000);
 Serial.println("init error");
}  
while(!gprs.join("gpinternet")) {  // изменяем "cmnet" на свой собственный APN
  Serial.println("gprs join network error");
  delay(2000);
}
// успешный DHCP
Serial.print("IP Address is ");
Serial.println(gprs.getIPAddress());

Serial.println("Init success, start to connect mbed.org...");

if(0 == gprs.connectTCP("mbed.org", 80)) {
  Serial.println("connect mbed.org success");
}else{
  Serial.println("connect error");
  while(1);
}

Serial.println("waiting to fetch...");
if(0 == gprs.sendTCPData(http_cmd))
{      
gprs.serialDebug();
}

// gprs.closeTCP();
// gprs.shutTCP();
// Serial.println("закрыть");
}

void loop() {    

}

также попробовал эти команды, и модуль перезапустился после AT+HTTPACTION=0 этой последней команды

Питание модуля и настройка сима в порядке, насколько мне известно, пожалуйста, помогите мне понять, что я делаю неправильно? Извините за длинное сообщение. Пожалуйста, спросите меня, если я не смогу ясно изложить вопрос.TIA

, 👍1

Обсуждение

Как именно вы питаете SIM800?, @Majenko

Я подключил понижающий усилитель к 5-вольтовому контакту Arduino и получил 4 В для SIM800l, так как он работает между 3,6-4,2. также при использовании AT+CIICR или Команда AT+SAPBR =1,1, модуль постоянно мигает, пока не сделает GET-запрос. Я не знаю, нормально это или нет, а затем перезагружается., @Kamrul Hasan

он может совершать звонки, отправлять текстовые сообщения, показывает статус сети. потом не перезагружается., @Kamrul Hasan


1 ответ


Лучший ответ:

2

Теперь я понимаю , стабильный источник питания - это ответ. arduino с usb может дать нужное количество вольт, но ему не хватает стабильной мощности (я думаю, ампер) при установлении TCP-соединения, поэтому модуль продолжает перезапускаться. , теперь он может подключаться и к mqtt. Спасибо

,