Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
 def __init__(self):
     self.sensor = gz.DistanceSensor(echo=8, trigger=11)
Ejemplo n.º 4
0
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()
Ejemplo n.º 5
0
        "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()

Ejemplo n.º 6
0
 def __init__(self, range_echo, range_trig):
     self.range = gpiozero.DistanceSensor(range_echo, range_trig)
Ejemplo n.º 7
0
# 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()
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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():
Ejemplo n.º 10
0
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"""
Ejemplo n.º 11
0
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
Ejemplo n.º 12
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()
Ejemplo n.º 13
0
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
Ejemplo n.º 14
0
#!/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