EnglishRussian

Передача данных по GPRS на удаленный сервер

Рассмотрим простейший пример передачи данных по GPRS. В примере используется плата Arduino и шилд «Cosmo GSM Connect»

Отправим на сервер jt5.ru запрос вида: server.php?request=COSMO_GSM

  • Подключите Ардуино к компьютеру, запустите Arduino IDE и залейте в микроконтроллер следующий скетч.
    Не забудьте поправить в скетче настройки GPRS, зависит от вашего оператора связи.
    unsigned int Get_counter;
    
    void setup (){
      Serial.begin(38400);
      Serial.flush();
      // программно включаем gsm-модем
      pinMode(7, OUTPUT);
      digitalWrite(7, HIGH);
      delay(5000);
      digitalWrite(7, LOW);
      delay(5000);  
      Serial.flush();
      // опрашиваем gsm-модем
      Serial.println("AT");
      delay(100);
      Serial.print("AT+CPIN="); // вводим пин-код для симки
      Serial.print((char)34); // символ кавычки "
      Serial.print("0000"); // пин код
      Serial.println((char)34); // символ кавычки "
      delay(10000);
      Serial.println("AT+CGATT=1"); // регистрируемся в GPRS-сети
      delay(12000);
      Serial.println("AT+CSCA?"); // запрашиваем номер смс-центра
      delay(1000);
      Serial.println("AT+CMGF=1"); // выставляем текстовым режим сообщений
      delay(1000);
    }
    
    void loop (){
      Serial.println("AT+CGDCONT=1,\"IP\",\"home.beeline.ru\"");   //!!! СМОТРИ НАСТРОЙКИ ВАШЕГО ОПЕРАТОРА СОТОВОЙ СВЯЗИ
      delay(1000);
      Serial.println("AT%CGPCO=1,\"PAP,beeline,beeline\",1");       //!!! СМОТРИ НАСТРОЙКИ ВАШЕГО ОПЕРАТОРА СОТОВОЙ СВЯЗИ
      delay(1000);
      Serial.println("AT$DESTINFO=\"jt5.ru\",1,80,1");              //Адрес, порт удаленного сервера и текстовый режим передачи данных
      delay(1000);
      Serial.println("ATD*97#");                                    //Открываем сокет
      delay(7000);                                                  // Время на открытие сокета
      Serial.print("GET /server.php?");                             //Посылаем GET-запрос            
      Serial.print("request=COSMO_GSM");                            //Передаем поле и его параметр
      Serial.print(Get_counter, DEC);                                         //Добавляем численное значение
      Serial.print(" HTTP/1.1\r\nHost: jt5.ru\r\nCache-Control: no-cache\r\nConnection: close\r\n\r\n");//обязательные поля HTTP запроса
      delay(5000);                                                  //Ждем отправки
      delay(1000);
      Serial.print("+++");                                          //Выходим в режим команд
      delay(1000);
      Serial.println("ATH");                                        //Разрываем соединение
      delay(60000);
      Get_counter++;
    }
    
    После этого отсоедините Ардуино от компьютера.
  • Установите на шилде «Cosmo GSM Connect» SIM-карту, подключите внешнюю антенну, установите джампера 1 и 3 в положение MEGA (контакт 2-3). Подробнее смотрите схему шилда.
  • Подключите к Ардуино внешний источник питания (7-9V).
    После того как настройки GSM-сети активируются, на шилде начнет мигать красный светодиод.