Envoi un sms

Bonjour

J aimerai coder un programme en vba pour envoyé des SMS avec un modem gsm (telit gm862) relier en USB à mon PC

Merci d avance

Bonjour,

Ambitieux !

Est-ce que tu connais la liste des code AT ? as-tu une documentation du TELIT ?

Quel autre programme utilises-tu aujourd'hui ?

Pourquoi utiliser Excel ?

Je ne suis pas sûr d'y arriver, mais une solution consisterait à s'interfacer avec un autre programme qui le ferait et serait fait pour cela (voir un autre device genre arduino)

J ai chercher dans la doc est la commande pour envoyé un SMS est la suivant

AT+CMGS=XXXXXXXXX (XXXX etant le numéro de tél)

mon message^Z

J ai effectuer cette commande avec putty connecté au port com cela fonction bien

Ce n'est pas (encore) la réponse, mais j'ai retrouvé ceci dans mes archives de 2009. J'avais fait ceci en embarquant un capteur GPS USB pour tracer en coordonnées GPS + vitesse, altitude ma route.

Le programme le plus simple était une boussole GPS. Je l'avais développé en partant d'une programme plus classique de pesée à partir d'une balance connectée en usb. Il ne s'agit pas d'émission mais de réception.

Sub releverDataGps()

decompte = 1
rafale = Range("rafale").Value
colonne = 1

cardeb = Range("cardeb").Value
carfin = Range("carfin").Value
sep1 = Range("sep1").Value
sep2 = Range("sep2").Value

' Vider le buffer
PortSerie.InBufferCount = 0

' choisir un port série
PortSerie.CommPort = Range("numport").Value

' GPS
' 4800 bauds, parité, 8 bits de données, 1 bit d'arrêt
' PortSerie.Settings = "4800,n,8,1"
PortSerie.Settings = Range("bauds").Value & "," & Range("parite").Value & "," & Range("bitdata").Value & "," & Range("bitstop").Value

' ouvre le port
PortSerie.PortOpen = True

' indique au contrôle qu'il doit lire 1 seul caractère
PortSerie.InputLen = 1

Do While (decompte <= rafale)

    ' Boucle tant que le 1er caractère n'est pas un signe $
    Do While PortSerie.Input <> cardeb
    Loop

    ceci = PortSerie.Input
    nbremax = 0
    souschaine = cardeb
    chaine = cardeb
    debuttrame = True
    typetrame = ""

    ' Fin sur le signe de fin ou au bout de 100
    Do While (ceci <> carfin And nbremax < 100)

        If ceci <> "" Then
            chaine = chaine & ceci

            If ceci = sep1 Then
                ' pour detecter le debut de la trame
                If debuttrame Then
                    typetrame = Right(souschaine, 3)
                    debuttrame = False
                End If
                If typetrame = "RMC" Or typetrame = "GGA" Then
                    Sheets(typetrame).Cells(1, colonne).Value = souschaine
                End If
                colonne = colonne + 1
                nbremax = nbremax + 1
                ' le sépareur est effacé
                souschaine = ""

            Else
                souschaine = souschaine & ceci

            End If

        End If

        ceci = PortSerie.Input

    Loop

    ' pour donner la main à excel et retracer le(s) graphe(s)
    DoEvents

    decompte = decompte + 1

    colonne = 1

Loop

PortSerie.PortOpen = False

End Sub

Malheureusement le microsoft comm control n'est plus fourni avec les nouvelles versions d'office !!

capture d ecran 471
33boussole-gps.zip (25.81 Ko)

Oublions un peu les PortSerie.CommPort pour le moment, j'y arriverai mais il me faudrait un peu de temps ...

J ai chercher dans la doc est la commande pour envoyé un SMS est la suivant

AT+CMGS=XXXXXXXXX (XXXX etant le numéro de tél)

mon message^Z

J ai effectuer cette commande avec putty connecté au port com cela fonction bien

Par contre, si PuTTY te permet d'accéder, alors autant laisser PuTTY s'occuper de l'interfaçage du port série et piloter PuTTY par excel.

Voici un exemple que je me suis fait sur mon serveur. J'ai mis une tempo de 5s mais en réalité comme je l'ai relocalisé sur mon propre réseau il répond beaucoup plus vite que cela. Le paramètre peut donc être ajusté.

Tu peux bien sûr mettre les séquences dans une cellule ou dans un tableau excel et faire appel séquentiellement aux valeurs en respectant probablement une temporisation entre 2 séquences. De toutes façons, les sms ne peuvent pas partir à la vitesse de la lumière.

