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
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()
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()
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()
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)