tro*_*ike 4 gsm http gprs at-command
我很难将数据发送到远程服务器,我能够发送一个帖子请求,但不知道如何添加服务器接收的数据.
我已经浏览了数据表http://www.jarzebski.pl/datasheets/SIM900_https-121018-1.00.pdf
试着
# usual at+sapbr=1,1 set up
+HTTPINIT
+HTTPPARA = “CID”,1
+HTTPPARA="URL","IP-ADDRESS:PORT"
+httpdata=100,10000
# Where do I add the post data ?
+httpaction=1
Run Code Online (Sandbox Code Playgroud)
发送http post请求.但是我如何添加数据 - 我已经尝试将其添加到网址?key = val但没有快乐 - 这里的任何帮助将不胜感激
Ala*_*rez 13
httpdata = 100,10000意味着SIM800应该在10秒内预期100个字节.
这是我使用HTTP客户端完成此操作的方法:
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://url.com/endPoint"
AT+HTTPPARA="CONTENT","application/json"
AT+HTTPDATA=40,10000
Run Code Online (Sandbox Code Playgroud)
此时,SIM800应以"DOWNLOAD"响应.这意味着它期待您的数据.发送您的数据; 在我的情况下:
{"location_id": 238, "fill_percent": 90}
Run Code Online (Sandbox Code Playgroud)
等待10秒钟以发送其余命令.然后:
AT+HTTPACTION=1
AT+HTTPREAD
AT+HTTPTERM
Run Code Online (Sandbox Code Playgroud)
这样做对我来说.希望能帮助到你.
这是我从以下网站获取信息的地方:http://www.raviyp.com/embedded/194-sim900-gprs-http-at-commands
在后端,使用Python Flask,这是我使用的代码
@app.route('/reportTrashLevel', methods=['POST'])
def report_trash_level():
data = request.get_json()
database.insert_trash_level(data)
return Response(status=200)
Run Code Online (Sandbox Code Playgroud)
我设法让它做我需要的,这段代码片段可能会帮助其他人
AT+CGATT=1 # enter GPRS configuration mode
AT+CIPMUX=0 # Disable multi IP connection mode. Single IP cnxn only
AT+CSTT="APN","USER","PASS"
AT+CIICR # bring up wireless connection with GPRS and CSD
AT+CIFSR # ip up - gprs working
AT+CIPSHUT # Exit GPRS configuration mode
# Now do a post request to remote server api in json format.
# Change IP_ADDR|DOMAIN for the IP or domain name of your server.
# Change 2000 to its port
AT+CIPSTART="TCP","IP_ADDR|DOMAIN","2000"
AT+CIPSEND=119 # Num of char in tcp/ip data, \r & \n count as 1 char
POST /post HTTP/1.1
Host: **.**.***.***
Content-Type: application/json
Content-Length:23
{"postkey":"postvalue"}
Run Code Online (Sandbox Code Playgroud)
希望这有助于下一个人坚持下去.
| 归档时间: |
|
| 查看次数: |
31911 次 |
| 最近记录: |