Created
November 12, 2017 12:36
-
-
Save hmenn/2dcca83b865c90dd2a12c5e78b59fe28 to your computer and use it in GitHub Desktop.
SIM900 Arduino GSM Shield with Raspberry 3
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import serial | |
class SIM900: | |
def __init__(self, port, baudrate,timeout): | |
self.mPort = port | |
self.mPBaudrate=baudrate | |
self.mTimeout=timeout | |
def connect(self): | |
try: | |
self.mConn = serial.Serial(port=self.mPort,baudrate=self.mPBaudrate,timeout=self.mTimeout) | |
return True | |
except Exception as e: | |
print(str(e)) | |
return False | |
def call(self,phoneNumber): | |
try: | |
#print ("Set call mode") | |
#port.write("AT+CMGF=0\r".encode()) | |
time.sleep(1) | |
print ("Start call") | |
cmd = "ATD{};\r".format(phoneNumber) | |
self.mConn.write(cmd.encode()) | |
time.sleep(30) | |
print ("End call") | |
except Exception as e: | |
print(str(e)) | |
return False | |
def sendMessage(self,phoneNumber,msg): | |
try: | |
self.mConn.write('AT+CMGF=1\r'.encode()) | |
time.sleep(0.5) | |
cmd = 'AT + CMGS = \"{}\"\r'.format(phoneNumber) | |
self.mConn.write(cmd.encode()); | |
time.sleep(0.5); | |
cmd = '{}\r'.format(msg) | |
self.mConn.write(cmd.encode()); | |
time.sleep(0.5); | |
self.mConn.write(bytes([26])) | |
time.sleep(0.5); | |
return True | |
except Exception as e: | |
print(str(e)) | |
return False | |
def disconnect(self): | |
try: | |
self.mConn.close() | |
return False | |
except Exception as e: | |
print(str(e)) | |
return False | |
if __name__=="__main__": | |
sim = SIM900("/dev/ttyAMA0",19200,1.0) | |
sim.connect() | |
#sim.call() | |
sim.sendMessage("+905320594458","ConnectDisconnect") | |
sim.disconnect() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment