def _initialize_io(self): aio_username = self._secrets["aio_username"] aio_key = self._secrets["aio_key"] # Create an instance of the Adafruit IO HTTP client self.io = IO_HTTP(aio_username, aio_key, self.wifi) clock = rtc.RTC() clock.datetime = self.io.receive_time() self._initialize_feeds()
def get_feed_data(): io = IO_HTTP(secrets["aio_username"], secrets["aio_key"], requests) feed0 = None feed1 = None feed2 = None if (feed0 is None): try: feed0 = io.get_feed(aio_feed0_name) except: print("Can't get " + aio_feed0_name + " feed.") if (feed1 is None): try: feed1 = io.get_feed(aio_feed1_name) except: print("Can't get " + aio_feed1_name + " feed.") if (feed2 is None): try: feed2 = io.get_feed(aio_feed2_name) except: print("Can't get " + aio_feed2_name + " feed.") try: t0 = io.receive_data(feed0["key"]) t1 = io.receive_data(feed1["key"]) t2 = io.receive_data(feed2["key"]) return t0["value"], t1["value"], t2["value"] except: return None, None, None
def _get_io_client(self): self.connect() try: aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] except KeyError: raise KeyError( "Adafruit IO secrets are kept in secrets.py, please add them there!\n\n" ) from KeyError return IO_HTTP(aio_username, aio_key, self._wifi.manager(secrets))
def _get_io_client(self): if self._io_client is not None: return self._io_client self.connect() try: aio_username = self._secrets["aio_username"] aio_key = self._secrets["aio_key"] except KeyError: raise KeyError( "Adafruit IO secrets are kept in secrets.py, please add them there!\n\n" ) from KeyError self._io_client = IO_HTTP(aio_username, aio_key, self._wifi.requests) return self._io_client
def push_to_io(self, feed_key, data): # pylint: disable=line-too-long """Push data to an adafruit.io feed :param str feed_key: Name of feed key to push data to. :param data: data to send to feed """ # pylint: enable=line-too-long try: aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] except KeyError: raise KeyError( "Adafruit IO secrets are kept in secrets.py, please add them there!\n\n" ) from KeyError # This may need a fake wrapper written to just use onboard eth0 or whatever # wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( # self._esp, secrets, None # ) wifi = None io_client = IO_HTTP(aio_username, aio_key, wifi) while True: try: feed_id = io_client.get_feed(feed_key) except AdafruitIO_RequestError: # If no feed exists, create one feed_id = io_client.create_new_feed(feed_key) except RuntimeError as exception: print("An error occured, retrying! 1 -", exception) continue break while True: try: io_client.send_data(feed_id["key"], data) except RuntimeError as exception: print("An error occured, retrying! 2 -", exception) continue except NameError as exception: print(feed_id["key"], data, exception) continue break
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 ) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) try: # Get the 'temperature' feed from Adafruit IO temperature_feed = io.get_feed("temperature") except AdafruitIO_RequestError: # If no 'temperature' feed exists, create one temperature_feed = io.create_new_feed("temperature") # Set up ADT7410 sensor i2c_bus = busio.I2C(board.SCL, board.SDA) adt = adafruit_adt7410.ADT7410(i2c_bus, address=0x48) adt.high_resolution = True while True: try:
def read_bme(is_celsius=False): """Returns temperature and humidity from BME280/BME680 environmental sensor, as a tuple. :param bool is_celsius: Returns temperature in degrees celsius if True, otherwise fahrenheit. """ humid = bme_sensor.humidity temp = bme_sensor.temperature if not is_celsius: temp = temp * 1.8 + 32 return temp, humid # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(secrets["aio_user"], secrets["aio_key"], wifi) # Describes feeds used to hold Adafruit IO data feed_aqi = io.get_feed("air-quality-sensor.aqi") feed_aqi_category = io.get_feed("air-quality-sensor.category") feed_humidity = io.get_feed("air-quality-sensor.humidity") feed_temperature = io.get_feed("air-quality-sensor.temperature") # Set up location metadata from secrets.py file location_metadata = (secrets["latitude"], secrets["longitude"], secrets["elevation"]) elapsed_minutes = 0 prv_mins = 0 while True: try:
# PyPortal ESP32 Setup esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py ADAFRUIT_IO_USER = secrets['aio_username'] ADAFRUIT_IO_KEY = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(ADAFRUIT_IO_USER, ADAFRUIT_IO_KEY, wifi) io = IO_HTTP(ADAFRUIT_IO_USER, ADAFRUIT_IO_KEY, wifi) bme680 = adafruit_bme680.Adafruit_BME680_I2C(i2c) # Change this to match the location's pressure (hPa) at sea level bme680.sea_level_pressure = 1013.25 # Set up Adafruit IO Feeds print('Getting Group data from Adafruit IO...') station_group = io.get_group('pyportal-sensor-station') feed_list = station_group['feeds'] altitude_feed = feed_list[0] gas_feed = feed_list[1] humidity_feed = feed_list[2] pressure_feed = feed_list[3]
spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" #status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets['aio_username'] aio_key = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) # Create a new group print('Creating a new Adafruit IO Group...') sensor_group = io.create_new_group('envsensors', 'a group of environmental sensors') # Add the 'temperature' feed to the group print('Adding feed temperature to group...') io.add_feed_to_group(sensor_group['key'], 'temperature') # Get info from the group print(sensor_group) # Delete the group print('Deleting group...')
esp32_ready = digitalio.DigitalInOut(board.ESP_BUSY) esp32_reset = digitalio.DigitalInOut(board.ESP_RESET) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets['aio_username'] aio_key = secrets['aio_key'] # Create an instance of the IO_HTTP client io = IO_HTTP(aio_username, aio_key, wifi) # Get the weight feed from IO weight_feed = io.get_feed('weight') # initialize the dymo scale units_pin = digitalio.DigitalInOut(board.D3) units_pin.switch_to_output() dymo = adafruit_dymoscale.DYMOScale(board.D4, units_pin) # take a reading of the current time, used for toggling the device out of sleep time_stamp = time.monotonic() while True: try: reading = dymo.weight
esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) ADAFRUIT_IO_USER = secrets["aio_username"] ADAFRUIT_IO_KEY = secrets["aio_key"] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(ADAFRUIT_IO_USER, ADAFRUIT_IO_KEY, wifi) try: # Get the 'temperature' feed from Adafruit IO neopixel_feed = io.get_feed("neopixel") except AdafruitIO_RequestError: neopixel_feed = io.create_new_feed("neopixel") board.DISPLAY.show(group) print("ready") last_color = 257 last_index = 0 while True: p = ts.touch_point if p: x = math.floor(p[0] / 80)
except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) try: # Get the 'digital' feed from Adafruit IO digital_feed = io.get_feed("digital") except AdafruitIO_RequestError: # If no 'digital' feed exists, create one digital_feed = io.create_new_feed("digital") # Set up LED LED = DigitalInOut(board.D13) LED.direction = Direction.OUTPUT while True: # Get data from 'digital' feed print("getting data from IO...")
while not esp.is_connected: try: esp.connect_AP(secrets["ssid"], secrets["password"]) except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Get the 'enge-1216.digital' feed from Adafruit IO digital_feed = io.get_feed("enge-1216.digital") # Get the 'enge-1216.alarm' feed from Adafruit IO alarm_feed = io.get_feed("enge-1216.alarm") # Get the 'enge-1216.alarm-default-days' feed from Adafruit IO days_feed = io.get_feed("enge-1216.alarm-default-days") # Get the 'enge-1216.alarm-time' feed from Adafruit IO time_feed = io.get_feed("enge-1216.alarm-time") # Get the 'enge-1216.skip-next-alarm' feed from Adafruit IO skip_feed = io.get_feed("enge-1216.skip-next-alarm")
pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) # Wi-Fi connectivity fails with error messages, not specific errors, so this except is broad. except Exception as e: # pylint: disable=broad-except print(e) go_to_sleep(60) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Turn on the LED to indicate data is being sent. led.value = True # Print data values to the serial console. Not necessary for Adafruit IO. print("Current battery voltage: {0} V".format(battery_voltage)) print("Current battery percent: {0} %".format(battery_percent)) # Adafruit IO sending can run into issues if the network fails! # This ensures the code will continue to run. try: print("Sending data to AdafruitIO...") # Send data to Adafruit IO send_io_data(io.create_and_get_feed("battery-voltage"), battery_voltage) send_io_data(io.create_and_get_feed("battery-percent"), battery_percent) print("Data sent!")
# pylint: disable=no-name-in-module,wrong-import-order try: from secrets import secrets except ImportError: print( "WiFi and Adafruit IO credentials are kept in secrets.py, please add them there!" ) raise # Connect to Wi-Fi using credentials from secrets.py wifi.radio.connect(secrets["ssid"], secrets["password"]) print("Connected to {}!".format(secrets["ssid"])) print("IP:", wifi.radio.ipv4_address) pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) # Obtain Adafruit IO credentials from secrets.py aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Create temperature variable using the CPU temperature and print the current value. temperature = microcontroller.cpu.temperature print("Current CPU temperature: {0} C".format(temperature)) # Create and get feed. io.send_data(io.create_and_get_feed("cpu-temperature-feed")["key"], temperature)
esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) ADAFRUIT_IO_USER = secrets['aio_username'] ADAFRUIT_IO_KEY = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(ADAFRUIT_IO_USER, ADAFRUIT_IO_KEY, wifi) # for i in range(128,168): # print(i,' = ', chr(i)) # Set up ADT7410 sensor i2c_bus = busio.I2C(board.SCL, board.SDA) adt = adafruit_adt7410.ADT7410(i2c_bus, address=0x48) adt.high_resolution = True # Set up an analog light sensor on the PyPortal adc = AnalogIn(board.LIGHT) display = board.DISPLAY # Backlight function
esp = adafruit_espatcontrol.ESP_ATcontrol(uart, 115200, reset_pin=resetpin, rts_pin=rtspin, debug=False) wifi = adafruit_espatcontrol_wifimanager.ESPAT_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets['aio_username'] aio_key = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) try: # Get the 'temperature' feed from Adafruit IO temperature_feed = io.get_feed('temperature') except AdafruitIO_RequestError: # If no 'temperature' feed exists, create one temperature_feed = io.create_new_feed('temperature') # Send random integer values to the feed random_value = randint(0, 50) print('Sending {0} to temperature feed...'.format(random_value)) io.send_data(temperature_feed['key'], random_value) print('Data sent!') # Retrieve data value from the feed
# pylint: disable=no-name-in-module,wrong-import-order try: from secrets import secrets except ImportError: print("WiFi secrets are kept in secrets.py, please add them there!") raise # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] requests = adafruit_requests.Session(socket, ssl.create_default_context()) # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) try: # Get the 'temperature' feed from Adafruit IO temperature_feed = io.get_feed("temperature") except AdafruitIO_RequestError: # If no 'temperature' feed exists, create one temperature_feed = io.create_new_feed("temperature") # Send random integer values to the feed random_value = randint(0, 50) print("Sending {0} to temperature feed...".format(random_value)) io.send_data(temperature_feed["key"], random_value) print("Data sent!") # Retrieve data value from the feed
except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) try: # Get the 'location' feed from Adafruit IO location_feed = io.get_feed("location") except AdafruitIO_RequestError: # If no 'location' feed exists, create one location_feed = io.create_new_feed("location") # Set data data_value = 42 # Set up metadata associated with data_value metadata = {"lat": 40.726190, "lon": -74.005334, "ele": -6, "created_at": None} # Send data and location metadata to the 'location' feed
esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET) spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) ADAFRUIT_IO_USER = secrets['aio_username'] ADAFRUIT_IO_KEY = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(ADAFRUIT_IO_USER, ADAFRUIT_IO_KEY, wifi) # create an i2c object i2c = busio.I2C(board.SCL, board.SDA) # instantiate the sensor objects veml = adafruit_veml6075.VEML6075(i2c, integration_time=100) sgp30 = adafruit_sgp30.Adafruit_SGP30(i2c) bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c) # change this to match the location's pressure (hPa) at sea level bme280.sea_level_pressure = 1013.25 # init. the graphics helper gfx = weatherstation_helper.WeatherStation_GFX() # init. the ADC
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" #status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets['aio_username'] aio_key = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) try: # Get the 'location' feed from Adafruit IO location_feed = io.get_feed('location') except AdafruitIO_RequestError: # If no 'location' feed exists, create one location_feed = io.create_new_feed('location') # Set data data_value = 42 # Set up metadata associated with data_value metadata = {'lat': 40.726190, 'lon': -74.005334, 'ele': -6, 'created_at': None} # Send data and location metadata to the 'location' feed
except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Create a new 'circuitpython' feed with a description print("Creating new Adafruit IO feed...") feed = io.create_new_feed("circuitpython", "a Adafruit IO CircuitPython feed") # List a specified feed print("Retrieving new Adafruit IO feed...") specified_feed = io.get_feed("circuitpython") print(specified_feed) # Delete a specified feed by feed key print("Deleting feed...") io.delete_feed(specified_feed["key"]) print("Feed deleted!")
except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Weather Location ID # (to obtain this value, visit # https://io.adafruit.com/services/weather # and copy over the location ID) location_id = 2127 print("Getting forecast from IO...") # Fetch the specified record with current weather # and all available forecast information. forecast = io.receive_weather(location_id) # Get today's forecast current_forecast = forecast["current"] print("It is {0} and {1}*F.".format(current_forecast["summary"],
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" #status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets['aio_username'] aio_key = secrets['aio_key'] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) # Create a new 'circuitpython' feed with a description print('Creating new Adafruit IO feed...') feed = io.create_new_feed('circuitpython', 'a Adafruit IO CircuitPython feed') # List a specified feed print('Retrieving new Adafruit IO feed...') specified_feed = io.get_feed('circuitpython') print(specified_feed) # Delete a specified feed by feed key print('Deleting feed...') io.delete_feed(specified_feed['key']) print('Feed deleted!')
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) # Random Data ID # (to obtain this value, visit # https://io.adafruit.com/services/words # and copy over the location ID) random_data_id = 1234 while True: try: print("Fetching random data from Adafruit IO...") random_data = io.receive_random_data(random_data_id) print("Random Data: ", random_data["value"]) print("Data Seed: ", random_data["seed"]) print("Waiting 1 minute to fetch new randomized data...") except (ValueError, RuntimeError) as e:
except ImportError: print("WiFi secrets are kept in secrets.py, please add them there!") raise print("Connecting to %s" % secrets["ssid"]) wifi.radio.connect(secrets["ssid"], secrets["password"]) print("Connected to %s!" % secrets["ssid"]) print("My IP address is", wifi.radio.ipv4_address) # Test and debug Connection ipv4 = ipaddress.ip_address("8.8.4.4") print("Ping google.com: %f ms" % wifi.radio.ping(ipv4)) pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) io = IO_HTTP(secrets['aio_username'], secrets['aio_key'], requests) # initialize the 3v panel meters analog_hours = pulseio.PWMOut(board.A3, frequency=5000, duty_cycle=0) analog_minutes = pulseio.PWMOut(board.A4, frequency=5000, duty_cycle=0) analog_seconds = pulseio.PWMOut(board.A5, frequency=5000, duty_cycle=0) # set the panel meters to zero (0) based on their offsets # (this could be different for everyone) analog_hours.duty_cycle = HOUR_OFFSET analog_minutes.duty_cycle = MIN_OFFSET analog_seconds.duty_cycle = SEC_OFFSET # initialize hours, minutes and seconds to 0 # this forces a sync on the intial loop hours = 0
pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) # Wi-Fi connectivity fails with error messages, not specific errors, so this except is broad. except Exception as e: # pylint: disable=broad-except print(e) go_to_sleep(60) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Turn on the LED to indicate data is being sent. led.value = True # Print data values to the serial console. Not necessary for Adafruit IO. print("Current BME280 temperature: {0} C".format(temperature)) print("Current BME280 temperature: {0} F".format(temperature_f)) print("Current BME280 humidity: {0} %".format(humidity)) print("Current BME280 pressure: {0} hPa".format(pressure)) print("Current battery voltage: {0} V".format(battery_voltage)) print("Current battery percent: {0} %".format(battery_percent)) # Adafruit IO sending can run into issues if the network fails! # This ensures the code will continue to run. try: print("Sending data to AdafruitIO...")
color_index = 0 dotstar[0] = (0, 0, 255, 0.5) for network in wifi.radio.start_scanning_networks(): print(network, network.ssid, network.rssi, network.channel) wifi.radio.stop_scanning_networks() dotstar[0] = (0, 0, 0, 0.5) print("try first connect") dotstar[0] = (0, 255, 0, 0.5) print(wifi.radio.connect(ssid, ssid_pass)) dotstar[0] = (0, 0, 0, 0.5) print("wifi connected") pool = socketpool.SocketPool(wifi.radio) requests = adafruit_requests.Session(pool, ssl.create_default_context()) io = IO_HTTP(aio_username, aio_key, requests) dotstar[0] = (255, 0, 0, 0.5) feed = None try: feed = io.get_feed(aio_feed_name) except AdafruitIO_RequestError: feed = io.create_new_feed(aio_feed_name) while True: try: dotstar[0] = (0, 0, 0, 0.5) t = sensor.temperature * (9.0 / 5.0) + 32.0 temperature = '%.1f' % (t) if (wifi.radio.ap_info is None):
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset) status_light = neopixel.NeoPixel(board.NEOPIXEL, 1, brightness=0.2) # Uncomment for Most Boards """Uncomment below for ItsyBitsy M4""" # status_light = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1, brightness=0.2) wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager( esp, secrets, status_light) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Create an instance of the Adafruit IO HTTP client io = IO_HTTP(aio_username, aio_key, wifi) try: # Get the 'light' feed from Adafruit IO light_feed = io.get_feed("light") except AdafruitIO_RequestError: # If no 'light' feed exists, create one light_feed = io.create_new_feed("light") # Set up an analog light sensor on the PyPortal adc = AnalogIn(board.LIGHT) while True: light_value = adc.value print("Light Level: ", light_value) print("Sending to Adafruit IO...")
except RuntimeError as e: print("could not connect to AP, retrying: ", e) continue print("Connected to", str(esp.ssid, "utf-8"), "\tRSSI:", esp.rssi) socket.set_interface(esp) requests.set_socket(socket, esp) # Set your Adafruit IO Username and Key in secrets.py # (visit io.adafruit.com if you need to create an account, # or if you need your Adafruit IO key.) aio_username = secrets["aio_username"] aio_key = secrets["aio_key"] # Initialize an Adafruit IO HTTP API object io = IO_HTTP(aio_username, aio_key, requests) # Random Data ID # (to obtain this value, visit # https://io.adafruit.com/services/words # and copy over the location ID) random_data_id = 1234 while True: print("Fetching random data from Adafruit IO...") random_data = io.receive_random_data(random_data_id) print("Random Data: ", random_data["value"]) print("Data Seed: ", random_data["seed"]) print("Waiting 1 minute to fetch new randomized data...") time.sleep(60)