Meilleures ventes

View All

Facebook Timeline

Appels, SMS et MMS avec Raspberry Pi , le SIM900 et Python

Posted On: juil. 10, 2020

Seen by: 829

Categories: GSM/GPRS

Author: Christian Joseph

Tags: raspberry pi , sim900 , sms , mms

Après avoir envoyé des SMS et MMS avec Arduino et le SIM900, nous allons maintenant le faire avec Raspberry Pi et le langage python.

1. Présentation:

Le Raspberry Pi est une carte micro-ordinateur avec des Ports usb ( 2 à 4 suivant le modèle), un port HDMI, 1 port pour sa caméra,  1 Port Ethernet, une connectivité Bluetooth et WIFI (suivant le modèle), et un environnement d'exploitation sous linux appélé Rasbian OS.

Le Raspberry permet de faire tout ce qui est possible sur un ordinateur classique, comme de l'édition de texte, du multimédia, et même de la programmation. Depuis la 1ère version, le Raspberry Pi a beaucoup évolué en terme de Software et de Hardware. Il est capable de faire une viso conférence, faire de la télésurveillance, ou encore travailler des processus liés à l'intélligence artificielle.

2. Branchement:

Notre but est d'envoyer des SMS et des MMS avec un SIM900, ou un SIM800 mais tout d'abord nous allons devoir le connecter avec notre Raspberry Pi.

Sim900-Raspberry-Pi-wiring

La Connection est plutôt simple avec 3 fils comme lors du tutoriel avec Arduino:

SIM900RASPi 4
GNDGND
RXGPIO15
TXGPIO14

Nous utilisons un Raspberry Pi 4, mais ce montage est aussi valable pour un Raspberry 3 ou 2 étant donné qu'il s'agit des mêmes broches.

3.Programmation:

Alors avant de programmer, il faut d'abord activer le port série de votre Raspberry Pi:

  1. Ouvrez le terminal du Raspberry Pi
  2. Tapez la commande: sudo raspi-config
  3. Dans le menu qui apparaît allez sur 'Interfacing Options' + Entrée
  4. Ensuite sur 'Serial' + Entrée
  5. A la question 'would you like a login shell to be accessible over serial', vous mettez 'non' + Entrée
  6. A la question 'would you like the serial port hardware to be enabled?', vous mettez 'oui' + Entrée 2 fois
  7. Puis vous redémarrez votre raspberry pi afin que les modifications soient prises en compte.

ENVOI DE SMS et Appels:

Etant donné que l'éditeur Blog ne prend pas encore en compte le symbole antislash( Eh oui il l'assimile à du code HTML), il faudra donc remplacer dans le code (antislash) par son symbole, avant de lancer votre script python via le terminal raspberry. Exemple: Python /home/pi/Documents/mon_script.py ou Python3 /home/pi/Documents/mon_script.py.

N.B: mon_script.py est bien entendu enregistré dans le dossier Documents de votre raspberry Pi.

Attention: pour l'envoi de MMS, le firmware du module doit être mis à jour afin d'être compatible avec la France. C'est pourquoi nos modules SIM900 sont compatibles MMS avec les réseaux France et Europe.

Code avec Python 2.7

import serial
import RPi.GPIO as GPIO      
import time

 

# Enable Serial Communication
phone = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)

phone.write('AT(antislash)r(antislash)n')
time.sleep(2)

phone.write('AT+CMGF=1(antislash)r(antislash)n')
time.sleep(3)

phone.write('AT+CNMI=2,1,0,0,0(antislash)r(antislash)n')
time.sleep(2)

phone.write('AT+CMGS=(antislash)"+33644757223(antislash)"(antislash)r(antislash)n')
time.sleep(2)

phone.write('Hello cher utilisateur, je suis ton Raspberry Pi (antislash)r(antislash)n')
time.sleep(2)

phone.write('(antislash)x1A')
time.sleep(2)

phone.write('ATD+33644757223;(antislash)r"); #appel téléphonique

Code avec Python 3

import serial
import RPi.GPIO as GPIO      
import time

 

# Activation du port série
phone = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)


phone.write(b'AT(antislash)r(antislash)n')
time.sleep(2)

phone.write(b'AT+CMGF=1(antislash)r(antislash)n')
time.sleep(3)

phone.write(b'AT+CNMI=2,1,0,0,0(antislash)r(antislash)n')
time.sleep(2)

phone.write(b'AT+CMGS=(antislash)"+33644757223(antislash)"(antislash)r(antislash)n')
time.sleep(2)

phone.write(b'Hello cher utilisateur, je suis ton Raspberry Pi(antislash)r(antislash)n')
time.sleep(2)

phone.write(b(antislash)'x1A')
time.sleep(2)

phone.write(b'ATD+33644757223;(antislash)r"); #appel téléphonique

ENVOI DE MMS:
Pour l'envoi de MMS, nous avons enregistré une image Jpeg sur le bureau du Raspberry Pi appelé 'mon-image.jpg'.

Les paramètres d'envoi du MMS sont ceux de laposte mobile.

Code avec Python 2.7:

import serial
import RPi.GPIO as GPIO      
import time


#Activation du port série
phone = serial.Serial("/dev/ttyS0", baudrate=9600, timeout=1)

phone.write('AT(antislash)r(antislash)n')
time.sleep(1)

phone.write('AT+CMMSINIT(antislash)r(antislash)n')
time.sleep(2)

phone.write('AT+CMMSCURL=(antislash)"mmsdebitel(antislash)"(antislash)r')
time.sleep(1)

phone.write('AT+CMMSCID=1(antislash)r')
time.sleep(1)

phone.write('AT+CMMSPROTO=(antislash)"10.143.156.003(antislash)",8080(antislash)r')
time.sleep(1)

phone.write('AT+CMMSSENDCFG=6,3,0,0,2,4,1,0(antislash)r')
time.sleep(1)

phone.write('AT+SAPBR=3,1,(antislash)"CONTYPE(antislash)",(antislash)"GPRS(antislash)"(antislash)r')
time.sleep(1)

phone.write('AT+SAPBR=3,1,(antislash)"APN(antislash)",(antislash)"mmsdebitel(antislash)"(antislash)r')
time.sleep(1)

phone.write('AT+SAPBR=1,1(antislash)r')
time.sleep(4)

phone.write('AT+SAPBR=2,1(antislash)r')
time.sleep(1)

phone.write('AT+CMMSEDIT=1(antislash)r')
time.sleep(1)

phone.write('AT+CMMSDOWN=(antislash)"PIC(antislash)",15683,20000,(antislash)"mon-image.jpg(antislash)"(antislash)r') #la taille de notre image est de 15683 octets. Pensez à regarder la taille de votre image et remplacez ce chiffre.
time.sleep(1)

photo = open ("/home/pi/Desktop/mon-image.jpg", "r")
dataphoto = photo.read()

phone.write(dataphoto)
time.sleep(1)

phone.write('AT+CMMSRECP=(antislash)"+33644757223(antislash)"(antislash)r')
time.sleep(1)

phone.write('AT+CMMSVIEW(antislash)r')
time.sleep(1)

phone.write('AT+CMMSSEND(antislash)r')
time.sleep(1)

phone.write('AT+CMMSEDIT=0(antislash)r')
time.sleep(1)

phone.write('AT+CMMSTERM(antislash)r')
time.sleep(1)

photo.close()


En ce qui concerne les appels avec le Raspberry Pi, il faut connecter un micro et un Haut-parleur ou des écouteurs au module SIM900.

Pour toutes questions, remarques, ou demande d'envoi du code, n'hésitez pas à nous écrire à projet@eagle-robotics.com.