web-dev-qa-db-ja.com

サーバーへのコマンドポストデータでのsim800

リモートサーバーにデータを送信するのに困っています。POSTリクエストを送信することはできますが、サーバーが受信するデータを追加する方法がわかりません。

データシートを確認しました 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

httppostリクエストを送信します。しかし、どのようにデータを追加するのですか?私はそれをURLに追加しようとしましたか?key = valしかし喜びはありません-ここでの助けはありがたいです

4
trojan_spike

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

この時点で、SIM800は「ダウンロード」で応答するはずです。つまり、データを期待しているということです。データを送信します。私の場合:

{"location_id": 238, "fill_percent": 90}

残りのコマンドを送信するには、10秒待ちます。次に:

AT+HTTPACTION=1
AT+HTTPREAD
AT+HTTPTERM

それは私のためにそれをしました。それが役に立てば幸い。

ここから情報を入手しました: 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)
13
Alan Alvarez

私はそれを必要なことを実行させることができました、このコードスニペットはおそらく他の人を助けるでしょう

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"}

これが次の人がそれに固執するのに役立つことを願っています。

7
trojan_spike