Harness the power of nature with your PyPortal by building an internet-connected Weather Station!

This guide will guide you through building an internet-connected weather station, complete with sensors to measure everything from the wind speed to the amount of volatile organic compounds which are present in the air. 

This weather-station doesn't just display temperature on the PyPortal's 3.2″ 320 x 240 color TFT screen - it also wirelessly sends data to Adafruit IO for real-time visualization and logging using the easy-to-use Adafruit IO CircuitPython library.

Adafruit IO

Adafruit IO is the easiest way to stream, log, and interact with your data. It's built from the ground up to be easy to use - we do the hard stuff so you can focus on the fun stuff.

Data such as relative humidity and light levels can be hard to visualize and quantify - Adafruit IO makes it simple. Send IO your data and it can store the data for up to thirty days. Want to visualize it? Display your data using Blocks such as charts, graphs, gauges, and more!

CircuitPython Code

Adafruit's CircuitPython is great for building Internet-of-Things projects. Using the Adafruit IO CircuitPython module, you can easily send data to Adafruit IO, receive data from Adafruit IO, and easily manipulate data with the powerful Adafruit IO API.

You can rapidly update your code without having to compile and store WiFi and API secret keys on the device. This means that there's no editing code and re-uploading whenever you move the PyPortal to another network - just update a file and you're set. 

Prerequisite Guides

Learn all about the Adafruit PyPortal by checking out the guide. It has documentation and tour walk through of the pin outs and components. Libraries for Circuit Python and demo code is available.

Adafruit PyPortal Guide

If you're new to either Adafruit IO or CircuitPython, take a moment to walk through the following guides to get you started and up-to-speed:


You will need the following parts for this guide:

Front view of a Adafruit PyPortal - CircuitPython Powered Internet Display with a pyportal logo image on the display.
PyPortal, our easy-to-use IoT device that allows you to create all the things for the “Internet of Things” in minutes. Make custom touch screen interface...
In Stock
Anemometer Wind Speed Sensor with three cups and cable
An anemometer is a device used for measuring wind speed, and is a common weather station instrument. This well made anemometer is designed to sit outside and measure wind speed with...
In Stock
Angled shot of a Adafruit SGP30 Air Quality Sensor Breakout.
Breathe easy with the SGP30 Multi-Pixel Gas Sensor, a fully integrated MOX gas sensor. This is a very fine air quality sensor from the sensor experts...
In Stock
Adafruit BME280 I2C or SPI Temperature Humidity Pressure Sensor
Bosch has stepped up their game with their new BME280 sensor, an environmental sensor with temperature, barometric pressure and humidity! This sensor is great for all sorts...
In Stock
1 x JST PH 4-Pin to Male Header
JST PH 4-Pin to Male Header Cable - I2C STEMMA Cable - 200mm
1 x JST PH 3-Pin to Male Header
JST PH 3-Pin to Male Header Cable - 200mm
1 x 9V Power Adapter
9 VDC 1000mA regulated switching power adapter
1 x Female DC Power Adapter
Female DC Power adapter - 2.1mm jack to screw terminal block


You'll need some extra supplies to finish this project. If you do not have them already, pick some up from Adafruit:

1 x USB Cable
USB cable - USB A to Micro-B - 3 foot long
1 x Breadboard
Half-size breadboard
1 x Hook-up Wire Spool Set
Hook-up Wire Spool Set - 22AWG Solid Core - 6 x 25 ft
1 x Aligator Clip to Male Jumper Wire
Small Alligator Clip to Male Jumper Wire Bundle - 6 Pieces

This guide was first published on Apr 02, 2019. It was last updated on Mar 01, 2024.

This page (Overview ) was last updated on Mar 01, 2019.

Text editor powered by tinymce.