Arduino+GSM модем

andrew_by
Offline
Зарегистрирован: 30.08.2014

привет всем

туплю не могу правильно написать код.. кто подскажет куда рыть?)

не могу правильно распарсить ответ от модема, чтобы выгрызть из ответа CCID (идентификационный номер SIM карты)

#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Adafruit_BME280 bme; // I2C

unsigned long delayTime;

String readGPS;
String readGPSLat;
String readGPSLon;

String readTime;
String readCCID;
String Arsp, Grsp;
 
void setup() {
    Serial.begin(115200);
    Serial1.begin(115200); 

    
    bool status;    
    status = bme.begin();


    pinMode(9,OUTPUT);

    digitalWrite(9, HIGH); 
    delay(3000);       
    digitalWrite(9, LOW);


    
}
  
void loop() { 

 // Serial.println(bme.readTemperature());
  

boolean isOKFound = Serial1.find("+CCID: ");

if (isOKFound) 
{
  Serial.println("ccid = ");

    }
  
 if (Serial.available())
  {
    Arsp = Serial.readString();
    Serial1.println(Arsp);
  }

  if (Serial1.available())
  {
    Grsp = Serial1.readString();
    Serial.println(Grsp);
  }



}
 

 

 

at+ccid  - запрос к модему
 
+CCID: 89701010063791673521 //ответ от модем
 
OK
 
b707
Offline
Зарегистрирован: 26.05.2017

нуууу, "тут всю систему менять надо...." (с)

У вас скетч из одних ошибок.

во-первых - обмен по Сериал написан неверно, функция readString вовсе не читает строку из порта

во-вторых, в скетче вы модему запрос не отсылаете

в-третьих - когда вы ищете ответ, вы его нигде не сохраняете и печатаете вместо значения CCID только строку "CCID="

Может и еще ошибки есть... но пока хватит, исправте для начала эти.