Не удалось получить значение из GSM SIM 900A с помощью AT-команды в PHP-скрипте.
Сейчас я пытаюсь установить соединение между моим GSM-модулем SIM900A и одним из моих тестовых серверов. Пока что соединение вроде бы хорошее, хотя я немного не понимаю, почему мой PHP-файл не извлекает значения. Тем не менее, запрос на вставку работает, хотя в базу данных добавляется пустое значение. Вопрос в том, как правильно его извлечь? Я уже изменил метод в PHP-скрипте на POST, но ни один из них не даёт никаких результатов.
Код Arduino:
void postData()
{
sim900a.println("AT+HTTPINIT");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPPARA=\"CID\",1");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPPARA=\"URL\",\"test.my/demo/writedata.php\"");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPDATA=12,10000");
delay(1000);
printSerialData();
sim900a.println("strBoton=999");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPACTION=1");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPREAD");
delay(1000);
printSerialData();
sim900a.println("AT+HTTPTERM");
delay(1000);
printSerialData();
}
PHP-код:
<?php
$servername = "test.my";
$username = "****";
$password = "****";
$dbname = "test";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$Boton = $_GET["strBoton"];
$sql = "INSERT INTO test VALUES ('$Boton')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Выход:
AT+HTTPINIT
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPPARA="URL","test.my/demo/writedata.php"
OK
AT+HTTPDATA=12,10000
DOWNLOAD
OK
AT+HTTPACTION=1
OK
AT+HTTPREAD
OK
AT+HTTPTERM
+CME ERROR: operation not allowed
AT+SAPBR=0,1
OK
@Asyraf, 👍0
1 ответ
Лучший ответ:
Не уверен, но в этом руководстве на странице 8 реализован почти такой же шаблон кода, как у вас. Можете сами проверить. Извините, но я не знаю PHP и не могу вам помочь.
Но меня смущает AT+HTTPACTION, поскольку AT+HTTPACTION=0 — это чтение, а AT+HTTPACTION=1 — отправка. Ознакомьтесь с руководством и оптимизируйте свои команды.
Также проверьте этот. Он записывает WAIT=6 после AT+HTTPREAD перед завершением сеанса.
- Проблема с получением SMS - GSM-модуль Arduino Uno и SIM900A
- Мини-модем SIM900a, IMEI 0, помощь с контактами TX RX
- Несколько операторов If
- SIM900 3G? Или SIM900A умеет подключаться к 3G?
- Как получить данные из базы данных моего сервера в переменную в моем Arduino?
- Как отправить команду AT на sim800l с помощью SoftwareSerial
- SIM800L не регистрируется в сети
- Как проверить, работает ли GSM-модуль?