Things used in this project

Code

Python CodePython
Copy Paste this into a python script explanation on previous screen
#****************gpio_control.py****************

from flask import Flask
from flask_ask import Ask, statement, convert_errors
import RPi.GPIO as GPIO
import logging

GPIO.setmode(GPIO.BCM)
app = Flask(__name__)
ask = Ask(app, '/')
logging.getLogger("flask_ask").setLevel(logging.DEBUG)

@ask.intent('GPIOControlIntent', mapping={'status': 'status','pin':'pin'})
def gpio_control(status,pin):
    try:
         pinNum = int(pin)
    except Exception as e:
         return statment ('Pin Number Not Valid.')
    GPIO.setup(pinNum, GPIO.OUT)
    if status in ['on','high' ]:   GPIO.output(pinNum, GPIO.HIGH)
    if status in ['on',  'low']:   GPIO.output(pinNum, GPIO.LOW)
    return statement ('turning pin {}  {}'.format(pin, status))
    GPIOControlIntentstate=GPIO.input(14)
    if  (state == True):
      GPIO.setup(14, GPIO.OUT)
      GPIO.output(14,GPIO.HIGH)
      return statement('InPut One Already On')
##+++++++++++++++++++++++++++++++++++++++++++++++++++
      GPIO.setup(15, GPIO.IN)
      state=GPIO.input(15)
      if  (state == True):
         GPIO.setup(15, GPIO.OUT)
         GPIO.output(15,GPIO.HIGH)
         return statement('InPut Two Already On')
      else:
        GPIO.setup(15, GPIO.OUT)
        GPIO.output(15, GPIO.HIGH)
        return statement('InPut Two {}'.format(status))

    if status in['off', 'low']:
      GPIO.setup(15, GPIO.IN)
      state=GPIO.input(15)
      print('status of input',state)
      if (state == False):
        GPIO.setup(15, GPIO.OUT)
        GPIO.output(15,GPIO.LOW)
        return statement('InPut Two Already Off')
      else:
        GPIO.setup(15, GPIO.OUT)
        GPIO.output(15, GPIO.LOW)
        return statement('InPut Two {}'.format(status))
##++++++++++++++++++++++++++++++++++++++++++++++
      GPIO.setup(18, GPIO.IN)
      state=GPIO.input(18)
      if  (state == True):
         GPIO.setup(18, GPIO.OUT)
         GPIO.output(18,GPIO.HIGH)
         return statement('InPut Three Already On')
      else:
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18, GPIO.HIGH)
        return statement('InPut Three {}'.format(status))

    if status in['off', 'low']:
      GPIO.setup(18, GPIO.IN)
      state=GPIO.input(18)
      print('status of input',state)
      if (state == False):
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18,GPIO.LOW)
        return statement('InPut Three Already Off')
      else:
        GPIO.setup(18, GPIO.OUT)
        GPIO.output(18, GPIO.LOW)
        return statement('InPut Three {}'.format(status))
##++++++++++++++++++++++++++++++++++++++++++++++++

      GPIO.setup(23, GPIO.IN)
      state=GPIO.input(23)
      if  (state == True):
         GPIO.setup(23, GPIO.OUT)
         GPIO.output(23,GPIO.HIGH)
         return statement('InPut Four Already On')
      else:
        GPIO.setup(23, GPIO.OUT)
        GPIO.output(23, GPIO.HIGH)
        return statement('InPut Four {}'.format(status))

    if status in['off', 'low']:
      GPIO.setup(23, GPIO.IN)
      state=GPIO.input(23)
      print('status of input',state)
      if (state == False):
        GPIO.setup(23, GPIO.OUT)
        GPIO.output(23,GPIO.LOW)
        return statement('InPut Four Already Off')
      else:
        GPIO.setup(23, GPIO.OUT)
        GPIO.output(23, GPIO.LOW)
        return statement('InPut Four {}'.format(status))

##+++++++++++++++++++++++++++++++++++++++++++++++++

      GPIO.setup(24, GPIO.IN)
      state=GPIO.input(24)
      if  (state == True):
         GPIO.setup(24, GPIO.OUT)
         GPIO.output(24,GPIO.HIGH)
         return statement('InPut Five Already On')
      else:
        GPIO.setup(24, GPIO.OUT)
        GPIO.output(24, GPIO.HIGH)
        return statement('InPut Five {}'.format(status))

    if status in['off', 'low']:
      GPIO.setup(24, GPIO.IN)
      state=GPIO.input(24)
      print('status of input',state)
      if (state == False):
        GPIO.setup(24, GPIO.OUT)
        GPIO.output(24,GPIO.LOW)
        return statement('InPut Five Already Off')
      else:
        GPIO.setup(24, GPIO.OUT)
        GPIO.output(24, GPIO.LOW)
        return statement('InPut Five {}'.format(status))

##++++++++++++++++++++++++++++++++++++++++++++++++++++

      GPIO.setup(25, GPIO.IN)
      state=GPIO.input(25)
      if  (state == True):
         GPIO.setup(25, GPIO.OUT)
         GPIO.output(25,GPIO.HIGH)
         return statement('InPut Six Already On')
      else:
        GPIO.setup(25, GPIO.OUT)
        GPIO.output(25, GPIO.HIGH)
        return statement('InPut Six {}'.format(status))

    if status in['off', 'low']:
      GPIO.setup(25, GPIO.IN)
      state=GPIO.input(25)
      print('status of input',state)
      if (state == False):
        GPIO.setup(25, GPIO.OUT)
        GPIO.output(25,GPIO.LOW)
        return statement('InPut Six Already Off')
      else:
        GPIO.setup(25, GPIO.OUT)
        GPIO.output(25, GPIO.LOW)
        return statement('InPut Six {}'.format(status))


if __name__=='__main__':
 port = 5000
 app.run(host='0.0.0.0',port=port)



##+++++++++++++++++++++++++++++++++++++++++++++++++++++++

@ask.intent('LocationControlIntent', mapping={'status':'status', 'location':'location'})
def location_control(status,location):

   locationDict  = {
        'Bed_Light': 12,
        'kitchen_Light': 16,
        'Coffee_Maker': 18,
        'Front_Window': 22'
        'Side_Window': 32,
        'Bed_Window': 33,
   }
   targetPin =  locationDict[location]

   GPIO.setup(targetPin, GPIO.OUT)


   if status in ['on', 'high']:   GPIO.output(targetPin, GPIO.HIGH)
   if status in ['off', 'low']:   GPIO.output(targetPin, GPIO.LOW)

   return statment ('turning {} {}!'.format(location, status))

Credits

Ee23ec7232372805091e2b7edd5b1861
Jade Perreault
6 projects • 5 followers
Programming Newbie learning c++ and linux as a complicated hobby
Contact

Replications

Did you replicate this project? Share it!

I made one

Love this project? Think it could be improved? Tell us what you think!

Give feedback

Comments

Add projectSign up / Login