2016-07-01 7 views
2

J'ai créé ce script python sur rpi2, le message passe, mais c'est un message vide. Est-ce un problème d'encodage?Recieving SMS SMS SIM800 en utilisant les commandes AT et Python sur Raspberry Pi 2

import serial 
import time 
from sys import version_info 
from curses import ascii 
phone = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.5) 
def send_text(number,message):  
    phone.write(b'AT+CMGF=1\r') 
    phone.write(b'AT+CMGS="' + number.encode() + b'"\r') 
    phone.write(message.encode()) 
    phone.write(ascii.ctrl('z')) 
    for i in range(len(reply)): 
     reply[i] = reply[i].rstrip() 
    print reply 

commandes AT (où 0000000000 est un 10 chiffres du numéro mobile) dans Minicom, encore vide un message

minicom -D /dev/ttyAMA0 -b 115200 -o 

AT 
OK 
AT+CMGS="0000000000" 
>Hello 
<ctrl-z> 
+CMGS: 14 
OK 

Screenshot of Message from GSM Module

+0

Vous terminez correctement la ligne de commande AT avec '\ r', c'est bien. Mais vous devriez ** jamais, jamais, jamais utiliser le sommeil comme un substitut pour attendre le code résultat final du modem. ** Voir [cette réponse] (http://stackoverflow.com/a/33266839/23118) pour plus de détails . Sans fixer que vous n'obtiendrez jamais aucun de votre code de commande AT pour se comporter de manière fiable. – hlovdal

+0

Merci pour ça! Ill réparer ce code! Bien que le problème ci-dessus a été résolu par cette commande AT 'AT + CSMP = 17,167,0,0' –

Répondre

2

Il y avait un problème avec le mode texte paramètres. La commande AT ci-dessous l'a corrigé -

AT+CSMP=17,167,0,0 

--info about it 
AT+CSMP=<fo>,<vp>,<pid>,<dcs> 
<fo>=17 Sets reply pat, user data header, status report request, validity period format, reject duplicates and message type. 
<vp>=167 Sets validity period. 
<pid>=0 Higher layer protocol indicator. 
<dcs>=0 Information encode format. 
OK Modem Response. 
+0

Salut, quel paramètre CSCS a été utilisé avec cela? J'ai essayé, mais ça n'a pas marché pour moi. Cela fonctionne si j'envoie les données d'un utilitaire de port série, mais pas du firmware de l'appareil (Texas Instrument Launchpad). – WedaPashi