raspberry_pi_iot 0.0.8 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +5 -5
  2. data/doc/IoT.html +8 -6
  3. data/doc/{Bus.html → RaspberryPiIoT.html} +21 -26
  4. data/doc/_index.html +84 -77
  5. data/doc/class_list.html +1 -1
  6. data/doc/file.LICENSE.html +92 -0
  7. data/doc/file.README.html +63 -29
  8. data/doc/file_list.html +5 -0
  9. data/doc/frames.html +1 -1
  10. data/doc/index.html +63 -29
  11. data/doc/method_list.html +170 -202
  12. data/doc/top-level-namespace.html +4 -6
  13. data/lib/bus.rb +0 -2
  14. data/lib/iot.rb +4 -2
  15. data/lib/iot/actuator.rb +7 -0
  16. data/lib/iot/bh1750.rb +54 -0
  17. data/lib/iot/binary_actuator.rb +7 -0
  18. data/lib/iot/binary_effector.rb +11 -0
  19. data/lib/iot/binary_receptor.rb +20 -0
  20. data/lib/iot/binary_sensor.rb +7 -0
  21. data/lib/iot/bmx_sensor.rb +73 -0
  22. data/lib/iot/button.rb +100 -0
  23. data/lib/iot/dht_sensor.rb +41 -0
  24. data/lib/iot/digital_actuator.rb +7 -0
  25. data/lib/iot/digital_effector.rb +67 -0
  26. data/lib/iot/digital_receptor.rb +17 -0
  27. data/lib/iot/digital_sensor.rb +7 -0
  28. data/lib/iot/ds18b20.rb +25 -0
  29. data/lib/iot/effector.rb +32 -0
  30. data/lib/iot/hcsr501.rb +8 -0
  31. data/lib/iot/humiture_sensor.rb +27 -0
  32. data/lib/iot/led.rb +64 -0
  33. data/lib/iot/led_pwm.rb +8 -0
  34. data/lib/iot/led_rgb.rb +86 -0
  35. data/lib/iot/max44009.rb +84 -0
  36. data/lib/iot/receptor.rb +38 -0
  37. data/lib/iot/sensor.rb +8 -0
  38. data/lib/iot/temperature_sensor.rb +51 -0
  39. data/lib/raspberry_pi.rb +46 -1
  40. data/lib/raspberry_pi_iot.rb +9 -3
  41. data/lib/raspberry_pi_iot/version.rb +3 -0
  42. data/lib/thermal_sensor.rb +2 -3
  43. data/test/test.sh +17 -0
  44. data/test/test.txt +173 -0
  45. data/test/test_Raspberry_Pi_IoT.rb +10 -0
  46. data/test/test_bh1750.rb +9 -4
  47. data/test/{standalone_test_bmp280.rb → test_bme280.rb} +24 -19
  48. data/test/test_bmp280.rb +52 -0
  49. data/test/test_button.rb +25 -14
  50. data/test/test_dht11.rb +3 -3
  51. data/test/test_dht22.rb +35 -0
  52. data/test/test_ds18b20.rb +4 -3
  53. data/test/test_helper.rb +6 -0
  54. data/test/test_info.rb +24 -3
  55. data/test/test_ky008.rb +41 -0
  56. data/test/test_led.rb +9 -9
  57. data/test/test_led_rgb.rb +28 -5
  58. data/test/test_max44009_gy49.rb +4 -4
  59. data/test/test_thermal.rb +27 -0
  60. metadata +103 -59
  61. data/doc/Actuator.html +0 -145
  62. data/doc/BH1750.html +0 -541
  63. data/doc/BME280.html +0 -276
  64. data/doc/BMP280.html +0 -276
  65. data/doc/BMxSensor.html +0 -557
  66. data/doc/BinaryActuator.html +0 -177
  67. data/doc/BinaryEffector.html +0 -246
  68. data/doc/BinaryReceptor.html +0 -387
  69. data/doc/BinarySensor.html +0 -168
  70. data/doc/Button.html +0 -986
  71. data/doc/DHT11.html +0 -287
  72. data/doc/DHT22.html +0 -287
  73. data/doc/DHTxxSensor.html +0 -361
  74. data/doc/DS18B20.html +0 -339
  75. data/doc/DigitalActuator.html +0 -164
  76. data/doc/DigitalEffector.html +0 -636
  77. data/doc/DigitalReceptor.html +0 -242
  78. data/doc/DigitalSensor.html +0 -162
  79. data/doc/Effector.html +0 -257
  80. data/doc/HCSR501.html +0 -172
  81. data/doc/HumitureSensor.html +0 -453
  82. data/doc/LED.html +0 -784
  83. data/doc/MAX44009.html +0 -830
  84. data/doc/RaspberryPi.html +0 -317
  85. data/doc/Receptor.html +0 -257
  86. data/doc/Sensor.html +0 -145
  87. data/doc/TemperatureSensor.html +0 -644
  88. data/lib/bh1750.rb +0 -46
  89. data/lib/binary_actuator.rb +0 -5
  90. data/lib/binary_effector.rb +0 -12
  91. data/lib/binary_receptor.rb +0 -19
  92. data/lib/binary_sensor.rb +0 -5
  93. data/lib/bmx_sensor.rb +0 -85
  94. data/lib/button.rb +0 -70
  95. data/lib/dht_sensor.rb +0 -36
  96. data/lib/digital_actuator.rb +0 -5
  97. data/lib/digital_effector.rb +0 -69
  98. data/lib/digital_receptor.rb +0 -16
  99. data/lib/digital_sensor.rb +0 -5
  100. data/lib/ds18b20.rb +0 -24
  101. data/lib/effector.rb +0 -32
  102. data/lib/hcsr501.rb +0 -7
  103. data/lib/humiture_sensor.rb +0 -26
  104. data/lib/led.rb +0 -58
  105. data/lib/led_pwm.rb +0 -6
  106. data/lib/led_rgb.rb +0 -101
  107. data/lib/max44009.rb +0 -77
  108. data/lib/receptor.rb +0 -33
  109. data/lib/temperature_sensor.rb +0 -49
