Dateiübertragung zwischen zwei GSM-Modems

Ich möchte ein System bauen, das Werte auf einer SD-Karte speichert, um eine CSV-Datei zu bilden, damit dies kein Problem darstellt. Es werden täglich etwa 1000 Werte aufgezeichnet. Ich möchte diese Werte täglich an einen PC senden und möchte für diese Aufgabe zwei GSM-Modems verwenden. kann diese Aufgabe mit zwei GSM-Modem oder nicht?

Geben Sie hier die Bildbeschreibung ein

Welche anderen Methoden sind empfehlenswert? Oder wie kann dies erreicht werden? FTP ist die bessere Option, um Daten auf den Host hochzuladen und dann auf den PC herunterzuladen?

Vielen Dank im Voraus!

Antworten (1)

Sie können ein GSM-Modem nicht direkt mit einem anderen verbinden. GSM-Modems werden unter Verwendung von "AT"-Befehlen gesteuert, die den AT-Befehlen nachempfunden (aber stark erweitert) sind, die vor dreißig Jahren in den ursprünglichen Hayes-Modems entwickelt wurden.

Es gibt einen Kernsatz von AT-Befehlen, die für alle Mobilfunkmodems gleich sind; diese haben im Allgemeinen ein Präfix von "AT+". Dann gibt es eine Reihe von proprietären AT-Befehlen, die von jedem Hersteller von Mobilfunkmodems entwickelt wurden, sie haben Präfixe wie "AT$" oder "AT%" usw., wobei das dritte Zeichen für den Hersteller eindeutig ist.

Ich habe mit Mobilfunkmodems von vier verschiedenen Herstellern gearbeitet. Die Dokumentation für diese Befehle ist normalerweise über 500 Seiten lang.

Diese sind alle so konzipiert, dass sie nur mit einem Mobilfunkmast funktionieren. Es gibt einen Befehl zum Abrufen der Signalstärke (AT+CSQ), mit dem die Balken auf dem Bildschirm aktualisiert werden. Es gibt Befehle, um zu überprüfen, ob sich das GSM-Modem im Netzwerk registriert hat (mit einem Mobilfunkmast verbunden ist). Ein weiterer Befehl, um die Liste der vom Mobilfunkmast unterstützten Netzbetreiber abzurufen.

Für Sprachanrufe gibt es einen Befehl zum Wählen eines Anrufs (ADT, genau wie die DFÜ-Modems aus der Vergangenheit) und einen weiteren Befehl (oder besser gesagt eine Befehlsaufstellung), um einen Datenanruf aufzubauen und eine TCP/IP-Verbindung anzufordern. Wenn ein Anruf entgegengenommen oder eine Verbindung zum Internet hergestellt wird, lautet die Antwort VERBINDEN. Das Modem geht dann in einen Datenbereich, wo Daten gesendet oder empfangen werden können. Um in den Steuermodus zurückzukehren, wird die bekannte +++-Sequenz (patentiert von Hayes) verwendet.

Wenn diese für die Punkt-zu-Punkt-Kommunikation mit einem anderen GSM-Modem funktionieren würden, müsste dieses andere Modem die meisten Fähigkeiten eines Mobilfunkmastes haben. Aber dafür gibt es keine Vorschrift. Es gibt in keinem GSM-Modem-AT-Set Befehle, die einem GSM-Modem erlauben, sich so zu verhalten.

Sie haben also ein paar Möglichkeiten. Wenn Ihr Arduino und Ihr PC nicht weiter als 75 bis 100 Fuß voneinander entfernt sind, sollten Sie stattdessen auf jeden Fall Bluetooth verwenden. (Die „offizielle“ Reichweite beträgt 100 m, aber das gilt für den Außenbereich ohne Hindernisse.) Dies ist bei weitem die einfachere Methode – keine Datentarife oder Hostserver, für die man sich anmelden muss.

Sie könnten Ihre Daten mit Ihrem GSM-Modem auf dem Arduino auf einen Server hochladen und sie von demselben Server von dem GSM-Modem herunterladen, das Sie an Ihren PC anschließen (wovon ich annehme, dass Sie eine Verbindung mit einem USB-zu-UART-Kabel und einem virtuellen COM herstellen Hafen). In diesem Fall wäre FTP ein vorgeschlagenes Protokoll. Sie sollten in der Lage sein, einen Host (Server) zu bekommen, der FTP-Zugriff für etwa $3 pro Monat erlaubt. Sie müssen auch ein SIM-Modul für jedes Ihrer Modems erwerben und einen Datentarif abonnieren, genau wie bei einem Mobiltelefon (nicht so billig).

Eine kostengünstigere Option wäre, das GSM-Modem auf dem PC zu vergessen und von Ihrem PC aus einen eigenen FTP-Server zu betreiben, der dem Internet ausgesetzt ist. Dazu benötigen Sie eine feste IP-Adresse. Die meisten Internetanbieter bieten diese Option an; Ich zahle $5 pro Monat oder so für meine. (Es ist möglich, einen Server mit einer dynamischen IP zu betreiben, aber ich denke, Sie müssten eine DNS-Suchfunktion auf Ihrem Arduino haben - ich habe Code dafür geschrieben, und es ist nicht trivial.)

In diesem Fall würde sich das GSM-Modem auf Ihrem Arduino also direkt mit dem FTP-Server auf Ihrem PC verbinden. Sie benötigen nur eine SIM-Karte und müssen keinen Server einrichten.

Danke @tcrosley, kann ich XModem oder ZModem nicht für die Kommunikation zwischen zwei GSM-Modems verwenden?
@ mohammad2050 Ich glaube, Sie haben den Punkt meiner Antwort verpasst - es gibt überhaupt keine Möglichkeit , die beiden Modems zu verbinden. Sie können keine CONNECT-Antwort zurückerhalten. Sehen Sie sich Ihren AT-Befehlssatz an - wie würden Sie vorgehen, um das andere Modem zu adressieren? Es ist also irrelevant, sich Gedanken darüber zu machen, welches Datenprotokoll verwendet werden soll.