Hexa-ai vous fournit un programme python permettant d’envoyer et de recevoir des SMS. Celui ci est utilisable avec le contrôleur HAI-P200-4G.
Vous pouvez à partir de votre programme Python, appeler la classe sms_tool pour gérer tout les paramètres relatifs aux SMS.
Ce tutoriel vous présentera alors comment cette classe fonctionne. Il présentera également un exemple d’utilisation.
Comment envoyer des SMS
Tout d’abord, importez sms_tools :
from tool.sms_tool import sms_tool
Puis, instanciez la classe :
SMSTool = sms_tool()
Pour envoyer un SMS, il faut écrire :
SMSTool.send_sms(NumeroDeTelephone, ContenuDuMessage)
NumeroDeTelephone et ContenuDuMessage sont deux chaînes de caractères.
Pour voir le plus ancien SMS non lu, vous devez écrire:
sms_recu = SMSTool.sms_recption()
Il n’est pas nécessaire d’appeler cette méthode souvent. En effet, les SMS non lus sont mis en attente et le plus ancien SMS non lu sera le premier à être affiché.
Exemple de programme envoyant et recevant des SMS
Ce programme envoie des SMS et les reçoit. Le multithreading est utilisé ici afin de recevoir des SMS sans bloquer les autres programmes et inversement.
from tool.sms_tool import sms_tool #Permets l'envoi et la réception des sms
import threading #Permets de lancer plusieurs threads(processus) en même temps
import time # Permets de faire des pauses dans le programme
SMSTool = sms_tool() #Instanciation de la classe sms_tool
# Appel de la fonction de réception des SMS
def receptor():
while True:
time.sleep(2)
sms_recu = SMSTool.sms_reception()
if sms_recu and (sms_recu['number']!= "None" or sms_recu['content'] != "None"):
print(f"New SMS received from {sms_recu['number']}: {sms_recu['content']}")
#Envoi de SMS
def main():
message = "Hello, this is a test message."
SMSTool.send_sms("0781821128", message)
print(f"SMS sent to 0781821128: {message}")
time.sleep(5) # Même si le code bloque, le thread de réception des SMS continue de tourner
message = "Bye"
SMSTool.send_sms("0781821128", message)
print(f"SMS sent to 0781821128: {message}")
t1 = threading.Thread(target=main) #Le premier thread envoie des SMS
t2 = threading.Thread(target=receptor) #Le deuxième thread reçoit les SMS
#Lancement des threads
t1.start()
t2.start()
# Attente de la fin des threads pour arrêter le programme
t1.join()
t2.join()