GPRS_Logger

Тема в разделе "Проводная и беспроводная связь", создана пользователем Ser_vor, 30 янв 2016.

  1. Ser_vor

    Ser_vor Нуб

    Привет всем! Нужна помощь с GPRS-логгером для теплицы, проблема в следующем.

    При отключении питания и последующим его включением, не может включиться GPRS Shield (не подаётся питание). Слышен только аппаратный шум, монитор выдаёт Init error.

    Чтобы устройство запустить заново, необходимо загрузить вначале другой скетч (например GPRS_IncjmingCall), а потом снова загрузить скетч GPRS_Logger. Устройство будет работать до следующего перебоя с электроэнергией.
    Что нужно сделать чтобы при перебое с питанием GPRS Shield мог включаться?
     
  2. НКВД

    НКВД Нерд

    смотря какой ? shield изъясняйтесь конкретней
     
  3. shpock

    shpock Гик

    почитать что делает с модулем:
     
  4. НКВД

    НКВД Нерд

    Совершенно верно! только в скейче Gprs_send_Sms проще реализуеться без дерганья 13 пина - результат один все работает!) опять же программно) - -- сорь исправил в вашем случае пин 13 дергают для включении диода типа сигнал входящего звонка - а принцип везде один !)
     
    Последнее редактирование: 31 янв 2016
  5. Ser_vor

    Ser_vor Нуб

    Извините! Не понял в чём причина, и как исправить?
     
  6. Ser_vor

    Ser_vor Нуб

  7. НКВД

    НКВД Нерд

    void loop()
    {
    // включаем GPRS-шилд
    gprs.powerUpDown();

    // проверяем есть ли связь с GPRS устройством
    while (!gprs.init()) {
    // если связи нет, выводим сообщение об ошибке и ждём 1 секунду
    // процесс повторяется в цикле
    // пока не появится ответ от GPRS устройства
    Serial.print("Init error\r\n");
    delay(1000);
    }
    -—-——_

    В этом пректе все стоит - он должен включиться как поступит питание , при условии что вы правильно делаете все остально при заливке скейча фишки Rx и TX я снимаю - потом ставим все на место - тоесть без фишек работать не будет , будет выдавать error
     
  8. CryNET

    CryNET Гик

    Сделано "точ-в-точ" как по ссылке или "со своими фишками"?
    Статья проверенная, проверьте правильность подключения периферии, надежность контактов.
    Так же проверьте скетч и сравните его с вашим (скопируйте).
     
  9. Ser_vor

    Ser_vor Нуб

    Не помогает. Если питание выключить, а потом включить,то работать перестает.
     
  10. Ser_vor

    Ser_vor Нуб

    Использую только один датчик.
     

    Вложения:

  11. НКВД

    НКВД Нерд

    попрбуйте сначала простой скейч GPRS_IncjmingCall как советовали выше , тут только одно если не включится - значит либо скейч не встал либо перемычки не поставили на место , с питанием для включения и от юзб не будет!
     
  12. НКВД

    НКВД Нерд

    скейчи можешь не пробовать - с этого у меня включаеться ,, либо что то криво ставится либо техническая проблемма
     
  13. Ser_vor

    Ser_vor Нуб

    Вы наверное не поняли.
    Скетч GPRS_IncjmingCall загружается и работает.
    Скетч GPRS_Logger загружается после скетча GPRS_IncjmingCall и работает.
    Но при потере питания и последующем возобновлении питания скетч GPRS_Logger не работает. Не включается лампочка питания GPRS Shield,
     
  14. НКВД

    НКВД Нерд

    у меня включается на вашем скейче я выключаю питание - подаю и он сразу заводится
     
  15. Ser_vor

    Ser_vor Нуб

    Получается проблема с GPRS Shield, так как ИСКРУ я менял (не помогло).
     
  16. НКВД

    НКВД Нерд

    у меня у самого он как бы работатет звонит , принимает звонки отправляет смс , а на прием смс не работает и в инет не конектица , я вроде все перепробывал , написал в службу поддержки - буду ждать ответа завтра ! что скажут
     
  17. НКВД

    НКВД Нерд

    Нде судя по показаниям монитор порта gprs конектица а дальше не хочет- почему ? народ у вас сразу саходит на народный мониторинг?
    AT
    AT+CFUN=1
    AT+CPIN?
    Init OK
    AT+CIPSHUT
    AT+CSTT="internet.beeline.ru","beeline","beeline"
    AT+CIICR
    AT+CIFSR
    GPRS OK
    IP Address is 100.85.137.27
    AT+CIPSTART="TCP","narodmon.ru",8283
    Connect error
    AT+CIPSTART="TCP","narodmon.ru",8283
     
  18. НКВД

    НКВД Нерд

    А вот стандартный GPRS test ваще не подключается все замирает на строке Connecting GSM network... в мониторе порта - посмотрите если не трудно у меня там под билайн настройки - может у кого то идёт ?
    Код (C++):
    /*

    This sketch test the GSM shield's ability to connect to a
    GPERS network. It asks for APN information through the
    serial monitor and tries to connect to arduino.cc.

    Circuit:
    * GSM shield attached
    * SIM card with data plan

    Created 18 Jun 2012
    by David del Peral

    This example code is part of the public domain

    http://www.arduino.cc/en/Tutorial/GSMToolsTestGPRS

    */


    // libraries
    #include <GSM.h>

    // PIN Number
    #define PINNUMBER ""

    // initialize the library instance
    GSM gsmAccess;        // GSM access: include a 'true' parameter for debug enabled
    GPRS gprsAccess;  // GPRS access
    GSMClient client;  // Client service for TCP connection

    // messages for serial monitor response
    String oktext = "OK";
    String errortext = "ERROR";

    // URL and path (for example: arduino.cc)
    char url[] = "arduino.cc";
    char urlproxy[] = "http://www.arduino.cc";
    char path[] = "/";

    // variable for save response obtained
    String response = "";

    // use a proxy
    boolean use_proxy = false;

    void setup() {
      // initialize serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for Leonardo only
      }
    }

    void loop() {
      use_proxy = false;

      // start GSM shield
      // if your SIM has PIN, pass it as a parameter of begin() in quotes
      Serial.print("Connecting GSM network...");
      if (gsmAccess.begin(PINNUMBER) != GSM_READY) {
        Serial.println(errortext);
        while (true);
      }
      Serial.println(oktext);

      // read APN introduced by user
      char apn[50];
      Serial.print("internet.beeline.ru");  // тут пишем APN
      readSerial(apn);
      Serial.println(apn);

      // Read APN login introduced by user
      char login[50];
      Serial.print("beeline");              // тут пишем Login    
      readSerial(login);
      Serial.println(login);

      // read APN password introduced by user
      char password[20];
      Serial.print("beeline");              //  тут пишем  Pass
      readSerial(password);

      // attach GPRS
      Serial.println("Attaching to GPRS with your APN...");
      if (gprsAccess.attachGPRS(apn, login, password) != GPRS_READY) {
        Serial.println(errortext);
      } else {

        Serial.println(oktext);

        // read proxy introduced by user
        char proxy[100];
        Serial.print("If your carrier uses a proxy, enter it, if not press enter: ");
        readSerial(proxy);
        Serial.println(proxy);

        // if user introduced a proxy, asks him for proxy port
        int pport;
        if (proxy[0] != '\0') {
          // read proxy port introduced by user
          char proxyport[10];
          Serial.print("Enter the proxy port: ");
          readSerial(proxyport);
          // cast proxy port introduced to integer
          pport = (int) proxyport;
          use_proxy = true;
          Serial.println(proxyport);
        }

        // connection with arduino.cc and realize HTTP request
        Serial.print("Connecting and sending GET request to arduino.cc...");
        int res_connect;

        // if use a proxy, connect with it
        if (use_proxy) {
          res_connect = client.connect(proxy, pport);
        } else {
          res_connect = client.connect(url, 80);
        }

        if (res_connect) {
          // make a HTTP 1.0 GET request (client sends the request)
          client.print("GET ");

          // if use a proxy, the path is arduino.cc URL
          if (use_proxy) {
            client.print(urlproxy);
          } else {
            client.print(path);
          }

          client.println(" HTTP/1.0");
          client.println();
          Serial.println(oktext);
        } else {
          // if you didn't get a connection to the server
          Serial.println(errortext);
        }
        Serial.print("Receiving response...");

        boolean test = true;
        while (test) {
          // if there are incoming bytes available
          // from the server, read and check them
          if (client.available()) {
            char c = client.read();
            response += c;

            // cast response obtained from string to char array
            char responsechar[response.length() + 1];
            response.toCharArray(responsechar, response.length() + 1);

            // if response includes a "200 OK" substring
            if (strstr(responsechar, "200 OK") != NULL) {
              Serial.println(oktext);
              Serial.println("TEST COMPLETE!");
              test = false;
            }
          }

          // if the server's disconnected, stop the client:
          if (!client.connected()) {
            Serial.println();
            Serial.println("disconnecting.");
            client.stop();
            test = false;
          }
        }
      }
    }

    /*
      Read input serial
    */

    int readSerial(char result[]) {
      int i = 0;
      while (1) {
        while (Serial.available() > 0) {
          char inChar = Serial.read();
          if (inChar == '\n') {
            result[i] = '\0';
            return 0;
          }
          if (inChar != '\r') {
            result[i] = inChar;
            i++;
          }
        }
      }
    }
     
     
  19. Ser_vor

    Ser_vor Нуб

    Так же, все замирает на строке Connecting GSM network
     
  20. CryNET

    CryNET Гик

    Симка без PIN кода?

    Код (C++):
    // PIN Number
    #define PINNUMBER ""
    ....
    // start GSM shield
    // if your SIM has PIN, pass it as a parameter of begin() in quotes
      Serial.print("Connecting GSM network...");
    if(gsmAccess.begin(PINNUMBER)!= GSM_READY){
        Serial.println(errortext);
       while(true);
    }
      Serial.println(oktext);
     
    Если у симки пина нету, то и аргумент begin'у не надо давать, попробуйте так:

    Код (C++):
    // start GSM shield
      // if your SIM has PIN, pass it as a parameter of begin() in quotes
      Serial.print("Connecting GSM network...");
      if (gsmAccess.begin() != GSM_READY) {
        Serial.println(errortext);
        while (true);
      }