def main(): """ メイン関数 """ # 接続ピン PIN_LD = 23 PIN_PR = [10, 9, 11, 8] # フォトリフレクタラベル(フィールド追加) Button.label = 0 # 赤色lED設定 red = LED(PIN_LD) # フォトリフレクタ(複数)設定(ボタンとして) photorefs = [ Button(PIN_PR[idx], active_state=True, pull_up=None) \ for idx in range(len(PIN_PR)) ] # フォトリフレクタラベル設定 for idx in range(len(photorefs)): photorefs[idx].label = idx + 1 # フォトリフレクタ検出結果の論理和をLED入力に接続 red.source = any_values(photorefs[0],photorefs[1], \ photorefs[2],photorefs[3]) # コールバック設定 for pr in photorefs: # 白色検出時 pr.when_pressed = white # 黒色検出時 pr.when_released = black # 停止(Ctrl+c)まで待機 pause()
def test_construction(self): """ 生成テスト """ # 接続ピン PIN_LD = 23 PIN_PR = 10 # 周辺設定 led = LED(PIN_LD) # 期待値 valueLDExpctd = False # black # ターゲット生成 photoref = Button(PIN_PR,active_state=True,pull_up=None) # 接続 led.source = photoref # 実際値 valueLDActual = led.value # 評価 try: self.assertEqual(valueLDActual,valueLDExpctd) sleep(0.1) finally: led.close() photoref.close()
def led_btn(): led_1 = LED(17) led_2 = LED(18) btn_1 = Button(2) btn_2 = Button(3) btn_1.when_pressed = led_1.on btn_1.when_released = led_1.off led_2.source = button pause()
def test_drive(self): """ 駆動テスト """ # 接続ピン PIN_LD = 23 PIN_PR = 10 # 周辺設定 led = LED(PIN_LD) # 期待値 highLDExpctd = True # white lowLDExpctd = False # black # ターゲット生成 photoref = Button(PIN_PR,active_state=True,pull_up=None) photoref_pin = Device.pin_factory.pin(PIN_PR) # 接続 led.source = photoref # Highでフォトリフレクタを駆動(白) photoref_pin.drive_high() sleep(0.1) highLDActual = led.value # Lowでフォトリフレクタを駆動(黒) photoref_pin.drive_low() sleep(0.1) lowLDActual = led.value # 評価 try: self.assertEqual(highLDActual,highLDExpctd) self.assertEqual(lowLDActual,lowLDExpctd) sleep(0.1) finally: led.close() photoref.close()
from gpiozero.pins.mock import MockFactory from gpiozero import Device, Button, LED from time import sleep # Set the default pin factory to a mock factory Device.pin_factory = MockFactory() # Construct a couple of devices attached to mock pins 16 and 17, and link the # devices led = LED(17) btn = Button(16) led.source = btn.values # Here the button isn't "pushed" so the LED's value should be False print(led.value) # Get a reference to mock pin 16 (used by the button) btn_pin = Device.pin_factory.pin(16) # Drive the pin low (this is what would happen eletrically when the button is # pushed) btn_pin.drive_low() sleep(0.1) # give source some time to re-read the button state print(led.value) btn_pin.drive_high() sleep(0.1) print(led.value)
from gpiozero import Button, LED from gpiozero.pins.pigpio import PiGPIOFactory from signal import pause factory = PiGPIOFactory(host='192.168.1.3') button = Button(2) led = LED(17, pin_factory=factory) led.source = button pause()
from gpiozero import Button, LED from gpiozero.tools import all_values from signal import pause button_a = Button(2) button_b = Button(3) led = LED(17) led.source = all_values(button_a.values, button_b.values) pause()
def show_from_sequence(seq, pin=17): led = LED(pin) led.source = seq pause()
from travispy import TravisPy from gpiozero import LED from gpiozero.tools import negated from time import sleep from signal import pause def build_passed(repo): t = TravisPy() r = t.repo(repo) while True: yield r.last_build_state == 'passed' red = LED(12) green = LED(16) green.source = build_passed('RPi-Distro/python-gpiozero') green.source_delay = 60 * 5 # check every 5 minutes red.source = negated(green.values) pause()
from bluedot import BlueDot from gpiozero import LED from signal import pause bd = BlueDot() led = LED(27) led.source = bd.values pause()
from gpiozero import LED from random import randint from signal import pause def rand(): while True: yield randint(0, 1) led = LED(17) led.source = rand() pause()
from gpiozero import Button, LED from signal import pause def opposite(values): for value in values: yield not value led = LED(4) btn = Button(17) led.source = opposite(btn.values) pause()
from gpiozero import LED, Button from signal import pause red = LED(14) green = LED(15) button = Button(17) red.source = button.values green.source = red.values pause()
def main(): # from picamera import PiCamera from gpiozero import LED, Button, MotionSensor from gpiozero.tools import all_values, any_values from signal import pause # import logging import json import sys print('') print('# RPiMS is running #') print('') global redis_db redis_db = db_connect('localhost', 0) config_yaml = config_load('/var/www/html/conf/rpims.yaml') config = config_yaml['setup'] zabbix_agent = config_yaml['zabbix_agent'] gpio = config_yaml.get("gpio") redis_db.flushdb() redis_db.set('gpio', json.dumps(gpio)) redis_db.set('config', json.dumps(config)) redis_db.set('zabbix_agent', json.dumps(zabbix_agent)) get_hostip() hostnamectl_sh(**zabbix_agent) if bool(config['verbose']) is True: for k, v in config.items(): print(f'{k} = {v}') for k, v in zabbix_agent.items(): print(f'{k} = {v}') print('') if bool(config['use_door_sensor']) is True: global door_sensors_list door_sensors_list = {} for item in gpio: if (gpio[item]['type'] == 'DoorSensor'): door_sensors_list[item] = Button(gpio[item]['gpio_pin'], hold_time=int( gpio[item]['hold_time'])) if bool(config['use_motion_sensor']) is True: global motion_sensors_list motion_sensors_list = {} for item in gpio: if (gpio[item]['type'] == 'MotionSensor'): motion_sensors_list[item] = MotionSensor( gpio[item]['gpio_pin']) if bool(config['use_system_buttons']) is True: global system_buttons_list system_buttons_list = {} for item in gpio: if (gpio[item]['type'] == 'ShutdownButton'): system_buttons_list['shutdown_button'] = Button( gpio[item]['gpio_pin'], hold_time=int(gpio[item]['hold_time'])) global led_indicators_list led_indicators_list = {} for item in gpio: if (gpio[item]['type'] == 'door_led'): led_indicators_list['door_led'] = LED(gpio[item]['gpio_pin']) if (gpio[item]['type'] == 'motion_led'): led_indicators_list['motion_led'] = LED(gpio[item]['gpio_pin']) if (gpio[item]['type'] == 'led'): led_indicators_list['led'] = LED(gpio[item]['gpio_pin']) if bool(config['use_door_sensor']) is True: for k, v in door_sensors_list.items(): if v.value == 0: door_status_open(k, **config) else: door_status_close(k, **config) for k, v in door_sensors_list.items(): v.when_held = lambda s=k: door_action_closed(s, **config) v.when_released = lambda s=k: door_action_opened(s, **config) if bool(config['use_door_led_indicator']) is True: led_indicators_list['door_led'].source = all_values( *door_sensors_list.values()) if bool(config['use_motion_sensor']) is True: for k, v in motion_sensors_list.items(): if v.value == 0: motion_sensor_when_no_motion(k, **config) else: motion_sensor_when_motion(k, **config) for k, v in motion_sensors_list.items(): v.when_motion = lambda s=k: motion_sensor_when_motion(k, **config) v.when_no_motion = lambda s=k: motion_sensor_when_no_motion( k, **config) if bool(config['use_motion_led_indicator']) is True: led_indicators_list['motion_led'].source = any_values( *motion_sensors_list.values()) if bool(config['use_system_buttons']) is True: system_buttons_list['shutdown_button'].when_held = shutdown if bool(config['use_CPU_sensor']) is True: threading_function(get_cputemp_data, **config) if bool(config['use_BME280_sensor']) is True: threading_function(get_bme280_data, **config) if bool(config['use_DS18B20_sensor']) is True: threading_function(get_ds18b20_data, **config) if bool(config['use_DHT_sensor']) is True: threading_function(get_dht_data, **config) if bool(config['use_weather_station']) is True: threading_function(rainfall, **config) threading_function(wind_speed, **config) threading_function(wind_direction, **config) if bool(config['use_serial_display']) is True: threading_function(serial_displays, **config) if bool(config['use_picamera']) is True and bool( config['use_picamera_recording']) is False and bool( config['use_door_sensor']) is False and bool( config['use_motion_sensor']) is False: av_stream('start') pause()
from gpiozero import LED, Button from signal import pause led = LED(17) button = Button(2) led.source = button.values pause()
from gpiozero import Button, LED from gpiozero.tools import negated from signal import pause led = LED(4) btn = Button(17) led.source = negated(btn.values) pause()
with PiCamera() as camera: #camera.start_preview() path, dirs, files = os.walk('/home/pi/photo_output').next() file_count = len(files) print (file_count) frame = 1 + file_count while True: if stop.is_pressed: draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255) draw.text((3,20), 'Safe stop', font=font) disp.image(image) disp.display() time.sleep(2) subprocess.call('sudo halt', shell=True) button.wait_for_press() yellow.source = button.values draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255) #disp.image(image) disp.display() draw.text((3,0),'Taking ....', font=font) disp.image(image) disp.display() print ("About to capture photo") camera.capture('/home/pi/photo_output/frame%03d.jpg' % frame) print (frame) draw.text((3,10),'Frames taken:', font=font) draw.text((10,20), str(frame), font=font) draw.text((0,30), str(startup), font=font) disp.image(image) disp.display() frame +=1
from travispy import TravisPy from gpiozero import LED from gpiozero.tools import negated from time import sleep from signal import pause def build_passed(repo='RPi-Distro/python-gpiozero', delay=3600): t = TravisPy() r = t.repo(repo) while True: yield r.last_build_state == 'passed' sleep(delay) # Sleep an hour before hitting travis again red = LED(12) green = LED(16) red.source = negated(green.values) green.source = build_passed() pause()
from gpiozero import LED, Button from signal import pause mySwitch = Button(2) myLED = LED(26) # test the connections # myLED.blink() myLED.source = mySwitch pause()
from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause import time yellow_led = LED(4) red_led = LED(17) green_led = LED(18) yellow_led.on() time.sleep(15) google = PingServer('google.com') green_led.source_delay = 60 green_led.source = google yellow_led.source = negated(green_led) pause()
print(f'Started state {r.state}') yield r.state == 'started' def build_passed(): while True: r = travis.repo(repository_name) print(f'Passed state {r.state}') yield r.state == 'passed' and r.state != 'started' def build_unsuccessful(): while True: r = travis.repo(repository_name) print(f'Unsuccessful state {r.state}') yield r.state != 'passed' and r.state != 'started' green.source = build_passed() green.source_delay = 20 red.source = build_unsuccessful() red.source_delay = 20 yellow.source = build_started() yellow.source_delay = 20 pause() except KeyboardInterrupt: green.off() red.off() yellow.off() print("Exiting...")
import inkyphat from datetime import datetime as dt from PIL import ImageFont, Image import sys sys.path.insert(0, '/home/pi/DHT11_Python') import Adafruit_DHT logzero.logfile("/home/pi/viv.log", maxBytes=1000000) logger.debug("Finished imports") humidity_gpio_pin = 3 humidity_sensor = Adafruit_DHT.DHT22 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) logger.debug("Setting door locks") leftside = Button(20) leftside_led = LED(21) leftside_led.source = leftside.values rightside = Button(19) rightside_led = LED(26) rightside_led.source = rightside.values City = "SnakeTown" BUCKET_NAME = ":snake:Vivarium" BUCKET_KEY = "" ACCESS_KEY = "" SENSOR_LOCATION_NAME = "Viv1" streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY)
from gpiozero import LED from signal import pause led = LED(17) led.source_delay = 1 led.source = [1, 0, 1, 1, 1, 0, 0, 1, 0, 1] pause()
from gpiozero import LED, Button from signal import pause led = LED(18) btn = Button(23) led.source = btn pause()
from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause green = LED(17) red = LED(18) google = PingServer('google.com') green.source = google.values green.source_delay = 60 red.source = negated(green.values) pause()
from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause green = LED(17) red = LED(18) google = PingServer('google.com') google.when_activated = green.on google.when_deactivated = green.off red.source = negated(green) pause()
def switch_on_right(): print('Right switch is on') def switch_off_left(): print('Left switch is off') def switch_off_right(): print('Right switch is off') # Setup connections # =================== led_red.source = button_red led_green.source = button_green led_blue.source = button_blue button_yellow.when_pressed = rgb_demo switch_left.when_pressed = switch_on_left switch_left.when_released = switch_off_left switch_right.when_pressed = switch_on_right switch_right.when_released = switch_off_right print('Running') pause()
from gpiozero import Button, LED from signal import pause button = Button(20) led = LED(21) # button의 상태를 led와 동일하게 하겠다 led.source = button.values pause()
selection_3_led = LED(8) selection_4_button = Button(0) selection_4_led = LED(1) selection_5_button = Button(6) selection_5_led = LED(12) selection_6_button = Button(19) selection_6_led = LED(16) selection_7_button = Button(26) selection_7_led = LED(20) selection_8_button = Button(27) selection_8_led = LED(10) # setup complete # main'ish: power_led.source = power_button.values selection_1_led.source = selection_1_button.values selection_2_led.source = selection_2_button.values selection_3_led.source = selection_3_button.values selection_4_led.source = selection_4_button.values selection_5_led.source = selection_5_button.values selection_6_led.source = selection_6_button.values selection_7_led.source = selection_7_button.values selection_8_led.source = selection_8_button.values pause()
motor_down(motor_1_dir, motor_1_pwm) def rightpoke(): poke_time = time.time() temp = pd.DataFrame([['poke', poke_time - start_time]]) temp.to_csv(expdate + "_rightpoke.csv", mode='a', header=False) def wrongpoke(): poke_time = time.time() temp = pd.DataFrame([['poke', poke_time - start_time]]) temp.to_csv(expdate + "_wrongpoke.csv", mode='a', header=False) LED_1.source = (IR_1.values) LED_2.source = (IR_2.values) motor_1_pwm.off() motor_1_dir.off() def record(): IR_1.when_released = rightpoke IR_2.when_released = wrongpoke def reward(): IR_1.when_released = reward_delivery
#!/usr/bin/python3 from gpiozero import Button, LED from signal import pause GPIO_btn_B = 18 GPIO_led_B = 17 btn = Button(GPIO_btn_B, True) led = LED(GPIO_led_B) led.source = btn.values pause()
# custom constant value generators def constant_true(): while True: yield True def constant_false(): while True: yield False # start it assign_sources() # temperature alarms ok_led.source = booleanized(temp, MIN_TEMP / 100, MAX_TEMP / 100) alarm_led.source = negated(booleanized(temp, MIN_TEMP / 100, MAX_TEMP / 100)) # schedule status write to file def writeStatus(): global scheduler writeStatusToFile() scheduler.enter(1, 1, writeStatus) # start scheduler # scheduler.enter(2, 1, writeStatus) ? scheduler.run()
path, dirs, files = os.walk('/home/pi/photo_output').next() file_count = len(files) print(file_count) frame = 1 + file_count while True: if stop.is_pressed: draw.rectangle((0, 0, LCD.LCDWIDTH, LCD.LCDHEIGHT), outline=255, fill=255) draw.text((3, 20), 'Safe stop', font=font) disp.image(image) disp.display() time.sleep(2) subprocess.call('sudo halt', shell=True) button.wait_for_press() yellow.source = button.values draw.rectangle((0, 0, LCD.LCDWIDTH, LCD.LCDHEIGHT), outline=255, fill=255) #disp.image(image) disp.display() draw.text((3, 0), 'Taking ....', font=font) disp.image(image) disp.display() print("About to capture photo") camera.capture('/home/pi/photo_output/frame%03d.jpg' % frame) print(frame) draw.text((3, 10), 'Frames taken:', font=font) draw.text((10, 20), str(frame), font=font) draw.text((0, 30), str(startup), font=font) disp.image(image)
## def motor_down(motor_1_dir, motor_1_pwm): global poke_success motor_1_dir.on() motor_1_pwm.on() sleep(5) motor_1_pwm.off() sleep(1) motor_1_dir.off() motor_1_pwm.on() sleep(5) motor_1_pwm.off() poke_success = False def IR_held(): global poke_success if poke_success == False: poke_success = True motor_down(motor_1_dir, motor_1_pwm) LED_1.source = (IR_1.values) motor_1_pwm.off() motor_1_dir.off() IR_1.when_released = IR_held # print(poke_success)
from gpiozero import Button, LED from gpiozero.tools import all_values from signal import pause button_a = Button(2) button_b = Button(3) led = LED(17) led.source = all_values(button_a, button_b) pause()
#!/usr/bin/python3 from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause green = LED(17) red = LED(4) google = PingServer('8.8.8.8') green.source = google green.source_delay = 60 red.source = negated(green) pause()
from gpiozero import LED from gpiozero.pins.pigpio import PiGPIOFactory from gpiozero.tools import all_values from signal import pause factory3 = PiGPIOFactory(host='192.168.1.3') factory4 = PiGPIOFactory(host='192.168.1.4') led = LED(17) button_1 = Button(17, pin_factory=factory3) button_2 = Button(17, pin_factory=factory4) led.source = all_values(button_1, button_2) pause()
from gpiozero import LED from signal import pause from random import randint def set_source(): while True: yield randint(0, 1) led = LED(18) led.source_delay = 1 led.source = set_source() # led.source = [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1] pause()
from gpiozero import LED from signal import pause led = LED(17) led.source = [1, 0, 1, 1, 1, 0, 0, 1, 0, 1] pause()