Forum: Mikrocontroller und Digitale Elektronik Raspberry PI GSM Funktion mit UMTS-Stick


von Sascha H. (doggy)


Lesenswert?

Guten Tag liebes Forum,

Ich habe ein Problem mit meinem Raspberry Pi. Ich möchte mit einem 
UMTS-Stick (Huawei E169) mittels eines Anrufs einen Ausgang des 
Raspberry Pis schalten. Dieser Anruf soll mit einer Liste verglichen 
werden und wenn die anrufende Nummer vorhanden ist, soll der Ausgang 
geschaltet werden. Ist die Nummer nicht in der Textdatei, soll angezeigt 
werden, dass der Nutzer nicht registriert ist.

Über minicom und den Befehl AT^CVOICE=? bekomme ich ein OK auf ttyUSB0.

Nun habe ich zwei fragen. Die erste: Wie kann ich abfragen ob der Anruf 
auch wirklich ankommt mit AT Befehlen oder wie auch immer?

Zweite Frage: ich habe eine Programm geschrieben mit welchem ich mir in 
der Console das ganze anzeigen lassen möchte. Es kommt kein Syntax 
Fehler, aber dennoch löst ein Anruf nichts aus.

Hier das Programm:

#!/usr/bin/python2.7
import serial, re

#serielle Schnittstellen Einstellungen
command_channel = serial.Serial(
        port='/dev/ttyUSB0',
        baudrate=115200,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS
)

#serielle Schnittstellen verbindung wird geoeffnet
command_channel.open()
#Aktivirung der Anrufer ID
command_channel.write("AT+CLIP=1" + "\r\n")
#serielle Schnittstellen verbindung wird geschlossen
command_channel.close()

#serielle Schnittstellen Einstellungen
ser = serial.Serial(
        port='/dev/ttyUSB2',
        baudrate=9600,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS
)

#serielle Schnittstellen verbindung wird geoeffnet
ser.open()

#Anrufer ID wird ausgelesen
pattern = re.compile('.*CLIP.*"\+([0-9]+)",.*')

while 1:
        buffer = ser.read(ser.inWaiting()).strip()
        buffer = buffer.replace("\n","")
        match = pattern.match(buffer)
        if match:
                number = match.group(1)
                #verifizirung der Anrufer ID
                if number in open('userid.txt').read():
                    print "User found"
                else:
                    print "User not found"

Ich komme einfach nicht mehr weiter und benötige diesen UMTS-Stick und 
ein Okay oder Nicht Okay als aussage für mein Projekt.

Vielen Dank,

euer doggy

von Sascha H. (doggy)


Lesenswert?

Keiner eine Idee?

von Tiramisu (Gast)


Lesenswert?

-> Ruf die Nummer auf dem USB Stick an, wenn da kein
   RING Im Terminalprogramm angezeigt wird, ist der
   VOICE/(CSD) GSM Teil im Stick weg-"optimiert".
   (Man spart sich Flash und Testaufwand zuungunsten
   der 1 Promille der Personen, die sowas benoetigen)

-> Falls doch ein Ring zu sehen ist: "ATA" eingeben...
   Dann mal schreiben was passiert!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.