Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- # Import all the libraries
- import time
- import os
- import serial
- import RPi.GPIO as GPIO
- from pubnub import Pubnub
- # Initialize the Pubnub Keys
- pub_key = "XXX-X-XXXXXX-XXXX-XXXX-XXXX-XXXXXXXX"
- sub_key = "XXX-X-XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
- LIGHT = 18
- #define pin of RPi on which you want to take output
- def init():
- #initalize the pubnub keys and start subscribing
- global pubnub
- #Pubnub Initialization
- GPIO.setmode(GPIO.BCM)
- GPIO.setwarnings(False)
- GPIO.setup(LIGHT, GPIO.OUT)
- GPIO.output(LIGHT, False)
- pubnub = Pubnub(publish_key = pub_key, subscribe_key = sub_key)
- pubnub.subscribe(channels = 'alexaTrigger', callback = callback, error = callback, reconnec$
- def control_alexa(controlCommand): #this function control Aalexa, commands received and action perf$
- if controlCommand.has_key("trigger"):
- if controlCommand["trigger"] == "light" and controlCommand["status"] == 1:
- GPIO.output(LIGHT, True)
- print "light is on"
- else :
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("t")
- GPIO.output(LIGHT, False)
- print "light is off"
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 2:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("a")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 5:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("b")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 10:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("c")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 15:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("d")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 20:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("e")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 11:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("f")
- if controlCommand["trigger"] == "milliliter" and controlCommand["status"] == 12:
- s = serial.Serial('/dev/ttyACM0', 9600)
- #Namen ggf.anpassen
- s.isOpen()
- time.sleep(2)
- #der Arduino resettet nach einer Seriellen Verbindung, daher muss kurz gewa$
- s.write("g")
- else :
- pass
- def callback(message, channel):
- #this function waits for the message from the aleatrigger channel
- if message.has_key("requester"):
- control_alexa(message)
- else :
- pass
- def callback(message, channel):
- #this function waits for the message from the aleatrigger channel
- if message.has_key("requester"):
- control_alexa(message)
- else :
- pass
- def error(message):
- #if there is error in the channel, print the error
- print("ERROR : " + str(message))
- def reconnect(message):
- #responds if server connects with pubnub
- print("RECONNECTED")
- def disconnect(message): #responds if server disconnects with pubnub
- print("DISCONNECTED")
- if __name__ == '__main__':
- init()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement