def __init__(self): super().__init__() self._distance = 0 self._config_handler = ConfigHandler.get_instance() self._trigger_pin = self._config_handler.get_config_value_or( 'trigger_pin', 23) self._echo_pin = self._config_handler.get_config_value_or( 'echo_pin', 24) self._lock = threading.Lock() self._loop_delay = 0.05 self._timeout = 0.5 self._hardware = gpiozero.DistanceSensor(echo=self._echo_pin, trigger=self._trigger_pin, max_distance=3)
def main(): """Main function to read sensor and update stats.""" parser = argparse.ArgumentParser( description='Pull data from GPIO and write a Prometheus file output') parser.add_argument( '--file', default='/var/lib/prometheus/node-exporter/garage.prom', nargs='?', help='File to write') parser.add_argument('--delay', nargs='?', default=10, type=int, help='Delay in seconds between readings') parser.add_argument('--echo', nargs='?', default=18, type=int, help='GPIO Echo pin') parser.add_argument('--trigger', nargs='?', default=23, type=int, help='GPIO Trigger pin') parser.add_argument('--remote_file', nargs='?', default='', help='File to write') args = parser.parse_args() sensor = gpiozero.DistanceSensor(echo=args.echo, trigger=args.trigger) while True: write_to_file(args.file, sensor.distance * 100) # If we've got a remote_file specified, try to scp the file across. if args.remote_file: os.system('scp ' + args.file + ' ' + args.remote_file) time.sleep(args.delay)
def __init__(self): self.sensor = gz.DistanceSensor(echo=8, trigger=11)
import gpiozero from time import sleep # maak een variabele ‘sensor’, die gekoppeld wordt aan de ‘Distance’ (afstand) sensor # met de aansluitingen ECHO op GPIO18 en TRIGGER of GPIO17 sensor = gpiozero.DistanceSensor(echo=18, trigger=17) # maak een variabele …… , die gekoppeld wordt aan de …………. # met de aansluitingen op GPIO……. led = gpiozero.LED(22) # while betekent: “zolang” # true betekent: ‘waar’ while True: # maak een variabele ‘…….’ # ‘round’ betekent ‘afronden’ afstand = round(sensor.distance * 100) print('Obstakel op', afstand, 'cm') # 'if' betekent als # 'in_range' if sensor.in_range: led.on() sleep(1) led.off()
"date_time": date_time, "sensor_id": sensor_id, "value": int(device.distance*1000) } print("US event :", data) pending_data.append(data) if __name__ == "__main__": for gpio in IR_sensors: device = gpiozero.Button(gpio, active_state=True, pull_up=None, bounce_time=0.01) device.when_pressed = process_IR device.when_released = process_IR if not int(device.value): IR_leds[gpio].off() IR_devices.append(device) for gpio, sensor in US_sensors.items(): device = gpiozero.DistanceSensor(sensor["echo"], sensor["trigger"], max_distance=5) US_devices.append(device) while True: for device in US_devices: process_US(device) send_data() time.sleep(1) pause()
def __init__(self, range_echo, range_trig): self.range = gpiozero.DistanceSensor(range_echo, range_trig)
# import RPi.GPIO as GPIO import gpiozero as gpio import gpiopins from hcsr04sensor.sensor import Measurement import Adafruit_DHT # GPIO_MODE = GPIO.BOARD DHT22 = Adafruit_DHT.DHT22 pump_up_relay = gpio.OutputDevice(gpiopins.PUMP_UP_PIN) pump_mix_relay = gpio.OutputDevice(gpiopins.PUMP_MIX_PIN) grow_light_relay = gpio.OutputDevice(gpiopins.LED_PIN) solenoid_valve_relay = gpio.OutputDevice(gpiopins.SOLENOID_PIN) distance_sensor = gpio.DistanceSensor(gpiopins.ECHO_PIN,gpiopins.TRIGGER_PIN,max_distance=gpiopins.MAX_DISTANCE) temp_controller_fan = gpio.PWMOutputDevice() def turnOnPump(): while distance_sensor.value > 0: pump_up_relay.on() pump_up_relay.off() def turnOffPump(): pump_up_relay.off() def turnOnLight(): grow_light_relay.on()
import gpiozero echoPins = [14, 27, 11, 12, 20] trigPins = [3, 23, 10, 5, 26] sensors = [] if len(echoPins) != len(trigPins): raise ValueError("Length of trigPins does not match length of echoPins") for i in range(0, len(echoPins)): sensors.append( gpiozero.DistanceSensor(echoPins[i], trigPins[i], max_distance=1)) print(sensors[i].distance) def value(id): try: return sensors[id].distance except: print("Error on sensor " + str(id)) return 1
import gpiozero as gpio from time import sleep import sys led = gpio.LED(17) pir = gpio.MotionSensor(4) buzzer = gpio.Buzzer(27) servo = gpio.AngularServo(22,min_angle=-90,max_angle=90) sensor = gpio.DistanceSensor(echo = 18, trigger = 13) def turnOn(): led.on() sleep(10) print('Light was on, it just turned off') def turnOff(): led.off() print('Light is now off') def servoMovement(angle): angle = int(angle) servo.angle = angle sleep(3 ) print('Servo Moved') def buzz(): buzzer.on() sleep(10) print('buzzzz') def noBuzz():
import gpiozero from time import sleep resetTime = 15 # blink for this many seconds before turning back on motionSensorPresent = True distanceSensorPresent = True # set the GPIO pins that are used button = gpiozero.Button(19) led = gpiozero.LED(26) if motionSensorPresent: pir = gpiozero.MotionSensor(13) if distanceSensorPresent: dSensor = gpiozero.DistanceSensor(echo = 24, trigger = 23) dSensor.max_distance = 2 # the max reading for the distance sensor systemActive = False def isDistanceSensorTripped(): """ How to tell when the distanceSensor is triggered """ return dSensor.distance < dSensor.max_distance def motionTriggerEvent(): """ The even that is called when the motion sensor is activated. When the distance sensor is present, it needs to be triggered also in order to trigger the alarm, otherwise it triggers the alarm by itself"""
import gpiozero as gpio import math import time import board import busio from adafruit_lsm6ds import LSM6DSOX import servo #setup the gyroscope sensor using i2c i2c = busio.I2C(board.SCL, board.SDA) gyro_sensor = LSM6DSOX(i2c) #ultra sonic distance sensor setup dist_sensor = gpio.DistanceSensor(trigger=5, echo=6, max_distance=3) #function to return the current distance of object in the proximity # of the sensor, in centimeters def distance(): global dist_sensor return dist_sensor.distance * 100 # motor wheel constants WHEEL_DIAMETER = 67.9 # diameter of the wheel in millimeters STEP_COUNT = 20.0 # number of slots in the wheel speed encoder ring # pulse counters for speed sensors counter_right = 0 counter_left = 0
except zmq.error.Again: balloons = None return balloons # set up GPIO hardware PIEZOPIN = 4 BUTTONPIN = 25 LEDPIN = 22 LED_RED_PIN = 23 buzzer = gpz.TonalBuzzer(PIEZOPIN) led = gpz.LED(LEDPIN) led_red = gpz.LED(LED_RED_PIN) rmotor = gpz.Motor(20, 16, 12, pwm=True) lmotor = gpz.Motor(26, 19, 5, pwm=True) lsensor = gpz.DistanceSensor(21, 24) # echo, trigger rsensor = gpz.DistanceSensor(13, 27) lsensor._queue.stop() # stop the auto-checking rsensor._queue.stop() # stop the auto-checking button = gpz.Button(BUTTONPIN, bounce_time=0.2) def beep(length=0.1, freq=500): buzzer.play(freq) time.sleep(length) buzzer.stop() def read_sensors(): # lsensor._read() # rsensor._read()
import time, sys import gpiozero as g0 from threading import Thread sensor = g0.DistanceSensor(echo = 16, trigger = 20) IN1_m1 = g0.OutputDevice(17) IN2_m1 = g0.OutputDevice(18) IN3_m1 = g0.OutputDevice(21) IN4_m1 = g0.OutputDevice(22) StepPins_m1 = [IN1_m1,IN2_m1,IN3_m1,IN4_m1] # Motor 1 GPIO pins IN4_m2 = g0.OutputDevice(19) IN3_m2 = g0.OutputDevice(13) IN2_m2 = g0.OutputDevice(5) IN1_m2 = g0.OutputDevice(6) StepPins_m2 = [IN1_m2,IN2_m2,IN3_m2,IN4_m2] # Motor 2 GPIO pins Seq = [[1,0,0,1], # Define step sequence [1,0,0,0], # as shown in manufacturers datasheet [1,1,0,0], [0,1,0,0], [0,1,1,0], [0,0,1,0], [0,0,1,1], [0,0,0,1]] StepCount = len(Seq) all_clear = True running = True def bump_watch(): # thread to watch for obstacles global all_clear while running: value = sensor.distance if value < 0.1: # trigger if obstacle within 10cm all_clear = False
#!/usr/bin/env python # -*- coding: utf-8 -*- # Mit diesem Programm testen wir den Ultraschallsensor und geben # dafür den berechneten Abstand eines Objekts vor dem Sensor aus. # # Dieses Programm ist Bestandteil des Erfindergarden Roboter-Workshops. # http://www.erfindergarden.de import time import gpiozero sensor = gpiozero.DistanceSensor( 18, 17) # Unser Sensor ist an den Pins 17 und 18 angeschlossen while True: # Wiederhole den folgenden Codeblock unendlich print "Abstand vor dem Sensor: %f m\n" % sensor.distance * 100 time.sleep(1) # Warte eine Sekunde vor der nächsten Ausgabe