@@ -1,3 +1,5 @@
1
+ require_relative 'iot'
2
+
1
3
  module RaspberryPi
2
4
 
3
5
  # Return the model name
@@ -15,7 +17,7 @@ module RaspberryPi
15
17
 
16
18
  # Return hardware info as a hash
17
19
  def self.hardware_info
18
- info = {}
20
+ info = {"Model" => self.model_name}
19
21
  lines = ` pinout | grep ': '`
20
22
  lines << `cat /proc/cpuinfo | grep ': '`
21
23
  lines.split("\n").each do |line|
@@ -30,4 +32,47 @@ module RaspberryPi
30
32
  end
31
33
  info
32
34
  end
35
+
36
+ # Return host name as a string
37
+ def self.host_name
38
+ `hostname`.chomp
39
+ end
40
+
41
+ # Return host ip-addresses as an Array
42
+ def self.host_ip
43
+ `hostname -I`.chomp.split " "
44
+ end
45
+
46
+ # Return used and free disk space in KB on a file system or on all (with '*')
47
+ def self.disk_space(mounted='/', hash=false)
48
+ disk_memory = []
49
+ lines = `df -k`
50
+ lines.split("\n").each do |line|
51
+ disk_memory << line.chomp.split(" ")
52
+ end
53
+ disk_memory.shift # deleie 1st array with titles
54
+
55
+ if mounted == '*'
56
+ return hash ? self.matrix2hash(disk_memory) : disk_memory
57
+ else
58
+ disk_memory.each do |fs|
59
+ if fs[-1] == mounted
60
+ return hash ? self.list2hash(fs) : fs
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ private
67
+ def self.list2hash(a)
68
+ {:file_system=>a[0], :size=>a[1].to_i, :used=>a[2].to_i, :free=>a[3].to_i, :procent=>a[4].to_f, :mounted=>a[5]}
69
+ end
70
+
71
+ def self.matrix2hash(m)
72
+ h = {}
73
+ m.each do |a|
74
+ h[a[-1]] = self.list2hash(a)
75
+ end
76
+ h
77
+ end
33
78
  end
@@ -1,3 +1,9 @@
1
- require 'raspberry_pi'
2
- require 'receptor'
3
- require 'effector'
1
+ require_relative 'raspberry_pi_iot/version'
2
+ require_relative 'raspberry_pi'
3
+ require_relative 'iot'
4
+
5
+ module RaspberryPiIoT
6
+
7
+ class Error < StandardError
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module RaspberryPiIoT
2
+ VERSION = "0.1.3"
3
+ end
@@ -1,8 +1,8 @@
1
- require 'temperature_sensor'
1
+ require_relative 'iot/temperature_sensor'
2
2
 
