Рубин 0.1

03 February 2013

Да, а до оживления портов ввода-вывода на ruby я, оказывается, вчера был крайне не далеко. На сайте разработчика библиотеки нашлась красивая табличка с портами и их нумерацией. Которая в свою очередь оправдала полный разброс оных по линейке контактов..

Получилось весьма лаконично.

#!/usr/bin/ruby
MY_PIN = 4
require 'wiringpi'
print "[init]\n"
io = WiringPi::GPIO.new
io.mode(MY_PIN, OUTPUT)
10.times do
  print "[+  on]\n"
  io.write(MY_PIN, HIGH)
  sleep(1)
  print "[- off]\n"
  io.write(MY_PIN, LOW)
  sleep(1)
end
print "[end]\n";

И чуток доколдовав с кодом, решил запилить мигалку посищений сайта. Что может быть проще. Зато приятно сидеть за компьютером и наблюдать дружественные помигивания, значит кто-то тут даже бывает :D


#!/usr/bin/ruby
require 'wiringpi'

MY_PIN = 4

def blink(io, long)
  io.write(MY_PIN, HIGH)
  if long
    sleep(0.5)
  else
    sleep(0.1)
  end
  io.write(MY_PIN, LOW)
  sleep(0.1)
end

def getViews()
  return `wc -l /var/log/nginx/access.log`.to_i
end

puts "[web blinker init]"
io = WiringPi::GPIO.new
io.mode(MY_PIN, OUTPUT)
io.write(MY_PIN, LOW)
lcwas = getViews()
while true
  lc = getViews()
  if lc > lcwas
    dif = lc - lcwas
    print dif
    dif.times do
      blink(io, dif < 10)
    end
  end
  lcwas = lc
  print '.'
  sleep(1)
end


© Oleksiy Tishyn 2018