完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试从 PicMicro 18F47K40 中开机自检数据,该 PicMicro 18F47K40 正在控制
使用ESP8266的太阳能跟踪器。 我已经更新了ESP8266:- AT版本:1.7.5.0(Oct 9, 2021 09:26:04) SDK版本:3.0.5(b29dcd3) 编译时间:2021-10-15 18:05:30 问题是我无法让它发布数据,所有其他命令都工作正常 我最初尝试使用 8 个变量,但现在只设置了一个 2 个字段 数据库来测试它。使用相同的 PHP 文件从浏览器发送 POST it works OK. But when sent from ESP8266 it comes up with "Undfined Array Key" 这是因为服务器未接收 POST 变量信息。 这是发送的逗号:- AT+CIPSTART=0,"TCP","192.168.1.103",80rn 在 cipsend=0,132rn POST /insert.php, HTTP/1.1rn Host: 192.168.1.103rn User-Agent: Mozillarn Content-Type: application/x-www-form-urlencodedrnrn"] rnrn Content-Length: 20rn rnrn Col_1=,Dec Value1,&Col_2=,Dec Value2,rnrn rnrn ESP8266的回应是: AT+CIPSTART=0,"TCP","192.168.1.103",80 0,连接 OK 在 cipsend=0,132 OK > 接收 132 字节 发送确定 IPD,0,488:HTTP/1.1 302 找到 日期:2022 年 5 月 18 日星期三 17:00:17 GMT 服务器:Apache/2.4.53 (Win64) OpenSSL/1.1.1n PHP/8.1.5 X-技术支持:php/8.1.5 内容长度:254 内容类型:text/html;字符集 = UTF-8 Warning: Undefined array key "Col_1" in C:xampphtdocsinsert.php on line 17 Warning: Undefined array key "Col_2" in C:xampphtdocsinsert.php on line 18 record created successfully 0,已关闭 它确实访问 PHP 文件并向数据库添加一条记录,但 字段值为空。 显然命令顺序不正确或我有问题 任何帮助或建议都会很好,谢谢。 |
|
相关推荐
1个回答
|
|
要将ESP8266的数据POST到XAMPP服务器上的PHP文件,您需要按照以下步骤操作:
1. **连接ESP8266到WiFi网络**: 首先,确保您的ESP8266模块已连接到WiFi网络。您可以使用以下代码示例连接到WiFi网络: ```cpp #include const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } ``` 2. **发送HTTP POST请求**: 使用ESP8266的`ESP8266HTTPClient`库发送HTTP POST请求。首先,确保在Arduino IDE中安装了该库。 ```cpp #include #include const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; const char* serverName = "YOUR_SERVER_IP_OR_DOMAIN"; const char* url = "/path/to/your/php_file.php"; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin("http://" + String(serverName) + url); http.addHeader("Content-Type", "application/x-www-form-urlencoded"); String httpRequestData = "field1=value1&field2=value2"; int httpResponseCode = http.POST(httpRequestData); if (httpResponseCode > 0) { String response = http.getString(); Serial.println(httpResponseCode); Serial.println(response); } else { Serial.println("Error on sending POST"); } http.end(); } } void loop() { // Your loop code here } ``` 3. **在PHP文件中处理POST请求**: 确保您的PHP文件可以正确处理POST请求。以下是一个简单的示例,用于从POST请求中获取数据: ```php if ($_SERVER["REQUEST_METHOD"] == "POST") { $field1 = $_POST["field1"]; $field2 = $_POST["field2"]; if (isset($field1) && isset($field2)) { echo "Received data: field1 = " . $field1 . ", field2 = " . $field2; } else { echo "Undefined Array Key"; } } else { echo "Invalid request method"; } ?> ``` 4. **测试**: 将ESP8266代码上传到您的设备,并确保它能够连接到WiFi网络。然后,运行您的PHP服务器并观察ESP8266发送的数据是否正确显示在PHP文件中。 5. **调试**: 如果遇到问题,请检查以下内容: - 确保ESP8266连接到正确的WiFi网络。 - 确保PHP文件的URL和路径正确。 - 检查ESP8266发送的POST请求数据格式是否正确。 - 检查PHP文件是否正确处理POST请求。 通过遵循这些步骤,您应该能够成功地将ESP8266的数据POST到XAMPP服务器上的PHP文件。 |
|
|
|
只有小组成员才能发言,加入小组>>
968 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
418浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 12:07 , Processed in 0.835532 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号