def main(): if os.environ.get('MOCK', default='0') == '1': status_handler = LogStatusHandler() readers = [ MockWaterMeterDeviceReader('TestMeter1'), MockWaterMeterDeviceReader('TestMeter2'), ] else: pi = pigpio.pi() status_handler = LedStatusHandler(green_led=LED(pi, GREEN_LED_PIN), red_led=LED(pi, RED_LED_PIN)) readers = [ WaterMeterDeviceReader('JimenezWaterMeter', pi, JIMENEZ_SENSOR_PIN), WaterMeterDeviceReader('PahuckiWaterMeter', pi, PAHUCKI_SENSOR_PIN) ] metering = None try: logger.info('Starting metering...') metering = Metering(readers, socket.gethostname(), status_handler, 15, True) status_handler.ok() metering.run() except Exception: logger.critical('Exiting due to unexpected error %s' % traceback.format_exc()) status_handler.not_ok() except KeyboardInterrupt: logger.info('Exiting at user request...') status_handler.not_ok() logger.info('Stopping metering...') metering.stop() logger.info('Done.')
def main(): gpio_classes = [ ] # Add any GPIO class we use, so we can clean up at the end try: buzzerController = Buzzer() ledController = LED() gpio_classes.append(buzzerController) gpio_classes.append(ledController) sensor = UltraSonic() socket = ServerSocket() socket.setLightsUpdated(ledController.setState) sensor.setHandDetectedCallback(lambda: (buzzerController.playSound( ) or True) and socket.sendFlameState(True)) sensor.setHandRemovedCallback(lambda: socket.sendFlameState(False)) sensor.start() while True: time.sleep(1) except KeyboardInterrupt: print("Program stopped...") for g in gpio_classes: g.cleanup()
def handle(self): req_raw = self.request.recv(1024) self.logger.debug("Recv from:{0}, data:{1}".format( self.client_address, req_raw)) try: req = json.loads(req_raw) except Exception: self.logger.exception( "Failed to parse request: {0}".format(req_raw)) socket.sendto(json.dumps({ "code": -1, "data": "Error" }), self.client_address) return if req['cmd'] == 'led-control': data = req['data'] led = LED(LED_NAMES.get(data['led-name'].upper())) if data['op'].lower() == 'blink': if led.blink(count=data.get('count', 1), delay=data.get('delay', 0.5)): self.request.sendall(json.dumps({"code": 0, "data": "OK"})) else: self.request.sendall( json.dumps({ "code": 1, "data": "FAIL" })) elif req['cmd'] == 'quit': tcp_stop_event.set() self.request.sendall(json.dumps({"code": 1, "data": "OK"})) self.logger.debug("Request handled.")
def exportAni(): global saved FILE=open('animation8x8.py','w') FILE.write('from sense_emu import SenseHat\n') FILE.write('import time\n') FILE.write('sh=SenseHat()\n') FILE.write('FRAMES = [\n') global leds global frame_number animation[frame_number] = copy.deepcopy(leds) #print 'length of ani is ' + str(len(animation)) for playframe in range(1,(len(animation)+1)): #print(playframe) leds =[] for x in range(0, 8): for y in range(0, 8): led = LED(radius=20,pos=(x, y)) leds.append(led) for saved_led in animation[playframe]: if saved_led.lit: for led in leds: if led.pos == saved_led.pos: led.color = saved_led.color led.lit = True grid, png_grid = buildGrid() FILE.write(str(grid)) FILE.write(',\n') FILE.write(']\n') FILE.write('for x in FRAMES:\n') FILE.write('\t sh.set_pixels(x)\n') FILE.write('\t time.sleep('+ str(1.0/fps) + ')\n') FILE.close() saved = True
def __init__(self, rows, columns, serial_type=1, led_pin=18): ## # serial_type 信号线连接方式, 1表示弓字形连线,2表示Z字形连线 ## self.rows = rows self.columns = columns self.led_numbers = rows * columns self._mod = 1 self.leds = [] for i in range(self.led_numbers): self.leds.append(LED(i)) self.led_index = [[0 for i in range(self.columns)] for i in range(self.rows)] if (serial_type == 1): for i in range(0, rows, 2): for j in range(0, self.columns): self.led_index[i][j] = i * self.columns + j for i in range(1, rows, 2): for j in range(0, self.columns): self.led_index[i][j] = (i + 1) * self.columns - (j + 1) elif (serial_type == 2): for i in range(0, rows): for j in range(0, columns): self.led_index[i][j] = i * self.columns + j self.strip = PixelStrip(self.led_numbers, led_pin) self.strip.begin() self.strip.setBrightness(255)
def __init__(self, pin_config): self.data = Data() self.led = LED() self.temp_hum = Temp_Hum() self.led_color = (0, 0, 0) self.pump = GPIOOut(pin_config.pump_pin) self.valve_active = GPIOOut(pin_config.valve_pin) self.water_level = GPIOIn(pin_config.water_level_pin) self.fan = GPIOOut(pin_config.fan_pin)
def initLEDs(config): """ Given a LockingConfigParser configuration instance, create a dictionary of GPIOLED instances to control the various LEDs. """ # Create the GPIOLED instances leds = {} for color in ('red', 'yellow', 'green'): try: pin = config.get('LED', '%spin' % color) leds[color] = LED(pin) except NoSectionError: leds[color] = LED(-1) # Done return leds
def importAni(): global leds global frame_number with open('animation8x8.py') as ll: line_count = sum(1 for _ in ll) ll.close() #animation = {} frame_number = 1 file = open('animation8x8.py') for r in range(3): file.readline() for frame in range(line_count - 8): buff = file.readline() load_frame = buff.split('], [') #print load_frame counter = 1 leds = [] for f in load_frame: if counter == 1: f = f[3:] elif counter == 64: f = f[:-5] elif counter % 8 == 0 and counter != 64: f = f[:-1] elif (counter - 1) % 8 == 0: f = f[1:] y = int((counter - 1) / 8) x = int((counter - 1) % 8) #print(counter,x,y) #print(str(counter) + ' ' + f + ' x= ' + str(x) + ' y= ' + str(y)) led = LED(radius=20, pos=(x, y)) if f == '0, 0, 0': led.lit = False else: led.lit = True f_colours = f.split(',') #print(f_colours) led.color = [ int(f_colours[0]), int(f_colours[1]), int(f_colours[2]) ] leds.append(led) counter += 1 animation[frame_number] = copy.deepcopy(leds) frame_number += 1 counter += 1 file.close()
def add_reactor(self, button, led): # Setup the button GPIO.setup(button, GPIO.IN) button_obj = TactileSwitch(button) # Setup the LED GPIO.setup(led, GPIO.OUT) led_obj = LED(led) self.reactors.append((button_obj, led_obj))
def __init__(self, decoder_model, led_running_pin=24, led_listening_pin=15, led_recording_pin=18, sensitivity=[], audio_gain=1, continue_recording=False, output_dir=".", delete_active_recording=False, on_beep_audio_file=None): self._is_running = False self._is_interrupted = False self._is_terminated = False GPIO.setmode(GPIO.BCM) self._led_running = LED(led_running_pin, 0) self._led_listening = LED(led_listening_pin, 0) self._led_recording = LED(led_recording_pin, 0) self._ready = False self._startup_anim_thread = threading.Thread(target=self._starting_up) self._startup_anim_thread.daemon = False self._startup_anim_thread.start() self.audio_handler = AudioHandler( decoder_model=decoder_model, sensitivity=sensitivity, audio_gain=audio_gain, output_dir=output_dir, continue_recording=continue_recording, delete_active_recording=delete_active_recording) if on_beep_audio_file is None: self.beep_handler = None else: self.beep_handler = BeepHandler( on_beep_audio_file=on_beep_audio_file) signal.signal(signal.SIGINT, self.interrupt) Log.debug(self._tag, "Detector created")
def __init__(self, start, angle, nleds, spacing, task_period): self.start = start self.xstep = spacing * cos(radians(angle)) # Invert Y because processing's coordinate system is backwards self.ystep = -(spacing * sin(radians(angle))) self.leds = [LED(5)] * nleds self.end = Point(self.start.x + (self.xstep * nleds), self.start.y + (self.ystep * nleds)) self.next = None self.colours = deque([color(0)] * nleds) self.task = Task(task_period)
def __init__(self, local_led=None): self.valid_coins = { NICKEL: .05, DIME: 0.1, QUARTER: 0.25, DOLLAR: 1.00 } self.coins = [] self.products = {APPLE: 0.65, ORANGE: 0.75, BANANA: 1.0} self.green_light = local_led if not self.green_light: self.green_light = LED(LED.GREEN_LIGHT)
def main(): ''' Test LED Blink Red Solid Red Blink Green Solid Green Test Trigger Push trigger Hold trigger Test Send fake IR code Listen for callback ''' led = LED() print("Testing LEDs.\n") eventOne = threading.Event() threadOne = threading.Thread(name='ledOnRed', target=setLED, args=(eventOne, 'red', led, 1)) threadOne.start() answer = input("Is the Red LED on? y/n: ") eventOne.set() if not answer.lower() == 'y': return False eventTwo = threading.Event() threadTwo = threading.Thread(name='ledBlinkRed', target=toggleLED, args=(eventTwo, 'red', led, 1)) threadTwo.start() answer = input("Is the Red LED blinking? y/n: ") # Get user input. eventTwo.set() if not answer.lower() == 'y': return False eventThree = threading.Event() threadThree = threading.Thread(name='ledOnGreen', target=setLED, args=(eventThree, 'green', led, 1)) threadThree.start() answer = input("Is the Green LED on? y/n: ") eventThree.set() if not answer.lower() == 'y': return False eventFour = threading.Event() threadFour = threading.Thread(name='ledBlinkGreen', target=toggleLED, args=(eventFour, 'green', led, 1)) threadFour.start() answer = input("Is the Green LED blinking? y/n: ") # Get user input. eventFour.set() if not answer.lower() == 'y': return False trigger = Trigger() print("Push and hold the trigger for 10 events.") i = 0 while i < 10: if GPIO.input(trigger.TRIGGER) == GPIO.HIGH: time.sleep(0.1) print(("{}: Trigger detected.").format(datetime.datetime.now())) i += 1 time.sleep(1) print("LaserPi programmed remote codes:") call(["irsend", "LIST", "laserpi", ""]) return True
def main(): action = request.values['action'] led = LED(17) if action == 'on': led.on() if action == 'off': led.off() return 'success'
def importAni(): global leds global frame_number with open('animation8x8.py') as ll: line_count = sum(1 for _ in ll) ll.close() # start of actual good code #animation = {} frame_number = 1 file = open('animation8x8.py') for r in range(line_count): buff = file.readline() if (buff[:2] == '[['): load_frame = buff.split('], [') counter = 1 leds =[] for f in load_frame: if counter == 1: f = f[2:] elif counter == 64: f = f[:-4] y = int((counter-1)/8) x = int((counter-1)%8) #print(str(counter) + ' ' + f + ' x= ' + str(x) + ' y= ' + str(y)) led = LED(radius=20,pos=(x, y)) if f == '0, 0, 0': led.lit = False else: led.lit = True f_colours = f.split(',') #print(f_colours) led.color = [int(f_colours[0]),int(f_colours[1]),int(f_colours[2])] leds.append(led) counter+=1 animation[frame_number] = copy.deepcopy(leds) frame_number+=1 counter+=1 ##### end of actual good code file.close()
def heating(temperature, thermostat_temp): # red = [255, 0, 0] # black = [0, 0, 0] pin = 16 led = LED(rpi, pin) if thermostat_temp <= temperature: # sense.led_2(black) led.turn_off() return "OFF" else: # sense.led_2(red) led.turn_on() return "ON"
def task2(): sonic = sensor(21, 20) led = LED(19) email = EMAIL() while True: distance = sonic.distance() print(distance) if distance < 50: led.control('on') email.send_email() time.sleep(60) led.control('off') time.sleep(1)
def nextFrame(): global frame_number global leds #print(frame_number) animation[frame_number] = copy.deepcopy(leds) #clearGrid() frame_number+=1 if frame_number in animation: leds =[] for x in range(0, 8): for y in range(0, 8): led = LED(radius=20,pos=(x, y)) leds.append(led) load_leds_to_animation()
def prevFrame(): global frame_number global leds #print(frame_number) animation[frame_number] = copy.deepcopy(leds) clearGrid() if frame_number != 1: frame_number-=1 if frame_number in animation: leds =[] for x in range(0, 8): for y in range(0, 8): led = LED(pos=(x, y)) leds.append(led) load_leds_to_animation()
def start(self): led = LED() s = socket.socket() ai = socket.getaddrinfo("0.0.0.0", 8080) print("Bind address info:", ai) addr = ai[0][-1] s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind(addr) s.listen(5) print("Listening, connect your browser to http://<this_host>:8080/") counter = 0 while True: res = s.accept() client_s = res[0] client_addr = res[1] print("Client address:", client_addr) print("Client socket:", client_s) req = client_s.recv(4096) arr = req.decode().split('\n') dic = {} for line in arr: if line.startswith('GET /?'): print(line) queryString = line.split(' ')[1][2:] print('queryString=', queryString) params = queryString.split('&') for param in params: p = param.split('=') print(p) dic[p[0]] = int(p[1]) led.set(dic) print(dic) client_s.send(CONTENT % counter) client_s.close() counter += 1 print()
class Scan(Thread): # private properties _fb = Firebase() _l = LED() # is_working indicator is_working = True # constructor def __init__(self): # calling constructor from parent class Thread Thread.__init__(self) # scan method - scans rfid tag def scan(self): try: # read the uid of the tag reader = SimpleMFRC522() id_no, text = reader.read() # if id exists if id_no is not None and isinstance(id_no, int): # call return the book method from firebase class self._fb.return_the_book(str(id_no)) #turn the LED for 2 seconds self._l.on() sleep(2) self._l.off() except (): # if fail clean GPIO GPIO.cleanup() raise # run method - called on Thread.start() def run(self): while True: if self.is_working: self.scan() else: # if is not working clean the GPIO for servo motors GPIO.cleanup() return
def _ConfigureBoard(self): """Initializes the board.""" Log('Configuring board') if self.status_led_pin: self._status_led = LED(self.status_led_pin) self._shutter_btn = machine.Pin(self.shutter_pin, machine.Pin.IN) self._shutter_btn.irq(trigger=machine.Pin.IRQ_FALLING, handler=self._ShutterCallback) if self.next_mode_pin: self._next_mode_btn = machine.Pin(self.next_mode_pin, machine.Pin.IN) self._next_mode_btn.irq(trigger=machine.Pin.IRQ_FALLING, handler=self._ModeWheelCallback) if self.prev_mode_pin: self._prev_mode_btn = machine.Pin(self.prev_mode_pin, machine.Pin.IN) self._prev_mode_btn.irq(trigger=machine.Pin.IRQ_FALLING, handler=self._ModeWheelCallback)
def play(): global leds global frame_number animation[frame_number] = copy.deepcopy(leds) #print 'length of ani is ' + str(len(animation)) for playframe in range(1,(len(animation)+1)): #print(playframe) leds =[] for x in range(0, 8): for y in range(0, 8): led = LED(pos=(x, y)) leds.append(led) for saved_led in animation[playframe]: if saved_led.lit: for led in leds: if led.pos == saved_led.pos: led.color = saved_led.color led.lit = True piLoad() time.sleep(1.0/fps)
def task2(status='off'): global interrupt sonic=sensor(21,20) led=LED(19) led.control(status) while True: try: distance=sonic.distance() print (distance) if distance<50: led.control('on') interrupt=1 time.sleep(60) led.control(status) time.sleep(1) except: print ('encountered hardware issue, thread 2 failed')
def main(): global g_event, g_led cwd = os.path.abspath(os.path.dirname(__file__)) logging.basicConfig(filename=cwd+'/log.log',level=logging.DEBUG,format='%(asctime)s %(filename)s[line:%(lineno)d] %(message)s',datefmt='%Y-%m-%d %H:%M:%S') # 初始化 event g_event = threading.Event() # 初始化 gpio GPIO.setwarnings(True) # Ignore warning for now GPIO.setmode(GPIO.BOARD) # Use physical pin numbering # 初始化 LED g_led = LED() g_led.set_value(15) regist_button() b_reboot = False try: # 等待事件触发 g_event.wait() b_reboot = True except KeyboardInterrupt as e: logging.warning("KeyboardInterrupted") pass # 清理GPIO logging.debug("gpio cleaning") GPIO.cleanup() # Clean up logging.debug("gpio cleaned") if b_reboot: logging.debug("shutting down") os.system('shutdown -r 0')
from led import LED # 实例化一个LED led = LED(0) # 设置LED的亮度 led.intensity(500)
sys.path.append("./modules/button") from Button import Button sys.path.append("./modules") from led import LED import json GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(2, GPIO.OUT) #LED to GPIO2 for available led GPIO.output(2, False) print("-----E-Stand-----") led1 = LED() led1.clear() # Define Variables #MQTT_HOST = "172.16.116.150" MQTT_HOST = "broker.hivemq.com" MQTT_PORT = 1883 MQTT_KEEPALIVE_INTERVAL = 45 MQTT_getLED = "stand/ledconfig" MQTT_getRickshaw = "stand/getrickshaw" # standid = -1 ledArr = [0] * 8 pressed = 0 try:
def getLitLEDs(): points = [] for led in leds: if led.lit: points.append(led.pos) return points # Main program body - set up leds and buttons leds = [] for x in range(0, 8): for y in range(0, 8): led = LED(radius=20,pos=(x, y)) leds.append(led) buttons = [] buttons_warn = [] animation={} #global frame_number def play(): global leds global frame_number animation[frame_number] = copy.deepcopy(leds) #print 'length of ani is ' + str(len(animation)) for playframe in range(1,(len(animation)+1)): #print(playframe) leds =[]
import threading from apscheduler.schedulers.background import BackgroundScheduler if platform.system() == 'Linux': COM = glob.glob(r'/dev/ttyUSB*') + glob.glob(r'/dev/ttyACM*') if len(COM) == 0: COM = '/dev/ttyUSB0' else: COM = COM[0] else: COM = 'COM6' app = Flask(__name__) #p = Printer(COM) #u = Uploader(p) l = LED() i = 0 aps = BackgroundScheduler() settings = {'ssid': '', 'psw': '', 'ip': '', 'eid': '', 'pw': ''} @app.route('/') def enter(): if os.path.isfile('settings.txt'): return render_template('index.html') else: return render_template('wizard.html') @app.route('/index') def index():
def getLitLEDs(): points = [] for led in leds: if led.lit: points.append(led.pos) return points # Programme principal - configure les leds et les boutons leds = [] for x in range(0, 8): for y in range(0, 8): led = LED(pos=(x, y)) leds.append(led) buttons = [] buttons_warn = [] animation={} #global frame_number def play(): global leds global frame_number animation[frame_number] = copy.deepcopy(leds) #print 'length of ani is ' + str(len(animation)) for playframe in range(1,(len(animation)+1)): #print(playframe) leds =[]