3
3
  # ThermalSensor - Raspberry Pi internal SoC temperature sensor
4
4
  module RaspberryPi
5
- class ThermalSensor < TemperatureSensor
5
+ class ThermalSensor < IoT::TemperatureSensor
6
6
 
7
7
  def initialize
8
8
  @name = 'Internal Thermal Zone'
@@ -19,4 +19,3 @@ module RaspberryPi
19
19
  end
20
20
  end
21
21
  end
22
-
@@ -0,0 +1,17 @@
1
+ #!/bin/bash
2
+ # if
3
+ LIBRARY=gem
4
+ # then all the testing programs use the installed gem
5
+ # othewise they will use sources from the lib/.
6
+
7
+ LOG=./test.txt
8
+ rm $LOG
9
+
10
+ echo Testing with "$LIBRARY" library...
11
+ for f in test_*.rb; do
12
+ echo "=== $f ===============================================" >> $LOG
13
+ ./$f $LIBRARY >> $LOG
14
+ echo "-----------------------------------------------------------------" >> $LOG
15
+ done
16
+ grep failure $LOG
17
+
@@ -0,0 +1,173 @@
1
+ === test_bh1750.rb ===============================================
2
+ Run options: --seed 53298
3
+
4
+ # Running:
5
+
6
+ ....
7
+
8
+ Finished in 0.027978s, 142.9696 runs/s, 142.9696 assertions/s.
9
+
10
+ 4 runs, 4 assertions, 0 failures, 0 errors, 0 skips
11
+ -----------------------------------------------------------------
12
+ === test_bme280.rb ===============================================
13
+ Run options: --seed 21081
14
+
15
+ # Running:
16
+
17
+ F..
18
+
19
+ Finished in 0.041686s, 71.9659 runs/s, 287.8635 assertions/s.
20
+
21
+ 1) Failure:
22
+ RaspberryPiIoT_BMP280Test#test_humidity_value [./test_bme280.rb:55]:
23
+ Expected false to be truthy.
24
+
25
+ 3 runs, 12 assertions, 1 failures, 0 errors, 0 skips
26
+ -----------------------------------------------------------------
27
+ === test_bmp280.rb ===============================================
28
+ Run options: --seed 11637
29
+
30
+ # Running:
31
+
32
+ ..
33
+
34
+ Finished in 0.035056s, 57.0513 runs/s, 313.7822 assertions/s.
35
+
36
+ 2 runs, 11 assertions, 0 failures, 0 errors, 0 skips
37
+ -----------------------------------------------------------------
38
+ === test_button.rb ===============================================
39
+ Run options: --seed 65304
40
+
41
+ # Running:
42
+
43
+ Waiting for 1 short press (< 1 second)...
44
+ .Waiting for double press (2 sequential short presses)...
45
+ .Waiting for a press...
46
+ .Waiting for 1 long press (> 1 second)...
47
+ .
48
+
49
+ Finished in 60.035713s, 0.0666 runs/s, 0.0333 assertions/s.
50
+
51
+ 4 runs, 2 assertions, 0 failures, 0 errors, 0 skips
52
+ -----------------------------------------------------------------
53
+ === test_dht11.rb ===============================================
54
+ Run options: --seed 40347
55
+
56
+ # Running:
57
+
58
+ ..
59
+
60
+ Finished in 0.953348s, 2.0979 runs/s, 5.2447 assertions/s.
61
+
62
+ 2 runs, 5 assertions, 0 failures, 0 errors, 0 skips
63
+ -----------------------------------------------------------------
64
+ === test_dht22.rb ===============================================
65
+ Run options: --seed 61166
66
+
67
+ # Running:
68
+
69
+ ..
70
+
71
+ Finished in 0.953121s, 2.0984 runs/s, 5.2459 assertions/s.
72
+
73
+ 2 runs, 5 assertions, 0 failures, 0 errors, 0 skips
74
+ -----------------------------------------------------------------
75
+ === test_ds18b20.rb ===============================================
76
+ Run options: --seed 17438
77
+
78
+ # Running:
79
+
80
+ .
81
+
82
+ Finished in 0.925298s, 1.0807 runs/s, 4.3229 assertions/s.
83
+
84
+ 1 runs, 4 assertions, 0 failures, 0 errors, 0 skips
85
+ -----------------------------------------------------------------
86
+ === test_helper.rb ===============================================
87
+ Run options: --seed 51807
88
+
89
+ # Running:
90
+
91
+
92
+
93
+ Finished in 0.001973s, 0.0000 runs/s, 0.0000 assertions/s.
94
+
95
+ 0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
96
+ -----------------------------------------------------------------
97
+ === test_info.rb ===============================================
98
+ Run options: --seed 9430
99
+
100
+ # Running:
101
+
102
+ .....
103
+
104
+ Finished in 1.392537s, 3.5906 runs/s, 8.6174 assertions/s.
105
+
106
+ 5 runs, 12 assertions, 0 failures, 0 errors, 0 skips
107
+ -----------------------------------------------------------------
108
+ === test_ky008.rb ===============================================
109
+ Run options: --seed 36040
110
+
111
+ # Running:
112
+
113
+ ...
114
+
115
+ Finished in 12.759853s, 0.2351 runs/s, 0.3135 assertions/s.
116
+
117
+ 3 runs, 4 assertions, 0 failures, 0 errors, 0 skips
118
+ -----------------------------------------------------------------
119
+ === test_led.rb ===============================================
120
+ Run options: --seed 32256
121
+
122
+ # Running:
123
+
124
+ ....
125
+
126
+ Finished in 12.512438s, 0.3197 runs/s, 0.3197 assertions/s.
127
+
128
+ 4 runs, 4 assertions, 0 failures, 0 errors, 0 skips
129
+ -----------------------------------------------------------------
130
+ === test_led_rgb.rb ===============================================
131
+ Run options: --seed 33248
132
+
133
+ # Running:
134
+
135
+ .........
136
+
137
+ Finished in 18.519828s, 0.4860 runs/s, 0.7020 assertions/s.
138
+
139
+ 9 runs, 13 assertions, 0 failures, 0 errors, 0 skips
140
+ -----------------------------------------------------------------
141
+ === test_max44009_gy49.rb ===============================================
142
+ Run options: --seed 40209
143
+
144
+ # Running:
145
+
146
+ ...
147
+
148
+ Finished in 0.027353s, 109.6773 runs/s, 109.6773 assertions/s.
149
+
150
+ 3 runs, 3 assertions, 0 failures, 0 errors, 0 skips
151
+ -----------------------------------------------------------------
152
+ === test_Raspberry_Pi_IoT.rb ===============================================
153
+ Run options: --seed 43477
154
+
155
+ # Running:
156
+
157
+ .
158
+
159
+ Finished in 0.003202s, 312.3321 runs/s, 312.3321 assertions/s.
160
+
161
+ 1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
162
+ -----------------------------------------------------------------
163
+ === test_thermal.rb ===============================================
164
+ Run options: --seed 31887
165
+
166
+ # Running:
167
+
168
+ .
169
+
170
+ Finished in 0.003941s, 253.7533 runs/s, 1015.0133 assertions/s.
171
+
172
+ 1 runs, 4 assertions, 0 failures, 0 errors, 0 skips
173
+ -----------------------------------------------------------------
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require_relative "test_helper"
4
+
5
+ class RaspberryPiIoTTest < Minitest::Test
6
+ def test_that_it_has_a_version_number
7
+ refute_nil ::RaspberryPiIoT::VERSION
8
+ end
9
+
10
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  require 'minitest/autorun'
4
4
 
