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=", модуль перезагружается сам. Я также попробовал пример библиотеки 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
@Kamrul Hasan, 👍1
Обсуждение1 ответ
Лучший ответ:
Теперь я понимаю , стабильный источник питания - это ответ. arduino с usb может дать нужное количество вольт, но ему не хватает стабильной мощности (я думаю, ампер) при установлении TCP-соединения, поэтому модуль продолжает перезапускаться. , теперь он может подключаться и к mqtt. Спасибо
- Отправить HTTP get запрос от GSM SIM800c и Arduino
- Как настроить модуль TinySine 3G (SIM5320E) для запроса HTTP GET
- HTTP-запрос SIM800L ненадежен
- Модуль Sim808 Неверный HTTP-запрос
- Как публиковать запросы HTTP POST на моем веб-сайте?
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
Как именно вы питаете SIM800?, @Majenko
Я подключил понижающий усилитель к 5-вольтовому контакту Arduino и получил 4 В для SIM800l, так как он работает между 3,6-4,2. также при использовании AT+CIICR или Команда AT+SAPBR =1,1, модуль постоянно мигает, пока не сделает GET-запрос. Я не знаю, нормально это или нет, а затем перезагружается., @Kamrul Hasan
он может совершать звонки, отправлять текстовые сообщения, показывает статус сети. потом не перезагружается., @Kamrul Hasan