# No-Code WipperSnapper Summoning Horn

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/125/111/medium800/customer___partner_projects_DALL%C2%B7E_2023-10-12_19.04.00_-_Vector_black_and_white_line_drawing_of_a_simple_house_structure_with_a_single_room_and_a_clearly_defined_front_door._Inside_this_room__an_animal_is_se.png?1697134227 Image generated by DALL·E 2023-10-12 19.04.00 using ChatGPT 4 (Sept 25th 2023 model))

# Grabbing attention when necessary...
In this busy modern world, it’s hard to keep on top of everything without focus and discipline. Sometimes I need time to get on with a task, and to avoid distractions I may silence my notifications and put on noise-cancelling headphones.

This means colleagues can’t get my attention even when it matters most...like when I’m busy soldering in the workshop and my remote-working personal assistant takes a call saying an Adafruit delivery is at _my_ front door!

&nbsp;(Yes a doorbell could also be useful, but then I might have to answer the door to cold-calling sales people!)

# The Solution - Remote Control Air Horn!
![](https://cdn-learn.adafruit.com/assets/assets/000/125/329/medium800thumb/proximity_chrome_Mobul194Ey.jpg?1697564861)

In this guide, I will show you how to connect an attention-grabbing 40-watt Air Horn to the [Adafruit IO](https://learn.adafruit.com/welcome-to-adafruit-io) platform.

There will be a [passive-infrared (PIR) sensor](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor) to signal if anyone is in the office, which will also be presented in a 4-hour graph, and a nice interactive dashboard to make remote control simple.

It’s a **no-soldering** project, and you’ll be installing the open-source [Adafruit IO](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)[**WipperSnapper**](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper)[firmware](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper) on your board to automatically handle all the background code for connecting to the internet and triggering the inputs and outputs (no coding **&nbsp;** required).

![](https://cdn-learn.adafruit.com/assets/assets/000/125/112/medium800/customer___partner_projects_IMG_20231012_192748_344.jpg?1697136119)

The star of the show is the [Metro ESP32-S2](https://www.adafruit.com/product/4775), because of the great combination of the built-in WiFi and the StemmaQT port with a wide input voltage range, but if you have another board that is supported by WipperSnapper that will work as well.

# No-Code WipperSnapper Summoning Horn

## Parts

![](https://cdn-learn.adafruit.com/assets/assets/000/125/119/medium800/customer___partner_projects_20231012_174903.jpg?1697139781)

## PIR sensor notes

In this project you'll be using an Adafruit PIR sensor (or similar), and are going to configure it with a slow sensitivity (so it stays triggered for longer, which will use less calls to Adafruit IO and therefore have less impact on your rate limit).

If you read through the [PIR learn guide](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/), specifically the section on [testing](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/testing-a-pir#retriggering-2927235), then you will see the sensor can be configured for **retriggering** , and the **sensitivity** and **timing** can be adjusted.&nbsp;

I found adjusting the timing (delay) potentiometer to about 1/3 of a rotation from the start (if you turn the potentiometer anti-clockwise you will reach the start point) gave me about 30 seconds on-time, which felt about right.   
The time should be adjustable between about 2 seconds and 2 minutes.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/120/medium800/customer___partner_projects_20231012_205221.jpg?1697140422 PIR sensor with markings on the potentiometers showing original position)

It can be helpful to mark any dial or adjustable knob and the surrounding area with a permanent marker or other tool, showing the direction the dial originally faced, or in my case the preferred position.

The sensor supports two modes of re-triggering, selectable by changing the Jumper between High and Low modes (marked H/L on the silkscreen). Read more about this on the PIR learn guide linked above, but the choice is between firing on then off each time period that movement is detected, or continuing to fire until movement is not detected.

Experiment with this and see which you prefer. Personally I found the continuous signal to be less useful as I wanted to be sure to receive a new value when fresh movement had been detected. As a result I selected the L mode. If using H-mode then you may wish to change the component Return Interval from detecting "On\_Change" to "Periodically" and select a time period of "Every 30 seconds".

## The Air Horn

This project uses a _very loud_ 12 Volt car horn, although any similar thing could be used. It's marketed as 300 decibel, but that's the usual Amazon listings exaggerating the product specification. The actual horn is labeled as 410 Hz 12 Volts with no decibel rating.

I found one on Amazon for $15 (12 Volt and uses 3.5 Amps of current). Make sure the air horn you purchase uses under 60 Watts of current.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/145/medium800/customer___partner_projects_20231012_181826.jpeg?1697204267)

Mounting the Horn will require a 3D-printed bracket, or drilling a hole in your mounting plate. I've modeled a quick 3D printable bracket with space for the bolt to sit floating above the mounting plate. Find it on the Downloads page.

For the filament, I chose to use an elastomer (synthetic rubber) called TPU (Thermoplastic polyurethane), in White from manufacturer [EryOne](https://eryone3d.com/products/tpu). I wanted something to reduce the vibrations when the horn is activated, which rubber is very good at.

Printing should be relatively simple, following your intuition for your own printer needs, the model will print flat on its base or standing on its side. I also tried a brim which aids with stability and bed adhesion but requires post-processing (trimming after printing).  
My printer likes 225 Celsius for TPU and a bed temperature of 60 celsius.

Now onto the shopping list! You will need to purchase **_one_** Loud Horn **:**

### Part: Super Loud 12V Waterproof Air Horn (US Amazon)
quantity: 1
US Amazon - The horn has an internal recirculation design with a loudness of up to "300db", which is very clear and loud, giving the desired effect
[Super Loud 12V Waterproof Air Horn (US Amazon)](https://www.amazon.com/waterproof-electric-motorcycles-alternative-electronic/dp/B092CWNR7M/)

_ **Or** _

### Part: Super Loud 12V Waterproof Air Horn (UK Amazon)
quantity: 1
UK Amazon - The horn has an internal recirculation design with a loudness of up to "300db", which is very clear and loud, giving the desired effect
[Super Loud 12V Waterproof Air Horn (UK Amazon)](https://www.amazon.co.uk/Waterproof-Double-Raging-Electric-Motorcycle/dp/B0B1DN365G)

## Parts

In addition to the car horn listed above, you'll also want to pick up the following electronic components:

### Adafruit Metro ESP32-S2

[Adafruit Metro ESP32-S2](https://www.adafruit.com/product/4775)
What's Metro shaped and has an ESP32-S2 WiFi module? What has a STEMMA QT connector for I2C devices, and a Lipoly charger circuit? What has your favorite Espressif WiFi microcontroller and lots of memory for your next IoT project?

That's right - its the new Adafruit Metro...

In Stock
[Buy Now](https://www.adafruit.com/product/4775)
[Related Guides to the Product](https://learn.adafruit.com/products/4775/guides)
![Angled shot of Adafruit Metro esp32-s2 ](https://cdn-shop.adafruit.com/640x480/4775-06.jpg)

### Adafruit STEMMA Non-Latching Mini Relay - JST PH 2mm

[Adafruit STEMMA Non-Latching Mini Relay - JST PH 2mm](https://www.adafruit.com/product/4409)
STEMMA plug-and-play parts make your next project soldering-free! This is&nbsp;the **STEMMA Non-Latching Mini Relay**.&nbsp;It gives you power to control, and control over power. Put simply, you can now turn on and off lamps, fans, solenoids, and other small appliances that run on...

In Stock
[Buy Now](https://www.adafruit.com/product/4409)
[Related Guides to the Product](https://learn.adafruit.com/products/4409/guides)
![Demo lamp connected to a circuit playground and a Stemma with alligator clips. ](https://cdn-shop.adafruit.com/product-videos/640x480/4409-05.jpg)

### STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm](https://www.adafruit.com/product/3893)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" male header plugs on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/3893)
[Related Guides to the Product](https://learn.adafruit.com/products/3893/guides)
![Angled shot of STEMMA JST PH 3-Pin to Male Header Cable - 200mm.](https://cdn-shop.adafruit.com/640x480/3893-03.jpg)

### PIR (motion) sensor

[PIR (motion) sensor](https://www.adafruit.com/product/189)
PIR sensors are used to detect motion from pets/humanoids from about 20 feet away (possibly works on zombies, not guaranteed). This one has an adjustable delay before firing (approx 2-4 seconds), adjustable sensitivity **and** we include a 1 foot (30 cm) cable with a socket so you...

Out of Stock
[Buy Now](https://www.adafruit.com/product/189)
[Related Guides to the Product](https://learn.adafruit.com/products/189/guides)
![Angled Shot of the PIR (motion) sensor.](https://cdn-shop.adafruit.com/640x480/189-04.jpg)

### Premium Female/Male 'Extension' Jumper Wires - 20 x 3"

[Premium Female/Male 'Extension' Jumper Wires - 20 x 3"](https://www.adafruit.com/product/1953)
These Female/Male 'extension' jumper wires&nbsp;for making wire harnesses or jumpering between headers on PCB's. These premium jumper wires are 3" (75mm) long and come in a 'strip' of 20 (2&nbsp;pieces of each of ten rainbow colors). They have 0.1" male header...

In Stock
[Buy Now](https://www.adafruit.com/product/1953)
[Related Guides to the Product](https://learn.adafruit.com/products/1953/guides)
![Angled shot of Premium Female/Male 'Extension' Jumper Wires - 20 x 3](https://cdn-shop.adafruit.com/640x480/1953-02.jpg)

### Female DC Power adapter - 2.1mm jack to screw terminal block

[Female DC Power adapter - 2.1mm jack to screw terminal block](https://www.adafruit.com/product/368)
If you need to connect a DC power wall wart to a board that doesn't have a DC jack - this adapter will come in very handy! There is a 2.1mm DC jack on one end, and a screw terminal block on the other. The terminals are labeled with positive/negative assuming a positive-tip configuration...

In Stock
[Buy Now](https://www.adafruit.com/product/368)
[Related Guides to the Product](https://learn.adafruit.com/products/368/guides)
![Angle shot Female DC Power adapter - 2.1mm jack to screw terminal block](https://cdn-shop.adafruit.com/640x480/368-03.jpg)

### Part: 2-Way 2.1mm DC Barrel Jack Splitter Squid
quantity: 1
Double up your power adapters with this wonderfully simple 2-way power jack splitter.
[2-Way 2.1mm DC Barrel Jack Splitter Squid](https://adafru.it/1351)

### 12V 5A switching power supply

[12V 5A switching power supply](https://www.adafruit.com/product/352)
This is a beefy switching supply, for when you need a lot of power! It can supply 12V DC up to 5 Amps, running from 110V or 220V power (the plug it comes with is for US/Canada/Japan but you can use any plug adapter for your country, or just replace the cable with a standard 'figure-8'...

In Stock
[Buy Now](https://www.adafruit.com/product/352)
[Related Guides to the Product](https://learn.adafruit.com/products/352/guides)
![Power brick with coiled cables.](https://cdn-shop.adafruit.com/640x480/352-07.jpg)

Any 12Volt power supply which can supply 4 Amps or above will work just fine.

Why not check your box of old power supplies for a suitably rated unit before ordering a new one!

It _must be_ marked with the Center pin as Positive like shown in the image.

You could instead use a USB-C based power suppply, but finding a cheap one that can supply 4Amps at 12Volts is not easy, and then you'll need an adapter or breakout too (like our [USB Type C Power Delivery Breakout](https://www.adafruit.com/product/5807)).

![customer___partner_projects_20231013_115623.jpg](https://cdn-learn.adafruit.com/assets/assets/000/125/125/medium640/customer___partner_projects_20231013_115623.jpg?1697194712)

![customer___partner_projects_20231013_115623.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/126/medium640/customer___partner_projects_20231013_115623.jpeg?1697194950)

## Mounting Options
You'll also want to think about how this project will be mounted and if it will be enclosed. There is no right answer, so have fun experimenting with new techniques!

If you want to copy this guide _exactly_, then you'll need some **fixings** and a cross-head (Phillips/Posi-drive) screwdriver.

I've chosen the Nylon machine screws and stand-offs that come in a useful storage case:

### Part: Black Nylon Machine Screw and Stand-off Set – M2.5
quantity: 1
Totaling 380 pieces, this M2.5 Screw Set is a must-have for your workstation. You'll have enough screws, nuts, and hex standoffs to fuel your maker tendencies for days on end!
[Black Nylon Machine Screw and Stand-off Set – M2.5](https://adafru.it/3299)

You will also need **one** of the new Swirly Stemma Grid **mounting plates**!

Checkout the [learn guide](https://learn.adafruit.com/swirly-grid/overview) for more details, along with some tips & tricks.

### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5779)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5779)
[Related Guides to the Product](https://learn.adafruit.com/products/5779/guides)
![Overhead shot of 5x5 aluminum prototyping grid populated with a microcontroller and two breakout boards.](https://cdn-shop.adafruit.com/640x480/5779-05.jpg)

_ **Or:** _

### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5774)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5774)
[Related Guides to the Product](https://learn.adafruit.com/products/5774/guides)
![Top shot of a feather, a humidity sensor, a potentiometer and an I2C quad board mounted on to the grid. ](https://cdn-shop.adafruit.com/640x480/5774-05.jpg)

_ **Or:** _

### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5781)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5781)
[Related Guides to the Product](https://learn.adafruit.com/products/5781/guides)
![Overhead shot of 10x10 aluminum prototyping grid with a microcontroller and three breakout boards.](https://cdn-shop.adafruit.com/640x480/5781-05.jpg)

I found that I could fit the project onto a 5x5 grid if I used both sides (and relied on the edges of the plate and horn to form a natural stand), or just one side when using a 5x10 (still tight use of space) or 10x10 grid.

Keen-eyed readers will spot I didn't have a 5x10 grid available, so I prototyped on paper (outlining and cutting out each component). It was very helpful to appreciate where the fixings would be attached.

You may wish to try a larger mounting plate to give yourself more room to comfortably position the components.

![5 by 5 grid showing parts on both front and back](https://cdn-learn.adafruit.com/assets/assets/000/125/127/medium640/customer___partner_projects_20231013_122017.jpg?1697197353)

![10 by 10 grid highlighting an abundance of space](https://cdn-learn.adafruit.com/assets/assets/000/125/131/medium640/customer___partner_projects_20231013_121955.jpeg?1697197374)

![Paper templates of each component sat on a paper copy of the 5 by 10 grid](https://cdn-learn.adafruit.com/assets/assets/000/125/132/medium640/customer___partner_projects_20231013_113212.jpg?1697197400)

![5 by 10 grid on printed paper, with real components positioned on the grid](https://cdn-learn.adafruit.com/assets/assets/000/125/133/medium640/customer___partner_projects_20231013_113013.jpeg?1697197454)

## Alternative Options
You can also choose to swap the Metro-ESP32-S2 board for another WipperSnapper-supported [board](https://github.com/adafruit/Wippersnapper_Boards/tree/main/boards).

The [**FunHouse**](https://learn.adafruit.com/adafruit-funhouse/overview) is a perfect alternative, which is designed for a more compact and breadboard-friendly PIR sensor, and includes built-in environmental sensors and buzzer! That would allow a low-volume buzzer if the person is in the room, or the air horn if they are away somewhere in the distance.

Swap the PIR sensor for the breadboard-friendly plug and play version if you choose the FunHouse board instead of the Metro.

You will also want a double-ended Stemma cable for the relay, and if you have one of the older PIR sensors (not the breadboard-friendly version) then instead of jumper wires you'll want a Stemma to Female Header cable.

### Adafruit FunHouse - WiFi Home Automation Development Board

[Adafruit FunHouse - WiFi Home Automation Development Board](https://www.adafruit.com/product/4985)
Home is where the heart is...it's also where we keep all our electronic bits. So why not wire it up with sensors and actuators to turn our house into an electronic wonderland. Whether it's tracking the environmental temperature and humidity in your laundry room, or notifying you when...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4985)
[Related Guides to the Product](https://learn.adafruit.com/products/4985/guides)
![Top-down video of Adafruit Funhouse PCB. The TFT display shows a data readout, and the NeoPixel LEDs glow rainbow colors.](https://cdn-shop.adafruit.com/product-videos/640x480/4985-00.jpg)

### Breadboard-friendly Mini PIR Motion Sensor with 3 Pin Header

[Breadboard-friendly Mini PIR Motion Sensor with 3 Pin Header](https://www.adafruit.com/product/4871)
PIR sensors are used to detect motion from pets/humanoids from about 5 meters away (possibly works on zombies, not guaranteed). This sensor is much smaller than most PIR modules, which makes it great for unobtrusive projects. It's also fully-contained - only needs power and ground, and...

In Stock
[Buy Now](https://www.adafruit.com/product/4871)
[Related Guides to the Product](https://learn.adafruit.com/products/4871/guides)
![Topdown video of 3-pin PIR sensor assembled onto a breadboard. A hand passes over the sensor, and a blue LED to light up.](https://cdn-shop.adafruit.com/product-videos/640x480/4871-04.jpg)

### JST PH 2mm 3-pin Plug-Plug Cable - 100mm long

[JST PH 2mm 3-pin Plug-Plug Cable - 100mm long](https://www.adafruit.com/product/4336)
This cable is a little over 100mm / 4" long&nbsp;and fitted with JST-PH 3-pin connectors on either end.&nbsp;

We dig the solid and compact nature of these connectors and the latch that keeps the cable from coming apart easily. We're carrying these to <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/4336)
[Related Guides to the Product](https://learn.adafruit.com/products/4336/guides)
![Angled shot of JST PH 3-pin Plug-Plug Cable - 100mm long.](https://cdn-shop.adafruit.com/640x480/4336-01.jpg)

# No-Code WipperSnapper Summoning Horn

## Wiring

## Fritzing Image / Wiring Diagram
![](https://cdn-learn.adafruit.com/assets/assets/000/125/038/medium800/customer___partner_projects_MetroS2-Relay-PIR-Horn_bb_2.png?1696944680)

Warning: 

Make the following connections between the parts and your microcontroller:

- The **red&nbsp;** wires represent&nbsp; **12 Volts** positive power lines
- The **black** &nbsp;wires are at&nbsp; **0 Volts&nbsp;** (Ground - also sometimes called negative)
- The **yellow** &nbsp;wire is the&nbsp; **PIR sensor signal** wire connected to the&nbsp; **A2 pin**
- The **white** &nbsp;wire is the&nbsp; **Stemma Relay signal** wire coming from the **A3**  **pin**
- The **red and white** striped/banded wire represents **3.3 Volts** , used to power the low side of the relay.
- The&nbsp; **speaker** component in the diagram represents the 12 Volt horn.

## Wiring

The wiring for this project is straightforward. The horn comes with two wires and has _no polarity_ (polarity means one end expects to be positively charged and the other negative, a bit like the earth’s magnetic poles/polarity). This means it doesn't matter which wire we choose for ground or 12 volts, as long as one is on each the horn will work.

### Relay and Horn Wiring
Take one wire that will come from the Horn (yellow in this photo) and attach it to the screw terminal for Ground/Negative (marked with a minus sign).

Take the other wire from the horn (red in this photo) and connect it to the middle hole on the relay (marked common). Use a screwdriver to depress the tab and allow the wire to be inserted and gripped.

Obtain another "spare" wire similar in diameter to the one supplied with the horn. If you don't have one spare then you can cut the supplied horn wire into two smaller wires.

![customer___partner_projects_20231013_125441.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/134/medium640/customer___partner_projects_20231013_125441.jpeg?1697198794)

![customer___partner_projects_20231013_125508.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/135/medium640/customer___partner_projects_20231013_125508.jpeg?1697198811)

Connect the "spare" wire to the DC jack screw terminal (marked with a plus for positive).

Attach the other end to the relay by inserting it into the hole marked NO (NO on relays means normally open, so the internal switch/wire connection is broken or open. NC means normally closed so the internal switch/wire is connected and electricity can flow).

![customer___partner_projects_20231013_125955.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/136/medium640/customer___partner_projects_20231013_125955.jpeg?1697198855)

Take your Stemma cable and connect one end to the relay. If you're using a board with Stemma connectors then connect the other end to the board and skip to the PIR step.

The black wire at the other end of the Stemma cable should be connected to the ground (marked GND) on the Metro-S2.   
Any of the board's ground pins will be acceptable.

![customer___partner_projects_20231013_131101_(2).jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/138/medium640/customer___partner_projects_20231013_131101_%282%29.jpeg?1697199379)

Connect the red wire (marked with Red and White banding in the circuit diagram) of the Stemma cable to one of your board's 3.3 volt pins (marked 3v3), or a 5 volt pin if you only have them available.

Finally, connect the remaining signal wire (white in the photo) of the Stemma cable to A3 on the Metro-S2 board.

![customer___partner_projects_20231013_132300_2.jpg](https://cdn-learn.adafruit.com/assets/assets/000/125/139/medium640/customer___partner_projects_20231013_132300_2.jpg?1697201409)

![customer___partner_projects_20231013_132237.jpg](https://cdn-learn.adafruit.com/assets/assets/000/125/140/medium640/customer___partner_projects_20231013_132237.jpg?1697201477)

### PIR Sensor Wiring
The PIR sensor has a 3-pin header with the middle pin usually as a signal, double check the silkscreen printing next to the 3-pin header on your sensor.

Connect a Female/Male Extension jumper wire between the Ground on the board and the Ground on the PIR sensor (marked GND).

Connect another jumper wire between the VCC pin on the Board (the positive power pins on the Metro-S2) and the VCC on the PIR sensor (marked +5V).

Lastly connect the signal wire (yellow in image) between the middle pin (marked OUT) on the sensor and the A2 pin on the Metro-S2.

![customer___partner_projects_20231013_140156.jpeg](https://cdn-learn.adafruit.com/assets/assets/000/125/141/medium640/customer___partner_projects_20231013_140156.jpeg?1697202328)

![customer___partner_projects_20231013_141653.jpg](https://cdn-learn.adafruit.com/assets/assets/000/125/144/medium640/customer___partner_projects_20231013_141653.jpg?1697203050)

Lastly, connect the Horn to the wire coming from the relay, and the wire coming from the DC Jack.

# No-Code WipperSnapper Summoning Horn

## Layout and Assembly

The choice is yours when it comes to circuit layout and mounting, let your imagination go wild as they say...

_Maybe an artistic sculpture is more your style?_

https://twitter.com/MohitBhoite/status/1611078956169711616

At first, I've chosen to go with the new Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs, which has a nice collection of slots and holes, made from sturdy aluminum. They come in a few sizes so maybe print out the grid on paper and plan before buying, but you can always carefully cut the aluminum grids with a hacksaw (or get someone to help).

Combined with the nylon stand-offs, which come in a useful storage box, and a simple cross-head screwdriver (Philips or Posi-drive), you can easily prototype and reconfigure 'til your heart's content.

Afterward, the grid could be mounted to a wall, or placed in an enclosure, as long as the PIR sensor can still "see" where it needs to be looking.

I tried the 10x10 Grid, and the 5x5 grid, as there were no 10x5 grids in stock at the time. The smaller one made me think more creatively about space, and I chose to use the back and front of the grid with the horn and mounting plate acting as a natural stand.

Featured
### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5779)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5779)
[Related Guides to the Product](https://learn.adafruit.com/products/5779/guides)
![Overhead shot of 5x5 aluminum prototyping grid populated with a microcontroller and two breakout boards.](https://cdn-shop.adafruit.com/640x480/5779-05.jpg)

The larger grids allow all the components on one side, which makes mounting easier.

Featured
### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5774)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5774)
[Related Guides to the Product](https://learn.adafruit.com/products/5774/guides)
![Top shot of a feather, a humidity sensor, a potentiometer and an I2C quad board mounted on to the grid. ](https://cdn-shop.adafruit.com/640x480/5774-05.jpg)

Featured
### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5781)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

In Stock
[Buy Now](https://www.adafruit.com/product/5781)
[Related Guides to the Product](https://learn.adafruit.com/products/5781/guides)
![Overhead shot of 10x10 aluminum prototyping grid with a microcontroller and three breakout boards.](https://cdn-shop.adafruit.com/640x480/5781-05.jpg)

## Mounting the Horn

Attaching the Horn requires either drilling a hole through the grid and then attaching the nut from behind, or using some kind of mounting plate or bracket.

The horn I purchased comes with a metal plate, that could probably be held against the grid with nylon nuts and bolts, but I chose to 3D print an adapter that would lift the horn and bolt off the grid and avoid damaging the aluminum.

You can find the 3D model on the Downloads page.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/147/medium800/customer___partner_projects_20231013_145806-EDIT.jpg?1697206633)

Try to have fun with the mounting and layout, there are infinitely many ways to be creative!

For my second attempt, I tried routing the horn wiring _through_ the mounting grid for neatness. I was also able to reuse some of the horn fixings to hold the Metro-S2 on the other side, which was surprisingly satisfying! You'll also that I'm using some thread to tie the loose DC Jack to the mounting plate, but you may find it easier to use something else like sticky foam tape.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/148/medium800/customer___partner_projects_20231013_152703-EDIT-EDIT.jpg?1697207456 Upside-down device, with a black horn bracket instead of white, showing the yellow wire feeding through mounting plate)

## Positioning the PIR sensor
The PIR sensor needs to be facing in approximately the direction to be watched/monitored. The sensors generally have a very wide _Field of View,_ but that can vary based on the [lenses](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor/how-pirs-work#lenses-2927212) used.

The Adafruit store stocks a sensor with a 110° field of view, so take that into consideration when planning where to mount the sensor. You can also reduce the field of view, by obscuring an area of the lens with electrical tape, or try putting the sensor in a cardboard tube!

I tried printing a 90° bracket to allow a sideways-facing sensor. I wanted it to be more in line with the Horn direction, to allow placing on a shelf or bookcase. You can find it on the Downloads page.

The PIR bracket is not perfect, it has no space allocated for the protruding pin tips on the front side of the sensor, but retained with a couple of screws it is fairly effective. You'll also see it has the grid pattern cutouts for easier mounting.

I get no points for style here, and you may have guessed that my printer is set up to be quick and messy for functional prints rather than aesthetically pleasing. It was printed in PETG, which has the advantage of being rigid and UV resistant, with a 235°C nozzle and 70°C bed.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/149/medium800/customer___partner_projects_20231013_154821-EDIT.jpg?1697208625)

# No-Code WipperSnapper Summoning Horn

## Install WipperSnapper

Warning: 

WipperSnapper is in **beta** and actively being developed to add functionality, hardware, and fix bugs.

**We encourage you to try out WipperSnapper** &nbsp;with the understanding that it is not final release software and is still in development.

If you encounter any bugs, glitches, or difficulties during the beta period, or in this guide, [please file an issue on the Adafruit IO support page](http://io.adafruit.com/support).

## Sign up for Adafruit IO

[Adafruit IO](https://io.adafruit.com/)&nbsp;is a platform designed by Adafruit&nbsp;to&nbsp;_display_,&nbsp;_respond_, and&nbsp;_interact_ with your project's data. You will need an Adafruit IO account to use the Adafruit.io Wippersnapper platform.

**If you do not already have an Adafruit IO account set up** , head over to&nbsp;[io.adafruit.com](http://io.adafruit.com/)&nbsp;to link your Adafruit.com account to Adafruit IO.

## Download the latest version
Danger: 

Download the **UF2** file for your board below:

[Metro ESP32-S2 UF2](https://io.adafruit.com/wipper_releases/metroesp32s2)
[Other Device](https://io.adafruit.com/devices/new)
Next, plug your board into a USB cable. Make sure the USB cable is a data cable!

## Install WipperSnapper

**Double-tap the RESET button on your board** to enter the UF2 bootloader. You may need to try this a few times to get the timing right.

A new drive will show up on your computer as `boardnameBOOT`, where _`boardname`_ is the name of your specific board.

![](https://cdn-learn.adafruit.com/assets/assets/000/103/011/medium800/adafruit_products_mbp__2_.png?1624467665)

Next, drag the UF2 file you downloaded to the `boardnameBOOT` drive.

![](https://cdn-learn.adafruit.com/assets/assets/000/103/010/medium800thumb/adafruit_products_Kapture_2021-06-23_at_12.59.38.jpg?1624467587)

The `boardnameBoot` drive will disappear from your computer and a **new** drive will show up on your computer named **WIPPER**.

You'll also see the LEDs blink yellow 4 times to indicate the file system is initialized.

- **NOTE - If you've used this board previously with CircuitPython,** it'll be named **CIRCUITPY** instead of WIPPER.

![](https://cdn-learn.adafruit.com/assets/assets/000/103/013/medium800/adafruit_products_mbp__2_.png?1624467735)

## Configure the WipperSnapper Secrets File

**You do not need to repeat the following steps each time you upgrade the WipperSnapper firmware file -** once the board is registered with Adafruit IO, WipperSnapper will remember it until you delete the board.

We expect educators, scientists, artists, and makers to need quick and easy access to their WiFi network credentials, along with a way of storing their Adafruit IO credentials. WipperSnapper uses a **secrets.json** file on the **WIPPER** drive to hold your Adafruit IO and network credentials.

Open the **WIPPER** drive on your computer **,** you should see a new file named **secrets.json.**

![](https://cdn-learn.adafruit.com/assets/assets/000/103/299/medium800/installing_wippersnapper_on_samd51___airlift_WIPPER.png?1625596333)

Open the **secrets.json file** using a text editor.

Inside is a [JSON](https://www.json.org/)-formatted text file with a line for each item. Each item has a name (such as your Adafruit IO username, `io_username`) and then a colon to separate it from the item key (such as `YOUR_IO_USERNAME_HERE`) and finally a comma.

The `network_type_wifi_` key written to your file will depend on which type of WiFi interface your hardware uses. This will be set automatically!

```auto
{
    "io_username": "YOUR_IO_USERNAME_HERE",
    "io_key": "YOUR_IO_KEY_HERE",
    "network_type_wifi_native": {
      "network_ssid": "YOUR_WIFI_SSID_HERE",
      "network_password": "YOUR_WIFI_PASS_HERE"
    }
}
```

To obtain your Adafruit IO credentials, navigate to [the Adafruit IO WipperSnapper page](https://io.adafruit.com/wippersnapper) and **click "My Key"**. A modal will pop up with your Adafruit IO username and the active key.

![](https://cdn-learn.adafruit.com/assets/assets/000/103/029/medium800thumb/adafruit_products_Kapture_2021-06-23_at_16.31.25.jpg?1624480316)

In the **secrets.json** file, replace `YOUR_IO_USERNAME_HERE` with your Adafruit IO username.

Then, replace `YOUR_IO_KEY_HERE` with the value of your Adafruit IO active key.

Replace `YOUR_WIFI_SSID_HERE` with your WiFi SSID and replace `YOUR_WIFI_PASS_HERE` with your WiFi network password.

## Registering a board with Wippersnapper

On a web browser, navigate to the **[Adafruit IO WipperSnapper page](https://io.adafruit.com/wippersnapper)**. Keep this page open during this step.

Next, **eject the WIPPER drive.**

Then, **press your board's RESET button once.**

The RGB LED (if your board has one) should turn cyan as it connects to your WiFi network, then blue as it connects to the Adafruit IO service. It'll briefly turn yellow as it sends details about the board's hardware to Adafruit IO.

Finally, **the RGB LED will blink green three times to indicate that it's fully connected**. It'll turn off to conserve power.&nbsp;

On your browser, you should see a new modal pop-up with a picture of your board! Give your board a name and **click Continue to Device Page**.

![](https://cdn-learn.adafruit.com/assets/assets/000/103/028/medium800thumb/adafruit_products_Kapture_2021-06-23_at_16.14.26.jpg?1624479371)

 **Congrats, your board is registered with WipperSnapper!** The LED(s) or NeoPixel(s) will periodically flash to alert you that the board is still connected to Adafruit.io WipperSnapper.

Next, let's add some components to your board and start playing around!&nbsp;

# No-Code WipperSnapper Summoning Horn

## Configure WipperSnapper

![](https://cdn-learn.adafruit.com/assets/assets/000/124/819/medium800/customer___partner_projects_Screenshot_2023-10-04_142540.png?1696435117)

## Adding Components
To recreate the setup in the image above you'll need to add 3 components to your WipperSnapper device, a PIR sensor, a Stemma Relay, and the on-board NeoPixel.

The basic idea is to use the **New Component** button at the top of the device page, and select the component you want to add, then choose the appropriate board pin for the component (like D1) and any timing options if required.

Warning: 

[Pin Diagram for Metro-ESP32-S2](https://github.com/adafruit/Adafruit-Metro-ESP32-S2-PCB/blob/master/Adafruit%20Metro%20ESP32-S2%20pinout.pdf)
![](https://cdn-learn.adafruit.com/assets/assets/000/125/237/medium800/proximity_Screenshot_2023-10-16_213115.png?1697488510)

## Adding The PIR Sensor
To add a new component click the **Plus** where the components appear on the right hand side of the page, or use the **New Component** button at the top left of the screen above the device panel.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/238/medium800/proximity_6ospr3nfHu.png?1697489502)

Search for and select the **PIR Sensor** from the list of components

![](https://cdn-learn.adafruit.com/assets/assets/000/125/242/medium800/proximity_Ua2xrHkwKm.png?1697489879)

The **Create PIR Sensor Component** window will be shown like the image below.

Change the **PIR Sensor Name** to " **Currently In Office?**" or your chosen phrase.

Set the **PIR Sensor Pin** to **D1** &nbsp;(or the pin you've used instead).

Set the&nbsp; **Return Interval** to&nbsp; **On Change** (be sure you've adjusted the timing potentiometer so it wont fire too frequently).

Then&nbsp; **Create Component.**

![proximity_t8vudepiV2.png](https://cdn-learn.adafruit.com/assets/assets/000/125/245/medium640/proximity_t8vudepiV2.png?1697490658)

![proximity_IGu3EV1uZD.png](https://cdn-learn.adafruit.com/assets/assets/000/125/247/medium640/proximity_IGu3EV1uZD.png?1697491237)

In addition to the basic component setup you can customise a few features for each component, like the title, labels and icons. You can access the settings by clicking the Cog/Gear symbol next to one of the components on your device page.

Bring up the&nbsp; **Edit PIR Sensor Component** window for the PIR Sensor, by clicking on the settings cog:

![](https://cdn-learn.adafruit.com/assets/assets/000/125/248/medium800/proximity_ybvxIxO6oc.png?1697491335)

You'll notice you can now set the Off/On labels, and update the Icons. There's a handy preview at the top right labelled **Appearance**.

Update the **Off Label** to say something appropriate when there is no movement detected in the room. I went with " **Unknown**".

Do the same for the&nbsp; **On Label** , I've used the phrase " **In Room**",

Now to update the Icons you click the button under the text&nbsp; **Off Icon** &nbsp;where it shows the current icon and says&nbsp; **edit**.

![proximity_uRZTjzGDwR.png](https://cdn-learn.adafruit.com/assets/assets/000/125/256/medium640/proximity_uRZTjzGDwR.png?1697492632)

A search window pops up with two sections, the first for glyphs, and the second for emojis. You'll find a mix of suitable symbols in both, so have a good search around.

Set the&nbsp; **Off Icon** to&nbsp; **person-walking-dashed-line-arrow-right** or your own preference.  
  
Set the **On Icon** to **chair-office** and save the updates with the&nbsp; **Update Component** button.

![proximity_Te66O7EFiz.png](https://cdn-learn.adafruit.com/assets/assets/000/125/260/medium640/proximity_Te66O7EFiz.png?1697502281)

Info: 

![](https://cdn-learn.adafruit.com/assets/assets/000/125/259/medium800thumb/proximity_chrome_HwOzEZneJC.jpg?1697492928)

## Adding The Relay
Use the&nbsp; **New Component** button again, and this time select the **Relay** component.

Set the **Relay Pin** to&nbsp; **D2**.

You'll notice the pin selection list has any in-use pins greyed out.

![proximity_Screenshot_2023-10-16_231121.png](https://cdn-learn.adafruit.com/assets/assets/000/125/261/medium640/proximity_Screenshot_2023-10-16_231121.png?1697503778)

Next use the **Settings Cog** &nbsp;to edit the Relay component just created.

![proximity_oPlI13qoy6.png](https://cdn-learn.adafruit.com/assets/assets/000/125/262/medium640/proximity_oPlI13qoy6.png?1697504510)

Set the&nbsp; **Relay Name** &nbsp;to " **Attention Grabbing Horn&nbsp;** 📯".

Change the&nbsp; **Off Icon** &nbsp;to use the&nbsp; **Mute&nbsp;** emoji.

Change the&nbsp; **On Icon** &nbsp;to use the&nbsp; **Horn&nbsp;** emoji.

Save the updates to the component.

![proximity_Screenshot_2023-10-13_010153.png](https://cdn-learn.adafruit.com/assets/assets/000/125/264/medium640/proximity_Screenshot_2023-10-13_010153.png?1697504892)

## Adding The On-Board NeoPixel
Use the&nbsp; **New Component&nbsp;** button to find and select the&nbsp; **NeoPixel** component.

![proximity_sWzzZzcHoR.png](https://cdn-learn.adafruit.com/assets/assets/000/125/266/medium640/proximity_sWzzZzcHoR.png?1697501260)

Verify then accept the default options, as they should be appropriate.

The on-board NeoPixel pin (D45) should be selected.

Verify the number number of pixels is 1.

Brightness is between 0 and 255.

![proximity_Screenshot_2023-10-16_234510.png](https://cdn-learn.adafruit.com/assets/assets/000/125/267/medium640/proximity_Screenshot_2023-10-16_234510.png?1697501380)

Once you've created the three components, try testing the NeoPixel by clicking one of the colors in the component panel.

You can turn off the NeoPixel by using the slider which affects the brightness. Slide all the way to the left to turn off the NeoPixel.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/268/medium800/proximity_1rCXl8fW7V.png?1697502303)

There is also a full color picker that pops up when you click the Dropper icon at the end of the row of colors.

This is a great way to find the HTML color code that is used for a specific color. Select the color you like and the magic hex code appears in the box. (We'll use some hex colors later in the Actions page)

![proximity_Screenshot_2023-10-17_001110.png](https://cdn-learn.adafruit.com/assets/assets/000/125/269/medium640/proximity_Screenshot_2023-10-17_001110.png?1697502910)

# No-Code WipperSnapper Summoning Horn

## WipperSnapper Actions

## Reactive Actions
In order to have the dashboard icons react to the PIR sensor, and change between two chosen images, there needs to be some code running each time a [feed](https://learn.adafruit.com/adafruit-io-basics-feeds) is updated.

Adafruit IO has you covered here, there is a no-code option called **Actions** which allow scheduled or reactive reactions when a feed gets a new value. (Soon there will also be **Blockly** integration, [see a sneak-peek](https://blog.adafruit.com/2023/09/06/wippersnapper-updates-wednesday-blockly-actions-new-sensors-supported-uart-and-more/#:~:text=%F0%9F%A7%B1-,Sneak%20Peek,-%3A%20More%20Powerful%20Adafruit) on the blog.)

![](https://cdn-learn.adafruit.com/assets/assets/000/124/820/medium800/customer___partner_projects_Screenshot_2023-10-04_170018.png?1696435237)

You can easily setup an action to change the indicator icon to a thumbs-up if the PIR sensor value is 1, and similarly to thumbs down if the feed gets set to zero. Why not get creative and choose some more appropriate images. (I used the Edit Component option to show me the searchable images list and then copied the names down to use later in the actions.)

I've also setup an action to change the on-board NeoPixel to Red or Green depending on if the Metro-S2 can "see" anyone. This helps massively with debugging, and could be left enabled for the end-user to also see, but as it takes up some of the rate limit it makes sense to remove those two once testing is completed.

## Creating Actions
Before we create our actions we need somewhere to send the image name when the PIR sensor detects movement.

To achieve this you can create a new feed on the Adafruit IO [Feeds page](https://io.adafruit.com/feeds). Name it something clearly recognisable like **icon-name**.

To setup an action you need to visit the Adafruit IO Actions page, and then use the **New Action** button.

Select **Reactive Action&nbsp;** from the dialog of Action types.

&nbsp;

![customer___partner_projects_Screenshot_2023-10-13_170252.png](https://cdn-learn.adafruit.com/assets/assets/000/125/151/medium640/customer___partner_projects_Screenshot_2023-10-13_170252.png?1697213020)

Configure the first action to check with the following settings:

**If:**"Currently in Office?" [PIR feed]  
**Is** : "Greater than or equal to"&nbsp;  
**Comparison Value** : 1  
**Then** : "publish a message to:"  
**Feed** : "icon-name" [Feed for icons]  
**With:**"thumbs-o-up" [Person is here icon]  
**Limit Every** : "Ten Seconds"

![customer___partner_projects_Screenshot_2023-10-13_171525.png](https://cdn-learn.adafruit.com/assets/assets/000/125/152/medium640/customer___partner_projects_Screenshot_2023-10-13_171525.png?1697213752)

Now repeat for the opposite condition, e.g. the " **Is:"** comparison should be "less than", and the " **With:**" value should be thumbs-o-down or your chosen icon to mean no movement.  
  
I've also created two more nearly identical actions, but these publish a message to the NeoPixel feed, by sending red-green-blue hexadecimal values (like those used in HTML webpages that start with a hash[#]). The maximum value for each color pair is FF, so for full red I used #ff0000, and for fully green the value is #00ff00. The hexadecimal colours are case insensitive (ff = FF).

# No-Code WipperSnapper Summoning Horn

## Build an Adafruit IO Dashboard

![](https://cdn-learn.adafruit.com/assets/assets/000/125/153/medium800/customer___partner_projects_Screenshot_2023-10-04_170106.png?1697215319)

Now to create our interactive dashboard, or remote control panel, to allow controlling the Air Horn over the internet. You can even share the dashboard with others, such as your personal assistant (or cat!).

## Dashboard Setup
So let's get started! I recommend setting up your first dashboard at the normal screen size of your computer. Then you can save that layout, resize your browser window, and then optimise your dashboard layout for the smaller screen.

Navigate to the [Adafruit IO Dashboard](https://io.adafruit.com/dashboards) page and click the _New Dashboard_ button. Then, enter a name for the dashboard (and a description if you wish).

You will be taken to an "empty" dashboard. You'll be adding "blocks" to this page.

![customer___partner_projects_Screenshot_2023-10-13_175412.png](https://cdn-learn.adafruit.com/assets/assets/000/125/155/medium640/customer___partner_projects_Screenshot_2023-10-13_175412.png?1697216081)

On the upper-right-hand side of the dashboard, click the Cog/Gear icon to access the **Dashboard Settings** dropdown menu.

![customer___partner_projects_Screenshot_2023-10-13_175515.png](https://cdn-learn.adafruit.com/assets/assets/000/125/159/medium640/customer___partner_projects_Screenshot_2023-10-13_175515.png?1697216506)

Click the **Create New Block** option, and then select the **Momentary Button** block type from the list of blocks.

![proximity_DJdOPdtmx1.png](https://cdn-learn.adafruit.com/assets/assets/000/125/270/medium640/proximity_DJdOPdtmx1.png?1697501157)

When asked which feed to connect, select the horn feed.

![proximity_Screenshot_2023-10-17_002849.png](https://cdn-learn.adafruit.com/assets/assets/000/125/271/medium640/proximity_Screenshot_2023-10-17_002849.png?1697501604)

The Block Settings window will be presented.

Set the **Button Text** to " **Toot Horn** 📯"

Verify that the **Press Value** is set to **1** and the **Release Value** to **0**.

Update the colors if desired then click **Create Block**.&nbsp;

You will see the new button on your dashboard.&nbsp;

![customer___partner_projects_LWLr3J1Tpv.png](https://cdn-learn.adafruit.com/assets/assets/000/125/161/medium640/customer___partner_projects_LWLr3J1Tpv.png?1697216816)

![](https://cdn-learn.adafruit.com/assets/assets/000/125/272/medium800/proximity_Screenshot_2023-10-17_005814.png?1697500817)

Next you'll need to create another momentary button, pointed again at the horn feed, using the **Create New Block** option of the Dashboard Settings drop-down menu.

Call it something like Emergency Reset, and set both the Press and Release values to zero. That way if the horn get's stuck on then we can fire an Off signal by pressing this reset button.

Update the block title to " **In Emergency Press To Turn Horn Off** 🔕"

Set _ **both** _ the **Press** and **Release** values to **zero**.

![proximity_Screenshot_2023-10-17_011804.png](https://cdn-learn.adafruit.com/assets/assets/000/125/273/medium640/proximity_Screenshot_2023-10-17_011804.png?1697501904)

You probably want to pick a different color for this block, as you want it to have a strong visual difference to the other button that triggers the horn.

Set the **Light Mode Color** to:  
**hsv(0, 0%, 49%)**

Set the **Dark Mode Color** to:  
**hsv(259, 100%, 68%)**

![proximity_Screenshot_2023-10-17_012021.png](https://cdn-learn.adafruit.com/assets/assets/000/125/274/medium640/proximity_Screenshot_2023-10-17_012021.png?1697502293)

![proximity_Screenshot_2023-10-17_012021.png](https://cdn-learn.adafruit.com/assets/assets/000/125/275/medium640/proximity_Screenshot_2023-10-17_012021.png?1697502325)

Now create another new block, selecting the Indicator block type. This will be to show if a person or movement is detected by the PIR sensor.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/276/medium800/proximity_y5w46oCQWi.png?1697503020)

Select the PIR sensor feed on the&nbsp; **Connect a Feed** step, called " **Currently In Office?**" if you followed the suggested name.

On the **Block Settings** page leave the colors as they are (Green for movement/person, and red for not).

![proximity_Screenshot_2023-10-17_014319.png](https://cdn-learn.adafruit.com/assets/assets/000/125/279/medium640/proximity_Screenshot_2023-10-17_014319.png?1697503514)

Set the&nbsp; **Block Title** to something like " **Person in Room?** 🙋🪟🔭👀"

Set the&nbsp; **Conditions** to " **\>=**" (meaning "greater than or equal to")&nbsp; in the first box, and then a value of&nbsp; **1&nbsp;** in the box beneath.

Complete adding the block with the **Create Block** button.

![proximity_Screenshot_2023-10-17_015350.png](https://cdn-learn.adafruit.com/assets/assets/000/125/280/medium640/proximity_Screenshot_2023-10-17_015350.png?1697504067)

You probably want to have an Indicator block for the current horn status. That way any user of the dashboard can tell if the horn is stuck on and to use the emergency reset!

Create a new Indicator block, and this time on the Connect A Feed page select the horn feed ("Attention Grabbing Horn 📯").

Set the&nbsp; **Block Title** &nbsp;to something like "**Horn Status (Is it stuck on?)**"

Set the&nbsp; **On Color** to **Orange** or **hsv(26, 100%, 100%)**

Set the&nbsp; **On Color** to just lighter than **Black** or **hsv(0, 0%, 6%)**

Set the&nbsp; **Conditions** &nbsp;to " **\>=**" (meaning "greater than or equal to")&nbsp; in the first box, and then a value of&nbsp; **1&nbsp;** in the box beneath.

Complete adding the block with the&nbsp; **Create Block** &nbsp;button.

![proximity_Screenshot_2023-10-17_020528.png](https://cdn-learn.adafruit.com/assets/assets/000/125/281/medium640/proximity_Screenshot_2023-10-17_020528.png?1697504787)

Now you need to create an&nbsp; **Icon** block. This will be controlled by the Actions that we defined earlier. The idea is to not set any icon initially in the block settings, because it will be changed as soon as the PIR sensor Feed receives new data.

Select the feed manually created on the Actions step, I called mine&nbsp; **icon-name**.

Set the&nbsp; **Block Title** &nbsp;if desired. I set mine to " **In Room?**".

Select a&nbsp; **Color** , something that goes with your color-scheme, or if you switch the dashboard between dark/light mode often then it makes more sense to pick a neutral colour that works with both.  
I went with Grey or&nbsp;**hsv(0, 0%, 48%)**

![proximity_wKqQbphmjW.png](https://cdn-learn.adafruit.com/assets/assets/000/125/289/medium640/proximity_wKqQbphmjW.png?1697508259)

Lastly you'll want to create a **Line Chart** block, pointed at the PIR sensor feed.&nbsp;

![proximity_PVnpCxQUS9.png](https://cdn-learn.adafruit.com/assets/assets/000/125/284/medium640/proximity_PVnpCxQUS9.png?1697505697)

Set the following options then use the Create Block buttonA:

- **Block Title** to **Occupancy Graph (4hr)**
- **Show**  **History** to **4 Hours**
- **Y-Axis Minimum&nbsp;** to&nbsp; **0**
- **Y-Axis Maximum** to **1**
- **Decimal Places** to&nbsp; **0**
- Enable&nbsp; **Raw Data Only** option
- Enable&nbsp; **Stepped Line** option
- Disable&nbsp; **Draw Grid Lines&nbsp;** option
- Disable&nbsp; **Feed Key Legend&nbsp;** option

![proximity_Screenshot_2023-10-17_023524.png](https://cdn-learn.adafruit.com/assets/assets/000/125/286/medium640/proximity_Screenshot_2023-10-17_023524.png?1697506548)

![proximity_Screenshot_2023-10-17_023817.png](https://cdn-learn.adafruit.com/assets/assets/000/125/287/medium640/proximity_Screenshot_2023-10-17_023817.png?1697506745)

Your dashboard will look something like this, small buttons and everything in a tall stack:

![](https://cdn-learn.adafruit.com/assets/assets/000/125/288/medium800/proximity_Screenshot_2023-10-17_024035.png?1697506849)

Now we have all the pieces it's time to do some reorganising... Access the dashboard settings, and _instead of Create New Block_, choose **Edit Layout**. You can now drag blocks around and resize them as desired.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/291/medium800/proximity_Screenshot_2023-10-17_024434.png?1697510806)

You may also find it useful to enable Block Outlines in the dashboard settings, but in Edit Layout mode you can see the block's corner markers anyway.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/290/medium800/proximity_TS5pruxdKx.png?1697510644)

And that's about it! You'll want to share your dashboard with your personal assistant so they'll finally have the power to get your attention, but first do some thorough testing!

# No-Code WipperSnapper Summoning Horn

## Testing / Usage

To begin start with the horn disconnected and then try pressing and holding down the Toot Horn button on the dashboard.

You should see the Indicator for the horn change color to orange, and when you let go of the Toot Horn button the color should reset to near-black.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/298/medium800thumb/proximity_chrome_Mobul194Ey.jpg?1697514888)

Now you can test the horn works too, by attaching the wires and repeating the previous test, but make sure you have some ear protection!

**Remember it's only meant to be used when people are&nbsp;_not&nbsp;_in the room with the horn.**

(During testing I stuck the whole project under my bed covers to reduce the noise for the neighbours, while I was wearing noise cancelling headphones too.)

Danger: 

Next, waving an arm in front of the PIR sensor should show up on both the Device page and the Dashboard.

You should also see the opposite once the sensor no longer sees movement / people, the indicator will switch to red color and the device page will say the opposite to "In Room". This reverse change wont be immediate, but after the timing period set on your PIR sensor has elapsed _after_ any detected movement.

### 

To resolve the problem start with the sensitivity potentiometer of the PIR sensor where-ever it currently is set to. Change the timing potentiometer all the way down (anti-clockwise), and face the sensor away from any people or animals (maybe hide it under some spare clothing for example).

You should now see the value return to indicate no motion or people. Next wave in-front of the sensor and it should signal movement, and then return to signal no-movement once hidden from sight.

Once that is working slowly increase the timing of the PIR sensor (by turning the timing potentiometer clockwise), just a little bit and then retest the time it takes to turn off after sensing movement/people.   
I wanted my sensor to stay on for about 15-20seconds (remember the timer gets reset by each detection event)

If your sensor is seeming to randomly trigger then that's more about sensitivity. Now that you have your timing about right, adjust the sensitivity down a bit until you are happy that it triggers still while not accidentally.

## Throttling / Rate Limiting
![](https://cdn-learn.adafruit.com/assets/assets/000/125/299/medium800/proximity_Screenshot_2023-10-17_050648.png?1697556184)

At times you may be sending so many signals that you get rate-limited. A message may appear at the top of the screen, and signals won't send for a few seconds until the rate of messages reduces. That can mean the horn off signal wont get through, and so we have the emergency reset to forcefully send a new off message.

This message rate limiting is similar to reactive actions only running every 15seconds minimum, so our thumbs-up/down and red/green NeoPixel will only trigger every 15seconds (each reactive action has it's own countdown).

Don't worry as our indicator blocks and line-chart on the dashboard are always correct (they are subscribed to a feed which is not rate limited, unlike publishing messages to a feed).

# No-Code WipperSnapper Summoning Horn

## Downloads

## 3D Model for Horn Mount
![](https://cdn-learn.adafruit.com/assets/assets/000/124/825/medium800/customer___partner_projects_Screenshot_2023-10-04_172508.png?1696436882)

[Car_Horn_Base_Plate.stl](https://cdn-learn.adafruit.com/assets/assets/000/124/815/original/Car_Horn_Base_Plate_-_BoltPlate_%281%29.stl?1696423268)
This also doubles as a wall-mount option for the grid, and can&nbsp;even&nbsp;be used to join multiple grids together.&nbsp;Created with OnShape, remix it here: [https://cad.onshape.com/documents/627f31b85925949126050a0e/w/4d1902b96bf8766cd96ecbe4/e/6867cf02692fd3a0950a2a13](https://cad.onshape.com/documents/627f31b85925949126050a0e/w/4d1902b96bf8766cd96ecbe4/e/6867cf02692fd3a0950a2a13)

## 3D Model for PIR Sensor Holder/Bracket
![](https://cdn-learn.adafruit.com/assets/assets/000/124/826/medium800/customer___partner_projects_Screenshot_2023-10-04_172528.png?1696436786)

[PIR_holder.stl](https://cdn-learn.adafruit.com/assets/assets/000/124/816/original/pir_holder.stl?1696423317)
This model is a remix of joesThings model on thingiverse:  
[https://www.thingiverse.com/thing:6222342](https://www.thingiverse.com/thing:6222342)

## Printable Paper Copy of 10x10 Adafruit Swirly Aluminium Mounting Grid for 0.1" Spaced PCBs&nbsp;
[paper-swirly-grid.svg](https://cdn-learn.adafruit.com/assets/assets/000/124/833/original/testy_swirly-brd.svg?1696449026)
## Fritzing Wiring Diagram
[MetroS2-Relay-PIR-Horn.fzz](https://cdn-learn.adafruit.com/assets/assets/000/124/814/original/MetroS2-Relay-PIR-Horn.fzz?1696423032)
You may need some extra Fritzing Parts for this wiring diagram to work. You'll find them in the Adafruit Fritzing Parts Library, hosted on GitHub.

[https://github.com/adafruit/Fritzing-Library](https://github.com/adafruit/Fritzing-Library)

# Useful Links

1. Metro-S2 Learn Guide:  
[https://learn.adafruit.com/adafruit-metro-esp32-s2](https://learn.adafruit.com/adafruit-metro-esp32-s2)  
  
2. Adafruit IO Learn Guide:  
[https://learn.adafruit.com/welcome-to-adafruit-io](https://learn.adafruit.com/welcome-to-adafruit-io)  
  
3. WipperSnapper Learn Guide:  
[https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper/welcome-to-wippersnapper](https://learn.adafruit.com/quickstart-adafruit-io-wippersnapper/welcome-to-wippersnapper)  
  
4. PIR Sensor Learn Guide:  
[https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor)

&nbsp;


## Guide Products

### Adafruit Metro ESP32-S2

[Adafruit Metro ESP32-S2](https://www.adafruit.com/product/4775)
What's Metro shaped and has an ESP32-S2 WiFi module? What has a STEMMA QT connector for I2C devices, and a Lipoly charger circuit? What has your favorite Espressif WiFi microcontroller and lots of memory for your next IoT project?

That's right - its the new Adafruit Metro...

In Stock
[Buy Now](https://www.adafruit.com/product/4775)
[Related Guides to the Product](https://learn.adafruit.com/products/4775/guides)
### Adafruit STEMMA Non-Latching Mini Relay - JST PH 2mm

[Adafruit STEMMA Non-Latching Mini Relay - JST PH 2mm](https://www.adafruit.com/product/4409)
STEMMA plug-and-play parts make your next project soldering-free! This is&nbsp;the **STEMMA Non-Latching Mini Relay**.&nbsp;It gives you power to control, and control over power. Put simply, you can now turn on and off lamps, fans, solenoids, and other small appliances that run on...

In Stock
[Buy Now](https://www.adafruit.com/product/4409)
[Related Guides to the Product](https://learn.adafruit.com/products/4409/guides)
### STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm

[STEMMA JST PH 2mm 3-Pin to Male Header Cable - 200mm](https://www.adafruit.com/product/3893)
This cable will let you turn a JST PH 3-pin cable port into 3 individual wires with high-quality 0.1" male header plugs on the end. We're carrying these to match up with our Hallowing, for extending and connecting sensors or LEDs - and the wires are even color coded!

<a...></a...>

Out of Stock
[Buy Now](https://www.adafruit.com/product/3893)
[Related Guides to the Product](https://learn.adafruit.com/products/3893/guides)
### PIR (motion) sensor

[PIR (motion) sensor](https://www.adafruit.com/product/189)
PIR sensors are used to detect motion from pets/humanoids from about 20 feet away (possibly works on zombies, not guaranteed). This one has an adjustable delay before firing (approx 2-4 seconds), adjustable sensitivity **and** we include a 1 foot (30 cm) cable with a socket so you...

Out of Stock
[Buy Now](https://www.adafruit.com/product/189)
[Related Guides to the Product](https://learn.adafruit.com/products/189/guides)
### Premium Female/Male 'Extension' Jumper Wires - 20 x 3"

[Premium Female/Male 'Extension' Jumper Wires - 20 x 3"](https://www.adafruit.com/product/1953)
These Female/Male 'extension' jumper wires&nbsp;for making wire harnesses or jumpering between headers on PCB's. These premium jumper wires are 3" (75mm) long and come in a 'strip' of 20 (2&nbsp;pieces of each of ten rainbow colors). They have 0.1" male header...

In Stock
[Buy Now](https://www.adafruit.com/product/1953)
[Related Guides to the Product](https://learn.adafruit.com/products/1953/guides)
### Female DC Power adapter - 2.1mm jack to screw terminal block

[Female DC Power adapter - 2.1mm jack to screw terminal block](https://www.adafruit.com/product/368)
If you need to connect a DC power wall wart to a board that doesn't have a DC jack - this adapter will come in very handy! There is a 2.1mm DC jack on one end, and a screw terminal block on the other. The terminals are labeled with positive/negative assuming a positive-tip configuration...

In Stock
[Buy Now](https://www.adafruit.com/product/368)
[Related Guides to the Product](https://learn.adafruit.com/products/368/guides)
### 12V 5A switching power supply

[12V 5A switching power supply](https://www.adafruit.com/product/352)
This is a beefy switching supply, for when you need a lot of power! It can supply 12V DC up to 5 Amps, running from 110V or 220V power (the plug it comes with is for US/Canada/Japan but you can use any plug adapter for your country, or just replace the cable with a standard 'figure-8'...

In Stock
[Buy Now](https://www.adafruit.com/product/352)
[Related Guides to the Product](https://learn.adafruit.com/products/352/guides)
### Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs

[Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://www.adafruit.com/product/5779)
With most of our dev boards, sensors and feathers now sporting [plug-and-play stemma QT ports](https://learn.adafruit.com/search?q=stemma%2520qt)&nbsp;it can be very fast to put together projects with half a dozen boards snapped together. But that ease of use has one...

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

## Related Guides

- [PIR Motion Sensor](https://learn.adafruit.com/pir-passive-infrared-proximity-motion-sensor.md)
- [Adafruit STEMMA Non-Latching Mini Relay](https://learn.adafruit.com/adafruit-stemma-non-latching-mini-relay.md)
- [Adafruit Metro ESP32-S2](https://learn.adafruit.com/adafruit-metro-esp32-s2.md)
- [Adafruit FunHouse](https://learn.adafruit.com/adafruit-funhouse.md)
- [Adafruit Swirly Aluminum Mounting Grid for 0.1" Spaced PCBs](https://learn.adafruit.com/swirly-grid.md)
- [Hang out your washing reminder - Adafruit IO + Vibration switch](https://learn.adafruit.com/hang-out-your-washing-reminder-adafruit-io-vibration-switch.md)
- [Getting Started with Raspberry Pi Pico and CircuitPython](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython.md)
- [Funhouse Door Alert with Email Notification](https://learn.adafruit.com/funhouse-door-alert-email-notification.md)
- [Easy NeoPixel Graphics with the CircuitPython Pixel Framebuf Library](https://learn.adafruit.com/easy-neopixel-graphics-with-the-circuitpython-pixel-framebuf-library.md)
- [Adafruit USB Host FeatherWing with MAX3421E](https://learn.adafruit.com/adafruit-usb-host-featherwing-with-max3421e.md)
- [Fruit Jam Video Music](https://learn.adafruit.com/fruit-jam-video-music.md)
- [NeoPixel Flame Torch](https://learn.adafruit.com/neopixel-flame-torch.md)
- [Raspberry Pi Low-Light Long-Exposure Photography](https://learn.adafruit.com/raspberry-pi-hq-camera-low-light-long-exposure-photography.md)
- [Dotstar LED and Glass Pebble Floor](https://learn.adafruit.com/neopixel-and-glass-pebble-floor.md)
- [MX MIDI Guitar](https://learn.adafruit.com/mx-midi-guitar.md)
- [DIY Robotic Sky Tracking Astrophotography Mount with CircuitPython](https://learn.adafruit.com/diy-robotic-sky-tracking-astrophotography-mount.md)
- [HalloWing Jump Scare Trap](https://learn.adafruit.com/hallowing-jump-scare-trap.md)
- [Adafruit IO Home: Security ](https://learn.adafruit.com/adafruit-io-home-security.md)
- [Glowing Neopixel Resin River Table](https://learn.adafruit.com/glowing-neopixel-resin-river-table.md)
- [Adafruit Metro RP2040](https://learn.adafruit.com/adafruit-metro-rp2040.md)
