Hallo schönen guten Tag :D
Hier schonmal eine Zusammenfassung:
*Arduino UNO
*SIM5360
*Über Schnittstelle verbunden
*Ziel: PostRequest mit Bearer Token..
*Wenn Bearer zu lang: Problem beim Senden -> RAM
*Gibt es wie bei SIM800 AT+HTTPPARA=USERDATA,Authorization ?
* Oder muss Header + Body in einen String für CHTTPSSEND ?
Links zu den verwendeten Bibliotheken und zum Code:
-------
Code:
https://github.com/stanleyhuangyc/Freematics/tree/master/firmware_v4/sim5360test
Bibliotheken
https://github.com/stanleyhuangyc/Freematics/tree/master/libraries/FreematicsONE
-----
Grundlage: Arduino UNO ( Atmega328 )-Board in Verbindung mit einer
Erweiterungsmöglichkeit für ein SIM5360-Modul.
Das SIM5360-Modul ist über einen kleinen Umweg Ansprechbar.
AT- Kommandos werden an die Schnittstelle geschickt und dann automatisch
ich denke über SPI an das SIM5360-Modul geschickt.
AT Befehle so beliebig ausgeführt werden.
Ich kann zum Beispiel , mit Hilfe des Herstellermusters in
HTTP-POST-Request duchführen. hat bereits funktioniert.
Nun muss ich jedoch irgendwie in den Header meinen Token einfügen:
1 | p += sprintf(p, "%s %s HTTP/1.1\r\nUser-Agent: Test\r\nHost: %s\r\nContent-Type: %s\r\nConnection: %s\r\nAuthorization: Bearer %s\r\n ",
|
2 | method == HTTP_GET ? "GET" : "POST", path, HTTP_SERVER_URL,"application/json", keepAlive ? "keep-alive" : "close",token);
|
Allerdings gibt es dann ein Problem beim Senden. Es wird nur noch eine
Meldung angezeigt, dass er sendet, aber er hört quasi nie auf xD
Wenn ich die Länge meines Bearers verringere funktioniert das senden.
Es hängt also möglicherweise vom RAM des Atmega-328 ab.
Wäre wichtig zu wissen ob man einen anderen Weg gehen kann, um das
Authorization-Feld , also den Bearer hinzuzufügen.
Ich weiß zum Beispiel, dass beim SIM800 folgendes funktioniert hat :
(Dort wurde aber auch ein ESP32 verwendet)
1 | SerialAT.println("AT+HTTPPARA=USERDATA,Authorization:"+token); /* Sets: "Authorization:<token>" --Set Header parameters for HTTP session */
|
Weiß jemand ob es für das Hinzufügen des Bearers auch beim SIM5360 ein
AT Kommando gibt ? Vllt. geht sogar das gleiche... das werde ich jetzt
testen.
Evtl. auch einfach Schrittweise.
Also was der Hersteller dort im Moment macht ist :
1 | // ############### SEND HTTP REQUEST
|
2 | sprintf(buffer, "AT+CHTTPSSEND=%u\r", headerSize + payloadSize);
|
Wie man sieht ist alles im "buffer" gespeichert..
Es wird also nicht unterschieden zwischen Header und Inhalt...
Ich konnte bis jetzt noch keinen Befehl finden um das Schritt für
Schritt hinzuzufügen.
Danke falls sich jemand damit auskennt !