Пример #1
0
 def do_GET(self):
     global led_status
     if led_status == gpio.LOW:
         self.wfile.write(b"Setting pin to HIGH")
         print('Setting pin to HIGH')
         led_status = gpio.HIGH
     else:
         self.wfile.write(b"Setting pin to LOW")
         print('Setting pin to LOW')
         led_status = gpio.LOW
     gpio.output(led_pin, led_status)
Пример #2
0
 def do_GET(self):
     global led_status
     if led_status == gpio.LOW:
         self.wfile.write(b"Setting pin to HIGH")
         print('Setting pin to HIGH')
         led_status = gpio.HIGH
     else:
         self.wfile.write(b"Setting pin to LOW")
         print('Setting pin to LOW')
         led_status = gpio.LOW
     gpio.output(led_pin, led_status)        
def manual():
    # the ON manual button was pressed
    print("Manual override button pressed")
    gpio.output(valve_pin, gpio.LOW)
    # post ON time to Azure Queue
    postdata = {'ON':''}
    postdata['ON'] = time.time()
    print(postazq.postazq(postdata))
    while (gWateringStatus == True):
      updateSched()
      sleep(1)
    gpio.output(valve_pin, gpio.HIGH)
    # post OFF time to Azure Queue
    postdata = {'OFF':''}
    postdata['OFF'] = time.time()
    print(postazq.postazq(postdata))
def waterCycle(t):
    global gWateringStatus
    now = time.time()
    # check soil moisture
    if ( gpio.input(moisture_pin) == gpio.LOW ):
        print("Soil above moisture threshhold, skip watering")
        gWateringStatus = False
        # wait a minute before return
        then = time.time() + 60
        while ( time.time() < then ):
           updateSched()
           sleep(1)
        return
    print("watering, gpio on at " + str(now))
    gpio.output(valve_pin, gpio.LOW)
    # post ON time to Azure Queue
    postdata = {'ON':''}
    postdata['ON'] = now
    print(postazq.postazq(postdata))
    gWateringStatus = True
    # get weather forecast 
    jfc = weather.weather()
    # adjust duration down by prediction of rain
    duration = t * (1. - jfc["hourly"]["data"][0]["precipProbability"])
    print("watering for " + str(duration) + " seconds")
    then = time.time() + duration
    while ( (gWateringStatus == True) and (time.time() < then ) ):      # in case watering is canceled by the STOP button
      updateSched()
      sleep(1)
    now = time.time()
    print("Done watering, gpio off " + str(now))
    gpio.output(valve_pin, gpio.HIGH)
    # post OFF time to Azure Queue
    postdata = {'OFF':''}
    postdata['OFF'] = now
    print(postazq.postazq(postdata))
    if ( gWateringStatus == "Canceled" ):	# if canceled, wait a minute before resuming normal so another cycle doesn't kick off 
        then = time.time() + 60
        while ( time.time() < then ):
           updateSched()
           sleep(1)
    gWateringStatus = False
