raspberry_pi_iot 0.0.8 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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