After logging into Adafruit IO, click the VIEW AIO KEY button on the left-sidebar.
A window will pop up with your Adafruit IO key and username. Keep a copy of them in a safe place, we'll need it later.
We're going to have a lot of sources of data. Our three sensors generate seven different types of data.
Luckily for us, Adafruit IO is excellent at tracking data. It keeps data in elements called Feeds, with one feed per each unique source of data.
If you do not know how to create feeds, head over to the Adafruit IO Basics: Feeds for a quick overview of this process.
We're going to create seven unique feeds to hold and display data generated by the BME280, SGP30, and VEML6070 sensors:
- temperature
- humidity
- pressure
- altitude
- uv
- tvoc
- ecO2
If you have Adafruit IO Plus (unlimited feeds), we'll set up seven additional feeds which will be used to specify what will be displayed using icon blocks:
- temperature-block
- humidity-block
- pressure-block
- altitude-block
- uv-block
- tvoc-block
- ecO2-block
Create a Dashboard
Now that we have feeds to hold data and display the type of data, we need a way to consolidate these feeds in one place. Dashboards are a feature of Adafruit IO which allow us to display and control feeds using widgets called Blocks.
- If you haven't used an Adafruit IO Dashboard before, check out the Adafruit IO Basics: Dashboards learn guide for a quick primer.
We're going to navigate to the Dashboards page and click Create a new Dashboard. You can name it anything you'd like but we'll name it Environmental Monitor
Adding Icon Blocks
Blocks are widgets which you can add to your dashboard. We're going to first add some icon blocks, a new type of output block which displays an icon specified by a feed.
On the dashboard, click the green plus icon to add a new block. Click on the Icon Block to configure it:
We'll select the temperature-block feed we created earlier:
Next, we're going to configure the color of the block, and pick an icon type. We're using w:thermometer for the temperature block, but you can pick any icon on the Icons FAQ page. You can also configure the color of the icon using the color-picker from the Block Settings.
After adding the block to the dashboard, you'll notice there's no icon on the dashboard. That's because the feed is currently empty - there's no icon to display.
Let's fix that by specifying an icon for the feed. Navigate to the Feeds page and click on the temperature-block feed. From the feed, we're going to click Actions -> Add Data and add a the value w:thermometer to set the icon block on the dashboard.
If you navigate back to the dashboard, you'll notice the thermometer icon is now displayed. We're going to repeat this process for each feed we'd like to display.
We set up a dashboard using the following icons, but you can use anything from the Icon Listing page you'd like:
- Humidity, by setting the feed value to w:humidity
- Temperature, w:thermometer
- Pressure, w:barometer
- Altitude, bar-chart
- eCO2, w:smoke
- TVOC, tvoc-icon
- UV, uv-feed-block
Our dashboard uses the values above. We also added two histogram blocks to take a peek at some of the values over an hour.
Adding Text Blocks
The icon block is a great way to graphically display what types of data are associated with a feed. We need a way to add the data from the sensors. To do this, we'll need to add seven text blocks to hold feeds for our sensor data.
Let's start by creating a text block to hold the temperature data from the BME280 sensor. From the dashboard, add a block and select the text block.
Choose the data feed (we're going to use the temperature feed) to display:
Then, select a large font size.
Repeat this for the humidity, pressure, altitude, temperature, uv, tvoc, and eco2 feeds.
While you can't "see" them on the background (since those feeds are currently empty), we can view them by clicking the green gear on the dashboard.
The outlines of the text blocks should now be visible. Reorganize the blocks however you'd like - we can always change them later.
Next, let's wire everything up!
Text editor powered by tinymce.