humble_rpi-plugin-knocksensor 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0c606d9b6f85625a29557f8c5e26e06fd9cbb14e
4
+ data.tar.gz: 6c578072e68beaf1b33e585f3409b3b3ecfa8ac1
5
+ SHA512:
6
+ metadata.gz: 0bf9d322985c92902cb1e02d0e12911aec9624442aa5b9011afcf1f6c6212d25eb7dc0a713b6c1ea63399aab64b5d954014a91398fe75bf09a8e31b11ded6aec
7
+ data.tar.gz: 38a0684cf3dbb62e3270cbf7c47a310b0bb407e72be75a12f1a1e1077546d5f923d725fc3be39f48c06dcb05b3e0feffe17814bedcd999d9679857833a6ae0b8
Binary file
@@ -0,0 +1 @@
1
+ dsZe}]pt�1�4��ڜ���W���+���Y������t�`��d:r����]ʰ��֡%�� #^�ݽM3�@�f!9.F~W$�^*4s��f��lR�f�����%�lsķ"iS{Y�-�H��-H5��'��`8�~ =��H�� ��'4=�nꂲ)���xP�de#��~�P�E;�Y� ��s*���Q��}z���=�K���n(cfM��J��.?=�T�蓣�+%3M�Ɇ$ 4UXU�牣X�Uު�$�
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # file: humble_rpi-plugin-knocksensor.rb
4
+
5
+ require 'mcp3008pi'
6
+
7
+
8
+ class HumbleRPiPluginKnockSensor < Mcp3008Pi
9
+
10
+ def initialize(settings: {}, variables: {})
11
+
12
+ @threshold = variables[:threshold] || 10
13
+ @notifier = variables[:notifier]
14
+ @device_id = variables[:device_id] || 'pi'
15
+ super pin: settings[:pin], clock: 18, dout: 23, din: 24, cs: 25
16
+
17
+ end
18
+
19
+ def start()
20
+
21
+
22
+ t0 = Time.now + 1
23
+
24
+ puts 'ready to detect knocks'
25
+
26
+ loop do
27
+
28
+ value = self.read()
29
+
30
+ next if value <= @threshold
31
+
32
+ # ignore any movements that happened less than 100
33
+ # milliseconds ago since the last movement
34
+ if t0 + 0.1 < Time.now then
35
+
36
+ @notifier.notice "%s/knock: detected" % [@device_id]
37
+ t0 = Time.now
38
+
39
+ end
40
+
41
+ end
42
+
43
+
44
+ end
45
+
46
+ alias on_start start
47
+
48
+ end
metadata ADDED
@@ -0,0 +1,87 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: humble_rpi-plugin-knocksensor
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - James Robertson
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
+ YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
+ 8ixkARkWAmV1MB4XDTE2MDMwNjIyNTcyMFoXDTE3MDMwNjIyNTcyMFowSDESMBAG
16
+ A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
+ EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
+ ggEBAKrNCTcOLdWDs/Mk6jBAon0/SRe5Je14BJflKdZhGXyjxG7TXH1VnHnqD2dU
19
+ tSVPDlHPkKpTpHjCY2KebwsybvZSQAC21hJKCb2/CBNnR1Y7Sy4BpCXUDNFTtMh4
20
+ aS9sH7Ncii2D2VGlRvg03C7tM/6x+zwTZWr1DCQ/m7RNMIykIo7usJFUAyhFSwLm
21
+ TPBKrUgcUJ6IhZt3gBVE5oGJv8lGlgWEfJswawfxFdn54Bkme87BNbVJ/6ZURm/6
22
+ Ezetqnw09mbQ6EDVQe45bpl96xRx4lLLXpQpIcITkT53ZjW6jV0n8icl/U7x+8Gq
23
+ Ys/HwnwQ1lxkPmG+I8aQqq5QSkcCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQURP4Ps7Y/1Dr1If7SOGfEHvND3ZowJgYDVR0RBB8w
25
+ HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAUnFkmT3B
27
+ FYWUDq7vkvcKry6sah2a1KAivODPKiV/17yPGYBcq2wMMt8FVdkkW8ExncWg5CPN
28
+ Jy1BoCxdPzYdRyK99DG0twMtGdffMX8nT5q1K/nwuuVnbNYZuCljx9yRRkkj0CIQ
29
+ /gav/SNPOYVaoVR3MH33mjwUhVhq5D+yHEyyT3+2Ukg1pXBwNHZ2UmLBmbFpOQzO
30
+ X5heZStEjjk0Cxk60dNOmyuQMTaLDNm+CpOEcqEHVtUI9LtpaTIR0u7ZbpYXgz6g
31
+ /Qq3HTzrj7TNgYySNigY/IxDeGqiY1206cu+EODa1G2iKoGlLWqPv5WjcdY7uMy9
32
+ 26D4l7Vp7Du7vg==
33
+ -----END CERTIFICATE-----
34
+ date: 2016-03-06 00:00:00.000000000 Z
35
+ dependencies:
36
+ - !ruby/object:Gem::Dependency
37
+ name: mcp3008pi
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '0.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 0.1.1
46
+ type: :runtime
47
+ prerelease: false
48
+ version_requirements: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '0.1'
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.1.1
56
+ description:
57
+ email: james@r0bertson.co.uk
58
+ executables: []
59
+ extensions: []
60
+ extra_rdoc_files: []
61
+ files:
62
+ - lib/humble_rpi-plugin-knocksensor.rb
63
+ homepage: https://github.com/jrobertson/humble_rpi-plugin-knocksensor
64
+ licenses:
65
+ - MIT
66
+ metadata: {}
67
+ post_install_message:
68
+ rdoc_options: []
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ requirements: []
82
+ rubyforge_project:
83
+ rubygems_version: 2.4.8
84
+ signing_key:
85
+ specification_version: 4
86
+ summary: A Humble RPi plug to detect knocks using a knock sensor (piezo element).
87
+ test_files: []
Binary file