Возникли проблемы с настройкой CIPSERVER с модемом SIM7000 на Arduino Uno. ⇐ C++
Возникли проблемы с настройкой CIPSERVER с модемом SIM7000 на Arduino Uno.
Я отчаянно занимаюсь этим уже несколько дней, но не могу понять, что делаю не так. Я искал в Интернете, но мало информации, которую я смог найти, касается исходящих данных с модема. Я хочу прослушивать входящие данные от веб-перехватчика. Пожалуйста, помогите, если можете.
У меня есть щит Botletics SIM7000, подключенный к сети голограммы. Я подтвердил доступ к сети и могу ОТПРАВИТЬ предварительно упакованные сообщения на dweet.io (в LTE_Demo.ino)
Я новичок в программировании на C++ и думаю, что это меня сбивает с толку. Мой опыт связан с HTML/CSS/PHP. Вот мой урезанный код, который определяет контакты, включает модем, настраивает его и разрешает передачу данных. Я не знаю, правильно ли я включил CIPSERVER или обрабатываю входящие данные. Я получаю:
" набор серверов Данные получены: Данные получены: Э Данные получены: РРО Данные получены:"
Это определенно неправильный результат. Когда я отправляю данные через панель управления голограммой, они никогда не появляются.
#include "BotleticsSIM7000.h" // https://github.com/botletics/Botletics- ... e/main/src #define SIMCOM_7000 // Для ботлетики щиток SIM7000/7070 #define BOTLETICS_PWRKEY 6 #define RST 7 // Нет вывода RST для SIM7070 #define TX 10 // Приём микроконтроллера #define RX 11 // Микроконтроллер TX #include SoftwareSerial модемSS = SoftwareSerial(TX, RX); SoftwareSerial *modemSerial = &modemSS; Модем Botletics_modem_LTE = Botletics_modem_LTE(); символ incomingDataBuffer[256]; недействительная настройка() { pinMode(RST, ВЫХОД); digitalWrite(RST, ВЫСОКИЙ); // Состояние по умолчанию модем.powerOn(BOTLETICS_PWRKEY); Серийный.начало(9600); Serial.println(F("пожалуйста, милосердное электричество, пропусти мои данные"); модемSS.begin(115200); // Скорость передачи данных экрана SIM7000 по умолчанию Serial.println(F("Настройка на 9600 бод"); modemSS.println("AT+IPR=9600"); // Установка скорости передачи данных задержка(100); // Короткая пауза для выполнения команды модемSS.begin(9600); если (! modem.begin(modemSS)) { Serial.println(F("Не удалось найти модем")); пока (1); // Не продолжать, если устройство не найдено } // Настраиваем модем на полную функциональность модем.setFunctionality(1); // АТ+CFUN=1 modem.setNetworkSettings(F("голограмма")); // Для голограммной SIM-карты если (!modem.enableGPRS(true)) { Serial.println(F("Не удалось включить")); } Serial.println("Перед паузой"); задержка(5000); Serial.println("После паузы"); // позволяем устройству зарегистрироваться и обосноваться(???) modemSS.println("AT+CIPSERVER=1,80"); Serial.println("набор серверов"); } недействительный readModemData() { внутренний индекс = 0; while (modemSerial->available() > 0) { char incomingByte = modemSerial->read(); incomingDataBuffer[index++] = incomingByte; // Проверяем, не превышен ли размер буфера если (индекс >= sizeof(incomingDataBuffer)) { индекс = 0; перерыв; } } // завершаем строку нулем если (индекс > 0) { incomingDataBuffer[индекс] = '\0'; Serial.println("Данные получены:"); Serial.println(incomingDataBuffer); } } недействительный цикл() { если (ModemSerial->available()) { читатьМодемДанные(); } }
Я отчаянно занимаюсь этим уже несколько дней, но не могу понять, что делаю не так. Я искал в Интернете, но мало информации, которую я смог найти, касается исходящих данных с модема. Я хочу прослушивать входящие данные от веб-перехватчика. Пожалуйста, помогите, если можете.
У меня есть щит Botletics SIM7000, подключенный к сети голограммы. Я подтвердил доступ к сети и могу ОТПРАВИТЬ предварительно упакованные сообщения на dweet.io (в LTE_Demo.ino)
Я новичок в программировании на C++ и думаю, что это меня сбивает с толку. Мой опыт связан с HTML/CSS/PHP. Вот мой урезанный код, который определяет контакты, включает модем, настраивает его и разрешает передачу данных. Я не знаю, правильно ли я включил CIPSERVER или обрабатываю входящие данные. Я получаю:
" набор серверов Данные получены: Данные получены: Э Данные получены: РРО Данные получены:"
Это определенно неправильный результат. Когда я отправляю данные через панель управления голограммой, они никогда не появляются.
#include "BotleticsSIM7000.h" // https://github.com/botletics/Botletics- ... e/main/src #define SIMCOM_7000 // Для ботлетики щиток SIM7000/7070 #define BOTLETICS_PWRKEY 6 #define RST 7 // Нет вывода RST для SIM7070 #define TX 10 // Приём микроконтроллера #define RX 11 // Микроконтроллер TX #include SoftwareSerial модемSS = SoftwareSerial(TX, RX); SoftwareSerial *modemSerial = &modemSS; Модем Botletics_modem_LTE = Botletics_modem_LTE(); символ incomingDataBuffer[256]; недействительная настройка() { pinMode(RST, ВЫХОД); digitalWrite(RST, ВЫСОКИЙ); // Состояние по умолчанию модем.powerOn(BOTLETICS_PWRKEY); Серийный.начало(9600); Serial.println(F("пожалуйста, милосердное электричество, пропусти мои данные"); модемSS.begin(115200); // Скорость передачи данных экрана SIM7000 по умолчанию Serial.println(F("Настройка на 9600 бод"); modemSS.println("AT+IPR=9600"); // Установка скорости передачи данных задержка(100); // Короткая пауза для выполнения команды модемSS.begin(9600); если (! modem.begin(modemSS)) { Serial.println(F("Не удалось найти модем")); пока (1); // Не продолжать, если устройство не найдено } // Настраиваем модем на полную функциональность модем.setFunctionality(1); // АТ+CFUN=1 modem.setNetworkSettings(F("голограмма")); // Для голограммной SIM-карты если (!modem.enableGPRS(true)) { Serial.println(F("Не удалось включить")); } Serial.println("Перед паузой"); задержка(5000); Serial.println("После паузы"); // позволяем устройству зарегистрироваться и обосноваться(???) modemSS.println("AT+CIPSERVER=1,80"); Serial.println("набор серверов"); } недействительный readModemData() { внутренний индекс = 0; while (modemSerial->available() > 0) { char incomingByte = modemSerial->read(); incomingDataBuffer[index++] = incomingByte; // Проверяем, не превышен ли размер буфера если (индекс >= sizeof(incomingDataBuffer)) { индекс = 0; перерыв; } } // завершаем строку нулем если (индекс > 0) { incomingDataBuffer[индекс] = '\0'; Serial.println("Данные получены:"); Serial.println(incomingDataBuffer); } } недействительный цикл() { если (ModemSerial->available()) { читатьМодемДанные(); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Возникли проблемы с настройкой CIPSERVER с модемом SIM7000 на Arduino Uno.
Anonymous » » в форуме C++ - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PN532 + подключение UART напрямую к телефону Android без Arduino Uno или Raspberry Pi
Anonymous » » в форуме Android - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-
-
-
PN532 + подключение UART напрямую к телефону Android без Arduino Uno или Raspberry Pi
Anonymous » » в форуме Android - 0 Ответы
- 29 Просмотры
-
Последнее сообщение Anonymous
-