Skip to content

Instantly share code, notes, and snippets.

@joeycastillo
Created January 17, 2020 00:18
Show Gist options
  • Save joeycastillo/a9c8143ca01d33e737d48b490dbf465b to your computer and use it in GitHub Desktop.
Save joeycastillo/a9c8143ca01d33e737d48b490dbf465b to your computer and use it in GitHub Desktop.
Fetch a weather forecast for the New York area with CircuitPython!
import board
import busio
from digitalio import DigitalInOut
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
from adafruit_esp32spi import adafruit_esp32spi
import adafruit_requests as requests
esp32_cs = DigitalInOut(board.D13)
esp32_reset = DigitalInOut(board.D12)
esp32_ready = DigitalInOut(board.D11)
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)
requests.set_socket(socket, esp)
while not esp.is_connected:
try:
esp.connect_AP(b'YOUR_SSID', b'YOUR_PASSWORD')
except RuntimeError as e:
continue
def print_weather(url):
r = requests.get(url)
print("Fetching:", url)
j = r.json()
periods = j['properties']['periods']
for period in periods:
print('-'*10)
print(period['name'], ':', period['detailedForecast'])
print_weather("https://api.weather.gov/gridpoints/OKX/34,34/forecast")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment