Отправка данных в файл PHP на сервере - PullRequest
0 голосов
/ 30 сентября 2019

Я работаю над проектом по отправке данных на мой веб-сайт. С Arduino и SIM900 я просто создал AT-код для отправки данных на веб-сайт и использования с ним PHP, но мой PHP-файл некажется, что получено значение, отправленное из AT-команд SIM900, почему? Другой вопрос, который у меня есть, является ли команда AT безопасной для отправки данных на сайт? Спасибо за помощь и хорошего дня. Это код, который у меня сейчас есть:

Это то, что у меня сейчас есть для sim900:

void setup(){
  //Inicialize Serial and SIM
  Serial.begin(19200);
  SIM900.begin(19200);

  delay(7000);

  // See if the SIM900 is ready
  SIM900.println("AT");
  ReceberEFim();                                 
  delay(4000);

  // SIM card inserted and unlocked?
  SIM900.println("AT+CPIN?");
  ReceberEFim();
  delay(500);              

  // Is the SIM card registered?
  SIM900.println("AT+CREG?");
  ReceberEFim();                            
  delay(500);

  // Is GPRS attached?
  SIM900.println("AT+CGATT?");
  ReceberEFim();                           
  delay(500);

  // Check signal strength - should be 9 or higher
  SIM900.println("AT+CSQ");
  ReceberEFim();                              
  delay(500);

  // Set connection type to GPRS
  SIM900.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
  ReceberEFim();      
  delay(1000);

  // Set the APN - this will depend on your network/service provider
  SIM900.println("AT+SAPBR=3,1,\"APN\",\"claro.com.br\"");
  ReceberEFim();      
  delay(1000);

  // Enable GPRS - this will take a moment or two
  SIM900.println("AT+SAPBR=1,1");
  ReceberEFim();                      
  delay(3000);

  // Check to see if connection is correct and get your IP address
  SIM900.println("AT+SAPBR=2,1");
  ReceberEFim();                        
  delay(500);

  // Enable HTTP mode
  SIM900.println("AT+HTTPINIT");
  ReceberEFim();                        
  delay(2000);

  SIM900.println("AT+HTTPPARA=\"URL\",\"http://mywebsite.com/teste.php?s1=50\"");
  ReceberEFim();
  delay(2000);                               

  SIM900.println("AT+HTTPPARA=\"CID\",1");
  ReceberEFim();             
  delay(500);

  SIM900.println("AT+HTTPACTION=0");
  ReceberEFim();                   
  delay(500);

  // Close the HTTP connection
  SIM900.println("AT+HTTPTERM");
  ReceberEFim();

  // Disconnect the GPRS
  SIM900.println("AT+SAPBR=0,1");
  ReceberEFim();
}

Это файл PHP:

   <?php 
    $sensor1 = $_GET["s1"];
    $sensor2 = $_GET["s2"];
    $sensor3 = $_GET["s3"];

    echo "Sensor 1 = $sensor1";
    echo "</br>Sensor 2 = $sensor2";
    echo "</br>Sensor 3 = $sensor3";

  ?>

Я ожидаючтобы можно было отправлять несколько данных через SIM900 в мой файл PHP.

1 Ответ

0 голосов
/ 30 сентября 2019

Вы не передали s2 и s3 в свой URL-адрес, поэтому вы не можете получить к нему доступ, и это приведет к ошибке.

Вы можете обнаружить s {n} var динамически или попробовать isset дляпроверьте, существует ли var.

Я думаю, что будет лучше использовать https для соображений безопасности и сеансов или токена, чтобы быть уверенным, что это не кто-то другой, кто пытается отправить случайные значения на ваш сайт.

Хотелось бы, чтобы это вам помогло,

...