astronomie/Geekeries/Linux/raspberry

Raspberry Pi, passerelle de SMS

Contexte : L’observatoire de l’association Astronomique est située à 30′ de chez moi. Quand il y a du brouillard à la maison, il n’y en a pas __forcément__ la-haut (il y a 400 m de différence d’altitude.)

L’idée est de créer un système pour avoir une idée du temps. Le raspberry envoie les informations à la demandesur une page web consultable par les membres.

En bref :

L’idée : On envoie un SMS, le système le reçoit, renvoie un SMS de confirmation et prend une photo du ciel et envoie les infos par ftp.

Réception de sms : gammu-smsd
-> on lance un script python avec la directive RunONReceive
-> recu_sms.py :
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import gammu
import sys
import syslog
from datetime import date
import time
from ftplib import FTP

##################Variables###################
ftp_ok = 0 #1 : transferer un fichier en ftp, 0 : ne fait rien
sms_ok = 1 #1 : reponds un sms à un sms, 0 : Rien
debug = 0 #mettre 1 permet de debugguer dans le syslog

#formatage de la date actuelle pour creer des noms de fichier
date_maintenant = date.isoformat(date.today())+time.strftime(« _%H-%M-%S », time.gmtime())

fichier_image = ‘img_pano_’+date_maintenant+’.jpg’

if debug :

syslog.openlog(‘GAMMU’, 0, syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO,’SMS RECU de %s a %s’ % (os.environ[‘SMS_1_NUMBER’], commande ))
syslog.close()

#########les donnees de la meteo########
# pas encore fait

#########le fichier image##############

if ftp_ok :

host = « ftpperso.free.fr » # adresse du serveur FTP

user = « @@@@@ » # votre identifiant

password = « ###### » # votre mot de passe
file = open(fichier_image, ‘rb’) # ici, j’ouvre le fichier ‘fichier_image’
connect = FTP(host,user,password) # on se connecte
time.sleep(1)

###########rajouter ici si on met dans un répertoire particulier##########
connect.storbinary(‘STOR ‘+fichier_image, file) # ici (où connect est encore la variable de la connexion), j’indique le fichier à envoyer
connect.quit()
file.close()

##################on renvoie un sms ###################
if sms_ok :

sm = gammu.StateMachine()
sm.ReadConfig()
sm.Init()

message = {
‘Text’: ‘Votre SMS a bien ete recu. La demande est en cours de traitement’,
‘SMSC’: {‘Location’: 1},
‘Number’: os.environ[‘SMS_1_NUMBER’],}

sm.SendSMS(message)

Yapuka tester un peu plus longtemps. Mais ça marche 🙂 Merci wammu et Gammu.

NB : ici, le script ne gère pas la connexion à la 3G. Ceci se fera avec wvdial. Mais à chaque jour mérite sa peine.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s