De deur staat open – scripts

>> Vergeet niet om de bash-scripts (*.sh) executable te maken met: sudo chmod +x *.sh

dooropenmessage.py

#!/usr/bin/python3
#10 juni 2018
#Opendeuralarm voor 1x Pi met reed-contact
#en 1x Pi met Sense HAT.

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
import subprocess

# GPIO pin number and setup
door_pin = 18
GPIO.setup(door_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Current_State = 0
Previous_State = 0

while True:
    Current_State = GPIO.input(door_pin)
        if Current_State==1 and Previous_State==0:
            # send tcp-message to turn led matrix on
            subprocess.call("./tcp-comm-red.sh")
            # save as previous state
            Previous_State=1
            time.sleep(1)
        elif Current_State==0 and Previous_State==1:
            # send tcp-message to turn led matrix off
            subprocess.call("./tcp-comm-blank.sh")
            # save as previous state
            Previous_State=0
            time.sleep(1)

tcp-comm-red.sh
#!/bin/bash
#10 juni 2018

echo “open” | netcat -v 192.168.0.130 4444 &

# Get PID of this script
PID=$!
# Wait for 2 seconds
sleep 2
# Kill it
kill $PID

tcp-comm-blank.sh
#!/bin/bash
#10 juni 2018

echo “open” | netcat -v 192.168.0.130 4444 &

# Get PID of this script
PID=$!
# Wait for 2 seconds
sleep 2
# Kill it
kill $PID
pi@pizerow:~ $ ^C
pi@pizerow:~ $ cat tcp-comm-blank.sh
#!/bin/bash
echo “dicht” | netcat -v 192.168.0.130 4444 &

# Get PID of this script
PID=$!
# Wait for 2 seconds
sleep 2
# Kill it
kill $PID

listen2tcp.sh
#!/bin/bash
#10 juni 2018

while true
do
# Luistert naar poort 4444 zet de output in de variabele “alarm”.
# Zet de inhoud van deze variabele in alarmlight.log,
# en zet een timestamp aan het begin van iedere regel met sed.
# Vervolgens stuurt het deze variabele als argument mee aan alarmlight.py.
# Dit script kan dan de rode leds aan of uit zetten.

alarm=$(netcat -vlp 4444)
echo “Voordeur is” $alarm | sed -e “s/^/$(date -R) /” >> alarmlight.log
sleep 1
python3 alarmlight.py “$alarm”
done

 

alarmlight.py

#!/usr/bin/python3
#10 juni 2018

from sense_hat import SenseHat
from time import sleep
sense = SenseHat()

import sys
var = sys.argv

R = [255, 0, 0] # red
B = [0, 0, 0] # blank

red = [
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R,
R, R, R, R, R, R, R, R
]

blank = [
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B,
B, B, B, B, B, B, B, B
]

string = str(var)
tekst = string.split(“‘”)[3]

# In case tekst=”open” turn red light on; in case tekst=”dicht” off.
    if tekst == ‘open’:
        sense.set_pixels(red)
    elif tekst == ‘dicht’:
    sense.set_pixels(blank)