我正在研究一个将数据发送到我的网站的项目,使用Arduino和SIM900,我刚刚制作了一个AT代码,将数据发送到该网站并使用PHP,但是我的PHP文件似乎没有接收SIM900 AT命令发送的值,为什么?我还有一个问题,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文件。
您没有在URL中传递s2和s3,因此您无法访问它,这将产生错误。
您可以动态检测s {n} var或尝试使用isset来检查var是否存在。
我认为出于安全原因和会话而使用https或使用令牌以确保不是其他试图向您的站点发送随机值的人会更好。
希望对您有帮助,