Recieving Blank SMS SIM800 using AT Commands and Python on Raspberry Pi 2

*爱你&永不变心* 提交于 2019-12-10 16:43:34

问题


I created this python script on rpi2, the message goes through, but it is a blank message. Is it a encoding issue?

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

AT commands (where 0000000000 is a 10 digit mobile number) in Minicom, still blank 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


回答1:


There was an issue with the text mode parameters. The AT command below fixed it -

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.


来源:https://stackoverflow.com/questions/38146737/recieving-blank-sms-sim800-using-at-commands-and-python-on-raspberry-pi-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!