Bonjour,
Je suis à la recherche d'une librairie python basique pour piloter une sim900 derrière un raspberry
J'ai bien bricolé un truc en python à base de tuto, mais j'ai de serrieux problèmes de port série avec ma sim900
ci dessous ma fonction d’envois de SMS, rien de compliqué et pourtant suivant si je print la sortie ou pas j'ai des comportement différents
Code :
- def __init__(self):
- self.__ser = serial.Serial("/dev/serial0", baudrate=19200, timeout=1)
- self.__ser.write(b'AT\r\n')
- self.__ser.write(b'AT+CMGF=1\r\n') # mode texte
- self.__ser.reset_input_buffer()
-
- def sendSMS(self, phone, msg):
- msg = str(msg)
- print("SEND MSG : [" + msg + "]" )
- print("TO : [" + phone + "]" )
-
- mystr = "AT+CMGS=\""+phone+"\"\r\n"
- self.__ser.write(mystr.encode())
- print(str(self.__ser.read(self.__ser.inWaiting())))
- time.sleep(1)
-
- mystr = msg+"\r\n"
- self.__ser.write(mystr.encode())
- print(str(self.__ser.read(self.__ser.inWaiting())))
- time.sleep(1)
-
- mystr = "\x1A"
- self.__ser.write(mystr.encode())
- print(str(self.__ser.read(self.__ser.inWaiting())))
- time.sleep(3)
|
le log avec 2 appels successif de la fonction
le premier arrive le second pète
Code :
- SEND MSG : [coucou les toto]
- TO : [+33612345678]
- b''
- b'AT+CMGS="+XXXXXXXX"\r\n\r\n> '
- b'coucou les toto\r\n\r\n> '
- SEND MSG : [glop : invitations envoyees]
- TO : [+33612345678]
- b''
- b'\r\n+CMGS: 155\r\n\r\nOK\r\n'
- b'glop : invitations envoyees\r\n\r\nSIM900 R11.0\r\n\r\n+CME ERROR: 3\r\n'
|
en rouge ce qui me semble louche dans le SMS qui passe et pas dans l'autre.
d'où peuvent bien venir ces caractères
en bleu ce qui me semble louche ce SMS ne passe pas, et pour cause la requête AT est pourrie .
A la place de b'\r\n nous devrions avoir b'AT
Message édité par TotalRecall le 17-07-2022 à 07:02:00