Arduino + GPRS Shield

Тема в разделе "Arduino & Shields", создана пользователем Upversus, 18 июн 2014.

  1. Upversus

    Upversus Нуб

    Есть вот такой код, как только подключил Шилд к ардуино все работало (но с проблемами, но сейчас не о них) а дело вот в чем, что случилось и с чем, что в терминале в место букв квадратики

    [​IMG]

    HTML:
    <spoler>
    #include <SoftwareSerial.h>
    #include <String.h>
    SoftwareSerial mySerial(7, 8);
    //char txt[];
    void setup()
    {
    mySerial.begin(19200);               // the GPRS baud rate
    Serial.begin(19200);    // the GPRS baud rate
    delay(500);
    }
    void loop()
    {
    //after start up the program, you can using terminal to connect the serial of gprs shield,
    //if you input 't' in the terminal, the program will execute SendTextMessage(), it will show how to send a sms message,
    //if input 'd' in the terminal, it will execute DialVoiceCall(), etc.
    if (Serial.available()){
      if (Serial.read()=='h') SubmitHttpRequest();
    }
       
    if (mySerial.available())
       Serial.write(mySerial.read());
    }
    ///SendTextMessage()
    ///this function is to send a sms message

    void SubmitHttpRequest()
    {
    mySerial.println("AT+CSQ");
    delay(100);
    ShowSerialData();// this code is to show the data from gprs shield, in order to easily see the process of how the gprs shield submit a http request, and the following is for this purpose too.
    mySerial.println("AT+CGATT?");
    delay(100);
    ShowSerialData();
    mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");//setting the SAPBR, the connection type is using gprs
    delay(4000);
    ShowSerialData();
    mySerial.println("AT+SAPBR=3,1,\"APN\",\"internet.beeline.ru\"");//setting the APN, the second need you fill in your local apn server
    delay(4000);
    ShowSerialData();
      ShowSerialData();
      mySerial.println("AT+SAPBR=1,1");//setting the SAPBR, for detail you can refer to the AT command mamual
    delay(4000);
      mySerial.println("AT+HTTPINIT"); //init the HTTP request
    delay(4000);
    ShowSerialData();
      mySerial.println("AT+SAPBR=2,1"); //get IP addres
    delay(4000);
    ShowSerialData();
    mySerial.println("AT+SAPBR=4,1");
    Serial.println('\r');
    delay (4000);
    mySerial.println("AT+SAPBR=5,1");
    Serial.println();
    ShowSerialData();
    delay(4000);

    ShowSerialData();
     
    mySerial.println("AT+HTTPPARA=\"URL\",\"176.52.40.157:80/123&qwe&tr\"");

    delay(1000);
    ShowSerialData();
      mySerial.println("AT+HTTPPARA?");



      Serial.println("_");
      delay(1000);
    ShowSerialData();
    mySerial.println("AT+HTTPACTION=0");//submit the request
    delay(10000);
    ShowSerialData();
    mySerial.println("AT+HTTPREAD");// read the data from the website you access

    delay(300);
    ShowSerialData();
    mySerial.println("");
    delay(100);
    }

    void ShowSerialData()
    {
    while(mySerial.available()!=0)
       Serial.write(mySerial.read());
    }
    </spoler>
     

    Вложения:

    Последнее редактирование: 18 июн 2014
  2. roggedhorse

    roggedhorse Гик

    Попробуйте написать
    вместо Serial.write(mySerial.read());
    это Serial.write(mySerial.read(), DEC);

    чтобы посмотреть коды символов
     
  3. Upversus

    Upversus Нуб

    sketch_jun17c.ino: In function 'void ShowSerialData()':
    sketch_jun17c:85: error: invalid conversion from 'int' to 'const uint8_t*'
    sketch_jun17c:85: error: initializing argument 1 of 'virtual size_t Print::write(const uint8_t*, size_t)'

    Serial.write(int(mySerial.read()));
    и Serial.write(byte(mySerial.read())); тоже выводят квадратики

    кроется сомнение в шрифте, однако простой вывод на консоль же отображается нормально, именно проблемы с ответными данными из порта
     
    Последнее редактирование: 18 июн 2014
  4. Upversus

    Upversus Нуб

    [​IMG]

    даже по кодам бредятина
     
    Последнее редактирование: 18 июн 2014
  5. Upversus

    Upversus Нуб

    Проблема решена. Дело было в скорости обмена, видимо в процессе поиска разных скетчей Шилд настроило на работу на 900 бот это просто ппц. В общем как в статусе у меня написано так я и есть НУБ :)

    Тему можно закрывать.
     
  6. roggedhorse

    roggedhorse Гик

    Бывает. Это самая распространенная проблема. А меня сбило с толку, что скорости хардкодом вписаны в скетче