目前架構:
把ESP8266當成一個小型Server
手機APP發送一個JSON封包給ESP8266,透過MCU解析字串
藉由MCU->ESP8266,發一個HTTP OK的回應並附帶JSON封包給APP端
AT command順序如下:
AT+CWMODE=1
AT+CWJAP="MY-HOME-3F",123456789"
AT+CIFSR
AT+CIPMUX=1
AT+CIPSERVER=1,80
+IPD,0,282:POST /Backstage/write HTTP/1.1
Content-Type: application/json
Content-Length: 46
User-Agent: Dalvik/2.1.0 (Linux; U; Android 6.0.1; HTC_D10u Build/MMB29M)
Host: xxx.255.232.xxx:3310
Connection: Keep-Alive
Accept-Encoding: gzip
{"WR":"An","par":["3320","254","14563","258"]}
AT+CIPSEND=0,190
...json格式發送
AT+CIPCLOSE=0
目前遇到問題如下:
1.有時候CIPCLOSE都fail,真的不能理解為何會fail?
2.APP端發送封包給ESP8266,有時後傳送資料還會傳錯,架構那邊有甚麼東西是我沒想到的麼?
3.每次的AT+CIPSEND = 0,190 是不是一定搭配AT+CIPCLOSE = 0,能不能有別的做法...真的太慢了
4.CIPSERVER啟動後,如果兩隻手機同時連到ESP8266的Server上的話資料解析到一半被插斷肯定會有問題
,有沒有類似分配ID的做法?處理完一個ID 再處理下一個ID...
可能我表達方面還不夠清楚,請包涵一下,在請前輩們指導一下。
使用AT+CIPSERVER 幾個問提想詢問一下
Moderator: ESP_XCGuang
Re: 使用AT+CIPSERVER 幾個問提想詢問一下
不确定这个博客是否有参考意义:ESP-AT 应用: AT-Web
ESP-AT 好像有个 webserver 的命令:https://docs.espressif.com/projects/esp ... mands.html
ESP-AT 好像有个 webserver 的命令:https://docs.espressif.com/projects/esp ... mands.html
Re: 使用AT+CIPSERVER 幾個問提想詢問一下
Hi Helen L,
非常給謝您的回答,AT+WEBSERVER這個command我沒有嘗試過,似乎可以往這個方向來著手
,不過關於ESP8266有時傳送資料或是要將Server CLOSE會有偶發性的Fail,難道只能rest esp8266
,對我來說這算是一種很糟糕的做法,好奇問一下在實作Web server都沒有遇過類似的情行麼?
非常給謝您的回答,AT+WEBSERVER這個command我沒有嘗試過,似乎可以往這個方向來著手
,不過關於ESP8266有時傳送資料或是要將Server CLOSE會有偶發性的Fail,難道只能rest esp8266
,對我來說這算是一種很糟糕的做法,好奇問一下在實作Web server都沒有遇過類似的情行麼?
Re: 使用AT+CIPSERVER 幾個問提想詢問一下
从你的应用来看,应该是通过 TCP 来组包成 HTTP。
1. AT+CIPCLOSE=0 失败,可能是您设置的 link ID 参数不对。从您描述的应用来看,您应该是存在多连接的情况的,可以在执行 AT+CIPCLOSE 命令之前通过命令 AT+CIPSTATUS 查询下连接状态。
2. 传输数据出错?这个得抓包看一下到底是什么原因
3. AT+CIPCLOSE 是关闭连接,如果您只需发送 190 字节数据,后面就没有数据的交互了,那可以执行 AT+CIPCOSE 命令。如果您后面还会有数据的交互,那么可以保持这个连接,不用每次发送数据完都关闭的。
4. 多连接的应用下,收到的数据是有 link ID 的,您可以根据 link ID 来进行解析。AT 会将收到的数据以 +IPD,<link ID>,<len> 开头,您可以根据 link ID 来解析
1. AT+CIPCLOSE=0 失败,可能是您设置的 link ID 参数不对。从您描述的应用来看,您应该是存在多连接的情况的,可以在执行 AT+CIPCLOSE 命令之前通过命令 AT+CIPSTATUS 查询下连接状态。
2. 传输数据出错?这个得抓包看一下到底是什么原因
3. AT+CIPCLOSE 是关闭连接,如果您只需发送 190 字节数据,后面就没有数据的交互了,那可以执行 AT+CIPCOSE 命令。如果您后面还会有数据的交互,那么可以保持这个连接,不用每次发送数据完都关闭的。
4. 多连接的应用下,收到的数据是有 link ID 的,您可以根据 link ID 来进行解析。AT 会将收到的数据以 +IPD,<link ID>,<len> 开头,您可以根据 link ID 来解析
Who is online
Users browsing this forum: Bing [Bot] and 73 guests