Business partners:

Aventeon

 

Intermec 

  

Welnet 

 

 Motorola Solutions

 

 Preferred Supplier van:

 Mediq-Logistiek

 

Reseller van:

Logistics.One

 

  SOTI

 

 

 

 

Leerbedrijf

 

Blogs

aug 31

Written by: Gert van Oel
31-8-2010 12:10 

Vandaag heb ik met een oude NOKIA 6500, een USB-kabeltje, uiteraard een SIM en wat zoekwerk op internet een eigen SMS-tooltje gemaakt.

Het idee is de NOKIA te koppelen aan de PC, deze te gebruiken als externe modem en dan met AT-commands SMS-berichten te verzenden. Om de Nokia te kunnen gebruiken als modem moet je hem verbinden met de PC met de meegeleverde USB-kabel. De hardware wordt automatisch gedetecteerd en de Nokia verschijnt als Mobile device in “Apparaatbeheer” van Windows. Je kan de device dan echter niet gebruiken als een modem. Daarvoor moet eerst de Nokia Suite geïnstalleerd worden die op de meegeleverde CD staat. Bij installatie van deze suite wordt overigens op internet gecontroleerd of er een nieuwere versie is. Na installatie wordt er automatisch (wederom) hardware gedetecteerd en nu verschijnt er ook een Nokia USB modem en een Nokia COM poort in de lijst met hardware. Kijk even bij de eigenschappen van de USB modem welke COM-poort deze heeft, want die heb je later nodig. In mijn geval betrof het COM18 (en de Nokia Com poort had COM17). Met COM18 gaat het verhaal verder …
 
Als eerste heb ik gekeken of ik de Nokia met Hyperterminal kon bereiken. Na wat geëxperimenteer bleek ik de Nokia op COM18 te kunnen bereiken met de volgende instellingen:
Bits per seconde: 921600
Databits: 8
Pariteit: Geen
Stopbits: 1
Datatransportbesturing: Hardware
 
Als je wilt zien wat je in het invoervenster typt dan moet je Bestand | Eigenschappen selecteren en dan in het tabblad Instellingen de knop ASCI-instellingen indrukken. In het dialoogvenster wat dan verschijnt moet je “Getypte tekens ook lokaal weergeven” aanvinken.
 
Vervolgens AT intypen en . Als het goed gaat heb je dan “OK” in beeld.
Ik ga er daarbij van uit dat je op de Nokia al een keer je PINcode hebt ingegeven als dat nodig zou zijn.
 
Om nu SMS te verzenden met je het modem in textmodus zetten met het commando: AT+CMGF=1
Daarna intypen:
AT+CMGS=”+316xxxxxxxx” (Denk aan de quotes en de internationale schrijfwijze!) Hierna verschijnt een cursor “>”
Type je tekst en sluit af met toets. Als alles goed is gegaan heb je een SMS verstuurd!
 
Een sms versturen lukt nu maar via Hyperterminal is dat natuurlijk niet de meest ideale oplossing. Daarom even verder gekeken en de volgende VB.NET code maakt gebruik van dezelfde COM-poort naar de Nokia telefoon. Het object lbResult is een listbox waarin het resultaat wordt gemeld.
 
        Dim comSerial As New System.IO.Ports.SerialPort
        Dim atcCommand As String
        Dim sphnPhoneNo As String
        Dim cescQuote As Char
        Dim s As String
        Dim i As Integer = 0
 
        Try
            Me.lbResult.Items.Clear()
            Me.Update()
 
            With comSerial
                .PortName = "COM18"
                .BaudRate = "921600"
                .StopBits = IO.Ports.StopBits.One
                .DataBits = 8
                .Parity = IO.Ports.Parity.None
                .ReadBufferSize = 10000
                .ReadTimeout = 1000
                .WriteBufferSize = 10000
                .WriteTimeout = 1000
                .RtsEnable = True
                .DtrEnable = True
                .Handshake = IO.Ports.Handshake.RequestToSend
               
                .Open()
                .WriteLine("AT+CMGF=1" + vbCrLf)
                Me.lbResult.Items.Add("AT+CMGF=1 = " & .ReadLine)
                cescQuote = Char.ConvertFromUtf32(34)
                sphnPhoneNo = Me.txtPhoneNo.Text
                atcCommand = "AT+CMGS=" + cescQuote + sphnPhoneNo + cescQuote
                .WriteLine(atcCommand + vbCrLf)
                .WriteLine((Me.txtSMStext.Text & Chr(26)))
                s = Nothing
                Do
                    s = .ReadLine
                Loop Until InStr(s, "OK") > 0 Or InStr(s, "ERROR") > 0
                Me.lbResult.Items.Add("Send Msg = " & s)
                Me.Update()
 
                .Close()
            End With
 
        Catch ex As Exception
 
            Me.lbResult.Items.Add(ex.Message)
 
        End Try

Tags:

VOICT B.V. en VOICT Services B.V. - Keesomstraat 31 - 6717AH Ede - T: 0318 642413 - E: info@voict.nl