Andreas
February 23, 2020, 9:04pm
43
Auch andere berichten über fehlenden SSL support bei den SIM800-Modulen.
Hier wird noch von einem AT-Kommando AT+SSLOPT=1,1
gesprochen, um die SSL-Option (überhaupt erst?) einzuschalten. Hm.
weef
February 23, 2020, 9:09pm
44
OK, danke ! ;)
Aber das ist ja leider schon interpretiert (dadurch, daß Du das Ding per Python ansprichst) und leider nicht transparent wie in einem terminal-Programm: die Ausgabe eines etwaigen OK wird durch sowas unterdrückt - wir bräuchten hier mal die Ausgabe im raw-Modus…
Hier z.B. (2x in der Mitte, nach CIPSSL suchen) findet sich ein Hinweis, daß auch bei diesem Befehl -wenn er funktioniert resp. implementiert ist- eine Leerzeile samt OK auf neuer Zeile rausgeschickt wird. - Ist aber jetzt auch nicht soo wichtig; wenn Du Zeit findest.
clemens
February 23, 2020, 9:24pm
45
… oder du packst die Arduino-IDE kurz aus und spielst das drauf
Arduino-Code AT über Serielle
// GPRS credentials (leave empty, if missing)
const char apn[] = "internet.telekom"; // Your APN
const char gprsUser[] = ""; // User
const char gprsPass[] = ""; // Password
const char simPIN[] = ""; // SIM card PIN code, if any
// pins TTGO T-Call
// SIM800
#define MODEM_RST 5
#define MODEM_PWKEY 4
#define MODEM_POWER_ON 23
#define MODEM_TX 27
#define MODEM_RX 26
// I2C pins for IP5306
#define I2C_SDA 21
#define I2C_SCL 22
// power management IP5306
#define IP5306_ADDR 0x75
#define IP5306_REG_SYS_CTL0 0x00
// Serials
// set serial for Serial Monitor
#define SerialMon Serial
// set serial for SIM800 / AT commands
#define SerialAT Serial1
// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon
//#define DUMP_AT_COMMANDS
// Configure TinyGSM library
#define TINY_GSM_MODEM_SIM800 // Modem is SIM800
#define TINY_GSM_RX_BUFFER 1024 // Set RX buffer to 1Kb
// libraries
#include <Wire.h>
#include <TinyGsmClient.h>
#ifdef DUMP_AT_COMMANDS
#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm modem(debugger);
#else
TinyGsm modem(SerialAT);
#endif
TinyGsmClient client(modem);
// power management via IP5306
bool setPowerBoostKeepOn(int en)
{
Wire.beginTransmission(IP5306_ADDR);
Wire.write(IP5306_REG_SYS_CTL0);
if (en) {
Wire.write(0x37); // Set bit1: 1 enable 0 disable boost keep on
} else {
Wire.write(0x35); // 0x37 is default reg value
}
return Wire.endTransmission() == 0;
}
void setup() {
// Set console baud rate
SerialMon.begin(115200);
delay(10);
// Keep power when running from battery
Wire.begin(I2C_SDA, I2C_SCL);
bool isOk = setPowerBoostKeepOn(1);
SerialMon.println(String("IP5306 KeepOn ") + (isOk ? "OK" : "FAIL"));
// Set-up modem reset, enable, power pins
pinMode(MODEM_PWKEY, OUTPUT);
pinMode(MODEM_RST, OUTPUT);
pinMode(MODEM_POWER_ON, OUTPUT);
digitalWrite(MODEM_PWKEY, LOW);
digitalWrite(MODEM_RST, HIGH);
digitalWrite(MODEM_POWER_ON, HIGH);
// Set GSM module baud rate and UART pins
SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);
delay(3000);
// restart takes quite some time
// to skip it, call init() instead of restart()
SerialMon.println("Initializing modem...");
modem.restart();
// Or, use modem.init() if you don't need the complete restart
//modem.init();
String modemInfo = modem.getModemInfo();
SerialMon.print("Modem: ");
SerialMon.println(modemInfo);
// Unlock your SIM card with a PIN if needed
if (strlen(simPIN) && modem.getSimStatus() != 3 ) {
modem.simUnlock(simPIN);
}
}
void loop() {
if (SerialAT.available()) {
SerialMon.write(SerialAT.read());
}
if (SerialMon.available()) {
SerialAT.write(SerialMon.read());
}
}
mit 115200 baud und neue Zeile im Seriellen Monitor kannst du dann AT-Kommandos absetzen.
Andreas
February 23, 2020, 9:30pm
46
Macht Euch nicht zu viel Mühe. Eigentlich haben wir alles Wichtige schon herausgefunden und könnten 1:1 der "hasSSL"
-Implementierung der TinyGSM-Bibliothek folgen.
2 Likes