Monitoring the sensor
Now that we have everything in place and our magnetic sensor is detecting whether the door is closed, we can monitor this sensor with a simple Bash script that uses the I2C tool commands that we installed earlier.
The code listing for poll-magnetic-switch.sh
is as follows:
#!/bin/bash sudo i2cset –y 1 0x20 0x00 0xFF # loop forever while true do # read the sensor state SWITCH=$(sudo i2cget –y 1 0x20 0x12) if [ $SWITCH == "0x01" ] then #contact closed so wait for a second echo "The door is closed!" sleep 1 else #contact was opened echo "The door is open!" fi done
When you run the script and then push the button, you should see "The door is open!" scrolling up the console screen until you stop pressing it.
By combining this with our elaborate light switch project in chapter 2, we can switch on the LED connected to GPIO17 when the door is opened:
#!/bin/bash #set up the LED GPIO pin sudo echo 17 > /sys/class/gpio/export sudo echo out >...