def setup(): dht22.setup() #init dht22 pins etc for portpin in relaypins: gpio.pinMode(portpin, gpio.OUTPUT) # for portpin in relaypins: gpio.digitalWrite(portpin, gpio.HIGH) #turn off all relays for portpin in relaypins: gpio.digitalWrite(portpin, gpio.LOW) #turn on relays in turn delay(200) #pause a bit for portpin in relaypins: delay(500) #pause gpio.digitalWrite(portpin, gpio.HIGH) #turn off start_time = time.time()
def readPin(pin): gpio.pinMode(channel[int(pin)],gpio.INPUT) value = " " if (gpio.digitalRead(channel[int(pin)]) == gpio.HIGH) : value = "Read GPIO" + pin + " is high !" else : value = "Read GPIO" + pin +" is low !" templateData = { 'title' : 'Status of GPIO' + pin , 'value' : value } return render_template('pin.html',**templateData)
def _power_cycle(self): logger.warning("entering power cycle") if cfg.getItemValueFromConfig('platform_name') == "RPi2": GPIO.setup(self.powerPin, GPIO.OUT) #set pin as OP GPIO.output(self.powerPin, GPIO.LOW) #set low to power off sensor logger.warning("sensor power cycle - power off") sleep(3) GPIO.output(self.powerPin, GPIO.HIGH) #hi to power on sensor logger.warning("sensor power cycle - Power back ON") sleep(1) elif cfg.getItemValueFromConfig('platform_name') == "PCDuino": gpio.pinMode(self.powerPin, gpio.OUTPUT) gpio.digitalWrite(self.powerPin, gpio.LOW) #power off sleep(1.0 * 3000 / 1000) gpio.digitalWrite(self.powerPin, gpio.HIGH) #power on sleep(1.0 * 3000 / 1000)
def _setupIO_pins(self): logger.info('initialising io pins') if cfg.getItemValueFromConfig('platform_name') == "RPi2": GPIO.setup(self.heaterRelay, GPIO.OUT) #set pin as OP GPIO.output(self.heaterRelay, 0) #heat off GPIO.setup(self.ventRelay, GPIO.OUT) #set pin as OP GPIO.output(self.ventRelay, 1) #vent on GPIO.setup(self.fanRelay, GPIO.OUT) #set pin as OP GPIO.output(self.fanRelay, 1) #fan on GPIO.setup(self.relay4, GPIO.OUT) #set pin as OP GPIO.output(self.relay4, 0) #speed low GPIO.setup(self.alivePin, GPIO.OUT) #set pin as OP GPIO.output(self.alivePin, 1) #signal alive to io board GPIO.setup(self.watchDogPin, GPIO.OUT) #set pin as OP GPIO.output(self.watchDogPin, 1) #signal alive to io board elif cfg.getItemValueFromConfig('platform_name') == "PCDuino": for portpin in relaypins: gpio.pinMode(portpin, gpio.OUTPUT) # for portpin in relaypins: gpio.digitalWrite(portpin, gpio.HIGH) #turn off all relays
def moveCommand(direction): #if windows, let's go out of here is_windows = sys.platform.startswith('win') if is_windows: return #switch off gpio.pinMode(led_pin17, gpio.OUTPUT) gpio.pinMode(led_pin16, gpio.OUTPUT) gpio.pinMode(led_pin15, gpio.OUTPUT) gpio.pinMode(led_pin14, gpio.OUTPUT) gpio.digitalWrite(led_pin17, gpio.LOW) gpio.digitalWrite(led_pin16, gpio.LOW) gpio.digitalWrite(led_pin15, gpio.LOW) gpio.digitalWrite(led_pin14, gpio.LOW) ''' pins: 14, 15, 16, 17 none - 0000 centered - 1111 forward - 0001 right - 0010 back - 0100 left - 1000 ''' if direction == 'centered': gpio.digitalWrite(led_pin14, gpio.HIGH) gpio.digitalWrite(led_pin15, gpio.HIGH) gpio.digitalWrite(led_pin16, gpio.HIGH) gpio.digitalWrite(led_pin17, gpio.HIGH) elif direction == 'forward': gpio.digitalWrite(led_pin17, gpio.HIGH) elif direction == 'right': gpio.digitalWrite(led_pin16, gpio.HIGH) elif direction == 'back': gpio.digitalWrite(led_pin15, gpio.HIGH) elif direction == 'left': gpio.digitalWrite(led_pin14, gpio.HIGH) elif direction == 'none': gpio.digitalWrite(led_pin17, gpio.LOW) gpio.digitalWrite(led_pin16, gpio.LOW) gpio.digitalWrite(led_pin15, gpio.LOW) gpio.digitalWrite(led_pin14, gpio.LOW) return
def blinking(): """ Just testing! """ # Setup. pins_led = [18, 23, 24, 25] pin_switch_a = 17 pin_switch_b = 4 val = gpio.wiringPiSetupGpio() if val < 0: raise Exception('Problem seting up WiringPI.') # Configure GPIO pins. for pin in pins_led: gpio.pinMode(pin, gpio.OUTPUT) gpio.pinMode(pin_switch_a, gpio.INPUT) gpio.pinMode(pin_switch_b, gpio.INPUT) gpio.pullUpDnControl(pin_switch_a, gpio.PUD_DOWN) gpio.pullUpDnControl(pin_switch_b, gpio.PUD_DOWN) time_delta = 0.1 # Main loop. flag = True while flag: time.sleep(time_delta) # Read switches. val_a = gpio.digitalRead(pin_switch_a) val_b = gpio.digitalRead(pin_switch_b) if val_a: time_delta *= 1.1 print(time_delta) if val_b: time_delta *= 0.9 print(time_delta) # Set LEDs. for pin in pins_led: value_rnd = np.random.random_integers(0, 1) gpio.digitalWrite(pin, value_rnd)
def decidir(estado_queue, permiso_queue): pass ### DESCOMENTAR EN PCDUINO rojo = "gpio6" verde = "gpio7" alarma= "gpio8" gpio.pinMode(rojo, gpio.OUTPUT) gpio.pinMode(verde, gpio.OUTPUT) gpio.pinMode(alarma, gpio.OUTPUT) while 1: if estado_queue.qsize>0: Estado= estado_queue.get() else: Estado= False if permiso_queue.qsize>0: Permiso=permiso_queue.get() else: Permiso= False if Estado==False and Permiso== False: gpio.digitalWrite(alarma, gpio.LOW) gpio.digitalWrite(rojo, gpio.LOW) gpio.digitalWrite(verde, gpio.LOW) print "alarma, rojo y verde apagados" if Estado==False and Permiso== True: gpio.digitalWrite(verde, gpio.HIGH) print "verde prendido" if Estado==True and Permiso== False: gpio.digitalWrite(alarma, gpio.HIGH) gpio.digitalWrite(rojo, gpio.HIGH) print "Rojo y alarma prendidos.. delay" time.sleep(3) Estado=False Permiso=False if Estado==True and Permiso== True: time.sleep(.2) Estado=False Permiso=False time.sleep(1)
def decidir(estado_queue, permiso_queue): ### DESCOMENTAR EN PCDUINO rojo = "gpio6" verde = "gpio7" alarma= "gpio8" gpio.pinMode(rojo, gpio.OUTPUT) gpio.pinMode(verde, gpio.OUTPUT) gpio.pinMode(alarma, gpio.OUTPUT) while 1: edo= estado_queue.get() if edo== None or edo== "sale": edo= False if edo=="entra": edo= True perm= permiso_queue.get() print "Estado: ", edo print "Permiso: ", perm if edo==False and perm== False: gpio.digitalWrite(alarma, gpio.LOW) gpio.digitalWrite(rojo, gpio.LOW) gpio.digitalWrite(verde, gpio.LOW) print "alarma, rojo y verde apagados" if edo==False and perm== True: gpio.digitalWrite(verde, gpio.HIGH) print "verde prendido" if edo==True and perm== False: gpio.digitalWrite(alarma, gpio.HIGH) gpio.digitalWrite(rojo, gpio.HIGH) print "Rojo y alarma prendidos.. delay" time.sleep(3) estado_queue.put(False) permiso_queue.put(False) if edo==True and perm== True: time.sleep(.2) estado_queue.put("sale") permiso_queue.put(False)
def decidir(estado_queue, permiso_queue): ### DESCOMENTAR EN PCDUINO rojo = "gpio6" verde = "gpio7" alarma = "gpio8" gpio.pinMode(rojo, gpio.OUTPUT) gpio.pinMode(verde, gpio.OUTPUT) gpio.pinMode(alarma, gpio.OUTPUT) while 1: edo = estado_queue.get() if edo == None or edo == "sale": edo = False if edo == "entra": edo = True perm = permiso_queue.get() print "Estado: ", edo print "Permiso: ", perm if edo == False and perm == False: gpio.digitalWrite(alarma, gpio.LOW) gpio.digitalWrite(rojo, gpio.LOW) gpio.digitalWrite(verde, gpio.LOW) print "alarma, rojo y verde apagados" if edo == False and perm == True: gpio.digitalWrite(verde, gpio.HIGH) print "verde prendido" if edo == True and perm == False: gpio.digitalWrite(alarma, gpio.HIGH) gpio.digitalWrite(rojo, gpio.HIGH) print "Rojo y alarma prendidos.. delay" time.sleep(3) estado_queue.put(False) permiso_queue.put(False) if edo == True and perm == True: time.sleep(.2) estado_queue.put("sale") permiso_queue.put(False)
def setup(self): gpio.pinMode(self.gpio_str, gpio.OUTPUT)
def setup(): gpio.pinMode(IN1, gpio.OUTPUT) gpio.pinMode(IN2, gpio.OUTPUT) gpio.pinMode(IN3, gpio.OUTPUT) gpio.pinMode(IN4, gpio.OUTPUT)
def setup(): gpio.pinMode(key_pin, gpio.INPUT)
def detectarpcduino(estado_queue, permiso_queue): while 1: rojo = "gpio6" verde = "gpio7" alarma= "gpio8" gpio.pinMode(rojo, gpio.OUTPUT) gpio.pinMode(verde, gpio.OUTPUT) gpio.pinMode(alarma, gpio.OUTPUT) A=gpio.digitalRead(sensor1) B= gpio.digitalRead(sensor2) estado= False if A==True: while B==False and y!= "salir": print "Escalon 1A (Persona entra)" B=gpio.digitalRead(sensor2) if B==True: A=False while B==True: B=gpio.digitalRead(sensor2) print "Escalon 2A (Persona entra)" y= "salir" estado=True y="" if B==True: while A==False and y!= "salir": print "Escalon 1B (Persona sale)" A=gpio.digitalRead(sensor1) if A==True: B=False while A==True: A=gpio.digitalRead(sensor1) print "Escalon 2B (Persona sale)" y= "salir" estado=False ################### VERIFICA PERMISO DE ENTRADA Permiso=permiso_queue.get() permiso_queue.put(Permiso) print "La lectura de entradas es: ", estado print "el permiso de entrar es: ", Permiso print "tamaño", permiso_queue.qsize() if estado==False and Permiso== False: gpio.digitalWrite(alarma, gpio.LOW) gpio.digitalWrite(rojo, gpio.LOW) gpio.digitalWrite(verde, gpio.LOW) print "alarma, rojo y verde apagados" if estado==False and Permiso== True: gpio.digitalWrite(verde, gpio.HIGH) print "verde prendido" if estado==True and Permiso== False: gpio.digitalWrite(alarma, gpio.HIGH) gpio.digitalWrite(rojo, gpio.HIGH) print "Rojo y alarma prendidos.. delay" time.sleep(3) estado=False permiso_queue.get() permiso_queue.put(False) if estado==True and Permiso== True: time.sleep(.2) estado=False permiso_queue.get() permiso_queue.put(False) time.sleep(.05)
#Use USB camera and plug it into pcDuino8 #Run this python script like : # python motion_detector.py ### detect camera import argparse import datetime import time import cv2 import gpio btn_pin = "gpio0" gpio.pinMode(btn_pin, gpio.INPUT) camera = cv2.VideoCapture(0) time.sleep(0.25) while True: current_st = gpio.digitalRead(btn_pin) (grabbed, frame) = camera.read() if not grabbed: break cv2.putText(frame, datetime.datetime.now().strftime("%A %d %B %Y %I:%M:%S%p"), (10, frame.shape[0] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 255), 1) cv2.imshow("video", frame) next_st = gpio.digitalRead(btn_pin) if current_st ^ next_st:
import gpio import time # Put a led with positive leg in p8_3 and negative pin in p8_1 gpio.pinMode("P8_3", gpio.OUTPUT) gpio.pinMode("P8_4", gpio.INPUT) gpio.digitalWrite("P8_3", gpio.HIGH) #Now your led are lighting val = gpio.digitalRead("P8_4") # If P8_4 is connected with P8_3 val = 1 print val time.sleep(1) #To turn off your led gpio.digitalWrite("P8_3", gpio.LOW) val = gpio.digitalRead("P8_4") # If P8_4 is connected with P8_3 val = 0 print val
from time import sleep, time from SimpleCV import Camera, Image, Display import gpio myCamera = Camera(prop_set={'width':177, 'height': 150}) myDisplay = Display(resolution=(177, 150)) stache = Image("abc.jpg") #stacheMask = \ # stache.createBinaryMask(color1=(0,0,0), color2=(254,254,254)) #stacheMask = stacheMask.invert() gpio.pinMode("gpio13", gpio.INPUT) def mustachify(frame): faces = frame.findHaarFeatures('face') if faces: for face in faces: print "Face at: " + str(face.coordinates()) myFace = face.crop() noses = myFace.findHaarFeatures('nose') if noses: nose = noses.sortArea()[-1] print "Nose at: " + str(nose.coordinates()) xmust = face.points[0][0] + nose.x - (stache.width/2) ymust = face.points[0][1] + nose.y + (stache.height/3) else: return frame frame = frame.blit(stache, pos=(xmust, ymust), mask=stacheMask) return frame else:
# # Tstat.py # # this program will handle monitoring the thermostat # import gpio heat = "gpio2" heat2 = "gpio3" cool = "gpio4" cool2 = "gpio5" fan = "gpio6" reversing = "gpio7" gpio.pinMode(heat, gpio.INPUT) gpio.pinMode(heat2, gpio.INPUT) gpio.pinMode(cool, gpio.INPUT) gpio.pinMode(cool2, gpio.INPUT) gpio.pinMode(fan, gpio.INPUT) gpio.pinMode(reversing, gpio.INPUT) def heat_read(): stat_w = gpio.digitalRead(heat) stat_w2 = gpio.digitalRead(heat2) if stat_w == True and stat_w2 != True: print "w" return "w" elif stat_w == True and stat_w2 == True: print "w2" return "w2"
import gpio import time gpio.pinMode(171, 'out') gpio.pinMode(189, 'in') while(True): gpio.digitalWrite(171,gpio.digitalRead(189))
def received_message(self, msg): print str(msg) pins = eval(str(msg)) for pin in pins: gpio.pinMode(pin, gpio.OUTPUT) gpio.digitalWrite(pin,int(pins[pin]))
def main(): ''' 参数: TEST 测试模式,数据由随机数产生器产生 DEBUG 调试模式,真实数据,但是同时打印到屏幕 RESET 先执行reset(),初始化数据,然后开始数据 ''' print '初始化设备...' t0=time.time() count = len(sys.argv) if count >1: mode = sys.argv[1].lower() if mode == 'test': TEST_MODE = True else: if mode == 'debug': DEBUG_MODE = True else: DEBUG_MODE = False TEST_MODE = False else: DEBUG_MODE = False TEST_MODE = False initSystem() logging.basicConfig(level=logging.WARNING, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/var/log/pwrinfo.log', filemode='w') logging.debug('调试模式') logging.info('初始化设备...') logging.warning('测试logging') logging.info('创建log文档') gpio.pinMode(MODBUS_ERR_PIN, gpio.OUTPUT) gpio.pinMode(NETWORK_ERR_PIN, gpio.OUTPUT) gpio.pinMode(NORMAL_STATE_PIN,gpio.OUTPUT) doModbusErr() doNetworkErr() doNormalPost(0.1) doModbusNormal() doNetworkNormal() time.sleep(10) #设备初始化 print '设备初始化完毕' while (True): doNetworkNormal() #省电 doModbusNormal() t1=time.time() values=samplingPower(1,72) postDataToOneNet(values[0],values[1],values[2],values[3],values[4],values[5],values[6], values[7]) if ((t1-t0)>20): postDataToLewei(values[0],values[1],values[2],values[3],values[4],values[5]) t0=time.time() time.sleep(0.5)
def setup(): gpio.pinMode(dev1_pin, gpio.OUTPUT) gpio.digitalWrite(dev1_pin, gpio.LOW)
def setup(): gpio.pinMode(led_pin, gpio.OUTPUT)
import gpio import time gpio.pinMode(171, 'out') while(True): gpio.digitalWrite(171,1) time.sleep(1) gpio.digitalWrite(171,0) time.sleep(1)
import gpio import time # Put a led with positive leg in p8_3 and negative pin in p8_1 gpio.pinMode("P8_3",gpio.OUTPUT) gpio.pinMode("P8_4",gpio.INPUT) gpio.digitalWrite("P8_3",gpio.HIGH) #Now your led are lighting val = gpio.digitalRead("P8_4") # If P8_4 is connected with P8_3 val = 1 print val time.sleep(1) #To turn off your led gpio.digitalWrite("P8_3",gpio.LOW) val = gpio.digitalRead("P8_4") # If P8_4 is connected with P8_3 val = 0 print val
def received_message(self, msg): print str(msg) pins = eval(str(msg)) for pin in pins: gpio.pinMode(pin, gpio.OUTPUT) gpio.digitalWrite(pin, int(pins[pin]))
def setup(): gpio.pinMode(servo_pin, gpio.OUTPUT) set_servo(1500)
def initLED(): gpio.pinMode(LED_PIN, gpio.OUTPUT)
def detectarpcduino(estado_queue, permiso_queue): while 1: rojo = "gpio6" verde = "gpio7" alarma = "gpio8" gpio.pinMode(rojo, gpio.OUTPUT) gpio.pinMode(verde, gpio.OUTPUT) gpio.pinMode(alarma, gpio.OUTPUT) A = gpio.digitalRead(sensor1) B = gpio.digitalRead(sensor2) estado = False if A == True: while B == False and y != "salir": print "Escalon 1A (Persona entra)" B = gpio.digitalRead(sensor2) if B == True: A = False while B == True: B = gpio.digitalRead(sensor2) print "Escalon 2A (Persona entra)" y = "salir" estado = True y = "" if B == True: while A == False and y != "salir": print "Escalon 1B (Persona sale)" A = gpio.digitalRead(sensor1) if A == True: B = False while A == True: A = gpio.digitalRead(sensor1) print "Escalon 2B (Persona sale)" y = "salir" estado = False ################### VERIFICA PERMISO DE ENTRADA Permiso = permiso_queue.get() permiso_queue.put(Permiso) print "La lectura de entradas es: ", estado print "el permiso de entrar es: ", Permiso print "tamaño", permiso_queue.qsize() if estado == False and Permiso == False: gpio.digitalWrite(alarma, gpio.LOW) gpio.digitalWrite(rojo, gpio.LOW) gpio.digitalWrite(verde, gpio.LOW) print "alarma, rojo y verde apagados" if estado == False and Permiso == True: gpio.digitalWrite(verde, gpio.HIGH) print "verde prendido" if estado == True and Permiso == False: gpio.digitalWrite(alarma, gpio.HIGH) gpio.digitalWrite(rojo, gpio.HIGH) print "Rojo y alarma prendidos.. delay" time.sleep(3) estado = False permiso_queue.get() permiso_queue.put(False) if estado == True and Permiso == True: time.sleep(.2) estado = False permiso_queue.get() permiso_queue.put(False) time.sleep(.05)
def setMode(self, pin_no, pin_mode): gpio.pinMode(self.getPin(pin_no), self.getPinMode(pin_mode))
def setup(): gpio.pinMode(key_pin,gpio.INPUT)
def setup(): gpio.pinMode(servo_pin, gpio.OUTPUT)
import gpio from flask import Flask, render_template, request app = Flask(__name__) pins = { 'gpio0':{'name':'Red_LED','state':False}, 'gpio1':{'name':'Blue_LED','state':True} } for pin in pins: gpio.pinMode(pin,gpio.OUTPUT) gpio.digitalWrite(pin,gpio.LOW) @app.route("/") def main(): for pin in pins : pins[pin]['state'] = gpio.digitalRead(pin) templateData = { 'pins':pins } #def hello_world(): #return 'Hello World!' return render_template('pin.html',**templateData) @app.route('/hello') def hello(): return 'Hello World' @app.route("/<changepin>/<value>") def action(changepin,value):
def main(): ''' 参数: TEST 测试模式,数据由随机数产生器产生 DEBUG 调试模式,真实数据,但是同时打印到屏幕 RESET 先执行reset(),初始化数据,然后开始数据 ''' print '初始化设备...' t0 = time.time() count = len(sys.argv) if count > 1: mode = sys.argv[1].lower() if mode == 'test': TEST_MODE = True else: if mode == 'debug': DEBUG_MODE = True else: DEBUG_MODE = False TEST_MODE = False else: DEBUG_MODE = False TEST_MODE = False initSystem() logging.basicConfig( level=logging.WARNING, format= '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt='%a, %d %b %Y %H:%M:%S', filename='/var/log/pwrinfo.log', filemode='w') logging.debug('调试模式') logging.info('初始化设备...') logging.warning('测试logging') logging.info('创建log文档') gpio.pinMode(MODBUS_ERR_PIN, gpio.OUTPUT) gpio.pinMode(NETWORK_ERR_PIN, gpio.OUTPUT) gpio.pinMode(NORMAL_STATE_PIN, gpio.OUTPUT) doModbusErr() doNetworkErr() doNormalPost(0.1) doModbusNormal() doNetworkNormal() time.sleep(10) #设备初始化 print '设备初始化完毕' while (True): doNetworkNormal() #省电 doModbusNormal() t1 = time.time() values = samplingPower(1, 72) postDataToOneNet(values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7]) if ((t1 - t0) > 20): postDataToLewei(values[0], values[1], values[2], values[3], values[4], values[5]) t0 = time.time() time.sleep(0.5)