8 Nov
duccio

duccio il 8 November 2007 parla di Rails Snippet

Ruby: Cellulare Bluetooth e comandi AT

Con la gemma ruby-serialport potete connettervi facilmente al vostro cellulare Bluetooth. Una volta connessi potrete inviare comandi AT per ricavare informazioni generiche del vostro cellulare, elencare i messaggi presenti in memoria od as esempio inviare SMS.

Sul sito di Gabor Kiss troverete un elenco dettagliato di comandi AT per una grande quantità di marche e modelli di telefoni, anche se un buon set di comandi è comune a quasi tutti i telefoni.

Ho fatto delle prove connettendomi ad alcuni cellulari eseguendo alcuni comandi per recuperare i messaggi dal telefono ed inviare sms ed ha funzionato tutto correttamente.

Se volete provare ricordatevi innanzi tutto di attivare il bluetooth sul telefono e connettetevi usando serialport:

    1 require 'serialport'
    2 
    3 class Phone
    4   SMSC = "+393359609600"
    5   def initialize(options = {})
    6     @port = SerialPort.new("/dev/tty.SAMSUNGSGH-D600-SerialP-1", options[:baud] || 38400, options[:bits] || 8, 1, SerialPort::NONE)
    7     command("AT")
    8     # qui impostate la modalità comandi del telefono in testuale
    9     command("AT+CMGF=1")
   10     command("AT+CSCA=\"#{SMSC}\"")    
   11   end
   12   
   13   def command(cmd)
   14     @port.write(cmd +"\r").chr
   15     wait
   16   end
   17   
   18   def wait
   19     buffer = ''
   20     while IO.select([@port], [], [], 0.25)
   21       chr = @port.getc.chr;
   22       buffer += chr
   23     end
   24     buffer
   25   end
   26 
   27   def info
   28    command("AT+CGMM")
   29   end
   30 end
   31 
   32 p = Phone.new
   33 puts p.info
   34 
   35 
   36 
   37 

SMSC è il numero del centro servizi per l’invio messaggi, se volete inviare messaggi tramite il vostro telefono aggiungete questo codice alla classe Phone:

    1 def send_sms(options)
    2   command("AT+CMGS=\"#{options[:number]}\"")
    3   command("#{options[:message][0..140]}#{26.chr}\r\r")
    4   sleep 3
    5   wait
    6   command("AT")
    7 end

Volevo solo ricordarvi che il “/dev/tty.SAMSUNGSGH-D600-SerialP-1″ è la cartella che viene creata quando connettete il vostro telefono al mac.

7 Commenti a “Ruby: Cellulare Bluetooth e comandi AT”

  1. Davide il 8 November 2007 alle 09:38 dice:

    Ma che meraviglia! Appena ho due minuti mi metto a giocarci. Grazie della segnalazione, ragazzi.

  2. duccio il 8 November 2007 alle 10:12 dice:

    Sempre un piacere… :-)

  3. Francesco il 20 November 2007 alle 17:27 dice:

    Ciao Duccio,
    potresti darmi qualche delucidazione su come installare la gemma ruby-serialport.
    Leggendo qui e la’ mi è capitato di leggere che va compilata( il file del progetto è un .so).
    Grazie

  4. duccio il 20 November 2007 alle 17:41 dice:

    Ciao Francesco, hai provato a fare sudo gem install ruby-serialport? sappimi dire ciao ciao

  5. Francesco il 21 November 2007 alle 10:43 dice:

    Effettivamente non mi sono spiegato sino in fondo……sto sviluppando su piattaforma Windows XP.
    ergo il comando sarebbe gem install < il nome della gemma>….ora provo a cercare la gemma incrociando le dita.
    Complimenti per il blog

  6. Francesco il 4 December 2007 alle 17:32 dice:

    Ciao duccio,
    Mi dispiace tanto disturbare ma vorrei fartu una domanda.
    Sono alle prese con ruby-serialport ma ho alcune difficoltà e mi piacerebbe chiederti qualche consiglio.
    Premetto che sto operando sotto windows e su ruby forge ho trovato solamente il file messo a disposizione(serialport.so).
    Vorrei chiederti qualche dritta per incominciare ad utilizzare quello che a mio avviso sembra un’ ottima libreria.
    Grazie come sempre,
    Francesco.

  7. duccio il 4 December 2007 alle 18:04 dice:

    Certo se vuoi contattami pure in mail…

    giovannelli at extendi dot it

Scrivi un commento