5
- $LOAD_PATH << "../lib"
6
- require 'bh1750'
5
+ $LOAD_PATH << "../lib" unless ARGV[0] == "gem"
6
+ require 'iot/bh1750'
7
7
 
8
8
  class RaspberryPiIoT_BH1750Test < MiniTest::Test
9
9
 
@@ -11,11 +11,11 @@ class RaspberryPiIoT_BH1750Test < MiniTest::Test
11
11
  @bus = 1
12
12
  @address = 0x23
13
13
  @addr_s = sprintf("%02x", @address)
14
- @sensor = BH1750.new(@address, @bus)
14
+ @sensor = IoT::BH1750.new(@address, @bus)
15
15
  end
16
16
 
17
17
  def test_i2c_bus
18
- assert File.exists?(Bus::I2C.bus)
18
+ assert File.exist?(Bus::I2C.bus)
19
19
  end
20
20
 
21
21
  def test_device_address
@@ -24,6 +24,11 @@ class RaspberryPiIoT_BH1750Test < MiniTest::Test
24
24
  assert hex.size == 1 && hex[0] == @addr_s
25
25
  end
26
26
 
27
+ def test_reading_sensor
28
+ value = @sensor.read
29
+ assert value > 0.0
30
+ end
31
+
27
32
  def test_sensor_value
