Код Arduino ничего не делает без компьютера - PullRequest
0 голосов
/ 11 июня 2019

Уже несколько недель я работаю над проектом, который включает в себя связь с базой данных с использованием модуля GPRS.

Тестирование прошло успешно, когда Arduino был подключен к компьютеру, но когда я отключил его и подключил к сетиэто к стене с помощью адаптера, он ничего не делал (данные на сайте не поступают).

     #include <SoftwareSerial.h>
     #include <Wire.h>
     #include <ds3231.h>

     struct ts t;

     SoftwareSerial mySerial(7, 8); //Tx & Rx sont connectés aux broches Arduino #7 et #8

     void setup()
     {
     Wire.begin();
     DS3231_init(DS3231_INTCN);
     //Commence la communication Serie
     Serial.begin(9600);
     //Commence la communication Serie Arduino-Shield GPRS
      mySerial.begin(9600);
      Serial.println("Initialisation..."); 
      delay(1000);

     mySerial.println("AT"); //Handshaking
     updateSerial();
     mySerial.println("AT+UPSDA=2,0"); //Reset connexion
     updateSerial();
     delay(2000);
     mySerial.println("AT+UPSD=2,1,\"sl2sfr\""); //Establissement de connexion avec l'APN
     updateSerial();
     delay(2000);
     mySerial.println("AT+UPSDA=2,3"); 
     updateSerial();
     delay(2000);
     mySerial.println("AT+UPSND=2,0");
     updateSerial();
     delay(2000);
        }

      void loop()
     {
        DS3231_get(&t);
        String heure = String(t.hour);
        heure += ":";
        heure += String(t.min);
        heure += ":";
        heure += String(t.sec);
      String Date = String(t.year);
       Date += "-";
       Date += String(t.mon);
       Date += "-";
       Date += String(t.mday);

       String Equipement = "STAINS";
       String Direction = "SUD-EST";
       mySerial.println("AT+UHTTP=0");
        updateSerial();
        delay(2000);
        mySerial.println("AT+UHTTP=2,1,\"www.projetwmr.site\""); // Parametrage URL d'acces
        updateSerial();              
        delay(2000);
       String command = "AT+UHTTPC=2,5,\"/add.php\",\"post.ffs\",\"vite="; // Commande d'envoi des donnes via POST sur PHP
        float Windspeed = 80; // Recuperation des données ANALOGIQUES
        // convertion valeurs en String - Chaîne de caractères
        command += String(Windspeed);
        // or convertion précise
        // command += String(Windspeed, 2);
        command += "&equipement=";
        command += String(Equipement);
        command += "&time=";
        command += String(heure);
        command += "&date=";
        command += String(Date);
        command += "&dire=";
        command += String(Direction);
        command += "\",0"; //Fin de la commande PHP POST
        mySerial.println(command);
        updateSerial();
        delay(1000);
        delay(10000);

    }

    void updateSerial()
     {
      delay(500);
      while (Serial.available()) 
      {
        mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
      }
      while(mySerial.available()) 
      {
        Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
      }
     }

1 Ответ

0 голосов
/ 11 июня 2019

На самом деле, я не совсем понимаю, что вы делаете с вашим модулем GPRS, также я вижу некоторые проблемы с вашим кодом, например, в updateSerial вы проверяете серийный доступ дважды.

Во всяком случае, отключение Arduino от ПК ничего не меняет, кроме случаев, когда вы используете последовательный порт, который был бы недоступен.Таким образом, ваш код запускается, но не работает должным образом, если он отключен от ПК.Это потому, что вы используете аппаратный серийный номер Arduino по умолчанию, который должен обмениваться данными с внешним устройством (например, вашим ПК).В вашей функции updateSerial вы проверяете доступность серийного номера с помощью while (Serial.available()), и когда вы отключаете последовательный порт, он становится false и, возможно, объясняет "Не работает" .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...