Skip to content

Instantly share code, notes, and snippets.

@keroxp
Created January 7, 2014 07:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save keroxp/8295787 to your computer and use it in GitHub Desktop.
Save keroxp/8295787 to your computer and use it in GitHub Desktop.
# -*- encoding: utf-8 -*-
require 'rubygems'
require 'eventmachine'
require 'em-rocketio-linda-client'
require 'arduino_firmata'
$stdout.sync = true
EM::run do
arduino = ArduinoFirmata.connect ENV["ARDUINO"], :eventmachine => true
puts "Arduino connect!! (firmata version v#{arduino.version})"
url = ENV["LINDA_BASE"] || ARGV.shift || "http://linda.masuilab.org"
space = ENV["LINDA_SPACE"] || "delta"
puts "Linda connecting.. #{url}"
linda = EM::RocketIO::Linda::Client.new url
ts = linda.tuplespace[space]
linda.io.on :connect do
puts "Linda connect!! <#{linda.io.session}> (#{linda.io.type})"
ts.watch ["sensor","temperature"] do |tuple|
p tuple[2]
if tuple[2] >= 25
arduino.digital_write 5,false
arduino.digital_write 4,true
arduino.analog_write 3,100
else
arduino.digital_write 5,true
arduino.digital_write 4,false
arduino.analog_write 3,100
end
end
end
linda.io.on :disconnect do
puts "RocketIO disconnected.."
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment