>> 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)