2010-07-26 4 views
0

J'essaie de comprendre comment j'irais prendre des informations de série d'un Arduino qui contrôle une extension de navigateur Javascript que j'ai exécuté dans un navigateur ouvert localement sur un ordinateur. Il semblerait que j'aurais besoin d'une sorte d'intermédiaire pour internaliser les lectures en série et les transmettre au navigateur (pour activer les fonctions que j'ai codées). Python? Toutes les réponses, l'aide et la référence sont grandement appréciées.Communication d'arduino vers une extension de navigateur tout s'exécute localement

Répondre

0

Un serveur http très simple en python ressemblerait à ceci

from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer 

class MyServer(BaseHTTPRequestHandler): 
    def do_GET(self): 
     self.send_response(200, 'OK') 
     self.send_header('Content-type', 'text/html') 
     self.end_headers() 
     self.wfile.write("hello") 

HTTPServer(('', 8888), MyServer).serve_forever() 

dans la méthode do_GET vous pouvez ajouter le code nécessaire pour accéder à votre programme arduino

... 
ser = serial.Serial('/dev/tty.usbserial', 9600) 
ser.write('5') 
ser.readline() 
... 

Une autre option serait coder cette en ruby ​​en utilisant webrick comme partie serveur web

require "serialport.so" 
require 'webrick'; 

SERIALPORT="/dev/ttyUSB0" 

s = HTTPServer.new(:Port => 2000) 

class DemoServlet < HTTPServlet::AbstractServlet 
    def getValue() 
     begin 
      sp = SerialPort.new(SERIALPORT, 9600, 8, 1, SerialPort::NONE) 
      sp.read_timeout = 500 
      sp.write("... whatever you like to send to your arduino") 
      body = sp.readline() 
      sp.close 
      return body 
     rescue 
      puts "cant open serial port" 
     end 
    end 

    def do_GET(req, res) 

     body = "--.--" 
     body = getValue() 

     res.body = body 
     res['Content-Type'] = "text/plain" 
    end 
end 
s.mount("/test", DemoServlet) 
trap("INT"){ s.shutdown } 
s.start 

a ird possibilité serait l'utilisation d'un bouclier d'Ethernet sur le arduino et sauter le code proxy complètement

Questions connexes