28
33
  value = @sensor.lux
29
34
  assert value > 0.0
@@ -2,25 +2,17 @@
2
2
 
3
3
  require 'minitest/autorun'
4
4
 
5
- $LOAD_PATH << "../lib"
6
- require 'bmx_sensor'
5
+ $LOAD_PATH << "../lib" unless ARGV[0] == "gem"
6
+ require "iot/bmx_sensor"
7
7
 
8
8
  class RaspberryPiIoT_BMP280Test < MiniTest::Test
9
9
 
10
10
  def setup
11
- @bus = 1
12
- @address = 0x76
13
- @addr_s = sprintf("%02x", @address)
14
- @sensor = BMP280.new
11
+ @sensor = IoT::BME280.new
15
12
  end
16
13
 
17
- def test_device_address
18
- i2cd = `i2cdetect -y #{@bus}`
19
- hex = i2cd.scan(/ (#{@addr_s})/).flatten
20
- assert hex.size == 1 && hex[0] == @addr_s
21
- end
22
-
23
- def test_temperature
14
+ def test_temperature_value
15
+ @sensor.read_data
24
16
  c = @sensor.celsius
25
17
  assert c > 15.0
26
18
 
@@ -34,20 +26,33 @@ class RaspberryPiIoT_BMP280Test < MiniTest::Test
34
26
  assert k > f
35
27
  end
36
28
 
37
- def test_pressure
29
+ def test_pressure_value
30
+ @sensor.read_data
38
31
  m = @sensor.pressure(:mmHg)
39
- assert m > 650.0
32
+ assert m > 750.0
33
+
34
+ h = @sensor.pressure(:hPa)
35
+ assert h > m
36
+
37
+ k = @sensor.pressure(:kPa)
38
+ assert k == h / 10.0
40
39
 
41
40
  p = @sensor.pressure(:Pa)
42
- assert p > m
41
+ assert p > k
43
42
 
44
43
  a = @sensor.pressure(:atm)
45
- assert a == p / 101325.0
44
+ assert a < m
46
45
 
47
46
  b = @sensor.pressure(:bar)
48
- assert b == p / 100000.0
47
+ assert b > a
49
48
 
50
49
  t = @sensor.pressure(:Torr)
51
- assert t == a / 760.0
50
+ assert t < b
51
+ end
52
+
53
+ def test_humidity_value
54
+ h = @sensor.humidity
55
+ assert h > 0.0
52
56
  end
53
57
  end
58
+
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'minitest/autorun'
4
+
5
+ $LOAD_PATH << "../lib" unless ARGV[0] == "gem"
6
+ require "iot/bmx_sensor"
7
+
8
+ class RaspberryPiIoT_BMP280Test < MiniTest::Test
9
+
10
+ def setup
11
+ @sensor = IoT::BMP280.new
12
+ end
13
+
14
+ def test_temperature_value
15
+ @sensor.read_data
16
+ c = @sensor.celsius
17
+ assert c > 15.0
18
+
19
+ r = @sensor.reaumur
20
+ assert r < c
21
+
22
+ f = @sensor.fahrenheit
23
+ assert f > c
24
+
25
+ k = @sensor.kelvin
26
+ assert k > f
27
+ end
28
+
29
+ def test_pressure_value
30
+ @sensor.read_data
31
+ m = @sensor.pressure(:mmHg)
32
+ assert m > 750.0
33
+
34
+ h = @sensor.pressure(:hPa)
35
+ assert h > m
36
+
37
+ k = @sensor.pressure(:kPa)
38
+ assert k == h / 10.0
39
+
40
+ p = @sensor.pressure(:Pa)
41
+ assert p > k
42
+
43
+ a = @sensor.pressure(:atm)
44
+ assert a < m
45
+
46
+ b = @sensor.pressure(:bar)
47
+ assert b > a
48
+
49
+ t = @sensor.pressure(:Torr)
50
+ assert t < b
51
+ end
52
+ end