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.
- checksums.yaml +5 -5
- data/doc/IoT.html +8 -6
- data/doc/{Bus.html → RaspberryPiIoT.html} +21 -26
- data/doc/_index.html +84 -77
- data/doc/class_list.html +1 -1
- data/doc/file.LICENSE.html +92 -0
- data/doc/file.README.html +63 -29
- data/doc/file_list.html +5 -0
- data/doc/frames.html +1 -1
- data/doc/index.html +63 -29
- data/doc/method_list.html +170 -202
- data/doc/top-level-namespace.html +4 -6
- data/lib/bus.rb +0 -2
- data/lib/iot.rb +4 -2
- data/lib/iot/actuator.rb +7 -0
- data/lib/iot/bh1750.rb +54 -0
- data/lib/iot/binary_actuator.rb +7 -0
- data/lib/iot/binary_effector.rb +11 -0
- data/lib/iot/binary_receptor.rb +20 -0
- data/lib/iot/binary_sensor.rb +7 -0
- data/lib/iot/bmx_sensor.rb +73 -0
- data/lib/iot/button.rb +100 -0
- data/lib/iot/dht_sensor.rb +41 -0
- data/lib/iot/digital_actuator.rb +7 -0
- data/lib/iot/digital_effector.rb +67 -0
- data/lib/iot/digital_receptor.rb +17 -0
- data/lib/iot/digital_sensor.rb +7 -0
- data/lib/iot/ds18b20.rb +25 -0
- data/lib/iot/effector.rb +32 -0
- data/lib/iot/hcsr501.rb +8 -0
- data/lib/iot/humiture_sensor.rb +27 -0
- data/lib/iot/led.rb +64 -0
- data/lib/iot/led_pwm.rb +8 -0
- data/lib/iot/led_rgb.rb +86 -0
- data/lib/iot/max44009.rb +84 -0
- data/lib/iot/receptor.rb +38 -0
- data/lib/iot/sensor.rb +8 -0
- data/lib/iot/temperature_sensor.rb +51 -0
- data/lib/raspberry_pi.rb +46 -1
- data/lib/raspberry_pi_iot.rb +9 -3
- data/lib/raspberry_pi_iot/version.rb +3 -0
- data/lib/thermal_sensor.rb +2 -3
- data/test/test.sh +17 -0
- data/test/test.txt +173 -0
- data/test/test_Raspberry_Pi_IoT.rb +10 -0
- data/test/test_bh1750.rb +9 -4
- data/test/{standalone_test_bmp280.rb → test_bme280.rb} +24 -19
- data/test/test_bmp280.rb +52 -0
- data/test/test_button.rb +25 -14
- data/test/test_dht11.rb +3 -3
- data/test/test_dht22.rb +35 -0
- data/test/test_ds18b20.rb +4 -3
- data/test/test_helper.rb +6 -0
- data/test/test_info.rb +24 -3
- data/test/test_ky008.rb +41 -0
- data/test/test_led.rb +9 -9
- data/test/test_led_rgb.rb +28 -5
- data/test/test_max44009_gy49.rb +4 -4
- data/test/test_thermal.rb +27 -0
- metadata +103 -59
- data/doc/Actuator.html +0 -145
- data/doc/BH1750.html +0 -541
- data/doc/BME280.html +0 -276
- data/doc/BMP280.html +0 -276
- data/doc/BMxSensor.html +0 -557
- data/doc/BinaryActuator.html +0 -177
- data/doc/BinaryEffector.html +0 -246
- data/doc/BinaryReceptor.html +0 -387
- data/doc/BinarySensor.html +0 -168
- data/doc/Button.html +0 -986
- data/doc/DHT11.html +0 -287
- data/doc/DHT22.html +0 -287
- data/doc/DHTxxSensor.html +0 -361
- data/doc/DS18B20.html +0 -339
- data/doc/DigitalActuator.html +0 -164
- data/doc/DigitalEffector.html +0 -636
- data/doc/DigitalReceptor.html +0 -242
- data/doc/DigitalSensor.html +0 -162
- data/doc/Effector.html +0 -257
- data/doc/HCSR501.html +0 -172
- data/doc/HumitureSensor.html +0 -453
- data/doc/LED.html +0 -784
- data/doc/MAX44009.html +0 -830
- data/doc/RaspberryPi.html +0 -317
- data/doc/Receptor.html +0 -257
- data/doc/Sensor.html +0 -145
- data/doc/TemperatureSensor.html +0 -644
- data/lib/bh1750.rb +0 -46
- data/lib/binary_actuator.rb +0 -5
- data/lib/binary_effector.rb +0 -12
- data/lib/binary_receptor.rb +0 -19
- data/lib/binary_sensor.rb +0 -5
- data/lib/bmx_sensor.rb +0 -85
- data/lib/button.rb +0 -70
- data/lib/dht_sensor.rb +0 -36
- data/lib/digital_actuator.rb +0 -5
- data/lib/digital_effector.rb +0 -69
- data/lib/digital_receptor.rb +0 -16
- data/lib/digital_sensor.rb +0 -5
- data/lib/ds18b20.rb +0 -24
- data/lib/effector.rb +0 -32
- data/lib/hcsr501.rb +0 -7
- data/lib/humiture_sensor.rb +0 -26
- data/lib/led.rb +0 -58
- data/lib/led_pwm.rb +0 -6
- data/lib/led_rgb.rb +0 -101
- data/lib/max44009.rb +0 -77
- data/lib/receptor.rb +0 -33
- data/lib/temperature_sensor.rb +0 -49
data/lib/raspberry_pi.rb
CHANGED
@@ -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
|
data/lib/raspberry_pi_iot.rb
CHANGED
data/lib/thermal_sensor.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
|
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
|
-
|
data/test/test.sh
ADDED
@@ -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
|
+
|
data/test/test.txt
ADDED
@@ -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
|
+
-----------------------------------------------------------------
|
data/test/test_bh1750.rb
CHANGED
@@ -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.
|
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
|
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
|
-
@
|
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
|
18
|
-
|
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
|
29
|
+
def test_pressure_value
|
30
|
+
@sensor.read_data
|
38
31
|
m = @sensor.pressure(:mmHg)
|
39
|
-
assert m >
|
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 >
|
41
|
+
assert p > k
|
43
42
|
|
44
43
|
a = @sensor.pressure(:atm)
|
45
|
-
assert a
|
44
|
+
assert a < m
|
46
45
|
|
47
46
|
b = @sensor.pressure(:bar)
|
48
|
-
assert b
|
47
|
+
assert b > a
|
49
48
|
|
50
49
|
t = @sensor.pressure(:Torr)
|
51
|
-
assert t
|
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
|
+
|
data/test/test_bmp280.rb
ADDED
@@ -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
|