# All the Internet of Things - Episode Four: Adafruit IO

## Introduction

https://www.youtube.com/watch?v=MW8d1TvHPek

## Hello!

Hello, and welcome to episode 4 of [Adafruit and Digi-Key’s “All the Internet of Things”](https://www.digikey.com/en/resources/iot-resource-center/videos)! A six-part series that covers everything you need to know about IoT. [In the previous episode, we discussed **services**](https://www.youtube.com/watch?v=29iR-AzbNSA&t=555s) --services are what you use to route events to and from your IoT devices, coordinate real-time communication between multiple devices, and record, process and visualize the data that your “things” are producing. We also talked about some large cloud services such as [Amazon AWS IoT](https://aws.amazon.com/iot/), [Google Cloud IoT](https://cloud.google.com/solutions/iot/), and [Microsoft Azure IoT Suite](https://azure.microsoft.com/en-us/overview/iot/).

You might find that _although_ these services provide robust security and sophisticated deployment tools, getting started with using their comprehensive technology is intimidating.

_If only_ there were some IoT service that proved easy to understand and implement...maybe with [high quality documentation](https://io.adafruit.com/api/docs/) with examples, [learning guides](https://learn.adafruit.com/category/adafruit-io), and [community support](https://forums.adafruit.com/viewforum.php?f=56)...and, _maybe just maybe_, an IoT service that provided opens source solutions with a low to no-cost point of entry…

Well, on today’s episode, we're happy to do a formal introduction to just that -- [our very own Adafruit IO!](https://io.adafruit.com/)

# All the Internet of Things - Episode Four: Adafruit IO

## What is Adafruit IO?

https://www.youtube.com/watch?v=JQShFPVTEV4

## Internet of Things, the Adafruit way

Here at Adafruit, we manufacture, support and sell all of these amazing [sensors](https://www.adafruit.com/category/35), [LEDs](https://www.adafruit.com/category/37), and [robotics](https://www.adafruit.com/category/227). So, naturally, we wanted a good way to interact with them over the Internet. We’ve covered a bunch of great services for datalogging and communicating with your controller over the web, but we wanted a service that fit the needs of the Prototyping & Maker communities AND was designed for engineers of all skill levels. So we decided to build our own system - that is how Adafruit IO got started.

Like many of the services we’ve introduced, we maintain both [MQTT](https://learn.adafruit.com/welcome-to-adafruit-io/mqtt-api-documentation-2) and [REST](https://io.adafruit.com/api/docs/) APIs, which is how you will be communicating with Adafruit IO over the Internet. But you don’t have to be an expert programmer! We’ve built [robust](https://learn.adafruit.com/welcome-to-adafruit-io/arduino-and-adafruit-io) [client](https://learn.adafruit.com/welcome-to-adafruit-io/python-and-adafruit-io-2) [libraries](https://github.com/adafruit/Adafruit_CircuitPython_AdafruitIO) with [lots of examples](https://github.com/adafruit/Adafruit_IO_Arduino/tree/master/examples), so you can probably start with some ready-to-go code.

Once you’ve got a device connected, you can control and monitor using configurable dashboards. The web dashboards come with a dozen widgets that allow for easy 2-way interaction with your devices. You’ll get buttons, gauges, maps, sliders.

![adafruit_io_animation.gif](https://cdn-learn.adafruit.com/assets/assets/000/072/553/medium640thumb/adafruit_io_animation.jpg?1552324761)

Outside of the dashboard, you can create triggers to, say, email you when the water sensor value goes above 9000.

![Diagram of a Block based Action, showing a trigger if Water is over 9000, sending an email with template placeholders.](https://cdn-learn.adafruit.com/assets/assets/000/136/826/medium640/sensors_Screenshot_2025-05-14_145916.png?1747231253)

[Adafruit IO](https://io.adafruit.com/welcome) is available and **free** for anyone with an Adafruit account. For the vast number of people starting out with IoT, the basic account will do everything they need. Adafruit IO&nbsp;[plus](https://io.adafruit.com/plus) members get some nifty extras and more bandwidth.

This video and guide will go over all things Adafruit IO including how to get started and use Adafruit IO to make the most out of your projects.

Now that you know what you can expect when using Adafruit IO, let’s focus on how to get started!

For more information on Adafruit IO please [check out this learn guide!](https://learn.adafruit.com/welcome-to-adafruit-io)

Or if you'd like more information on REST and MQTT we have a [learn guide](https://learn.adafruit.com/mqtt-adafruit-io-and-you) for that too!

# All the Internet of Things - Episode Four: Adafruit IO

## What Hardware or Transport to Use

https://youtu.be/7c7IqNM1xmk

## Hardware

Some services lock you into using just their hardware or [transport](https://learn.adafruit.com/alltheiot-transports) - Adafruit IO is agnostic about what it is that’s connecting. In theory, _anything that can send messages over the Internet will work_. But we do have some recommendations.

## Arduino

The [Adafruit Feather line of microcontrollers](http://adafruit.com/feather) are low cost, have built-in networking and battery charging, and are easy to program with [**our Arduino libraries**](https://github.com/adafruit/Adafruit_IO_Arduino).

If you are planning to use WiFi, the&nbsp;[Adafruit Feather HUZZAH with ESP8266](https://www.adafruit.com/product/2821) is a common choice for ultra-low cost, but has few GPIO.&nbsp;

[Adafruit Feather HUZZAH with ESP8266](https://www.adafruit.com/product/2821)&nbsp;is our take on an 'all-in-one' ESP8266 WiFi development board with built in USB and battery charging. Its an&nbsp;ESP8266 WiFi module with all the extras you need, ready to rock!

![adafruit_io_f_HuzzahESP8266.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/555/medium640/adafruit_io_f_HuzzahESP8266.jpg?1552325300)

For more power but still keeping the built-in WiFi, the&nbsp;[Adafruit HUZZAH ESP32&nbsp;](https://www.adafruit.com/product/3405) is an upgrade with more pins and a beefier chip.

[The Adafruit HUZZAH32&nbsp;is our&nbsp; **ESP32-based&nbsp;** Feather](https://www.adafruit.com/product/3405), made with the official WROOM32 module. We packed everything you love about Feathers: built in USB-to-Serial converter, automatic bootloader reset, Lithium Ion/Polymer charger, and just about all of the GPIOs brought out so you can use it with any of our Feather Wings.

![adafruit_io_esp32.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/258/medium640/adafruit_io_esp32.jpg?1552325409)

The&nbsp;[Adafruit Feather M0 WiFi&nbsp;w/ **ATWINC1500&nbsp;**](https://www.adafruit.com/product/3010) board gives you SAMD21 ARM Cortex with a separate WiFi module, good if you need native USB, or have existing ARM code to run and don’t want to use a different core chipset. These would be programmed in C.

![adafruit_io_m0-wifi.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/259/medium640/adafruit_io_m0-wifi.jpg?1552325543)

And of course, you can also use **Bluetooth Low Energy** and tether using [our Bluefruit App](https://learn.adafruit.com/bluefruit-le-connect/). For that, we recommend our [nRF52832](https://www.adafruit.com/product/3406) or [nRF52840](https://www.adafruit.com/product/4062) Bluefruit Feathers, and you’ll also need an iOS or Android phone that will stay on all the time to perform the data transfer.

![adafruit_io_4062-02.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/557/medium640/adafruit_io_4062-02.jpg?1552326134)

![adafruit_io_3406-08.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/558/medium640/adafruit_io_3406-08.jpg?1552326189)

## Python

If battery life and portability isn’t as important, [Raspberry Pi](https://www.adafruit.com/raspberrypi) computers and other single-board computers are also a great choice. These tend to have Ethernet as well as WiFi built in. The Linux operating system will take care of all of the networking for you, so it’s incredibly easy to get started, and you can use [Python](https://learn.adafruit.com/welcome-to-adafruit-io/python-and-adafruit-io-2) which is higher level and easier to use than C.

[The Raspberry Pi 3 Model B+](https://www.adafruit.com/product/3775) boasts a 64-bit quad core processor, 5GHz wireless LAN and faster (300mbps) Ethernet. If you'd like to have a beefier hardware platform to use with Adafruit IO and possibly some more intensive libraries (such as OpenCV) - this is the ideal hardware platform for your project..&nbsp;

![adafruit_io_rpi.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/261/medium640/adafruit_io_rpi.jpg?1552325652)

[The Raspberry Pi Zero W](https://www.adafruit.com/product/3400) offers all the benefits of the full-sized Pi and built-in WiFi. This board is&nbsp;_perfect_&nbsp;for Adafruit IO projects which require a small form factor.

![adafruit_io_3400-00.jpg](https://cdn-learn.adafruit.com/assets/assets/000/072/556/medium640/adafruit_io_3400-00.jpg?1552325676)

For more information on using Adafruit IO with our Feather Huzzah ESP8266, please [check out this learn guide](https://learn.adafruit.com/adafruit-io-basics-esp8266-arduino)!

# All the Internet of Things - Episode Four: Adafruit IO

## How Adafruit IO Works

https://www.youtube.com/watch?v=07l5gQy9MU8&feature=youtu.be

## **How Adafruit IO Works**

There’s two halves to every service online - the Back End, where data is handled, and the Front End, where you use a web browser to interact. For most Internet services you use on a day-to-day basis, you don’t deal with the Back End at all - it doesn’t matter how that restaurant got all their dishes listed on the website, as long as you can order them for delivery.

On Adafruit IO, you’ll be dealing with both halves.

## **The Adafruit IO Back End**

The back end is where you’ll be sending your sensor data to and from our server, it’s literally named **[A](http://io.adafruit.com)[dafruit IO](http://io.adafruit.com)&nbsp;**(very easy to remember). You can do send/receive data in a two ways, with REST or MQTT. Which one you use will depend a lot on your hardware, bandwidth, and language needs. We covered these extensively in previous videos so go watch those if you haven’t yet. We recommend REST for your first project, it’s easier to understand and debug.

Either way, once you’ve picked your hardware and transport, check how you want to program it and choose one of our provided libraries. We’ve got code and examples for [Arduino C/C++](https://github.com/adafruit/Adafruit_IO_Arduino), [Python](https://github.com/adafruit/Adafruit_IO_Python), [node.js](https://github.com/adafruit/adafruit-io-node-client) and even [Golang](https://github.com/adafruit/io-client-go)!

There's also a no-code firmware called [WipperSnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper/welcome-to-wippersnapper) that makes IOT projects really easy to configure.

## Accounts and the Adafruit IO Key
Start by [registering online for an account at Adafruit](https://accounts.adafruit.com/users/sign_up).

![adafruit_io_account.png](https://cdn-learn.adafruit.com/assets/assets/000/072/559/medium640/adafruit_io_account.png?1552326796)

Once you’re logged in, you can retrieve your API key.

Click&nbsp; **View AIO Key&nbsp;** on the sidebar, then **copy the** `Active Key` to somewhere safe - we'll be using it later.

![adafruit_io_io_key.png](https://cdn-learn.adafruit.com/assets/assets/000/072/560/medium640/adafruit_io_io_key.png?1552326977)

This key is important, it unlocks access to Adafruit IO. You’ll be programming it and your username into every one of your projects. If your key is lost or compromised, you can always generate a new key, but you’ll have to update all your existing projects. Don’t share your key with others!

## Adafruit IO Feeds

Now let’s check out the way we store data in Adafruit IO - after all that’s what we’re here for! Data on IO is kept in time-series databases called **feeds**. Each feed contains time-stamped data points. The data points don’t have to be numbers, they can be _any_ type of data.

For example, you can store numbers - say for environmental data like temperature or humidity.

Numbers can also be used for controlling hardware, like a robot’s motor throttle.

Human-readable ASCII strings are also common, often displayed either on a dashboard or on the device’s display. Finally, binary data can be saved as well - we strongly recommend encoding it in base64 so you can store/retrieve it with REST and JSON. For example, JPG encoded photos could be base64 encoded, then uploaded. Or if you have a firmware OTA update, you could store it as ASCII Intel HEX or base64 encoded data.

In addition to the main storage data chunk, you can also attach _metadata_ - the first and most obvious metadata is the **Time** that the data was entered into Adafruit IO - this is handled for you when you post data to the feed. The second is **Location** , where you can set where on Earth the data came from.

That _metadata_ is something you have to add yourself, we don’t provide a geotagging service at this time, but if you have GPS module or use a geo-IP service, you can add it on every post. Location addition is only possible via the REST API, you can see the JSON formatting for adding it [here.](https://io.adafruit.com/api/docs/#operation/createData "JSON Formatting")

# All the Internet of Things - Episode Four: Adafruit IO

## Creating a New Feed

https://www.youtube.com/watch?v=Hn2eX-LdRZo&amp;feature=youtu.be

## Step by Step

Let’s create a new feed to demonstrate how this all works.

Log into your Adafruit IO account and [**visit the&nbsp;Feeds&nbsp;page**](https://io.adafruit.com/feeds).

Now in Actions **select** &nbsp; **Create a New Feed** &nbsp;- we’ll **call this one** &nbsp; **Temperature**.

_Voila_, a new feed has been created!

![sensors_Screen_Shot_2019-03-13_at_3.52.51_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/659/medium640/sensors_Screen_Shot_2019-03-13_at_3.52.51_PM.png?1552507425)

![sensors_Screen_Shot_2019-03-13_at_3.53.26_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/660/medium640/sensors_Screen_Shot_2019-03-13_at_3.53.26_PM.png?1552507437)

Next, to see what happens if&nbsp;_incorrect_ data is added. This time, when we add data - **lets put in a string instead of a number**.

Now to test it out by manually adding a value. Click **Add Data** and type in the current temperature. Once you’ve done that, you’ll see the feed automatically update with the timestamp metadata.&nbsp;

From the temperature feed, **click Add Data** and type in the current temperature. Once you’ve done that you’ll see the feed automatically update with the timestamp metadata.

![sensors_Screen_Shot_2019-03-14_at_12.56.49_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/776/medium640/sensors_Screen_Shot_2019-03-14_at_12.56.49_PM.png?1552582675)

![sensors_Screen_Shot_2019-03-14_at_12.58.49_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/781/medium640/sensors_Screen_Shot_2019-03-14_at_12.58.49_PM.png?1552582756)

![sensors_Screen_Shot_2019-03-14_at_12.59.42_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/782/medium640/sensors_Screen_Shot_2019-03-14_at_12.59.42_PM.png?1552582810)

Next, let’s see what happens if we add _incorrect_ data. This time, when we **Add** lets put in a string instead of a number.&nbsp;You’ll notice that Adafruit IO doesn’t stop you from adding it, _it does not do any type checking!_

That’s something you can use if it’s helpful, or make sure your code filter out.&nbsp;

![sensors_Screen_Shot_2019-03-14_at_3.21.17_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/811/medium640/sensors_Screen_Shot_2019-03-14_at_3.21.17_PM.png?1552591365)

We can remove data points, such as this incorrect one, quite easily by selecting it and then **clicking**  **Remove Selected Data**.&nbsp;

![sensors_Screen_Shot_2019-03-14_at_3.24.36_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/812/medium640/sensors_Screen_Shot_2019-03-14_at_3.24.36_PM.png?1552591509)

![sensors_Screen_Shot_2019-03-14_at_3.24.48_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/813/medium640/sensors_Screen_Shot_2019-03-14_at_3.24.48_PM.png?1552591523)

While I’m here, you ought to know, you can always&nbsp; **Download All Data** &nbsp;which will fetch all the data in the feed as a structured JSON or CSV text file.

![adafruit_io_Screen_Shot_2019-02-22_at_4.20.54_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/276/medium640/adafruit_io_Screen_Shot_2019-02-22_at_4.20.54_PM.png?1552328211)

![adafruit_io_download_feed.png](https://cdn-learn.adafruit.com/assets/assets/000/072/567/medium640/adafruit_io_download_feed.png?1552328254)

For more information on using feeds in Adafruit IO,&nbsp;[check out this Learn Guide](https://learn.adafruit.com/adafruit-io-basics-feeds).

# All the Internet of Things - Episode Four: Adafruit IO

## Sending Data From Your Thing

https://www.youtube.com/watch?v=04mx4ZpxVUc

## Code

Now that we’ve got the feed set up, we’ll want to automatically send data from our "thing". Let's show how to do that with both a Raspberry Pi and Python as well as a Feather ESP8266 and C++. For our sensor, we’ll use the [ADT7410](https://www.adafruit.com/product/4089 "ADT7410 High Accuracy I2C Temperature Sensor Breakout Board") from Analog Devices, which is a high precision temperature sensor with an I2C interface.

# Linux + Python Example
[Click here for info on how to build this project in detail!](https://learn.adafruit.com/iot-temperature-logger-with-python-and-adafruit-io)
Lets start with a Raspberry Pi with Python. This assumes we’ve already set up the Pi’s operating system and WiFi. We wire up the sensor with I2C and&nbsp;[run the Python script on this page](https://learn.adafruit.com/iot-temperature-logger-with-python-and-adafruit-io/python-code).

![adafruit_io_raspberry_pi_ezgif.com-video-to-gif_(2).gif](https://cdn-learn.adafruit.com/assets/assets/000/072/572/medium640thumb/adafruit_io_raspberry_pi_ezgif.com-video-to-gif_%282%29.jpg?1552329345)

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/adafruitio-adt7410/adafruit_io_adt7410.py

As you can see, this is very simple and straightforward - we only have to enter in our **Username** and **AIO Key**. The code will connect to the feed, initialize the sensor, and then execute a loop, sending the temperature every 30 seconds.

Meanwhile, over [at the Adafruit IO website, we can&nbsp;](http://io.adafruit.com/monitor)**[monitor](http://io.adafruit.com/monitor)&nbsp;**what data is coming in. This is very handy if you’re having an issue - you can see the connected IP addresses and what feeds they are writing to. You can also see errors.

_Perhaps a typo snuck into your code_, it may appear here!

![adafruit_io_Screen_Shot_2019-02-22_at_4.59.53_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/278/medium640/adafruit_io_Screen_Shot_2019-02-22_at_4.59.53_PM.png?1552329027)

# Microcontroller + Arduino Example
[Click here to follow along and build this project in detail!](https://learn.adafruit.com/iot-temperature-logger-with-arduino-and-adafruit-io)
Likewise, here’s an example using the ESP8266 Feather and an ADT7410 wired up on a breadboard. With the ESP Feather, we’re stuck with a microcontroller rather than a full computer, so we don’t use Python, instead we’ll stick to “Arduino” C++. The tradeoff is that we have much lower power usage, and faster boot, but we also have to be more careful with memory and link management.&nbsp;[Check out the Arduino code on this guide](https://learn.adafruit.com/iot-temperature-logger-with-arduino-and-adafruit-io).

![adafruit_io_weather_feather_vid_(1).gif](https://cdn-learn.adafruit.com/assets/assets/000/072/571/medium640thumb/adafruit_io_weather_feather_vid_%281%29.jpg?1552329242)

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/adafruitio-adt7410/adafruitio-adt7410.ino

Like the Python code, it’s pretty simple - we need our **Username** and **AIO Key**. We _also_ need the WiFi credentials since there’s no operating system to do that for us. Like the Pi script, we connect, initialize the sensor and send temperature data every 10 seconds.

And at Adafruit IO, we have the same monitored data:

![](https://cdn-learn.adafruit.com/assets/assets/000/072/573/medium800/adafruit_io_weather_monitor_Data.png?1552329655)

Once we’re sure that the monitor is properly indicating what data is coming in, we can check our feeds. Aha! We’ve got our temperature data feeds from both the Pi and Feather.

For more information on the basics of using Adafruit IO with temperature and humidity sensors, [check out this learn guide](https://learn.adafruit.com/adafruit-io-basics-temperature-and-humidity)!

# All the Internet of Things - Episode Four: Adafruit IO

## Advanced Feeds

https://www.youtube.com/watch?v=9rYpbenk0x8&amp;feature=youtu.be

## Feed Options

Now that your feed is running, lets see what else we can do. Adafruit is always adding new ways to use and customize your feeds. &nbsp;When you select the feed, you’ll have a few options running down the right side of the screen.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/574/medium800/adafruit_io_IO_-_Feed__huzzah_temperature.png?1552330216)

First up is the&nbsp; **Feed Info** &nbsp;- which is sort of what you expect, you can change the human-readable name, the feed name, as well as add a description. We also have a URL reference for when you program in your devices.

![adafruit_io_Screen_Shot_2019-02-25_at_11.52.51_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/281/medium640/adafruit_io_Screen_Shot_2019-02-25_at_11.52.51_AM.png?1552331318)

Next down is&nbsp; **Privacy** &nbsp;- you can make feeds public or private. Public feeds aren’t&nbsp;_writable_&nbsp;by others, but they&nbsp;_can_&nbsp;see the data that goes into the feed,&nbsp;_even if they don’t have an Adafruit IO account!_&nbsp;

They can view the feed webpage using any browser, or fetch the JSON data over REST from any computer. MQTT usage will require an account. Private feeds are only visible to you, and you need to be logged in to Adafruit IO.

![adafruit_io_Screen_Shot_2019-02-25_at_12.32.11_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/282/medium640/adafruit_io_Screen_Shot_2019-02-25_at_12.32.11_PM.png?1552331355)

You might want more advanced sharing, since Privacy is a bit extreme - either everyone can see it or no-one can.&nbsp;

**Sharing** &nbsp;lets you share read or read-write privileges with other Adafruit IO account holders. They’ll need to have an account of course, and the feed is still owned by your account, but this means you don’t have to share API Keys with others (_which you shouldn’t do!_)

![adafruit_io_Screen_Shot_2019-02-25_at_12.33.37_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/288/medium640/adafruit_io_Screen_Shot_2019-02-25_at_12.33.37_PM.png?1552331431)

 **Feed History** &nbsp;allows you to turn on or off data storage per feed. By default the History setting is on, which allows you to track the history of a data feed.

You may want to turn this off, especially if you have a feed that has a big data payload, like binary data, and you don’t need previous values - remember that Free accounts on Adafruit IO have a limit of 30 days of history and a limit on the total storage amount.

![adafruit_io_Screen_Shot_2019-02-25_at_12.36.33_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/289/medium640/adafruit_io_Screen_Shot_2019-02-25_at_12.36.33_PM.png?1552331534)

Next up is&nbsp; **Notifications**. This is a pretty useful feature that is missing from many services - it is common to have a way to forward messages from your feeds, but often you want the opposite - a way to know if your feed&nbsp;_hasn’t_&nbsp;received messages. If you’ve programmed computers or microcontrollers, this is sort of the equivalent of a watchdog timer or a supervisory circuit.

Pick a time range that is at least two times larger than your expected data interval - from 10 minutes to 1 week, and you’ll get an email to your Adafruit IO account to let you know that the feed hasn’t been updated and you should check it out.

![adafruit_io_Screen_Shot_2019-02-25_at_12.38.50_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/292/medium640/adafruit_io_Screen_Shot_2019-02-25_at_12.38.50_PM.png?1552331638)

We’ll skip Webhooks for now, and go to **Disable Feed**. Free accounts have a limit on the number of feeds, so after you’ve used a feed, and you’re done with it, you may want to disable it. This keeps the data available for download, but doesn’t quite delete it. Once disabled, you can’t re-enable it!

![](https://cdn-learn.adafruit.com/assets/assets/000/072/293/medium800/adafruit_io_Screen_Shot_2019-02-25_at_12.40.23_PM.png?1551808356)

Last on the list is **Licensing** , which is useful if you plan on making your feeds public. You may want to set a Creative Commons license so people know your expectations for what they can do with your data. For more information about Creative Commons license types, visit [https://creativecommons.org/](https://creativecommons.org/).

![](https://cdn-learn.adafruit.com/assets/assets/000/072/294/medium800/adafruit_io_Screen_Shot_2019-02-25_at_12.41.57_PM.png?1551808385)

# All the Internet of Things - Episode Four: Adafruit IO

## WebHooks

https://www.youtube.com/watch?v=wkQyzyWv2Gw&amp;feature=youtu.be

## Communicating with Other Sites

OK, finally lets zoom back to **WebHooks**. As we mentioned in earlier videos, nearly every website and service on the internet has ways to communicate with _other_ sites. While REST is common, you can only ‘pull’ data over REST, which makes it high-traffic when you’re constantly polling for new data. Webhooks are how REST-API supporting sites support data ‘pushing’. For example, say you wanted to get a user’s latest Twitter message. Instead of constantly connecting to the twitter API every minute to check if a new message has been posted, &nbsp;you can ask Twitter to update a webhook URL on each post. That means Twitter will contact _you_ when there’s new data. But, as you can imagine, you need a webserver to listen for that posting. In this case, Adafruit IO can act as that webhook destination.

Adafruit IO only supports _receiving_ data at this time, we need a service that will publish data into a feed.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/072/295/medium800/adafruit_io_Screen_Shot_2019-02-25_at_12.52.10_PM.png?1551808477)

Once you have the raw webhook, we need to publish data to it. Once data is published to the raw webhook, it'll appear on the Adafruit IO Feed.

One of the big benefits of webhooks is when you have services that don’t update that often, but you want quick updates when they do. Also, most web services require an API key or authentication - which can be annoying to manage. Webhooks are often ‘free’ with services - so they can easily provide that glue to let you integrate Adafruit IO with other sites with little fuss.

Now, click **WebHook** to create a URL for data to feed into. Now, if you happen to have control over the webhook publication data to get it into the right format, you can get the data to publish values directly to a feed. That’s fairly complex though. It’s easier to have the webhook be a raw-data destination, where we’ll get the full JSON publication. Once you have the raw webhook, we need to publish data to it.

&nbsp;

![sensors_Screen_Shot_2019-03-13_at_4.50.49_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/685/medium640/sensors_Screen_Shot_2019-03-13_at_4.50.49_PM.png?1552510435)

![sensors_Screen_Shot_2019-03-13_at_4.51.22_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/686/medium640/sensors_Screen_Shot_2019-03-13_at_4.51.22_PM.png?1552510451)

Lets use github.com, which has extensive webhook support. In your account, go to Settings and then Webhook. Lets set up a webhook that will publish to our URL, make sure its posting **json** data, and we can customize what will trigger the webhook. In this case, let’s have it go off when someone _stars_ one of the Adafruit repositories. Save it and check the feed, you’ll see a new message arrived, that’s their way of testing. Now we can star some repositories, and see new entries come in immediately - way faster than trying to poll github.

![sensors_gif_1.gif](https://cdn-learn.adafruit.com/assets/assets/000/072/689/medium640thumb/sensors_gif_1.jpg?1552512759)

![sensors_gif_2.gif](https://cdn-learn.adafruit.com/assets/assets/000/072/690/medium640thumb/sensors_gif_2.jpg?1552512828)

![](https://cdn-learn.adafruit.com/assets/assets/000/072/693/medium800/sensors_Screen_Shot_2019-03-13_at_5.42.59_PM.png?1552513398)

One of the big benefits of webhooks is when you have services that don’t update that often, but you want quick updates when they do. Also, most web services require an API key or authentication - which can be annoying to manage. Webhooks are often ‘free’ with services - so they can easily provide that glue to let you integrate Adafruit IO with other sites with little fuss.

# All the Internet of Things - Episode Four: Adafruit IO

## Adafruit IO Front End--Dashboards

https://www.youtube.com/watch?v=EqccjLSLjqI&amp;feature=youtu.be

## User Interface with Feeds

Now that we’ve got data streaming into feeds on Adafruit IO, and learned of all the cool tricks you can do with your feeds, we can now view and analyze the projects data in real-time. If you want to interface with the feed data, you can always query and fetch data on any computer using the REST or MQTT API. There’s plenty of libraries for a computer programming language to do so.

Ultimately, almost every Internet of Things project will, at some level, need to provide a way for the things to deal with the humans. User interface considerations can range from a mobile app that allows a user to turn lights on and off and adjust the volume on a music player, to output features such as status monitors, analytics, and data visualization dashboards.

However, **making a custom app with a user interface can be a ton of work**. You can create a quick and simple UI using the built in dashboard capability in Adafruit IO. Of course, you should start with making all your feeds and getting them working well.

Once that’s done, you can visit the [**Dashboard**](https://io.adafruit.com/dashboards) section of the site. Free accounts can have up to 5 Dashboards, and they can have as many elements as you like.

One thing to note about elements is that _some_ of them pull from feed data, some push to your feed, and some do both. We’ll explain as we go through them. Note that since all the elements read from the underlying feeds, they can affect each other, which can be great for adding quick visual feedback!

From your account, click **Dashboards** and create a new dashboard. A dashboard is just a webpage you can edit. Click Plus to add a block. There are a wide range of great looking, functional blocks.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/302/medium800/adafruit_io_Screen_Shot_2019-02-25_at_1.28.52_PM.png?1551808778)

For more information about Adafruit IO Dashboards, [check out the Adafruit IO Basics: Dashboards guide on the Adafruit Learning System](https://learn.adafruit.com/adafruit-io-basics-dashboards/overview).

## Lines, and Toggles, and Buttons oh my!

OK, of course we’ve got that temperature data feed created earlier - let's display that data. We’ve got two options for reading values - we can put down a **line chart** block. This will plot the data much like the feed information page. That’s good for historical trend data. For instantaneous readings, with a nicer look than the plain text block, try the **gauge** block. Both of these are read-only blocks.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/831/medium800/sensors_custom_block5.png?1552596730)

You can click **edit** to customize your blocks. For example, we can set the min/max value for the gauge, note that the preview on the right will update immediately. Each block has various customizations that you can be adjusted. Try the **Test Value** area to see what different values will look like! **Click update when you're done**.

![sensors_edit_gauge2.png](https://cdn-learn.adafruit.com/assets/assets/000/072/832/medium640/sensors_edit_gauge2.png?1552596972)

Now that we’ve seen a few reading blocks, check out the **momentary push button**. This is sort of what it sounds like, its a button graphical element. When you click the button with your mouse or finger on touchscreen, it will send a message, let's say “ON” to the attached feed. When released, it sends another message, let's say “OFF”. &nbsp;It will only write data to a feed, not read data. You can change what data is written in the configuration page.

![sensors_Screen_Shot_2019-03-13_at_6.23.38_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/703/medium640/sensors_Screen_Shot_2019-03-13_at_6.23.38_PM.png?1552515909)

With non-numerical data, the plot and gauge won’t work. The **text** element will show the last value written to a feed. Let’s add one. We can edit the dashboard to place it right next to the button. Now note that one element is writing to a feed, and one is reading. So when I click the push button, the text updates immediately to match!

![sensors_Screen_Shot_2019-03-13_at_6.23.28_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/705/medium640/sensors_Screen_Shot_2019-03-13_at_6.23.28_PM.png?1552516062)

If you need more than just the latest value, the **Stream** block is sort of like a small feed monitor, it will display date-stamped feed information. We always recommend keeping one of these on each dashboard so you can easily monitor your feed data.

![sensors_Screen_Shot_2019-03-13_at_6.23.20_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/708/medium640/sensors_Screen_Shot_2019-03-13_at_6.23.20_PM.png?1552516373)

The **ON/OFF switch** is much like the button and is one of the few elements that’s both read and write.&nbsp;

![sensors_Screen_Shot_2019-03-13_at_6.23.33_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/709/medium640/sensors_Screen_Shot_2019-03-13_at_6.23.33_PM.png?1552516392)

Let’s add one so we can see how that works. Like the push button, it will send a message to a feed when pressed, and will alternate between ON and OFF (or whatever text you like).&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/072/818/medium800/sensors_Screen_Shot_2019-03-14_at_4.11.58_PM.png?1552594335)

Click the switch and you’ll see the feed/text block update. Unlike the button, it _also_ reads from the feed. So if you press the momentary button...aha! The switch also updates itself.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/819/medium800/sensors_Screen_Shot_2019-03-14_at_4.11.45_PM.png?1552594388)

There’s a few more elements we won’t go into detail - and there may be even more Adafruit has added since recording this video.

**Map** uses Open Street Map data to plot your location. You can use this if you have the geolocation metadata set, as mentioned earlier.

![sensors_Screen_Shot_2019-03-13_at_6.24.24_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/710/medium640/sensors_Screen_Shot_2019-03-13_at_6.24.24_PM.png?1552516438)

If you need a lot of buttons, you can use either the **numberpad** or the **remote control elements**. These give you either 12 or 21 momentary buttons, and will write a single number to a feed.

![sensors_Screen_Shot_2019-03-13_at_6.22.50_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/711/medium640/sensors_Screen_Shot_2019-03-13_at_6.22.50_PM.png?1552516476)

![sensors_Screen_Shot_2019-03-13_at_6.23.08_PM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/712/medium640/sensors_Screen_Shot_2019-03-13_at_6.23.08_PM.png?1552516487)

The **Image** element is good if you have base64-encoded images in a feed, it will decode JPG files automatically, great if you’re making a remotely viewable camera feed.

![sensors_Screen_Shot_2019-03-14_at_11.13.20_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/742/medium640/sensors_Screen_Shot_2019-03-14_at_11.13.20_AM.png?1552576427)

The **Color picker** will read or write data from a feed, you can select a color and it will write the corresponding web hex color to the feed, or it will display a color if the feed contains a valid hex color.

![sensors_Screen_Shot_2019-03-14_at_11.14.06_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/743/medium640/sensors_Screen_Shot_2019-03-14_at_11.14.06_AM.png?1552576462)

 **Status indicator** is a very simple circle that will change colors based on a numeric condition. It's even simpler than the gauge block, good when you just want to know if the temperature has fallen below a certain value.

![sensors_Screen_Shot_2019-03-14_at_11.14.45_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/744/medium640/sensors_Screen_Shot_2019-03-14_at_11.14.45_AM.png?1552576500)

Finally, the **Icon** block will decode text within the feed value and display a corresponding icon, sort of an advanced status indicator with a wide range of shapes. You can’t change the color via the feed, just the displayed icon.

![sensors_Screen_Shot_2019-03-14_at_11.15.30_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/072/745/medium640/sensors_Screen_Shot_2019-03-14_at_11.15.30_AM.png?1552576549)

For more information about dashboards and all the cool things they can do, [check out this learn guide](https://learn.adafruit.com/adafruit-io-basics-dashboards)!

# All the Internet of Things - Episode Four: Adafruit IO

## Actions

Info: 

https://youtu.be/taSA7VCRUhE

## Scheduled vs. Reactive Actions

While you can build just about any kind of IoT device or project with the feeds and dashboards we’ve demonstrated, we can add a little more logic and integration using actions and services.

Actions are a way to do something when a certain situation occurs. There’s two kinds of actions supported at this time: Scheduled and Reactive.

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/072/748/medium800/sensors_Screen_Shot_2019-03-14_at_11.55.04_AM.png?1552579015)

## Scheduled Actions

Scheduled actions are the simplest. They’re a little like the **Feed Notifications** we mentioned earlier. You can simply have a feed value emailed to yourself on a set schedule. For example, here’s an example email from a scheduled action for my temperature feed.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/749/medium800/sensors_Screen_Shot_2019-03-14_at_11.55.26_AM.png?1552579027)

![](https://cdn-learn.adafruit.com/assets/assets/000/072/750/medium800/sensors_Screen_Shot_2019-03-14_at_11.56.18_AM.png?1552579039)

![](https://cdn-learn.adafruit.com/assets/assets/000/072/306/medium800/adafruit_io_Screen_Shot_2019-02-25_at_4.30.20_PM.png?1551808941)

## **Reactive Actions**

**Reactive Actions** are much more advanced, and can integrate basic logic. At a basic level, they check if a feed value is somehow comparable to a value or to even another feed. If so, you’ll be able to send an email notification, post a webhook or even publish a message to another feed. For example, you can set up a reactive trigger to notify you when the temperature falls below a certain value. When paired with **Feed Notification** you can easily keep track of the health of your feed and also when something’s gone wrong.

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/072/753/medium800/sensors_Screen_Shot_2019-03-14_at_11.58.57_AM.png?1552579159)

![](https://cdn-learn.adafruit.com/assets/assets/000/072/754/medium800/sensors_Screen_Shot_2019-03-14_at_12.00.14_PM.png?1552579326)

![](https://cdn-learn.adafruit.com/assets/assets/000/072/755/medium800/sensors_Screen_Shot_2019-03-14_at_12.01.34_PM.png?1552579341)

# All the Internet of Things - Episode Four: Adafruit IO

## Services

https://youtu.be/qNHdZ6On8Q4

Notifications and triggers are handy for keeping tabs on your feeds, and the webhooks capabilites give you a lot of integration options. But, you may want to integrate into more services besides emails, and sometimes the webhook data is not formatted in the exact right way. Service integration in Adafruit IO let's you super-charge your feeds.

## IFTTT and Zapier

Both [IFTTT](https://ifttt.com) and [Zapier](http://zapier.com) are ‘cross-linking’ services that are popular and wide ranging. They basically take data and shuffle it between services. We have integration with both of these services, and best of all, they’re free! Once you sign up, you can create triggers, much like the ones that are built into Adafruit IO but with much more control and possibilities.

https://youtu.be/xYBUfbA5vyE

For hands on experience with IFTTT [check out this learn guide](https://learn.adafruit.com/gmailbox)&nbsp;that will teach you to make a small mailbox to sit on your desk and notify you about incoming emails. When a new email is received, it raises a flag and gently lowers it back down.

Or you can [check out this learn guide](https://learn.adafruit.com/using-ifttt-with-adafruit-io) that will show you how you can use an Adafruit HUZZAH ESP8266 WiFi microcontroller board with a door sensor to email/tweet/text you when your door has opened!

[Zapier](http://zapier.com) is similar to IFTTT, so we won’t demo both - they do have some differences in integration capabilities, so we recommend signing up for both and seeing which one gives you the connection you’re looking for. One thing to note is that both IFTTT and Zapier have some delay to them, you wont have messages come and go instantly the way webhooks do. Sometimes there can be up to 15 minutes delay, or even a dropped message could occur. You’ll want to do plenty of experimentation to figure out whether it makes sense to use Adafruit IO Triggers, notifications, webhooks or Zapier/IFTTT.

For more information on Zapier feel free to [check out this learn guide](https://learn.adafruit.com/using-zapier-with-adafruit-io) that goes more in depth.

And if you'd like to try a project with Zapier we have a wonderful [learn guide](https://learn.adafruit.com/time-tracking-cube) for making Adafruit IO Time tracking Cube!

# All the Internet of Things - Episode Four: Adafruit IO

## Adafruit IO Plus Integrations

https://youtu.be/xB_VKdF4riU

## Integrations and Dark Skies

Some integrations are available for Adafruit IO Plus members only. For example, we have a Weather service that hooks into [Dark Sky](https://darksky.net), a premier forecasting service. Once you start building IoT projects, you’ll notice that getting weather data on demand isn’t easy - almost every service requires authentication and most require payment. With our Dark Sky integration, it's quite easy to get weather data whenever you like, which you can use to make projects that react to current conditions in the local area, or really anywhere you like.

![](https://cdn-learn.adafruit.com/assets/assets/000/072/309/medium800/adafruit_io_Screen_Shot_2019-02-25_at_5.45.46_PM.png?1551809164)

Once you have upgraded to [Adafruit IO Plus](https://io.adafruit.com/plus), add a location to your service. Say, Thief River Falls, Minnesota. Now you can query the forecast or current weather for that location. For example, here’s some Python code that will get the current weather condition and forecast, and print it out. When I run it, we see...it’s crisp and cool this winter afternoon.

https://github.com/adafruit/Adafruit_IO_Python/blob/master/examples/api/weather.py

![](https://cdn-learn.adafruit.com/assets/assets/000/072/310/medium800/adafruit_io_Screen_Shot_2019-02-25_at_5.47.02_PM.png?1551809207)

We’ve gone over just about all of the amazing features that Adafruit IO provides, and Adafruit is constantly adding more. In fact, there are probably more services and features that have been added since. You can always get updates on the latest news by [checking out the Adafruit blog](https://blog.adafruit.com/category/adafruit-io), and [the most recent documentation, available here](https://io.adafruit.com/api/docs/)!

# All the Internet of Things - Episode Four: Adafruit IO

## Who is Adafruit.IO for?

https://youtu.be/vnvdWFAEijU

Whew! You should now have a good sense of what you can do with Adafruit IO - how feeds, dashboards and services all work together to get your data stored, plotted and interacting. Compared to many IoT services, there’s a lot you can do! _So who is Adafruit IO for?_

The short answer is, **everyone**!

## Entry-Level

Adafruit IO can be used by entry-level Makers who want to make a remote-control lamp, to advanced engineers who want to automate their factory. Scientists could [use IO to log experiment data in real-time and download or organize gathered data](https://learn.adafruit.com/adafruit-io-air-quality-monitor). Home automators can connect sensors to their HVAC system to minimize power usage. Roboticists can [control and monitor their mechatronics remotely](https://learn.adafruit.com/crickit-and-adafruitio) from around the world. Students can build [interactive art creations that tie with social media services and light up](https://learn.adafruit.com/cheerlights) whenever their posts get a like. With the powerful single board computers and low cost microcontroller boards available, even a first project or a custom one-off product can now be connected and controlled over the Internet.

## Makers

We’ve designed IO to be simple and quick to start, for experimenters and Makers of all sorts. Sending data to the cloud is easy to implement with Adafruit IO, pre-existing projects can be converted easily to an Adafruit IO project, control their projects from the Internet. Add Internet-connectivity to household appliances, wearables, art installations, etc.

## Engineers

But behind this simplicity, we have made Adafruit IO robust enough to handle the demands of industrial-level engineering without the complexity of enterprise services. We have [pre-built APIs](https://io.adafruit.com/api/docs) to have code communicate with Adafruit IO, data-logging, webhooks and service integration so you can **easily prototype an IoT product before taking the next step and scaling for production**. It’s a great place to put together prototypes, and build customized projects for small businesses. We’ll note that it’s not aimed at building and commercializing business-to-customer or business-to-business IoT projects, check out our previous [Services](https://www.youtube.com/watch?v=29iR-AzbNSA&t=555s)&nbsp;video for some suggestions on enterprise-level IoT services. Those will be a big step up in complexity, and won’t have the same friendly integrations so they’re a good step up once you’ve got Adafruit IO going.

If you’re curious about what people are using Adafruit IO for and maybe get some inspiration or validation for your ideas, please check out the Adafruit&nbsp;[discord channel](http://discord.gg/adafruit) (#help-with-adafruitio channel), our [Adafruit IO forum](https://forums.adafruit.com/viewforum.php?f=56), the [Adafruit blog](https://blog.adafruit.com/category/adafruit-io), &nbsp;and the [Adafruit Learning System, where we’ve got dozens of IoT projects with code and wiring diagrams, from the basics of a button, to how to automate an entire house](https://learn.adafruit.com/category/adafruit-io).

# All the Internet of Things - Episode Four: Adafruit IO

## IO Plus

https://youtu.be/6yGyAGxlEQs

## Upgrades

Now you’re probably really excited to get started with Adafruit IO, maybe you even have some ideas for your first IoT build. &nbsp;The good news is getting started with Adafruit IO is easy and...free! That’s right, the introductory account that can do just about everything we’ve shown in this video is free with your Adafruit account. &nbsp;Adafruit IO’s basic service gives you:

- 30 data points per minute
- 30 days of data storage
- 10 feeds
- 5 dashboards
- Notifications, triggers and service integrations

After you’ve gotten comfortable with the basic Adafruit IO service, and have had a chance to try out the APIs and services, you may want _more_ and you’re ready to power up you can upgrade to Adafruit IO Plus for:

- 60 data points per minute
- 60 days of data storage
- unlimited dashboards
- and unlimited feeds
- Improved integrations including emailed triggers and Dark Skies weather service

[You can subscribe monthly for $10](https://io.adafruit.com/plus). If you’d like to save some money [there is even a yearly pass card, available for $99 on Digikey.com](https://www.digikey.com/products/en/development-boards-kits-programmers/software-services/784?k=adafruit%20io&newproducts=1) that will give you a full year of Adafruit IO Plus.

Each purchase gets you all the goodies we’ve mentioned, any new services and integrations we’ll be adding, and help support and improve Adafruit IO!

# All the Internet of Things - Episode Four: Adafruit IO

## Conclusion

https://youtu.be/RtZtAPO712M

## The Future

We hope that after this, you have a better understanding of what Adafruit IO can do for your upcoming IoT project! Feel free to [check out some examples of Adafruit IO projects on the Adafruit Learning System](https://learn.adafruit.com/category/adafruit-io) or [read more documentation about Adafruit IO here](https://learn.adafruit.com/welcome-to-adafruit-io).

Or (as suggested) **visit [https://io.adafruit.com/](https://io.adafruit.com/)&nbsp;and start building your own internet of things project today!**

&nbsp;


## Featured Products

### Adafruit IO+ 1 Year Subscription Card

[Adafruit IO+ 1 Year Subscription Card](https://www.adafruit.com/product/3980)
It's the Internet of the Things!&nbsp;[Adafruit IO+](https://io.adafruit.com/plus) is the easiest way to stream, log, and interact with your data. Whether you're interesting in&nbsp;datalogging or communicating with your microcontroller over the web, Adafruit IO is our cloud...

In Stock
[Buy Now](https://www.adafruit.com/product/3980)
[Related Guides to the Product](https://learn.adafruit.com/products/3980/guides)
### Adafruit IO+ Subscription Pass – One Year

[Adafruit IO+ Subscription Pass – One Year](https://www.adafruit.com/product/3792)
The all-in-one Internet of Things service from Adafruit you know and love is now _even better_ with IO+. The 'plus' stands for MORE STUFF! More feeds, dashboards, storage, speed. Power up your [Adafruit IO](https://io.adafruit.com/) with the $99 pass for 1 year of the...

In Stock
[Buy Now](https://www.adafruit.com/product/3792)
[Related Guides to the Product](https://learn.adafruit.com/products/3792/guides)
### Adafruit Feather HUZZAH with ESP8266 WiFi

[Adafruit Feather HUZZAH with ESP8266 WiFi](https://www.adafruit.com/product/3404)
Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller cores.

This is the&nbsp; **Adafruit Feather HUZZAH ESP8266** &nbsp;- our take on an...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3404)
[Related Guides to the Product](https://learn.adafruit.com/products/3404/guides)
### Adafruit HUZZAH32 – ESP32 Feather Board

[Adafruit HUZZAH32 – ESP32 Feather Board](https://www.adafruit.com/product/3405)
Aww yeah, it's the Feather you have been waiting for! The **HUZZAH32** is our ESP32-based Feather, made with the official WROOM32 module. We packed everything you love about Feathers: built in USB-to-Serial converter, automatic bootloader reset, Lithium Ion/Polymer charger,...

In Stock
[Buy Now](https://www.adafruit.com/product/3405)
[Related Guides to the Product](https://learn.adafruit.com/products/3405/guides)
### Adafruit Feather M0 WiFi - ATSAMD21 + ATWINC1500

[Adafruit Feather M0 WiFi - ATSAMD21 + ATWINC1500](https://www.adafruit.com/product/3010)
Feather is the new development board from Adafruit, and like its namesake it is thin, light, and lets you fly! We designed Feather to be a new standard for portable microcontroller cores. This is the&nbsp; **Adafruit Feather M0 WiFi&nbsp;w/ATWINC1500** - our take on an...

In Stock
[Buy Now](https://www.adafruit.com/product/3010)
[Related Guides to the Product](https://learn.adafruit.com/products/3010/guides)
### Adafruit Feather nRF52 Bluefruit LE

[Adafruit Feather nRF52 Bluefruit LE](https://www.adafruit.com/product/3406)
The **Adafruit Feather nRF52 Bluefruit** is another easy-to-use all-in-one Bluetooth® Low Energy board, with a native-Bluetooth® chip, the nRF52832!&nbsp; It's our take on an 'all-in-one' Arduino-compatible + Bluetooth® Low Energy with built in USB and...

In Stock
[Buy Now](https://www.adafruit.com/product/3406)
[Related Guides to the Product](https://learn.adafruit.com/products/3406/guides)
### Adafruit Feather nRF52840 Express

[Adafruit Feather nRF52840 Express](https://www.adafruit.com/product/4062)
The **Adafruit Feather nRF52840 Express** is the new Feather family member with Bluetooth® Low Energy and _native USB support_ featuring the nRF52840!&nbsp; It's our take on an 'all-in-one' Arduino-compatible + Bluetooth® Low Energy with built-in USB...

In Stock
[Buy Now](https://www.adafruit.com/product/4062)
[Related Guides to the Product](https://learn.adafruit.com/products/4062/guides)
### Raspberry Pi 3 - Model B - ARMv8 with 1G RAM

[Raspberry Pi 3 - Model B - ARMv8 with 1G RAM](https://www.adafruit.com/product/3055)
Did you really think the Raspberry Pi would stop getting better? At this point, we sound like a broken record, extolling on the new Pi’s myriad improvements like we’re surprised that the folks at the Raspberry Pi Foundation are continuously making their flagship board better.&nbsp;...

In Stock
[Buy Now](https://www.adafruit.com/product/3055)
[Related Guides to the Product](https://learn.adafruit.com/products/3055/guides)

## Related Guides

- [Adafruit HUZZAH32 - ESP32 Feather](https://learn.adafruit.com/adafruit-huzzah32-esp32-feather.md)
- [Introducing the Adafruit nRF52840 Feather](https://learn.adafruit.com/introducing-the-adafruit-nrf52840-feather.md)
- [Analog Devices ADT7410 Breakout](https://learn.adafruit.com/adt7410-breakout.md)
- [Wirelessly Code your Bluetooth Device with CircuitPython](https://learn.adafruit.com/wirelessly-code-your-bluetooth-device-with-circuitpython.md)
- [Busy Box Interruption Sign](https://learn.adafruit.com/busy-box-interruption-sign.md)
- [All the Internet of Things - Episode Two: Protocols](https://learn.adafruit.com/alltheiot-protocols.md)
- [No-Code Rain Sensing Smart Desktop Umbrella Stand](https://learn.adafruit.com/no-code-rain-sensing-smart-desktop-umbrella-stand.md)
- [Introduction to Bluetooth Low Energy](https://learn.adafruit.com/introduction-to-bluetooth-low-energy.md)
- [Doomscroll and Chill - A Wireless BLE Scroll Wheel Remote](https://learn.adafruit.com/doomscroll-and-chill-wireless-ble-scroll-wheel-rotary-encoder-remote.md)
- [BLE Sniffer with nRF52840](https://learn.adafruit.com/ble-sniffer-with-nrf52840.md)
- [How to Add a New Board to WipperSnapper](https://learn.adafruit.com/how-to-add-a-new-board-to-wippersnapper.md)
- [3D Printed IoT On Air Sign for Twitch](https://learn.adafruit.com/3d-printed-iot-on-air-sign-for-twitch.md)
- [Using ItsaSNAP for HomeKit PIR Motion Detection](https://learn.adafruit.com/itsasnap-homekit-pir-motion-detection.md)
- [itsaSNAP by Adafruit](https://learn.adafruit.com/it-s-a-snap-by-adafruit.md)
- [IoT Bird Feeder with Camera](https://learn.adafruit.com/iot-window-bird-feeder-with-camera.md)
- [Introducing Adafruit Feather](https://learn.adafruit.com/adafruit-feather.md)
- [BLE Vibration Bracelet](https://learn.adafruit.com/ble-vibration-bracelet.md)
- [CircuitPython OctoPrint Controller and Monitor](https://learn.adafruit.com/circuitpython-octoprint-controller-and-monitor.md)
