# Monitor Your Greenhouse with a No-Code Environmental Sensor

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/137/591/medium800/sensors_IMG_5778.jpg?1749748310 )

If you've wanted to display sensor readings on your device running WipperSnapper, you're in luck! **This guide will walk you through the process of building a device that reads environmental measurements and displays them on an OLED.**

The process for setting up and using a display on a development board running WipperSnapper is simple, there is no coding or soldering - you just click!&nbsp;

## Build Project Logic with Drag and Drop

Actions are a way to do something when a situation occurs. Adafruit IO's actions present a block-based interface, allowing you to create a project simply by dragging and dropping "blocks" onto a diagram.&nbsp;

In this guide, you'll use an Action to build a workflow that:

- Obtains data from sensors every 15 minutes
- Rounds the data, so we can show it on a display
- Configures a display to show the sensor data

All of this is possible in Adafruit IO - no programming required!

![](https://cdn-learn.adafruit.com/assets/assets/000/137/501/medium640/sensors_SCR-20250611-lsir.png?1749665234)

## Simple Assembly and Wiring

This project uses the snap-on enclosure for Adafruit QT Py and STEMMA QT cables to connect sensors. There is no soldering or difficult assembly required to build this project. A screwdriver is the only tool required!

![](https://cdn-learn.adafruit.com/assets/assets/000/137/589/medium640/sensors_IMG_5765_2.jpg?1749743114)

# What is WipperSnapper?

WipperSnapper is a firmware designed to turn any WiFi-capable board into an Internet-of-Things device without programming a single line of code. WipperSnapper connects to&nbsp;[Adafruit IO](https://io.adafruit.com/), a web&nbsp;platform designed ([by Adafruit!](https://www.adafruit.com/about)) to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_&nbsp;with your project's data.

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add&nbsp;_components_&nbsp;to your board such as buttons, switches, potentiometers, sensors, and more! Components are&nbsp;_dynamically&nbsp;_added to hardware, so you can&nbsp;immediately start interacting, logging, and streaming the data your projects produce without writing code.

## Parts

WipperSnapper Firmware supports a wide variety of different boards from Adafruit and others. This greenhouse monitor will use the Adafruit QT Py ESP32 microcontroller board.

Featured
### Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT

[Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT](https://www.adafruit.com/product/5325)
What has your favorite Espressif WiFi microcontroller, comes with&nbsp;[our favorite connector - the STEMMA QT](http://adafruit.com/stemma), a chainable I2C port, and has lots of Flash and RAM memory for your next IoT project? What will make your next IoT project flyyyyy? What a...

In Stock
[Buy Now](https://www.adafruit.com/product/5325)
[Related Guides to the Product](https://learn.adafruit.com/products/5325/guides)
![Angled shot of small square purple dev board.](https://cdn-shop.adafruit.com/640x480/5325-12.jpg)

The Bosh BME688 is perfect for this greenhouse monitoring project as it provides temperature, humidity, barometric pressure, and VOC gas sensing capabilities in a sub-$20 package.

If you want to use a different sensor, WipperSnapper firmware supports 104 different types of components.&nbsp;

Featured
### Adafruit BME688 - Temperature, Humidity, Pressure and Gas Sensor

[Adafruit BME688 - Temperature, Humidity, Pressure and Gas Sensor](https://www.adafruit.com/product/5046)
The long-awaited BME688 from Bosch gives you&nbsp;_all the environmental sensing you want_&nbsp;in one small package. This little sensor contains&nbsp; **temperature** ,&nbsp; **humidity** ,&nbsp; **barometric pressure,** &nbsp;and&nbsp; **VOC...**

In Stock
[Buy Now](https://www.adafruit.com/product/5046)
[Related Guides to the Product](https://learn.adafruit.com/products/5046/guides)
![Angled shot of BME688 sensor breakout.](https://cdn-shop.adafruit.com/640x480/5046-05.jpg)

I selected the "Monochrome 1.3" 128x64 OLED graphic display" for this project because the display makes its own light, no backlight is required. This reduces the power required to run the OLED.

At the time of release, WipperSnapper supports the following display components:

**OLED Displays with I2C:**

- [Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic](https://www.adafruit.com/product/938)
- [Monochrome 0.91" 128x32 I2C OLED Display - STEMMA QT / Qwiic](https://www.adafruit.com/product/4440)
- [Monochrome 0.96" 128x64 OLED Graphic Display - STEMMA QT&nbsp;PID: 326](https://www.adafruit.com/product/326)

**LED Displays with I2C Backpacks:**

- [Quad Alphanumeric Display - Red 0.54" Digits w/ I2C Backpack - STEMMA QT / Qwiic&nbsp;](https://www.adafruit.com/product/1911)
- [Assembled Adafruit 0.56" 4-Digit 7-Segment Display - I2C Backpack - STEMMA QT](https://www.adafruit.com/product/5601)
- [i2c / SPI character LCD backpack - STEMMA QT / Qwiic](https://www.adafruit.com/product/292)

**Character LCD Displays with I2C Backpacks:**

- [Assembled Standard LCD 16x2](https://www.adafruit.com/product/1447)
- [RGB backlight negative LCD 16x2](https://www.adafruit.com/product/399)
- [Standard LCD 20x4](https://www.adafruit.com/product/198)
- [RGB backlight positive LCD 16x2](https://www.adafruit.com/product/398)

Featured
### Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic

[Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic](https://www.adafruit.com/product/938)
These displays are small, only about 1.3" diagonal, but very readable due to the high contrast of an OLED display. This display is made of 128x64 individual white OLED pixels, each one is turned on or off by the controller chip. Because the display makes its own light, no backlight is...

In Stock
[Buy Now](https://www.adafruit.com/product/938)
[Related Guides to the Product](https://learn.adafruit.com/products/938/guides)
![Monochrome 1.3" OLED module with Adafruit logos falling like snow](https://cdn-shop.adafruit.com/product-videos/640x480/938-05.jpg)

The following parts are required to build the project's enclosure:

Featured
### Snap-on Enclosure for Adafruit QT Py

[Snap-on Enclosure for Adafruit QT Py](https://www.adafruit.com/product/6002)
Here is a cute and minimal enclosure for your [QT Py](https://www.adafruit.com/category/595)&nbsp;to keep it safe during use and transport. This case has been custom-designed and 3D printed to accommodate the USB-C connector. No screws or glue are required; simply snap the QT Py...

In Stock
[Buy Now](https://www.adafruit.com/product/6002)
[Related Guides to the Product](https://learn.adafruit.com/products/6002/guides)
![Overhead shot of three 3D-printed enclosure pieces.](https://cdn-shop.adafruit.com/640x480/6002-00.jpg)

### Black Nylon Machine Screw and Stand-off Set – M2.5 Thread

[Black Nylon Machine Screw and Stand-off Set – M2.5 Thread](https://www.adafruit.com/product/3299)
Totaling 380 pieces, this **M2.5 Screw Set** &nbsp;is a must-have for your workstation.&nbsp;You'll have enough screws, nuts, and hex standoffs to fuel your maker tendencies&nbsp;for days on end! M2.5 size screws fit almost all of the Adafruit breakout/dev board mounting holes...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3299)
[Related Guides to the Product](https://learn.adafruit.com/products/3299/guides)
![Black Nylon Screw and Stand-off Set with M2.5 Threads, kit box](https://cdn-shop.adafruit.com/640x480/3299-00.jpg)

Optional Parts

### Adafruit Pocket Screwdriver - Black

[Adafruit Pocket Screwdriver - Black](https://www.adafruit.com/product/3284)
Have you ever been in a situation where you desperately&nbsp;needed a screwdriver _right away_? Now you can have one at-the-ready all the time —&nbsp;enter the **Adafruit Pocket Screwdriver**!

OK, it's a little tough to write exciting copy for a pocket...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3284)
[Related Guides to the Product](https://learn.adafruit.com/products/3284/guides)
![Double-sided Pocket Screwdriver with Black body, flathead tip](https://cdn-shop.adafruit.com/640x480/3284-04.jpg)

### Pink and Purple Woven USB A to USB C Cable - 2 meters long

[Pink and Purple Woven USB A to USB C Cable - 2 meters long](https://www.adafruit.com/product/5044)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers and more.&nbsp; [If you want something just like it but for Micro B, we have a B...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5044)
[Related Guides to the Product](https://learn.adafruit.com/products/5044/guides)
![Angled shot of a pink/purple woven USB cable plugged into a laptop port and a small dev board.](https://cdn-shop.adafruit.com/640x480/5044-04.jpg)

### 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)
![Text image that reads "IO+"](https://cdn-shop.adafruit.com/640x480/3792-01.jpg)

# Monitor Your Greenhouse with a No-Code Environmental Sensor

## Assemble

## Circuit Diagram

The diagram below provides a general visual reference for wiring the project's components. The project uses [STEMMA QT](https://learn.adafruit.com/introducing-adafruit-stemma-qt) cables and connectors to provide a no-soldering solution for wiring.&nbsp;

NOTE: The BME680 is shown on this diagram instead of the BME688. The wiring for both is identical.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/516/medium800/sensors_wippergreenhousemonitor_bb.png?1749670549 )

## Assembly

The Snap-on Enclosure for the Adafruit QT Py does a lot of heavy lifting for us as it provides a both enclosure for the QT Py and mounting rails for the display and the BME280 sensor .&nbsp;

Assemble the snap-enclosure frame. These parts should press-fit together.

Inside the frame, there are four mounting tabs for the QT Py.&nbsp;Take your QT Py and snap it into the bottom piece of the frame.&nbsp;

Then attach a STEMMA cable to the QT Py.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/593/medium640/sensors_IMG_5757_2.jpg?1749748477)

Before attaching the OLED and BME688 to the enclosure, you may want to route two STEMMA QT cables through the openings of the enclosure's front panel.

Route the cable connected to the QT Py through a row on the enclosure's bottom row. This cable will connect the QT Py to the BME688.

Route another QT Py cable through the same row, and then route it through a row towards the top. This cable will connect the BME688 to the OLED.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/597/medium640/sensors_IMG_5783.jpg?1749749211)

Push an 4mm screw through one of the BME688's mounting holes. Using a Philips-head screwdriver, screw it (on the other side) into a 20 x 6mm long F-F hex standoff.

Repeat this for the remaining 3 mounting holes.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/595/medium640/sensors_IMG_5781.jpg?1749749071)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/596/medium640/sensors_IMG_5782.jpg?1749749092)

Line the BME688 up with the front-panel. Make sure the stand-off's hole is lined up with the row.

Screw a 4mm screw through the back of the enclosure, into the standoff.

Repeat this for the remaining 3 screws.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/598/medium640/sensors_IMG_5784.jpg?1749749392)

To mount the OLED display, repeat the steps above.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/599/medium640/sensors_IMG_5788.jpg?1749749561)

 **Check your wiring and ensure everything is connected!**

Place the cover on the enclosure and press it down until it _snaps._

![](https://cdn-learn.adafruit.com/assets/assets/000/137/600/medium640/sensors_IMG_5789.jpg?1749749639)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/602/medium640/sensors_IMG_5791.jpg?1749749675)

# Monitor Your Greenhouse with a No-Code Environmental Sensor

## WipperSnapper Setup

Warning: 

## What is WipperSnapper

WipperSnapper is a firmware designed to turn any WiFi-capable board into an Internet-of-Things device without programming a single line of code. WipperSnapper connects to [Adafruit IO](https://io.adafruit.com/), a web&nbsp;platform designed ([by Adafruit!](https://www.adafruit.com/about)) to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_&nbsp;with your project's data.

Simply load the WipperSnapper firmware onto your board, add credentials, and plug it into power. Your board will automatically register itself with your Adafruit IO account.

From there, you can add&nbsp;_components_&nbsp;to your board such as buttons, switches, potentiometers, sensors, and more! Components are&nbsp;_dynamically&nbsp;_added to hardware, so you can&nbsp;immediately start interacting, logging, and streaming the data your projects produce without writing code.

## Sign up for Adafruit.io

You will need an Adafruit IO account to use WipperSnapper on your board. If you do not already have one, head over to [io.adafruit.com](https://io.adafruit.com/) to create a&nbsp;_free_ account.

## Add a New Device to Adafruit IO

Log into your [Adafruit IO](https://io.adafruit.com/) account. Click the _New Device_ button at the top of the page.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/548/medium800/wippersnapper_setup__board_selector__web__new_device_1.png?1655919766)

After clicking New Device, you should be on the _board selector_ page. This page displays every board that is compatible with the WipperSnapper firmware.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/550/medium800/wippersnapper_setup__board_selector__web__selector_maion.png?1655920178)

In the board selector page's search bar, search for the _QT Py_ _ESP32-S2.&nbsp;_Once you've located the board you'd like to install WipperSnapper on,_&nbsp;_click the&nbsp;_Choose Board_&nbsp;button to bring you to the self-guided installation wizard.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/955/medium800/adafruit_products_qtpys2_board.png?1657225317)

Follow the step-by-step instructions on the page to install Wippersnapper on your device and connect it to Adafruit IO.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/956/medium800/adafruit_products_qtpys2_wizard.png?1657225347)

If the installation was successful, a popover should appear displaying that your board has successfully been detected by Adafruit IO.

Give your board a name and click "Continue to Device Page".

![](https://cdn-learn.adafruit.com/assets/assets/000/112/957/medium800/adafruit_products_qtpys2_new_device.png?1657225472)

You should be brought to your board's device page.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/958/medium800/adafruit_products_qtpys2_device_pg.png?1657225767)

## Feedback

Adafruit.io WipperSnapper is in **beta** and you can help improve it!

If you have&nbsp; suggestions or general feedback about the installation process - visit [https://io.adafruit.com/support](https://io.adafruit.com/support), click _"Contact Adafruit IO Support"_ and select _"I have feedback or suggestions for the WipperSnapper Beta"._

## Troubleshooting

If you encountered an issue during installation, please try the steps below first.

If you're still unable to resolve the issue, or if your issue is not listed below, get in touch with us directly at [https://io.adafruit.com/support](https://io.adafruit.com/support "https://io.adafruit.com/support"). Make sure to click&nbsp; _"Contact Adafruit IO Support"_ and select "_There is an issue with WipperSnapper. Something is broken!"_

### 

First, make sure that you selected the correct board on the board selector.

Next, please make sure that you entered your WiFi credentials properly, there are no spaces/special characters in either your network name (SSID) or password, and that you are connected to a 2.4GHz wireless network.

If you're still unable to connect your board to WiFi, please [make a new post on the WipperSnapper technical support forum with the error you're experiencing, the LED colors which are blinking, and the board you're using.](https://forums.adafruit.com/viewforum.php?f=66)

### 

Try hard-resetting your board by unplugging it from USB power and plugging it back in.

If the error is still occurring, please&nbsp;[make a new post on the WipperSnapper technical support forum with information about what you're experiencing, the LED colors which are blinking (if applicable), and the board you're using.](https://forums.adafruit.com/viewforum.php?f=66)

## "Uninstalling" WipperSnapper&nbsp;

WipperSnapper firmware is an application that is loaded onto your board. There is nothing to "uninstall". However, you may want to "move" your board from running WipperSnapper to running Arduino or CircuitPython. You also may need to restore your board to the state it was shipped to you from the Adafruit factory.&nbsp;

### Moving from WipperSnapper to CircuitPython

Follow the steps on the [Installing CircuitPython page](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython) to install CircuitPython on your board running WipperSnapper.

- If you are unable to double-tap the RST button to enter the UF2 bootloader, follow the _"Factory Resetting a WipperSnapper Board"_ instructions below.

Uploading this sketch will overwrite WipperSnapper. If you want to re-install WipperSnapper, follow the instructions at the top of this page.

### Moving from WipperSnapper to Arduino

If you want to use your board with Arduino, you will use the Arduino IDE to load&nbsp;_any_ sketch onto your board.

First, follow the page below to set up your Arduino IDE environment for use with your board.

[Setup Arduino IDE](https://learn.adafruit.com/adafruit-qt-py-esp32-s2/arduino-ide-setup)
Then, follow the page below to upload the "Arduino Blink" sketch to your board.

[Upload Arduino Blink Sketch](https://learn.adafruit.com/adafruit-qt-py-esp32-s2/arduino-neopixel-blink)
Uploading this sketch will overwrite WipperSnapper. If you want to re-install WipperSnapper, follow the instructions at the top of this page.

### Factory Resetting a WipperSnapper Board

Sometimes, hardware gets into a state that requires it to be "restored" to the original state it shipped in. If you'd like to get your board back to its original factory state, follow the guide below.

[Factory Reset](https://learn.adafruit.com/adafruit-qt-py-esp32-s2/factory-reset)
# Monitor Your Greenhouse with a No-Code Environmental Sensor

## Adafruit IO Device Configuration

Before we set up an Action, we need to attach and configure components (like the display and sensor) to the QT Py.

Warning: I2C Display Components, like OLED or Character LCD displays, are supported only on WipperSnapper Firmware Beta 103 or later. If your device is running an older firmware version, please update it before continuing this guide.

## Add a Display Component

To add the **Monochrome 128x64 OLED&nbsp;** to your QT Py, navigate to the device page.&nbsp;Click the **"+"** to bring up the component picker.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/508/medium800/sensors_SCR-20250611-mycb.png?1749666926 )

On the Component Picker, Search for the 128x64 OLED and&nbsp;**select the 128x64 OLED (Large Font) component**. This component uses the _large_ font size.

- If you want a smaller font size to fit more data, you can select the 128x64 OLED (Default).

**Click** &nbsp;Create Component.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/506/medium640/sensors_SCR-20250611-myfq.png?1749666879)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/507/medium640/sensors_SCR-20250611-myiy.png?1749666912)

The 128x64 OLED component should appear on your device page.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/137/509/medium800/sensors_SCR-20250611-mylp.png?1749666950 )

## Add a BME680 Component

To add the BME680 component, click the "+" icon.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/511/medium800/sensors_SCR-20250611-mzjh.png?1749667123 )

On the Component Picker, search for the BME688 and click it.

From the next page, you can choose which sensors are read, and how often.&nbsp;

- For this project, I wanted the QT Py to read the temperature, relative humidity, air pressure, and total volatile organic compounds (TVOC) and send these measurements to Adafruit.io every 5 minutes.

**Click** &nbsp;Create Component.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/517/medium640/sensors_SCR-20250611-nvsy.png?1749670939)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/518/medium640/sensors_SCR-20250611-nwjt.png?1749670980)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/519/medium640/sensors_SCR-20250611-nwjt.png?1749671006)

Make sure the Device Page looks like the following screenshot before moving on to set up an Action.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/520/medium800/sensors_SCR-20250611-nxnl.png?1749671119 )

# Monitor Your Greenhouse with a No-Code Environmental Sensor

## Set up an Adafruit IO Action

Let's use Adafruit IO’s new (Blockly-based) Actions to show the values of the sensors on the OLED display.

- [If you do not know what Adafruit IO Actions are - check out this guide here \>\>\>&nbsp;](https://learn.adafruit.com/how-to-use-blockly-for-actions-on-adafruit-io)

Navigate to the Actions page on Adafruit IO. **Click** New Action.

Give your action a name (I named mine _Greenhouse Monitor_) and&nbsp; **c**** lick** Create.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/521/medium640/sensors_SCR-20250611-offr.png?1749672478)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/522/medium640/sensors_SCR-20250611-ofmt.png?1749672555)

Let's configure this workflow to execute every 15 minutes.

To do this, expand the Block Toolbox by clicking **Triggers** and&nbsp; **select** the _Schedule_ block.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/137/523/medium800/sensors_SCR-20250611-ogww.png?1749672742 )

Drag the **Schedule** block under the Triggers workflow. By default, it is configured to execute every 15 minutes.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/524/medium800/sensors_SCR-20250611-ogzp.png?1749672834 )

## Modifying Sensor Values&nbsp;

The BME688 produces precise measurements. However, these measurements often have too many decimal points to display on an OLED.

Before displaying these sensor values, we are going to take these measurements and round them to fit on the OLED's screen.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/527/medium800/sensors_SCR-20250611-oiot.png?1749674155 )

We'll need to store the component's _feed_ value in a variable. Once we do that, we can modify the variable (in order to truncate it to a specific number of decimal places) and then reference when we print it to the display.

On the Toolbox, **Click** the Variables tab.

**Click** Create New Variable.

Enter the name `temperature`.

&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/137/526/medium640/sensors_SCR-20250611-ojfv.png?1749674001)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/529/medium640/sensors_SCR-20250611-ojim.png?1749675737)

On the Toolbox, Click the Math tab

Drag the Round block to the right side of the _Set Variable_ block's "=" sign&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/137/915/medium640/temperature___humidity_SCR-20250623-jlrx.png?1750688847)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/916/medium640/temperature___humidity_SCR-20250623-jpeq.png?1750688934)

On the Toolbox,&nbsp; **Click** &nbsp;the Feeds tab.

**Drag&nbsp;** the _Get Feed_ block to the diagram and place it inside the Round Block.

**Set the feed** to _QT Py S3: BME680 Temperature Sensor **.** _

When the Actions' _Actions_ section runs, it will set the variable to the last value saved to the feed (i.e: the most recent temperature value from the BME688).

![](https://cdn-learn.adafruit.com/assets/assets/000/137/917/medium640/temperature___humidity_SCR-20250623-jpqx.png?1750689029)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/919/medium640/temperature___humidity_SCR-20250623-jqgt.png?1750689135)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/920/medium640/temperature___humidity_SCR-20250623-jqwf.png?1750689227)

Ensure your diagram should looks like the following screenshot before moving on:

![](https://cdn-learn.adafruit.com/assets/assets/000/137/921/medium800/temperature___humidity_SCR-20250623-jrik.png?1750689388 )

Next, repeat the steps above for the BME688's humidity sensor and TVOC sensor.

Your diagram should look like the following.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/922/medium800/temperature___humidity_SCR-20250623-jsdu.png?1750689453 )

## Showing Temperature Values on the Display

Finally, we'll want to print the temperature values to the display.

- If you do not have an OLED - the process for this is the same for any "Display Component" in Adafruit IO.

Like the sensors component, the OLED component is an Adafruit IO Feed that you can write to. What's displayed on the OLED is the last value written to the feed.

On the Toolbox,&nbsp; **Click** &nbsp;the Feeds tab.

**Drag&nbsp;** the _Set__&nbsp;Feed_&nbsp;block to the diagram and place it underneath your&nbsp;_Actions_

**Set the feed** &nbsp;to _QT Py S3: 128x64 OLED (Large Font)__ **.** _

![](https://cdn-learn.adafruit.com/assets/assets/000/137/566/medium640/sensors_SCR-20250612-jigd.png?1749737380)

![](https://cdn-learn.adafruit.com/assets/assets/000/137/567/medium640/sensors_SCR-20250612-jjdq.png?1749737518)

Next, we'll use a combination of a the template block and paragraph block to display formatted values (the variables from the sensor and static text)

On the Toolbox,&nbsp; **Click** &nbsp;the Text tab.&nbsp;

From the Text tab, **select the Template block.**

**Drag&nbsp;** the&nbsp;_Template_&nbsp;block to the diagram and place it inside the Set Feed Block.

![](https://cdn-learn.adafruit.com/assets/assets/000/138/169/medium640/temperature___humidity_template-block.png?1751901964)

![](https://cdn-learn.adafruit.com/assets/assets/000/138/170/medium640/temperature___humidity_template-2.png?1751902491)

To tell the display what to show, you'll need to write to the paragraph block. This block lives within the Template block but is presently grayed out.

The 128x64 OLED's&nbsp; **Large Font** mode can write up to 4 lines of text on the display.&nbsp;

For the first line of the paragraph block, I added a label called Greenhouse.&nbsp;The next 3 lines of the display are populated with the temperature, humidity and TVOC values.

To render a variable on the display, you'll reference a variable by using the following syntax:&nbsp;`{{vars.variable}}`.

The string rendered by the following line:

`T:{{ vars.temperature }}°F`

Would look like this on the display:

**T: 74°F**

The snippet below is the value of the paragraph block, used by this project.

```auto
GREENHOUSE
T:{{ vars.temperature }}°F
H:{{ vars.humidity }}%
TVOC:{{ vars.tvoc }} ppb
```

After placing the text above within the paragraph block, the final Action should look like the following screenshot.

![](https://cdn-learn.adafruit.com/assets/assets/000/137/923/medium800/temperature___humidity_SCR-20250623-jsoi.png?1750689500 )

With the Action complete, let's move on to using it!

# Monitor Your Greenhouse with a No-Code Environmental Sensor

## Usage

Once you have your new Adafruit IO Action set up like above, click the Save and Run button.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/137/572/medium800/sensors_SCR-20250612-juah.png?1749739370 )

Once the Action runs, you should see a report showing the output of each block:

![](https://cdn-learn.adafruit.com/assets/assets/000/137/580/medium800/sensors_SCR-20250612-kast.png?1749740494 )

You should also see the OLED update, reflecting the final string you set:

![](https://cdn-learn.adafruit.com/assets/assets/000/137/582/medium800/sensors_IMG_5756.jpg?1749740703 )


## Guide Products

### Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT

[Adafruit QT Py ESP32-S2 WiFi Dev Board with STEMMA QT](https://www.adafruit.com/product/5325)
What has your favorite Espressif WiFi microcontroller, comes with&nbsp;[our favorite connector - the STEMMA QT](http://adafruit.com/stemma), a chainable I2C port, and has lots of Flash and RAM memory for your next IoT project? What will make your next IoT project flyyyyy? What a...

In Stock
[Buy Now](https://www.adafruit.com/product/5325)
[Related Guides to the Product](https://learn.adafruit.com/products/5325/guides)
### Adafruit BME688 - Temperature, Humidity, Pressure and Gas Sensor

[Adafruit BME688 - Temperature, Humidity, Pressure and Gas Sensor](https://www.adafruit.com/product/5046)
The long-awaited BME688 from Bosch gives you&nbsp;_all the environmental sensing you want_&nbsp;in one small package. This little sensor contains&nbsp; **temperature** ,&nbsp; **humidity** ,&nbsp; **barometric pressure,** &nbsp;and&nbsp; **VOC...**

In Stock
[Buy Now](https://www.adafruit.com/product/5046)
[Related Guides to the Product](https://learn.adafruit.com/products/5046/guides)
### Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic

[Monochrome 1.3" 128x64 OLED graphic display - STEMMA QT / Qwiic](https://www.adafruit.com/product/938)
These displays are small, only about 1.3" diagonal, but very readable due to the high contrast of an OLED display. This display is made of 128x64 individual white OLED pixels, each one is turned on or off by the controller chip. Because the display makes its own light, no backlight is...

In Stock
[Buy Now](https://www.adafruit.com/product/938)
[Related Guides to the Product](https://learn.adafruit.com/products/938/guides)
### Snap-on Enclosure for Adafruit QT Py

[Snap-on Enclosure for Adafruit QT Py](https://www.adafruit.com/product/6002)
Here is a cute and minimal enclosure for your [QT Py](https://www.adafruit.com/category/595)&nbsp;to keep it safe during use and transport. This case has been custom-designed and 3D printed to accommodate the USB-C connector. No screws or glue are required; simply snap the QT Py...

In Stock
[Buy Now](https://www.adafruit.com/product/6002)
[Related Guides to the Product](https://learn.adafruit.com/products/6002/guides)
### Black Nylon Machine Screw and Stand-off Set – M2.5 Thread

[Black Nylon Machine Screw and Stand-off Set – M2.5 Thread](https://www.adafruit.com/product/3299)
Totaling 380 pieces, this **M2.5 Screw Set** &nbsp;is a must-have for your workstation.&nbsp;You'll have enough screws, nuts, and hex standoffs to fuel your maker tendencies&nbsp;for days on end! M2.5 size screws fit almost all of the Adafruit breakout/dev board mounting holes...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3299)
[Related Guides to the Product](https://learn.adafruit.com/products/3299/guides)
### Adafruit Pocket Screwdriver - Black

[Adafruit Pocket Screwdriver - Black](https://www.adafruit.com/product/3284)
Have you ever been in a situation where you desperately&nbsp;needed a screwdriver _right away_? Now you can have one at-the-ready all the time —&nbsp;enter the **Adafruit Pocket Screwdriver**!

OK, it's a little tough to write exciting copy for a pocket...

Out of Stock
[Buy Now](https://www.adafruit.com/product/3284)
[Related Guides to the Product](https://learn.adafruit.com/products/3284/guides)
### Pink and Purple Woven USB A to USB C Cable - 2 meters long

[Pink and Purple Woven USB A to USB C Cable - 2 meters long](https://www.adafruit.com/product/5044)
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers and more.&nbsp; [If you want something just like it but for Micro B, we have a B...](https://www.adafruit.com/product/4111)

Out of Stock
[Buy Now](https://www.adafruit.com/product/5044)
[Related Guides to the Product](https://learn.adafruit.com/products/5044/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)

## Related Guides

- [Adafruit BME680](https://learn.adafruit.com/adafruit-bme680-humidity-temperature-barometic-pressure-voc-gas.md)
- [Adafruit QT Py ESP32-S2 and QT Py ESP32-S2 with uFL Antenna](https://learn.adafruit.com/adafruit-qt-py-esp32-s2.md)
- [LED Matrix Alarm Clock](https://learn.adafruit.com/led-matrix-alarm-clock.md)
- [Ambient Video Lighting with HyperHDR](https://learn.adafruit.com/ambient-video-lighting-with-hyperhdr.md)
- [Busy Box Interruption Sign](https://learn.adafruit.com/busy-box-interruption-sign.md)
- [Cheekmate - a Wireless Haptic Communication System](https://learn.adafruit.com/cheekmate-wireless-haptic-communication.md)
- [CircuitPython Elgato WiFi Light Controller](https://learn.adafruit.com/circuitpython-elgato-wifi-light-controller.md)
- [Adabot Operation Game](https://learn.adafruit.com/adabot-operation-game.md)
- [Pathfinder Robot Companion](https://learn.adafruit.com/pathfinder.md)
- [Cartoon Character Clock](https://learn.adafruit.com/cartoon-character-clock.md)
- [Holiday Tree with Feather RP2040 Scorpio](https://learn.adafruit.com/holiday-tree-with-scorpio.md)
- [Arcade Fightstick](https://learn.adafruit.com/arcade-fightstick.md)
- [HalloWing M4 Animated Eye Candy Bowl](https://learn.adafruit.com/hallowing-m4-candy-bowl.md)
- [Tyrell Desktop Synthesizer](https://learn.adafruit.com/tyrell-desktop-synthesizer.md)
- [Bricktunes: LEGO Synthesizer Glove](https://learn.adafruit.com/bricktunes-lego-glove-synthesizer.md)
- [EPCOT Spaceship Earth with WLED](https://learn.adafruit.com/epcot-spaceship-earth-with-wled.md)
- [Homefruit FeatherWing Tester](https://learn.adafruit.com/homefruit-featherwing-tester.md)
