# Feather Freezer Door Alarm

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/115/812/medium800/sensors_rogue.png?1665509591)

Accidentally leaving a door open for a long time will ruin the contents of a freezer if nobody knows about it. This alarm will notify folks when the door has been left open for more than 10 minutes, and it will start beeping after 5 minutes. A motion sensor will restart the door timers when activated, as someone could spend \>5 minutes loading the freezer. This alarm is designed to fit a double door commercial freezer.

There are 3 phases of the alarm

1. Door(s) open \<5 minutes - no action.
2. Door(s) open \>5 minutes with no motion - pre-alarm beeping.
3. Door(s) open \>10 minutes with no motion - beep more and email a notification.

The purpose of the pre-alarm beeping is to draw attention to the freezer so someone can close it before the alarm goes off.

## Parts
### Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM

[Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM](https://www.adafruit.com/product/5477)
The ESP32-S3 has arrived in Feather format - and what a great way to get started with this powerful new chip from Espressif! With dual 240 MHz cores, WiFi and BLE support, and native USB, this Feather is great for powering your IoT projects.

That's right - it's the new...

In Stock
[Buy Now](https://www.adafruit.com/product/5477)
[Related Guides to the Product](https://learn.adafruit.com/products/5477/guides)
![ESP32-S3 Feather with 4MB Flash 2MB PSRAM](https://cdn-shop.adafruit.com/640x480/5477-06.jpg)

### FeatherWing Proto - Prototyping Add-on For All Feather Boards

[FeatherWing Proto - Prototyping Add-on For All Feather Boards](https://www.adafruit.com/product/2884)
A Feather board without ambition is a Feather board without FeatherWings!

This is the **FeatherWing Proto** - a prototyping add-on for all Feather boards. Using our [Feather Stacking Headers](https://www.adafruit.com/products/2830) or <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/2884)
[Related Guides to the Product](https://learn.adafruit.com/products/2884/guides)
![Angled Shot of the FeatherWing Proto - Prototyping Add-on For All Feather Boards.](https://cdn-shop.adafruit.com/640x480/2884-13.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)

### 5V 2A Switching Power Supply w/ USB-A Connector

[5V 2A Switching Power Supply w/ USB-A Connector](https://www.adafruit.com/product/1994)
Our 5V 2A USB power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB adapter. We did this on purpose to...

In Stock
[Buy Now](https://www.adafruit.com/product/1994)
[Related Guides to the Product](https://learn.adafruit.com/products/1994/guides)
![5V 2A Switching Power Supply with  USB-A Connector](https://cdn-shop.adafruit.com/640x480/1994-01.jpg)

### Part: Buzzer
quantity: 2
5v breadboard friendly 
[Buzzer](https://www.adafruit.com/product/1536)

### Part: Magnetic contact switch
quantity: 2
Door sensor, with mounting screws
[Magnetic contact switch](https://www.adafruit.com/product/375)

### Part: Header Kit for Feather
quantity: 1
12-pin and 16-pin Female Header Set
[Header Kit for Feather](https://www.adafruit.com/product/2886)

### Part: Hook-up Wire Spool Set
quantity: 1
22AWG Solid Core - 6 x 25 ft
[Hook-up Wire Spool Set](https://www.adafruit.com/product/1311)

### Part: 1 Ft Jumper Wires
quantity: 1
Jumper wires
[1 Ft Jumper Wires](https://www.adafruit.com/product/793)

### Part: Mounting Tape
quantity: 1
Gorilla Glue Heavy Duty Mounting Tape
[Mounting Tape](https://www.amazon.com/Gorilla-Heavy-Double-Mounting-Inches/dp/B019HT1U9E)

### Part: USB-C cable
quantity: 1
15ft 
[USB-C cable](https://www.amazon.com/gp/product/B07RT4Y5XY/)

## Tools

Soldering Iron  
Wire Stripper/Cutter  
Breadboard  
3D Printer  
Ladder

# Feather Freezer Door Alarm

## CircuitPython

[CircuitPython](https://github.com/adafruit/circuitpython) is a derivative of [MicroPython](https://micropython.org) designed to simplify experimentation and education on low-cost microcontrollers. It makes it easier than ever to get prototyping by requiring no upfront desktop software downloads. Simply copy and edit files on the **CIRCUITPY** drive to iterate.

## CircuitPython Quickstart

Follow this step-by-step to quickly get CircuitPython running on your board.

Warning: 

Below are links to CircuitPython for the **Feather ESP32-S3 8MB No PSRAM** and the **Feather ESP32-S3 4MB Flash 2MB PSRAM.** Be sure to choose the one that matches your board.

[Download the latest version of CircuitPython for the Feather ESP32-S3 8MB Flash No PSRAM via circuitpython.org](https://circuitpython.org/board/adafruit_feather_esp32s3_nopsram/)
[Download the latest version of CircuitPython for the Feather ESP32-S3 4MB Flash 2MB PSRAM via circuitpython.org](https://circuitpython.org/board/adafruit_feather_esp32s3_4mbflash_2mbpsram/)
 **Click the link above to download the latest CircuitPython UF2 file.**

Save it wherever is convenient for you.

![install_circuitpython_on_most_boards_CircuitPython_downloaded.jpg](https://cdn-learn.adafruit.com/assets/assets/000/102/129/medium640/install_circuitpython_on_most_boards_CircuitPython_downloaded.jpg?1620922559)

![](https://cdn-learn.adafruit.com/assets/assets/000/110/824/medium800/adafruit_products_FESP3_reset_neopixel.jpg?1649969747)

Plug your board into your computer, using a known-good data-sync cable, directly, or via an adapter if needed.

Double-click the **reset** button (highlighted in red above), and you will see the **RGB status LED(s)** turn green (highlighted in green above). If you see red, try another port, or if you're using an adapter or hub, try without the hub, or different adapter or hub.

For this board, tap reset and wait for the LED to turn purple, and as soon as it turns purple, tap reset again. The second tap needs to happen while the LED is still purple.

If you do not see the LED turning purple, you will need to reinstall the UF2 bootloader. See the&nbsp; **Factory Reset** &nbsp;page in this guide for details.

If double-clicking doesn't work the first time, try again. Sometimes it can take a few tries to get the rhythm right!

A lot of people end up using charge-only USB cables and it is very frustrating! **Make sure you have a USB cable you know is good for data sync.**

You will see a new disk drive appear called **FTHRS3BOOT**.

&nbsp;

&nbsp;

Drag the **adafruit\_circuitpython\_etc.uf2** file to **FTHRS3BOOT**.

![adafruit_products_FESP3_FTHRS3BOOT.png](https://cdn-learn.adafruit.com/assets/assets/000/110/825/medium640/adafruit_products_FESP3_FTHRS3BOOT.png?1649970050)

![adafruit_products_FESP3_drag_UF2.png](https://cdn-learn.adafruit.com/assets/assets/000/110/826/medium640/adafruit_products_FESP3_drag_UF2.png?1649970057)

The **BOOT** drive will disappear and a new disk drive called **CIRCUITPY** will appear.

That's it!

![install_circuitpython_on_most_boards_CIRCUITPY.jpg](https://cdn-learn.adafruit.com/assets/assets/000/102/130/medium640/install_circuitpython_on_most_boards_CIRCUITPY.jpg?1620923145)

# Feather Freezer Door Alarm

## Hardware Assembly

Step 1: Solder header pins onto the protoboard using a breadboard

![sensors_solderprotoboard.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/761/medium640/sensors_solderprotoboard.jpg?1665328735)

Step 2: Take the soldered protoboard and put the female headers onto the pins. Then add and solder the header on to the Feather

![sensors_protoboardfemaleheaders.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/766/medium640/sensors_protoboardfemaleheaders.jpg?1665329025)

![sensors_solderedfeather.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/781/medium640/sensors_solderedfeather.jpg?1665352130)

Step 3: Attach pins to the holes outlined, use two groups of 3 pins and a single pin  
D9 - Yellow: Left door  
D5 - Green: Motion sensor  
D6 - Orange: Right door

3 Ground pins for door sensors and motion sensor  
1 power pin for the motion sensor.  
  
This is what it looks like from the top of the board, you will be soldering the pins in with the board upside down.

![](https://cdn-learn.adafruit.com/assets/assets/000/115/754/medium800/sensors_pinlocations.png?1665323933)

Use the breadboard to help solder in the pins. Add an extra strip of pins to keep the board level, make sure not to solder the extra pins. This diagram is reversed to line up with the upside down board

![sensors_breadboardiopins.jpg](https://cdn-learn.adafruit.com/assets/assets/000/115/773/medium640/sensors_breadboardiopins.jpg?1665333687)

![sensors_upsidedown.png](https://cdn-learn.adafruit.com/assets/assets/000/115/780/medium640/sensors_upsidedown.png?1665351812)

Step 4: Polarity matters make sure the positive side is going to the io pins.  
Pins for the buzzer positive pin (+)  
D13 and D11 in blue

Pins for the buzzer negative pin (-)  
2 of the remaining ground pins in purple

![](https://cdn-learn.adafruit.com/assets/assets/000/115/782/medium800/sensors_buzzerpins.png?1665352977)

The buzzers take up 4 pin spaces, when you have the wires in place, add the buzzers then solder the wires and buzzers together.

![sensors_Screen_Shot_2022-10-10_at_11.21.53_AM.png](https://cdn-learn.adafruit.com/assets/assets/000/115/811/medium640/sensors_Screen_Shot_2022-10-10_at_11.21.53_AM.png?1665415475)

Step 5: Wire up the door sensors and the motion sensor according to this diagram

D9 - Yellow: Left door  
D5 - Green: Motion sensor  
D6 - Orange: Right door

Measure the distance the board will be from where the contacts will be on the freezer. Give yourself a bit of extra length for slack or adjustment. Cut wires and solder.

![](https://cdn-learn.adafruit.com/assets/assets/000/115/783/medium800/sensors_wiringdiagram.png?1665358205)

![](https://cdn-learn.adafruit.com/assets/assets/000/115/776/medium800/sensors_wiredup.jpg?1665344340)

# Feather Freezer Door Alarm

## 3D Printed Case

You can use any 3D printed case you want. I chose a minimal design from Thingiverse. The purpose of a case is to prevent the bottom of the Feather from coming in contact with the metal surface on top of the freezer.

[Case on Thingiverse](https://www.thingiverse.com/thing:136727)
![](https://cdn-learn.adafruit.com/assets/assets/000/115/757/medium800/sensors_feathercase.jpg?1665325085)

# Feather Freezer Door Alarm

## Setting up settings.toml

 **settings.toml** is a separate text file from your CircuitPython **code.py** to contain credentials, such as WiFi name & password and Adafruit IO credentials.

Open a text editor and put copy the text below and paste it in. Change the fields to correspond to your WiFi and Adafruit IO account. Save as **settings.toml**.

```python
# This file is where you keep private settings, passwords, and tokens!
# If you put them in the code you risk committing that info or sharing it

CIRCUITPY_WIFI_SSID="your-wifi-ssid"
CIRCUITPY_WIFI_PASSWORD="your-wifi-password"
ADAFRUIT_AIO_USERNAME="my_username"
ADAFRUIT_AIO_KEY="my_key"
timezone="America/New_York"  # http://worldtimeapi.org/timezones
```

# Feather Freezer Door Alarm

## Code Breakdown

## Download the Project Bundle

Your project will use a specific set of CircuitPython libraries, plus the&nbsp; **code.py** &nbsp;file. To get everything you need, click on the&nbsp; **Download Project Bundle** &nbsp;link below, and uncompress the .zip file.

Drag the contents of the uncompressed bundle directory onto your board's&nbsp; **CIRCUITPY** &nbsp;drive, replacing any existing files or directories with the same names, and adding any new ones that are necessary.

https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/main/Feather_Freezer_Alarm/code.py

## How It Works

Opening a door starts a timer, if the timer hits 5 minutes while there is no motion detected then the first buzzer starts doing prealarm beeping to catch someones attention to close it before 10 minutes elapsed of the door open with no motion detected the 2nd buzzer kicks in and an email is sent.

## Libraries

- **time**
- **ssl**
- **microcontroller**
- **socketpool**
- **wifi**
- **board**
- **adafruit\_minimqtt**
- **adafruit\_io.adafruit\_io**
- **digitalio**
- **adafruit\_debouncer**

```python
import time
import ssl
import microcontroller
import socketpool
import wifi
import board
import adafruit_minimqtt.adafruit_minimqtt as MQTT
from adafruit_io.adafruit_io import IO_MQTT
import digitalio
from adafruit_debouncer import Debouncer
```

## Buzzers

Initialize the buzzers pin D13 & D11

```python
#setup buzzer1
buzzer1 = digitalio.DigitalInOut(board.D13)
buzzer1.direction = digitalio.Direction.OUTPUT

#setup buzzer2
buzzer2 = digitalio.DigitalInOut(board.D11)
buzzer2.direction = digitalio.Direction.OUTPUT
```

## Door Sensors

Setup Debouncer for both door switches pins D9 & D5. If once you install your alarm you realize that the doors are reversed, swap the pins for leftdoor and rightdoor.

```auto
#setup left door switch
leftdoor = digitalio.DigitalInOut(board.D9)
leftdoor.direction = digitalio.Direction.INPUT
leftdoor.pull = digitalio.Pull.UP
leftswitch = Debouncer(leftdoor)

#setup right door switch
rightdoor = digitalio.DigitalInOut(board.D5)
rightdoor.direction = digitalio.Direction.INPUT
rightdoor.pull = digitalio.Pull.UP
rightswitch = Debouncer(rightdoor)
```

## Motion Sensor

Setup Debouncer for the motion sensor pin D6

```auto
#setup motion sensor
pir = digitalio.DigitalInOut(board.D6)
pir.direction = digitalio.Direction.INPUT
motion = Debouncer(pir)
```

## Variables

- start 1 & 2: is the "start" time of the timer
- alarm 1 & 2: is based the state of the timer
- feed names: door1, door2, motion, alarm and resolved

```auto
#door timers set start times to now
start1 = time.monotonic()
start2 = time.monotonic()
#door alarms set to False
alarm1 = False
alarm2 = False

door1feed = "unit-6.door1"
door2feed = "unit-6.door2"
motionfeed = "unit-6.motion"
alarmfeed = "unit-6.alarm"
resolvedfeed = "unit-6.resolved"
```

## Door Logic

This section determines the state of the door, everything is repeated for the right door. If the door was closed (fell) then publish 1 then 0 to the door feed. If the door was opened (rose) publish 1 to door feed and reset start time. If the door is open do nothing and if the door is closed reset the start time.``

```auto
#update leftswitch
leftswitch.update()
#if door closed upload to IO
if leftswitch.fell:
    print('left closed')
    io.publish(door1feed, 1)
    time.sleep(.25)
    io.publish(door1feed, 0)
#if door opened upload to IO, set start1 to now
if leftswitch.rose:
    print('left opened')
    io.publish(door1feed, 1)
    start1 = time.monotonic()
#if door remains open
if leftswitch.value:
    print('still left open')
#if door remains closed, reset start1
else:
    #door still closed reset timer
    print('still left closed')
    start1 = time.monotonic()
```

## Alarm resolution

This section checks if a door just closed, then if both doors are closed, then if an alarm is true, if it is all true then resolved feed is toggled to send the alarm resolved notification

```auto
#if a door closes
if rightswitch.fell or leftswitch.fell:
    #if both doors are closed
    if not rightswitch.value and not leftswitch.value:
        print('doors just closed')
        #if an alarm is true then upload to IO alarm resolved
        if alarm1 or alarm2:
            #publish 0 to alarm feed
            io.publish(alarmfeed, 0)
            #buzzers off/Alarms to False
            buzzer1.value = False
            buzzer2.value = False
            alarm1 = False
            alarm2 = False
            #toggle alarm resolved feed to send email notification
            io.publish(resolvedfeed, 1)
            time.sleep(5)
            io.publish(resolvedfeed, 0)
```

## Motion Sensor Logic

This section will only update the motion sensor if the alarms are not True, then it will update the motion sensor, if motion stopped publish 1 then 0 to motionfeed to make the graphs look nice. If motion was detected publish 1 to motionfeed and reset both start times.

```auto
#check motion sensor if there is no alarm
if(alarm1 == False and alarm2 == False):
    #update pir sensor
    motion.update()
    #if motion stopped
    if motion.fell:
        print('motion stopped')
        #publish 0 to motion feed
        io.publish(motionfeed, 1)
        time.sleep(.25)
        io.publish(motionfeed, 0)
    #if motion started
    if motion.rose:
        print('motion detected')
        #publish 1 to motion feed
        io.publish(motionfeed, 1)
        #reset start times
        start1 = time.monotonic()
        start2 = time.monotonic()
    #if continued motion
    if motion.value:
        print('still motion')
    #if continued no motion
    else:
        print('no motion')
```

## Prealarm & Alarm Logic

If either door has been open for more than 5 minutes start beeping. then if either door has been open for more than 10 minutes activate the second buzzer and publish 1 to the alarm feed.

```auto
#check difference between time now and start times if more than N seconds start beeping
if (((time.monotonic() - start1) &gt;= 300) or ((time.monotonic() - start2) &gt;= 300)):
    #beeping
    buzzer1.value = True
    time.sleep(.5)
    buzzer1.value = False

#check if difference between time now and start1 if more than X seconds turn on buzzer2, publish 1 to alarm feed
if (alarm1 == False and ((time.monotonic() - start1) &gt;= 600)):
    alarm1 = True
    buzzer2.value = True
    #publish 1 to alarm feed
    io.publish(alarmfeed, 1)

#check if difference between time now and start2 if more than X seconds turn on buzzer2, publish 1 to alarm feed
if (alarm2 == False and ((time.monotonic() - start2) &gt;= 600)):
    alarm2 = True
    buzzer2.value = True
    #publish 1 to alarm feed
    io.publish(alarmfeed, 1)
```

## Updating every 5 minutes

Upload data every 5 minutes to keep graphs current

```python
if(int(time.time()/300) &gt; start):
    print("PUBLISH EVERY FIVE MINUTES")
    start = int(time.time()/300)
    io.publish(door1feed, int(leftswitch.value))
    io.publish(door2feed, int(rightswitch.value))
    io.publish(motionfeed, int(motion.value))
```

# Feather Freezer Door Alarm

## Adafruit IO Setup

Adafruit IO is a service to send data to and be able to perform actions or visualize data. The basic tier is free. You can learn more in the guide below.

[Introduction to Adafruit IO](https://learn.adafruit.com/welcome-to-adafruit-io)
## Freezer Alarm Project Setup

Open Adafruit IO and log in to your account. Start a new project and follow the steps below:

You will need top create 5 feed keys for the code:

- Alarm
- Door 1
- Door 2
- Motion
- Alarm Resolved

You also will be creating two IO Actions:

- Alarm - send alarm notification

- Alarm Resolved - send resolved notification

## Send alarm notification action
![](https://cdn-learn.adafruit.com/assets/assets/000/112/332/medium800/sensors_Screen_Shot_2022-06-13_at_2.51.19_PM.png?1655146310)

## Send alarm resolved notification action
![](https://cdn-learn.adafruit.com/assets/assets/000/112/333/medium800/sensors_Screen_Shot_2022-06-13_at_2.53.22_PM.png?1655146428)

## Setup the Dashboard

Create a new Dashboard

1. From Dashboard Settings select Create New Block, add a line chart for the last 2 hours for the motion feed, check Stepped Line.
2. From Dashboard Settings select Create New Block, add a line chart for the last 2 hours for the door feeds, check Stepped Line.
3. From Dashboard Settings select Create New Block, add an indicator for motion, make sure to set the Conditions as \< 1. Use the Test Value to make sure 0 is green and 1 is red.  
4. Repeat step 4 for the both doors and alarm feeds.

![](https://cdn-learn.adafruit.com/assets/assets/000/112/563/medium800/sensors_Screen_Shot_2022-06-22_at_5.02.44_PM.png?1655931781)

If you make more than one alarm double up on the indicators and combine the line charts

1. From Dashboard Settings select Create New Block, add a line chart for the last 2 hours for the motion feeds, check&nbsp;Stepped Line  
2. From Dashboard Settings select Create New Block, add a line chart for the last 2 hours for all of the door feeds, check&nbsp;Stepped Line
3. From Dashboard Settings select Create New Block, add indicator for a motion sensor, make sure to set the Conditions as \< 1.
4. Repeat step 3 for all motion sensors, doors, and alarms

![](https://cdn-learn.adafruit.com/assets/assets/000/115/775/medium800/sensors_2alarms.png?1665342811)

# Feather Freezer Door Alarm

## Installation

Place a ladder in front of the freezer so you can reach the top center.

![sensors_PXL_20220810_162348611.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/070/medium640/sensors_PXL_20220810_162348611.MP.jpg?1660170472)

Place the Feather board in it's case on top of the freezer and run the door sensors and motion sensor through the grate.

![sensors_PXL_20220810_162738471.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/072/medium640/sensors_PXL_20220810_162738471.MP.jpg?1660170588)

Cut the foam tape and apply it to both sides of the door sensors

![sensors_PXL_20220810_163350880.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/073/medium640/sensors_PXL_20220810_163350880.MP.jpg?1660170669)

Hold the door sensors in place and trace the inside corder with a permanent marker, repeat for the 2nd door.

![sensors_PXL_20220810_163954386.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/074/medium640/sensors_PXL_20220810_163954386.MP.jpg?1660170726)

Remove the plastic and firmly place the door sensors on the freezer door. Repeat for the 2nd door.

![sensors_PXL_20220810_164132155.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/075/medium640/sensors_PXL_20220810_164132155.MP.jpg?1660170773)

Make sure that the motion sensor is centered and pointing downward at a 45 degree angle

![sensors_PXL_20220810_164229296.MP.jpg](https://cdn-learn.adafruit.com/assets/assets/000/114/076/medium640/sensors_PXL_20220810_164229296.MP.jpg?1660170906)

Attach the 15ft power cable to the alarm. Leave the extra lengths coiled up on the top of the freezer and then plug it in to a [USB wall charger](https://www.adafruit.com/product/1994) (5v 2a). The alarm will beep when power is applied.


## Featured Products

### Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM

[Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM](https://www.adafruit.com/product/5477)
The ESP32-S3 has arrived in Feather format - and what a great way to get started with this powerful new chip from Espressif! With dual 240 MHz cores, WiFi and BLE support, and native USB, this Feather is great for powering your IoT projects.

That's right - it's the new...

In Stock
[Buy Now](https://www.adafruit.com/product/5477)
[Related Guides to the Product](https://learn.adafruit.com/products/5477/guides)
### FeatherWing Proto - Prototyping Add-on For All Feather Boards

[FeatherWing Proto - Prototyping Add-on For All Feather Boards](https://www.adafruit.com/product/2884)
A Feather board without ambition is a Feather board without FeatherWings!

This is the **FeatherWing Proto** - a prototyping add-on for all Feather boards. Using our [Feather Stacking Headers](https://www.adafruit.com/products/2830) or <a...></a...>

In Stock
[Buy Now](https://www.adafruit.com/product/2884)
[Related Guides to the Product](https://learn.adafruit.com/products/2884/guides)
### Magnetic contact switch (door sensor)

[Magnetic contact switch (door sensor)](https://www.adafruit.com/product/375)
This sensor is essentially a reed switch, encased in an ABS plastic shell. Normally the reed is 'open' (no connection between the two wires). The other half is a magnet. When the magnet is less than 13mm (0.5") away, the reed switch closes. They're often used to detect when a...

In Stock
[Buy Now](https://www.adafruit.com/product/375)
[Related Guides to the Product](https://learn.adafruit.com/products/375/guides)
### Buzzer 5V - Breadboard friendly

[Buzzer 5V - Breadboard friendly](https://www.adafruit.com/product/1536)
Hey want to hear a really loud noise? Apply 3V to 5V to this buzzer module and you'll be rewarded with a loud 2KHz BEEEEEEEEEEEEEEEEEP. Unlike a [plain piezo](http://www.adafruit.com/products/160), this buzzer does not need an AC signal. Inside is a piezo plus the driver...

In Stock
[Buy Now](https://www.adafruit.com/product/1536)
[Related Guides to the Product](https://learn.adafruit.com/products/1536/guides)
### 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)
### 5V 2A Switching Power Supply w/ USB-A Connector

[5V 2A Switching Power Supply w/ USB-A Connector](https://www.adafruit.com/product/1994)
Our 5V 2A USB power adapter is the perfect choice for powering single-board computers like Raspberry Pi, BeagleBone, or anything else that's power-hungry!

This adapter was specifically designed to provide 5.25V, not 5V, but we still call it a 5V USB adapter. We did this on purpose to...

In Stock
[Buy Now](https://www.adafruit.com/product/1994)
[Related Guides to the Product](https://learn.adafruit.com/products/1994/guides)
### Header Kit for Feather - 12-pin and 16-pin Female Header Set

[Header Kit for Feather - 12-pin and 16-pin Female Header Set](https://www.adafruit.com/product/2886)
These two&nbsp; **Female&nbsp;Headers** &nbsp;alone are, well, lonely. But pair them with any of our&nbsp;[Feather](https://www.adafruit.com/categories/777)&nbsp;boards and you're in business!

What do they do? They get soldered on either side of the Feather...

Out of Stock
[Buy Now](https://www.adafruit.com/product/2886)
[Related Guides to the Product](https://learn.adafruit.com/products/2886/guides)
### Hook-up Wire Spool Set - 22AWG Solid Core - 6 x 25 ft

[Hook-up Wire Spool Set - 22AWG Solid Core - 6 x 25 ft](https://www.adafruit.com/product/1311)
Perfect for bread-boarding, free wiring, etc. This box contains 6 spools of solid-core wire. The wire is easy to solder to and when bent it keeps its shape pretty well. We like to have a few spools of this stuff around which is why this set is quite nice! We suggest picking up wire strippers...

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

## Related Guides

- [Adafruit ESP32-S3 Feather](https://learn.adafruit.com/adafruit-esp32-s3-feather.md)
- [Networking in CircuitPython](https://learn.adafruit.com/networking-in-circuitpython.md)
- [Bluetooth Controlled NeoPixel Lightbox](https://learn.adafruit.com/bluetooth-neopixel-lightbox.md)
- [ESP32-S3 BLE RS-232 Controller](https://learn.adafruit.com/esp32-s3-ble-rs232-controller.md)
- [Adafruit IO Environmental Monitor for Feather or Raspberry Pi](https://learn.adafruit.com/adafruit-io-air-quality-monitor.md)
- [IoT Filament Sensor](https://learn.adafruit.com/iot-filament-sensor.md)
- [CircuitPython Servo Tester](https://learn.adafruit.com/circuitpython-servo-tester.md)
- [Homefruit FeatherWing Tester](https://learn.adafruit.com/homefruit-featherwing-tester.md)
- [Feather + Raspberry Pi Weather Monitoring Network with LoRa or LoRaWAN](https://learn.adafruit.com/multi-device-lora-temperature-network.md)
- [Feather RP2040 DVI Video Synth](https://learn.adafruit.com/feather-rp2040-dvi-video-synth.md)
- [Blahaj Alarm and Lamp](https://learn.adafruit.com/blahaj-alarm.md)
- [Square NeoPixel Display with Black LED Acrylic](https://learn.adafruit.com/sqaure-neopixel-display-with-black-led-acrylic.md)
- [Dotstar + CircuitPython Digital Sand](https://learn.adafruit.com/digital-sand-dotstar-circuitpython-edition.md)
- [Control Wiz Lights With CircuitPython](https://learn.adafruit.com/control-wiz-lights-with-circuitpython.md)
- [Arcade Synth Controller](https://learn.adafruit.com/arcade-synth-controller.md)
