===== LED blink ===== This example demonstrates how to use UPER GPIO output to blink the red LED. It uses the on-board RGB led and requires no additional components. ==== Requirements: ==== * Uper1 board ==== Code: ==== from time import sleep from IoTPy.core.gpio import GPIO from IoTPy.pyuper.uper import UPER1 LED_PIN_ID = 27 with UPER1() as board, board.GPIO(LED_PIN_ID) as redPin: redPin.setup(GPIO.OUTPUT) # set GPIO pin to be output while True: redPin.write(0) # Turn led ON (LED on board is common anode - therefore inverted) sleep(0.5) redPin.write(1) # Turn led OFF sleep(0.5) ===== LED multicolor blink ===== In this case we use all LEDs and create a random color blinker. Just like before - out of the box UPER board is enough. ==== Requirements: ==== * Uper1 board ==== Code: ==== import random from time import sleep from IoTPy.core.gpio import GPIO from IoTPy.pyuper.uper import UPER1 with UPER1() as board, \ board.GPIO(27) as redPin, board.GPIO(28) as greenPin, board.GPIO(34) as bluePin: pins = [redPin, greenPin, bluePin] for pin in pins: pin.setup(GPIO.OUTPUT) # set GPIO pins to be output while True: pin = random.choice(pins) # choose random rgb pin pin.write(random.choice([0, 1])) # randomly turn that pin on or off sleep(0.2) ===== Button press detect ===== This example shows how to use GPIO read function to determine push-button state. ==== Requirements: ==== * Uper1 board * Breadboard * Push-button * 10k (or similar) resistor * Wires ==== Schematic: ==== {{ :examples:uper:1:05_gpio_read.png?direct&480 |}} ==== Code: ==== from IoTPy.core.gpio import GPIO from IoTPy.pyuper.uper import UPER1 with UPER1() as board, board.GPIO(27) as redPin, board.GPIO(18) as buttonPin: buttonPin.setup(GPIO.INPUT, GPIO.PULL_UP) redPin.setup(GPIO.OUTPUT) oldState = buttonPin.read() redPin.write(oldState) nButtonPress = 0 nButtonRelease = 0 # This might look complicated, but all of the code in the while loop # can be replaced with redPin.write(buttonPin.read()) # Variables and counters are here just for the print messages. while True: newState = buttonPin.read() if oldState != newState: oldState = newState if newState == 0: nButtonPress += 1 print "Button pressed %i" % nButtonPress redPin.write(0) # Turn led ON else: nButtonRelease += 1 print "Button released %i" % nButtonRelease redPin.write(1) # Turn led OFF ===== SHT10 sensor ===== SHT1x family sensors use a modified (non-standard) I2C protocol, therefore we have implemented a bit-banged SHT1x sensor class. ==== Requirements: ==== * Uper1 board * SHT10 breakout board * Breadboard * Wires ==== Schematic: ==== {{ :examples:uper:1:06_sht10.png?direct&480 |}} ==== Code: ==== from time import sleep from IoTPy.pyuper.uper import UPER1 from IoTPy.things.sht1x import SHT1X with UPER1 as board, board.GPIO(1) as data, board.GPIO(2) as sck, SHT1X(data, sck) as sensor: while True: print "Temperature: %.1f Humidity: %.1f" % (sensor.temperature(), sensor.humidity()) sleep(1)