mirror of
https://repository.entgra.net/community/product-iots.git
synced 2025-09-16 23:32:19 +00:00
Fire alarm changes done by Shabir
This commit is contained in:
parent
bf9bfd40b5
commit
e8a0ccf6e3
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import Adafruit_DHT # Adafruit library required for temperature sensing
|
||||||
|
|
||||||
|
|
||||||
|
TEMP_PIN = 4
|
||||||
|
TEMP_SENSOR_TYPE = 11
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# Reading temperature
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
def readTemperature():
|
||||||
|
# Try to grab a sensor reading. Use the read_retry method which will retry up
|
||||||
|
# to 15 times to get a sensor reading (waiting 2 seconds between each retry).
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
humidity, temperature = Adafruit_DHT.read_retry(TEMP_SENSOR_TYPE, TEMP_PIN)
|
||||||
|
print '{0:0.1f}C:{1:0.1f}%'.format(temperature, humidity)
|
||||||
|
# print 'RASPBERRY_STATS: Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidity)
|
||||||
|
# return (temperature + ":" + humidity)
|
||||||
|
return
|
||||||
|
except Exception, e:
|
||||||
|
print "RASPBERRY_STATS: Exception in TempReaderThread: Could not successfully read Temperature"
|
||||||
|
print ("RASPBERRY_STATS: " + str(e))
|
||||||
|
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
pass
|
||||||
|
|
||||||
|
time.sleep(3)
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# The Main method of the server script
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
def main():
|
||||||
|
readTemperature()
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
@ -7,158 +7,19 @@ echo "| ---------------- "
|
|||||||
echo "| ....initializing startup-script "
|
echo "| ....initializing startup-script "
|
||||||
echo "----------------------------------------------------------------"
|
echo "----------------------------------------------------------------"
|
||||||
|
|
||||||
#while true; do
|
|
||||||
# read -p "Do you wish to run 'apt-get update' and continue? [Yes/No] " yn
|
|
||||||
# case $yn in
|
|
||||||
# [Yy]* ) sudo apt-get update;
|
|
||||||
# break;;
|
|
||||||
# [Nn]* ) echo "Continuing without apt-get update...";
|
|
||||||
# break;;
|
|
||||||
# * ) echo "Please answer yes or no.";
|
|
||||||
# esac
|
|
||||||
#done
|
|
||||||
#
|
|
||||||
#if [ $? -ne 0 ]; then
|
|
||||||
# echo "apt-get update failed.... Some dependencies may not get installed"
|
|
||||||
# echo "If an already installed version of the package exists, try running:"
|
|
||||||
# echo "----------------------------------------------------------------"
|
|
||||||
# echo "sudo -i"
|
|
||||||
# echo "cd /var/lib/dpkg/info"
|
|
||||||
# echo "rm -rf wso2-raspi-alarm*"
|
|
||||||
# echo "dpkg --remove --force-remove-reinstreq wso2-raspi-alarm"
|
|
||||||
# echo "exit"
|
|
||||||
# echo "----------------------------------------------------------------"
|
|
||||||
# echo "Retry Installation...."
|
|
||||||
# break;
|
|
||||||
#fi
|
|
||||||
#
|
|
||||||
#echo "Installing 'gdebi' package..."
|
|
||||||
#sudo apt-get install gdebi # installation of gdebi
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#if [ $? -ne 0 ]; then
|
|
||||||
# echo "gdebi installation failed.... dependencies will not be installed without gdebi"
|
|
||||||
# read -p "Do you wish to continue without gdebi? [Yes/No] " yn
|
|
||||||
# case $yn in
|
|
||||||
# [Yy]* ) echo "Continueing without gdebi.....";;
|
|
||||||
# [Nn]* ) echo "Try to resolve errors and re-run the script.";
|
|
||||||
# exit;;
|
|
||||||
# * ) exit;;
|
|
||||||
# esac
|
|
||||||
#fi
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#for f in ./wso2-raspi-alarm_1.0_armhf.deb; do
|
|
||||||
# ## Check if the glob gets expanded to existing files.
|
|
||||||
# ## If not, f here will be exactly the pattern above
|
|
||||||
# ## and the exists test will evaluate to false.
|
|
||||||
# # [ -e "$f" ] && echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing" || echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path"; exit;
|
|
||||||
# if [ -e "$f" ]; then
|
|
||||||
# echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing now...."
|
|
||||||
# else
|
|
||||||
# echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path. \nExiting installation...";
|
|
||||||
# exit;
|
|
||||||
# fi
|
|
||||||
# ## This is all we needed to know, so we can break after the first iteration
|
|
||||||
# break
|
|
||||||
#done
|
|
||||||
#
|
|
||||||
#echo "Installing the 'wso2-raspi-alarm deb package'"
|
|
||||||
#sudo gdebi wso2-raspi-alarm_1.0_armhf.deb
|
|
||||||
#
|
|
||||||
#if [ $? -ne 0 ]; then
|
|
||||||
# echo "Installation Failed...."
|
|
||||||
# exit;
|
|
||||||
#fi
|
|
||||||
|
|
||||||
sudo killall -9 python
|
|
||||||
|
|
||||||
for f in ./RaspberryAgent.zip; do
|
|
||||||
## Check if the glob gets expanded to existing files.
|
|
||||||
## If not, f here will be exactly the pattern above
|
|
||||||
## and the exists test will evaluate to false.
|
|
||||||
# [ -e "$f" ] && echo "'wso2-raspi-alarm_1.0_armhf.deb' file found and installing" || echo "'wso2-raspi-alarm_1.0_armhf.deb' file does not exist in current path"; exit;
|
|
||||||
if [ -e "$f" ]; then
|
|
||||||
echo "Agent files found......"
|
|
||||||
sudo rm -rf /usr/local/src/RaspberryAgent
|
|
||||||
sudo unzip RaspberryAgent.zip -d /usr/local/src/
|
|
||||||
else
|
|
||||||
echo "'RaspberryAgent.zip' file does not exist in current path. \nInstalling without upgrading agent...";
|
|
||||||
fi
|
|
||||||
## This is all we needed to know, so we can break after the first iteration
|
|
||||||
break
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in /usr/local/src/RaspberryAgent/rc.local; do
|
|
||||||
## Check if the glob gets expanded to existing files.
|
|
||||||
## If not, f here will be exactly the pattern above
|
|
||||||
## and the exists test will evaluate to false.
|
|
||||||
if [ -e "$f" ]; then
|
|
||||||
echo "Copying boot script"
|
|
||||||
sudo mv /usr/local/src/RaspberryAgent/rc.local /etc/rc.local
|
|
||||||
sudo chmod +x /etc/rc.local
|
|
||||||
else
|
|
||||||
echo "Unable to set agent statup on boot";
|
|
||||||
fi
|
|
||||||
## This is all we needed to know, so we can break after the first iteration
|
|
||||||
break
|
|
||||||
done
|
|
||||||
|
|
||||||
for f in ./deviceConfigs.cfg; do
|
|
||||||
## Check if the glob gets expanded to existing files.
|
|
||||||
## If not, f here will be exactly the pattern above
|
|
||||||
## and the exists test will evaluate to false.
|
|
||||||
if [ -e "$f" ]; then
|
|
||||||
echo "Configuration file found......"
|
|
||||||
else
|
|
||||||
echo "'deviceConfigs.cfg' file does not exist in current path. \nExiting installation...";
|
|
||||||
exit;
|
|
||||||
fi
|
|
||||||
## This is all we needed to know, so we can break after the first iteration
|
|
||||||
break
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "Altering Configuration file"
|
|
||||||
sed -i 's|[/,]||g' deviceConfigs.cfg
|
|
||||||
|
|
||||||
echo "Copying configurations file to /usr/local/src/RaspberryAgent"
|
|
||||||
sudo cp ./deviceConfigs.cfg /usr/local/src/RaspberryAgent/
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Copying configuration file failed...."
|
|
||||||
exit;
|
|
||||||
fi
|
|
||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
read -p "Whats the time-interval (in seconds) between successive Data-Pushes to the WSO2-DC (ex: '60' indicates 1 minute) > " input
|
read -p "Whats the time-interval (in seconds) between successive Data-Pushes to the WSO2-IoT-Server (ex: '60' indicates 1 minute) > " interval
|
||||||
|
|
||||||
if [ $input -eq $input 2>/dev/null ]
|
if [ $interval -eq $interval 2>/dev/null ]
|
||||||
then
|
then
|
||||||
echo "Setting data-push interval to $input seconds."
|
echo "Setting data-push interval to " $interval " seconds."
|
||||||
echo $input > /usr/local/src/RaspberryAgent/time-interval
|
sed s/^push-interval=.*/push-interval=$interval/ deviceConfig.properties > myTmp
|
||||||
break;
|
mv -f myTmp deviceConfig.properties
|
||||||
else
|
break;
|
||||||
echo "Input needs to be an integer indicating the number seconds between successive data-pushes."
|
else
|
||||||
fi
|
echo "Input needs to be an integer indicating the number seconds between successive data-pushes."
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
cd /usr/local/src/RaspberryAgent/
|
sudo java -jar wso2-firealarm-real-agent.jar
|
||||||
sudo chmod +x RaspberryStats.py
|
|
||||||
sudo nohup ./RaspberryStats.py -i $input </dev/null &
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Could not start the service..."
|
|
||||||
exit;
|
|
||||||
else
|
|
||||||
echo "Running the RaspberryAgent service...."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--------------------------------------------------------------------------"
|
|
||||||
echo "| Successfully Started "
|
|
||||||
echo "| -------------------------- "
|
|
||||||
echo "| cd to /usr/local/src/RaspberryAgent"
|
|
||||||
echo "| run 'sudo nohup ./RaspberryStats.py -i time </dev/null &'to start service manually."
|
|
||||||
echo "| Relapce time with the time-interval (in seconds) between successive Data-Pushes to the WSO2-DC (ex: '60' indicates 1 minute)"
|
|
||||||
echo "| Find logs at: /usr/local/src/RaspberryAgent/logs/RaspberryStats.log"
|
|
||||||
echo "---------------------------------------------------------------------------"
|
|
||||||
|
|
||||||
90
modules/samples/firealarm/sketch/switchBulb.py
Normal file
90
modules/samples/firealarm/sketch/switchBulb.py
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
"""
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
"""
|
||||||
|
|
||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import argparse
|
||||||
|
|
||||||
|
BULB_PIN = 11 # The GPIO Pin# in RPi to which the LED is connected
|
||||||
|
BULB_STATE = "OFF"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# Define and parse command line arguments
|
||||||
|
# If the log file is specified on the command line then override the default
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
parser = argparse.ArgumentParser(description="Python service to switch LED on RPi")
|
||||||
|
help_string = "switch-state of the BULB[LED] (default 'OFF')"
|
||||||
|
parser.add_argument("-s", "--state", help=help_string)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
if args.state:
|
||||||
|
BULB_STATE = args.state
|
||||||
|
### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# Set the GPIO pin modes for the ones to be read
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
def setUpGPIOPins():
|
||||||
|
try:
|
||||||
|
GPIO.setwarnings(False)
|
||||||
|
GPIO.setmode(GPIO.BOARD)
|
||||||
|
except Exception as e:
|
||||||
|
print "IOT_UTILS: Exception at 'GPIO.setmode'"
|
||||||
|
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
pass
|
||||||
|
|
||||||
|
GPIO.setup(BULB_PIN, GPIO.OUT)
|
||||||
|
GPIO.output(BULB_PIN, False)
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# Method used to switch ON/OFF the LED attached to RPi
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
def switchBulb(state):
|
||||||
|
print "Requested Switch State: " + state
|
||||||
|
|
||||||
|
if state == "ON":
|
||||||
|
GPIO.output(BULB_PIN, True)
|
||||||
|
print "BULB Switched ON"
|
||||||
|
elif state == "OFF":
|
||||||
|
GPIO.output(BULB_PIN, False)
|
||||||
|
print "BULB Switched OFF"
|
||||||
|
|
||||||
|
print '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
# The Main method of the server script
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
def main():
|
||||||
|
setUpGPIOPins()
|
||||||
|
switchBulb(BULB_STATE)
|
||||||
|
|
||||||
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
@ -7,9 +7,6 @@ echo "| ---------------- "
|
|||||||
echo "| ....initializing startup-script "
|
echo "| ....initializing startup-script "
|
||||||
echo "----------------------------------------------------------------"
|
echo "----------------------------------------------------------------"
|
||||||
|
|
||||||
|
|
||||||
unzip firealarm-virtual-agent-1.0-SNAPSHOT-jar-with-dependencies.jar.zip
|
|
||||||
|
|
||||||
#while true; do
|
#while true; do
|
||||||
# read -p "What is the network-interface of your device that the Agent should use (find from ifconfig. ex: wlan0,en0,eth0..) > " interface
|
# read -p "What is the network-interface of your device that the Agent should use (find from ifconfig. ex: wlan0,en0,eth0..) > " interface
|
||||||
#
|
#
|
||||||
Loading…
Reference in New Issue
Block a user