Compare commits
3 commits
ac1d259a95
...
83dfea8810
Author | SHA1 | Date | |
---|---|---|---|
83dfea8810 | |||
38ca7e5926 | |||
367b1a10db |
45
watchdoor.py
Executable file
45
watchdoor.py
Executable file
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env python
|
||||
#coding: utf8
|
||||
|
||||
# file: watchdoor.py
|
||||
# date: 06.09.2020
|
||||
# mail: berhsi@web.de
|
||||
# desc: deamon who deals with edge detection at pin 18
|
||||
|
||||
import time
|
||||
import logging
|
||||
import RPi.GPIO as GPIO
|
||||
|
||||
loglevel = logging.INFO
|
||||
formatstring = '%(asctime)s: %(levelname)s: %(message)s'
|
||||
logging.basicConfig(format=formatstring, level=loglevel)
|
||||
|
||||
GPIO.setmode(GPIO.BOARD) # kind of enumeration
|
||||
GPIO.setup(18, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) # pin 18 (GPIO 24)
|
||||
channel = 18
|
||||
|
||||
def voltage_changed(channel):
|
||||
'''
|
||||
callback-function
|
||||
'''
|
||||
if GPIO.input(channel) == GPIO.HIGH:
|
||||
# door closed -> pin hight
|
||||
logging.info('Pin high triggered - Space closed')
|
||||
else:
|
||||
# door open -> pin low
|
||||
logging.info('Pin low triggered - Space is open')
|
||||
|
||||
def main():
|
||||
'''
|
||||
'''
|
||||
logging.info('watchdoor.py started')
|
||||
GPIO.add_event_detect(channel,
|
||||
GPIO.BOTH,
|
||||
callback = voltage_changed,
|
||||
bouncetime = 200)
|
||||
while 1:
|
||||
time.sleep(0.1)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
14
watchdoor.service
Normal file
14
watchdoor.service
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Unit]
|
||||
Description=Deamon for setting status API
|
||||
After=systemd-network.service network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
WorkingDirectory=/opt/watchdoor/
|
||||
ExecStart=/opt/watchdoor/watchdoor.py
|
||||
SyslogIdentifier=watchdoor
|
||||
User=statusd
|
||||
Group=statusd
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
Reference in a new issue