Спасибо, что нашли время прочитать мой пост. Я попробую просто осветить то, что, по моему мнению, важно для проблемы, но я не профессиональный программист, поэтому, пожалуйста, потерпите меня.
У меня есть модуль SIM900 с Arduino Mega, и я пытаюсь использовать http get функцию для отправки данных в базу данных mySQL. Я успешно использовал SIM900 для создания текстовых файлов на моем сервере .ftp, поэтому я знаю, что он в какой-то степени работает, только не с функцией http. У меня есть сценарий. php, который отлично работает, когда я использую его в своем браузере (например, посещение «mysite.epizy.com/senddata.php?sensor69=69» вернет в браузере:
Массив ([sensor69] => 69 [__test] => dfc33491ff131abef9348da81e436528 [_ga] => GA1.2.428043981.1572933465)
Когда я пытаюсь подключиться к SIM900, я получаю следующее на мой серийный номер:
setting connection type
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+SAPBR=3,1,"APN","WWW.vodafone.net.nz"
OK
AT+SAPBR=1,1
ERROR
AT+SAPBR=2,1
+SAPBR: 1,1,"121.90.164.49"
OK
AT+HTTPINIT
OK
AT+HTTPPARA="CID",1
OK
AT+HTTPPARA="URL","mysite.epizy.com/send_data.php?sensor69=69"
OK
AT+HTTPACTION=0
OK
⸮⸮
+HTTPACTION:0,200,859
⸮
AT+HTTPREAD
+HTTPREAD:859
<html><body><script type="text/javascript" src="/aes.js" ></script><script>function toNumbers(d){var e=[];d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});return e}function toHex(){for(var d=[],d=1==arguments.length&&ar
AT+HTTPTERM
OK
Как мы видим, функция HTTPREAD возвращает 859 символов, но это кажется усеченным, и в моей базе данных или файле журнала нет регистрации (создается / обновляется в. php) Это мой. php скрипт "senddata. php"
<?php
print_r($_REQUEST);
//log php activation
date_default_timezone_set("Pacific/Auckland");
$my_file = 'log.txt';
$handle = fopen($my_file, 'a') or die('Cannot open file: '.$my_file);
$new_data = "\n"."Module=".$_GET['moduleID'].", ". date("d:m:Y")." ". date("h/i/sa");
fwrite($handle, $new_data);
fclose($handle);
// Prepare variables for database connection
$dbusername = "epiz_69696969"; // enter database username, I used "arduino" in step 2.2
$dbpassword = "69696969696969"; // enter database password, I used "arduinotest" in step 2.2
$server = "sql169.epizy.com"; // IMPORTANT: if you are using XAMPP enter "localhost", but if you have an online website enter its address, ie."www.yourwebsite.com"
$moduleID=$_GET['moduleID'];
// Connect to your database
$dbconnect = mysql_pconnect($server, $dbusername, $dbpassword);
$dbselect = mysql_select_db("epiz_24743320_testData",$dbconnect);
// Prepare the SQL statement
$sql = "INSERT INTO simData2 (moduleID) VALUES ('$moduleID')";
// Execute SQL statement
mysql_query($sql);
mysql_close();
?>
Вот раздел моего кода Arduino для http-соединения:
void httpConnect() {
myGsm.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\""); // Set type of internet connection to GPRS context
delay(1000);
Serial.println(" setting connection type");
printSerialData();
myGsm.println("AT+SAPBR=3,1,\"APN\",\"WWW.vodafone.net.nz\""); // Set access point name
delay(1000);
printSerialData();
myGsm.println("AT+SAPBR=1,1"); // Enable GPRS connection
delay(1000);
printSerialData();
myGsm.println("AT+SAPBR=2,1"); // To check connection status
delay(5000);
printSerialData();
myGsm.println("AT+HTTPINIT"); // Initialize HTTP
delay(500);
printSerialData();
myGsm.println("AT+HTTPPARA=\"CID\",1"); // End the PARA ???
delay(500);
printSerialData();
myGsm.print("AT+HTTPPARA=\"URL\",\"mysite.epizy.com/send_data.php?sen69=69\""); // Send PARA command, set url to send data
delay(2000);
printSerialData();
delay(2000);
printSerialData();
myGsm.println(""); // close url
Serial.println("");
delay(500);
printSerialData();
delay(500);
myGsm.println("AT+HTTPACTION=0"); //HTTP method 0-get 1-post 2-head
delay(1000);
printSerialData();
delay(1000);
printSerialData();
delay(2000);
printSerialData();
delay(2000);
printSerialData();
delay(2000);
printSerialData();
myGsm.println("AT+HTTPREAD");
delay(2000);
printSerialData();
delay(2000);
printSerialData();
delay(2000);
printSerialData();
myGsm.println("AT+HTTPTERM");
delay(100);
printSerialData();
}
Если кто может помочь пролить свет на то, почему модуль SIM900 не работает для активации моего. php вообще, любая помощь будет очень признательна.
Ура