web interactions
This commit is contained in:
parent
cbcf60a3ed
commit
67f267d7ab
3
Gemfile
3
Gemfile
@ -4,5 +4,6 @@ source "https://rubygems.org"
|
|||||||
|
|
||||||
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
||||||
|
|
||||||
# gem "sinatra"
|
gem "thin"
|
||||||
|
gem "sinatra"
|
||||||
gem 'rpi_gpio'
|
gem 'rpi_gpio'
|
||||||
|
18
Gemfile.lock
18
Gemfile.lock
@ -1,13 +1,31 @@
|
|||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
|
daemons (1.3.1)
|
||||||
|
eventmachine (1.2.7)
|
||||||
|
mustermann (1.0.3)
|
||||||
|
rack (2.0.6)
|
||||||
|
rack-protection (2.0.5)
|
||||||
|
rack
|
||||||
rpi_gpio (0.3.3)
|
rpi_gpio (0.3.3)
|
||||||
|
sinatra (2.0.5)
|
||||||
|
mustermann (~> 1.0)
|
||||||
|
rack (~> 2.0)
|
||||||
|
rack-protection (= 2.0.5)
|
||||||
|
tilt (~> 2.0)
|
||||||
|
thin (1.7.2)
|
||||||
|
daemons (~> 1.0, >= 1.0.9)
|
||||||
|
eventmachine (~> 1.0, >= 1.0.4)
|
||||||
|
rack (>= 1, < 3)
|
||||||
|
tilt (2.0.9)
|
||||||
|
|
||||||
PLATFORMS
|
PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
rpi_gpio
|
rpi_gpio
|
||||||
|
sinatra
|
||||||
|
thin
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.0.1
|
2.0.1
|
||||||
|
72
main.rb
72
main.rb
@ -3,33 +3,81 @@
|
|||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
require 'bundler'
|
require 'bundler'
|
||||||
|
require 'sinatra'
|
||||||
require 'rpi_gpio'
|
require 'rpi_gpio'
|
||||||
|
|
||||||
Bundler.setup
|
Bundler.setup
|
||||||
Bundler.require
|
Bundler.require
|
||||||
|
|
||||||
|
|
||||||
BLUE = 37
|
BLUE = 37
|
||||||
WHITE = 35
|
WHITE = 35
|
||||||
RED = 33
|
RED = 33
|
||||||
GREEN = 31
|
GREEN = 31
|
||||||
YELLOW = 29
|
YELLOW = 29
|
||||||
leds = [BLUE, WHITE, RED, GREEN, YELLOW]
|
LEDS = [BLUE, WHITE, RED, GREEN, YELLOW]
|
||||||
|
|
||||||
|
IO = RPi::GPIO
|
||||||
|
IO.set_numbering :board
|
||||||
|
|
||||||
io = RPi::GPIO
|
LEDS.each do |led|
|
||||||
io.set_numbering :board
|
IO.setup led, as: :output, initialize: :low
|
||||||
|
IO.set_low led
|
||||||
leds.each do |led|
|
|
||||||
io.setup led, as: :output, initialize: :low
|
|
||||||
io.set_low led
|
|
||||||
end
|
end
|
||||||
|
|
||||||
10.times do
|
# IO.reset
|
||||||
|
|
||||||
|
get '/' do
|
||||||
|
@led_status = led_status
|
||||||
|
erb :index
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/cycle' do
|
||||||
|
clear
|
||||||
|
|
||||||
5.times do |i|
|
5.times do |i|
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
io.set_high leds[i]
|
IO.set_high LEDS[i]
|
||||||
io.set_low leds[i - 1]
|
IO.set_low LEDS[i - 1]
|
||||||
|
end
|
||||||
|
|
||||||
|
clear
|
||||||
|
redirect to('/')
|
||||||
|
end
|
||||||
|
|
||||||
|
get '/led/:color' do |led|
|
||||||
|
clear
|
||||||
|
IO.set_high pick(led)
|
||||||
|
|
||||||
|
redirect to('/')
|
||||||
|
end
|
||||||
|
|
||||||
|
def pick led
|
||||||
|
case led
|
||||||
|
when 'blue'
|
||||||
|
BLUE
|
||||||
|
when 'white'
|
||||||
|
WHITE
|
||||||
|
when 'red'
|
||||||
|
RED
|
||||||
|
when 'green'
|
||||||
|
GREEN
|
||||||
|
when 'yellow'
|
||||||
|
YELLOW
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
io.reset
|
|
||||||
|
def clear
|
||||||
|
LEDS.each do |led|
|
||||||
|
IO.set_low led
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def led_status
|
||||||
|
{
|
||||||
|
blue: IO.high?(BLUE),
|
||||||
|
white: IO.high?(WHITE),
|
||||||
|
red: IO.high?(RED),
|
||||||
|
green: IO.high?(GREEN),
|
||||||
|
yellow: IO.high?(YELLOW)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
24
views/index.erb
Normal file
24
views/index.erb
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>LED Manager</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>LED Manager</h1>
|
||||||
|
<ul>
|
||||||
|
<li><a href="/cycle">Cycle 3 Times</a></li>
|
||||||
|
<li><a href="/led/blue">Blue</a></li>
|
||||||
|
<li><a href="/led/white">White</a></li>
|
||||||
|
<li><a href="/led/red">Red</a></li>
|
||||||
|
<li><a href="/led/green">Green</a></li>
|
||||||
|
<li><a href="/led/yellow">Yellow</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
<%= led_status %>
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user