【发布时间】:2017-03-03 05:21:07
【问题描述】:
我正在尝试将我的 ESP8266 12F 微控制器连接到托管在 hosts.com 上的远程 Apache 服务器。但是客户端无法连接。 我需要做的是将一些读数写入服务器上的 mysql 数据库。我已将微控制器连接到我的移动热点,但无法连接到服务器。这是我的代码:
#include<ESP8266WiFi.h>
#define SS_PIN 4
#define RST_PIN 5
#define host http://smartlbus.esy.es/
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
static const int RXPin = 0, TXPin = 16;
static const uint32_t GPSBaud = 9600;
// The TinyGPS++ object
TinyGPSPlus gps;
// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
WiFi.mode(WIFI_STA);
WiFi.begin("smartbus","qwerty123");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
if(WiFi.status()==WL_CONNECTED) Serial.println("Connected to wifi");
}
void loop() {
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (client.connect("http://www.smartlbus.esy.es", httpPort)) {
Serial.println("Connected to server");
while (ss.available() > 0)
if (gps.encode(ss.read()))
{
double lat,lng;
float speed;
if (gps.location.isValid())
{
lat=gps.location.lat();
lng=gps.location.lng();
speed=gps.speed.value();
}
String data = "lat1=" + (String) lat + "&lng1=" + (String)lng + "&speed=" + (String)speed;
client.println("POST /add.php HTTP/1.1");
client.println("Host: www.smartlbus.esy.es");
client.println("Content-Type: application/x-www-form-urlencoded");
client.print("Content-Length: ");
client.println(data.length());
client.println();
client.print(data);
delay(500);
}
}
else{
Serial.println("Cannot cannect to server..");
}
// Look for new cards
这是 php 代码:
<?php
include 'dbConnect.php';
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting values
$lat = $_POST['lat1'];
$lng = $_POST['lng1'];
$speed = $_POST['speed'];
$id = $_POST['busid'];
//Creating an sql query
$sql = "INSERT INTO status (bus_id,latitude,longitude,speed) VALUES ('$id','$lat','$lng','$speed')";
//Executing query to database
mysqli_query($con,$sql);
//Closing the database
mysqli_close($con);
}
?>
请帮帮我。
【问题讨论】:
-
你确定端口应该是
8000吗? (通常是80)。我可以从这里在 80 端口看到它,但是 8000 端口超时... -
哦,对不起,这是一个错字。不知道它是如何爬行的。
-
我尝试通过 CURL 发送数据,但它没有正确响应,您确定您的服务器工作正常吗?
-
能否附上你服务器的代码?
-
curl -d "lat1=1.001&lng1=2.1001&speed=100" -H "Content-Type: application/x-www-form-urlencoded" -X POST http://www.smartlbus.esy.es/add.php