Sub open_putty(ip As String, user As String, mdp As String)

    Dim TaskID As Long
    TaskID = Shell("""C:\Program Files (x86)\PuTTY\putty.exe"" -ssh " & user & "@" & ip & " -pw " & mdp, 1)

    Debug.Print TaskID

    Application.Wait Now + TimeValue("00:00:05")
    Application.SendKeys "sudo netstat -tanpu" & vbCr

    Application.Wait Now + TimeValue("00:00:05")
    Application.SendKeys "df -h" & vbCr

End Sub

Au passage, tu n'est pas obligé d'ouvrir PuTTY comme je l'ai fait par excel, mais uniquement transmettre les séquences par SendKeys. Pour cela il te faut connaître quand même le n° de processus ou le nom que windows aura donné à PuTTY. Je peux te fournir un code pour cela.

Je veux bien votre code

Par contre j aimerai aussi rendre les commandes at dans le code

Merci de votre aide

Bonjour à tous,

Juste pour info pour envoyer des SMS depuis Excel via une Raspberry (30/40€ sur internet)

http://tatiak.canalblog.com/archives/2016/10/17/34449802.html

(avec fichier excel démo, développé pour appeler des pompiers bénévoles d'une petite commune)

Pierre

Merci je vais essayer car j ai déjà un raspberry pi

Bonjour à tous,

Juste pour info pour envoyer des SMS depuis Excel via une Raspberry (30/40€ sur internet)

http://tatiak.canalblog.com/archives/2016/10/17/34449802.html

(avec fichier excel démo, développé pour appeler des pompiers bénévoles d'une petite commune)

Pierre

Bonjour Pierre ... comme on se retrouve !

Intéressant, j'avais déjà lu sur ton blog ! mais mon bananapi est configuré comme base de données pour capter des trames gps envoyées via gprs et accessoirement pour tripler ma sauvegarde !

Je veux bien votre code

D'abord, voici le code permettant de récupérer le nom

Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
Private Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long

Private Function EnumWindowsProc&(ByVal hwnd&, ByVal lParam&)
Dim SLength&, Buffer As String, RetVal&
SLength = GetWindowTextLength(hwnd) + 1
If SLength > 1 Then
    Buffer = Space(SLength)
    RetVal = GetWindowText(hwnd, Buffer, SLength)
    If CBool(IsWindowVisible(hwnd)) Then Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = hwnd & " :: " & Left(Buffer, SLength - 1)
End If
EnumWindowsProc = 1
End Function

Sub ListAppli()
Application.ScreenUpdating = False
    Cells.ClearContents
    Cells(1, 1) = "CAPTION = "
    EnumWindows AddressOf EnumWindowsProc, 0
    Cells.Columns.AutoFit
Application.ScreenUpdating = True
End Sub

Ce programme n'est pas (totalement) de moi, j'utilise quelque chose de plus simple avec AutoIt

Voici comment activer PuTTY pour mon cas personnel en fonction des réponses de la macro.

Sub appeler()
    AppActivate "pi@bpi-iot-ros-ai: ~" ' à customiser ...
End Sub

Par contre j aimerai aussi rendre les commandes at dans le code

Je viens de déterrer un code que j'avais développé en mai 2018 (tiens c'est pas si vieux que cela) pour interfacer avec l'arduino dans le cadre d'un projet d'horloge 2.0, je vais m'y replonger.

Tu peux néanmoins analyser la version de Pierre en premier (car dans mon cas je me souviens que cela avait été un poil laborieux).


Cela dit, tu as une solution interfacée avec PuTTY pour mitrailler de sms ...

Michel

Juste pour info pour envoyer des SMS depuis Excel via une Raspberry

Ah yesse ...

URL = "http://" & IP_BOX & "/RaspiSMS/smsAPI/" & IDENTIFIANT

en fait tu utilises un Raspberry PI connecté à ta box (ou en wifi sur le réseau).

Intéressant !!

Je vais essayer de reprendre ma version avec une connexion en port comm via usb comme pour l'arduino nano.

Hello Roger & Pierre ...

Je vous joins l'excellentissime travail de Dinah Sherzaad et la bibliothèque de David Hitchner, trouvés sur le net.

Je l'ai testé avec un Arduino Nano que j'ai re-programmé pour ce test (avec un caractère de début et de fin qui sont ici < >).

En tous cas merci Roger pour m'avoir poussé dans mes retranchements, car j'utilise maintenant en un clic la solution sendkeys avec PuTTY https://forum.excel-pratique.com/viewtopic.php?p=738494#p738494 pour contrôler le bon fonctionnement de mon serveur @home.

Bonjour Steelson, Roger,

@Steelson : tout ça est fort intéressant.

Si tu n'y vois pas d'inconvénient, je me permets de mettre un lien vers tes messages dans l'article de mon blog (ça me sert de pense-bête)

Pierre

OK

Rechercher des sujets similaires à "envoi sms"