Пример #5
0
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
"""
import _wingpio as gpio
import time

led_pin = 5
pinValue = gpio.HIGH

gpio.setup(led_pin, gpio.OUT, gpio.PUD_OFF, gpio.HIGH)

while True:
    if pinValue == gpio.HIGH:
        pinValue = gpio.LOW
        gpio.output(led_pin, pinValue)
    else:
        pinValue = gpio.HIGH
        gpio.output(led_pin, pinValue)

    time.sleep(0.5)

gpio.cleanup()
import _wingpio as gpio  # The GPIO library
import time  # Time functions

BLINK_TIME = 30.0  # blink for 30 seconds
GPIO_PIN = 4  # GPIO4 (not pin #4)

pin_val = gpio.HIGH  # Store pin value (high/low)
elapsed_time = 0  # Store time in seconds

# Setup the GPIO
gpio.setup(GPIO_PIN, gpio.OUT, gpio.PUD_OFF, gpio.HIGH)

# Run the blink series for
while (elapsed_time < BLINK_TIME):
    # If LED is on, turn it off
    if pin_val == gpio.HIGH:
        pin_val = gpio.LOW
        gpio.output(GPIO_PIN, pin_val)
    # else, turn it on
    else:
        pin_val = gpio.HIGH
        gpio.output(GPIO_PIN, pin_val)

    # Sleep for 1/2 second
    time.sleep(1)
    elapsed_time = elapsed_time + 1

# Close down and cleanup the GPIO
gpio.cleanup()
Пример #7
0
import _wingpio as gpio

led_pin = 6;
button_pin = 5;

ledPinValue = gpio.HIGH;

gpio.setup(button_pin, gpio.IN, gpio.PUD_UP, None);
gpio.setup(led_pin, gpio.OUT);
print("GPIO pins initialized correctly.")

gpio.output(led_pin, gpio.HIGH);

def buttonPin_ValueChanged(sender):
    if gpio.input(button_pin):
        if ledPinValue == gpio.HIGH:
            ledPinValue = gpio.LOW;
        else:
            ledPinValue = gpio.HIGH;

        print("Button released")
    else:
        print("Button Pressed")

gpio.add_event_detect(button_pin, gpio.BOTH, callback=buttonPin_ValueChanged, bouncetime=50);
print("GPIO event registered")
 def do_POST(self):
     # Get response and repost results
     content_len = int(self.headers.get('content-length', 0))
     post_body = self.rfile.read(content_len)
     option = None
     # reset states for safety
     for i in range(0, 7):
         states[i] = ""
     # Turn all pins off
     for i in LED_PINS:
         gpio.output(i, gpio.LOW)
     # Engage the servo
     print("post body = {0}".format(post_body))
     if post_body.startswith(b"in"):
         gpio.output(SERVO_PIN, gpio.LOW)
         states[0] = "disabled"
         states[1] = ""
     # Turn on the LEDS
     elif post_body.startswith(b"out"):
         gpio.output(SERVO_PIN, gpio.HIGH)
         states[0] = ""
         states[1] = "disabled"
     # Need to parse to get the LED switches
     parts = post_body.split(b"&", 1)
     if len(parts) > 1:
         option = parts[1].split(b'=')[1]
     self._set_headers()
     if option:
         if option == b"avail":
             states[2] = "checked"
             gpio.output(AVAIL, gpio.HIGH)
         elif option == b"dnd":
             states[3] = "checked"
             gpio.output(DND, gpio.HIGH)
         elif option == b"bbl":
             states[4] = "checked"
             gpio.output(BBL, gpio.HIGH)
         elif option == b"lunch":
             states[5] = "checked"
             gpio.output(LUNCH, gpio.HIGH)
         elif option == b"gftd":
             states[6] = "checked"
             gpio.output(GFTD, gpio.HIGH)
     print("Setting states: {0}".format(",".join(states)))
     self.wfile.write(
         HTML.format(states[0], states[1], states[2], states[3], states[4],
                     states[5], states[6]).encode())
                gpio.output(DND, gpio.HIGH)
            elif option == b"bbl":
                states[4] = "checked"
                gpio.output(BBL, gpio.HIGH)
            elif option == b"lunch":
                states[5] = "checked"
                gpio.output(LUNCH, gpio.HIGH)
            elif option == b"gftd":
                states[6] = "checked"
                gpio.output(GFTD, gpio.HIGH)
        print("Setting states: {0}".format(",".join(states)))
        self.wfile.write(
            HTML.format(states[0], states[1], states[2], states[3], states[4],
                        states[5], states[6]).encode())


# Initialize the pins, set to LOW (OFF)
for i in LED_PINS:
    gpio.setup(i, gpio.OUT, gpio.PUD_OFF, gpio.HIGH)
    gpio.output(i, gpio.LOW)
gpio.setup(SERVO_PIN, gpio.OUT, gpio.PUD_OFF, gpio.HIGH)
gpio.output(SERVO_PIN, gpio.LOW)

# default is "Available"
gpio.output(AVAIL, gpio.HIGH)

# Run the http server indefinitely
httpd = http.server.HTTPServer(("", 8081), RequestHandler)
print('Started web server on port %d' % httpd.server_address[1])
httpd.serve_forever()
Пример #10
0
    The above copyright notice and this permission notice shall be included in
    all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
    THE SOFTWARE.
"""
import _wingpio as gpio
import time

led_pin = 5
ledstatus = 0

gpio.setup(led_pin, gpio.OUT, gpio.PUD_OFF, gpio.HIGH)

while True:
    if ledstatus == 0:
        ledstatus = 1
        gpio.output(led_pin, gpio.HIGH)
    else:
        ledstatus = 0
        gpio.output(led_pin, gpio.LOW)

    time.sleep(0.5)

gpio.cleanup()
Пример #11
0
 def setStep(self, v1, v2, v3, v4):
    gpio.output(self.pin1, v1)
    gpio.output(self.pin2, v2)
    gpio.output(self.pin3, v3)
    gpio.output(self.pin4, v4)