# Memento Photo Capture with itsaSNAP

## Overview

![](https://cdn-learn.adafruit.com/assets/assets/000/133/064/medium800thumb/internet_of_things___iot_IMG_01312-ezgif.com-video-to-gif-converter.jpg?1728566571)

Build this simple IoT project to **&nbsp;** capture photos remotely and send them to Apple Photos using the Adafruit Memento and itsaSNAP. Set up the Memento, connect to WiFi, integrate with Adafruit IO for image storage, and implement MQTT for remote triggering. The [itsaSNAP app](https://learn.adafruit.com/it-s-a-snap-by-adafruit) lets you use&nbsp;[Apple Shortcuts](https://learn.adafruit.com/it-s-a-snap-by-adafruit/automation-with-apple-shortcuts) to send data from your iOS device to an Adafruit IO feed.

This is the process in which you will complete the project:

1. Trigger the Memento camera remotely using an itsaSNAP and Shortcuts.
2. Automatically send captured photos to an Adafruit IO feed.
3. Retrieve the photos from Adafruit IO and store them in the Apple Photos app.

By the end, you'll have a functional camera that can be triggered remotely via MQTT messages with images automatically uploaded to Adafruit IO and a copy saved to your Apple Photos app .

## Parts
### MEMENTO - Python Programmable DIY Camera - Bare Board

[MEMENTO - Python Programmable DIY Camera - Bare Board](https://www.adafruit.com/product/5420)
Make memories, or just a cool camera-based project,&nbsp;with **Adafruit's MEMENTO Camera Board**. It's a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, SD card slot and...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5420)
[Related Guides to the Product](https://learn.adafruit.com/products/5420/guides)
![Video of a DIY camera on a lazy susan.](https://cdn-shop.adafruit.com/product-videos/640x480/5420-05.jpg)

### Adafruit MEMENTO Camera Enclosure & Hardware Kit

[Adafruit MEMENTO Camera Enclosure & Hardware Kit](https://www.adafruit.com/product/5843)
Once you've picked up your **MEMENTO Camera** and you're ready to take it out into the world, here is a chic and minimalist enclosure that will look great on the runways of Paris or the street photography of New York City! These front and back plates have been...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5843)
[Related Guides to the Product](https://learn.adafruit.com/products/5843/guides)
![Overhead shot of two square-shaped PCB boards for a DIY camera above eight black plastic screws and four black plastic hex nuts with 3pin to 3pin JST PH cable and adhesive sticker.](https://cdn-shop.adafruit.com/640x480/5843-05.jpg)

### Lithium Ion Battery Pack - 3.7V 6600mAh

[Lithium Ion Battery Pack - 3.7V 6600mAh](https://www.adafruit.com/product/353)
Need a massive battery for your project? This lithium-ion pack is made of 3 balanced 2200mAh cells for a total of 6600mA capacity! The cells are connected in parallel and spot-welded to a protection circuit that provides over-voltage, under-voltage, and over-current protection.

Each cell...

In Stock
[Buy Now](https://www.adafruit.com/product/353)
[Related Guides to the Product](https://learn.adafruit.com/products/353/guides)
![Lithium Ion Battery Pack with three round cells 3.7V 6600mAh with JST PH connector](https://cdn-shop.adafruit.com/640x480/353-03.jpg)

### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long](https://www.adafruit.com/product/4198)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4198)
[Related Guides to the Product](https://learn.adafruit.com/products/4198/guides)
![USB C to USB C cable. USB 3.1 gen 4 with E-Mark. 6" long](https://cdn-shop.adafruit.com/640x480/4198-01.jpg)

### USB Type A to Type C Cable - approx 1 meter / 3 ft long

[USB Type A to Type C Cable - approx 1 meter / 3 ft long](https://www.adafruit.com/product/4474)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4474)
[Related Guides to the Product](https://learn.adafruit.com/products/4474/guides)
![Angled shot of a coiled black, USB-C to USB-A cable.](https://cdn-shop.adafruit.com/640x480/4474-02.jpg)

### Vertical Wall Power Supply with USB C - 5V 3A Output and Switch

[Vertical Wall Power Supply with USB C - 5V 3A Output and Switch](https://www.adafruit.com/product/5801)
We love the Raspberry Pi 4 and 5, with their fancy new USB Type C power connectors. Now we have an even&nbsp;_better_&nbsp;power supply that can be used with either Pi 4 or even a Pi 5 with 5V output, 3A of current to handle builds with accessories and displays. The vertical-style plug...

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

### Adafruit IO+ Subscription Pass – One Year

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

In Stock
[Buy Now](https://www.adafruit.com/product/3792)
[Related Guides to the Product](https://learn.adafruit.com/products/3792/guides)
![Text image that reads "IO+"](https://cdn-shop.adafruit.com/640x480/3792-01.jpg)

# Memento Photo Capture with itsaSNAP

## Get Started with Adafruit IO

Adafruit IO is integrated with your&nbsp;[adafruit.com account](https://accounts.adafruit.com/)&nbsp;so you don't need to create yet another online account! You need an Adafruit account to use Adafruit IO because we want to make sure the data you upload is available to only you (unless you decide to publish your data).

## I have an Adafruit.com Account already

**If you already have an Adafruit account, then you already have access to Adafruit IO**. It doesn't matter how you signed up, your account will make all three available.

To access Adafruit IO, simply visit [https://io.adafruit.com](https://io.adafruit.com) to start streaming, logging, and interacting with your data.

## Create an Adafruit Account (for Adafruit IO)

An Adafruit account makes Adafruit content and services available to you in one place. Your account provides access to the [Adafruit shop](https://www.adafruit.com/), the [Adafruit Learning System](https://learn.adafruit.com/), and [Adafruit IO](https://io.adafruit.com/). This means only one account, one username, and one password are necessary to engage with the content and services that Adafruit offers.

If you do not have an Adafruit account, signing up for a new Adafruit account only takes a couple of steps.

Begin by visiting [https://accounts.adafruit.com](https://accounts.adafruit.com).

**Click the Sign Up button** under the "Need An Adafruit Account?" title, below the Sign In section.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/220/medium800/adafruit_io_Create_account_sign_in_up_page.png?1697479894)

This will take you to the **Sign Up** page.

**Fill in the requested information,** and **click the Create Account button.**

![](https://cdn-learn.adafruit.com/assets/assets/000/125/219/medium800/adafruit_io_Create_Account_info_entered.png?1697479894)

This takes you to your Adafruit Account home page. From here, you can access all the features of your account.

You can also access the Adafruit content and services right from this page. Along the top of the page, you'll see a series of links beginning with "Shop". To access any of these, simply click the link.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/217/medium800/adafruit_io_Create_account_home_page.png?1697479894)

For example, **to begin working with Adafruit IO, click the IO link** to the right of the rest of the links. This is the same for the other links as well.

That's all there is to creating a new Adafruit account, and navigating to Adafruit IO.

![](https://cdn-learn.adafruit.com/assets/assets/000/125/218/medium800/adafruit_io_Create_Account_io_homepage.png?1697479770)

# Memento Photo Capture with itsaSNAP

## Download the ItsaSnap by Adafruit App

This section will guide you through downloading and installing the ItsaSnap by Adafruit app.

## Download and Install ItsaSnap

To install and download ItsaSnap for your iOS device,

1. **Open the App Store**.
2. **Tap** on the **"Search" icon** at the bottom of the screen.
3. **Type "ItsaSnap by Adafruit" or "ItsaSnap"** in the search bar and **tap "Search".**
4. Locate the **ItsaSnap**** &nbsp;app** in the search results and tap on it

![](https://cdn-learn.adafruit.com/assets/assets/000/130/658/medium800/adafruit_io_IMG_5711-ezgif.com-resize-2.jpg?1718123186)

&nbsp; &nbsp; 5. **Tap** the **"Get" button** to download and install the app on your device.&nbsp;

You may be prompted to enter your Apple ID password or use Face ID/Touch ID to confirm the installation

![](https://cdn-learn.adafruit.com/assets/assets/000/130/659/medium800/adafruit_io_IMG_5711-ezgif.com-resize-crop.jpg?1718123294)

After you have downloaded and installed ItsaSnap, open the app.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/637/medium800/adafruit_io_adaSnap5-ezgif.com-resize.png?1718070937)

You will need to enter your&nbsp; **Adafruit username** and **Adafruit IO Key** (which is _different_ from your Adafruit account password).

Your Adafruit IO key is a long string of letters and numbers. To make it easier to add to the app, we've also included a QR code scanner that allows you to easily copy the Adafruit IO Key from the Adafruit IO website to the app.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/660/medium800/adafruit_io_qrbuttonscan.png?1718123519)

On the ItaSnap app, the QR code scanner is located below the Adafruit IO Key and above the login button. To access it, press the ' **Scan QR code for IO Key**' button. This will open the QR code scanner.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/662/medium800/adafruit_io_IMG_5702-ezgif.com-crop.png?1718123632)

To find the QR code for your Adafruit IO account, [navigate go to the overview page](https://io.adafruit.com/overview). Once there, click the yellow button with a key in the center (it's next to the "New Device" button) to reveal your Adafruit IO Key.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/130/640/medium800/adafruit_io_Screenshot_2024-06-10_at_9.42.20%E2%80%AFPM.png?1718072559)

After clicking it, a window with your information will appear. Then, find the QR code and scan it, and log in.

![](https://cdn-learn.adafruit.com/assets/assets/000/130/653/medium800/adafruit_io_Pasted_Image_6_11_24__11_55_AM.png?1718121312)

# Memento Photo Capture with itsaSNAP

## Creating Adafruit IO Feeds

Adafruit IO's main feature is creating feeds to write or read data in a centralized place. In this project, you will create an Adafruit IO feed to trigger image capture from the Memento and a feed to store the captured image.

In a web browser, navigate to [io.adafruit.com/feeds](https://io.adafruit.com/feeds) and **click "+ New Feed"** &nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/132/891/medium800/internet_of_things___iot_leds_Screenshot_2024-09-16_at_7.18.03%E2%80%AFAM-2.png?1728331395)

Name the Feed&nbsp; **cameratrigger**. The description is optional. Click **Create** to create the new feed.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/892/medium800/internet_of_things___iot_Screenshot_2024-10-07_at_4.10.28%E2%80%AFPM.png?1728331944)

Warning: Your Adafruit IO feed needs to have feed history turned off for this project to work.

When the Feed is created, click on it to view its settings. In the side panel, go to&nbsp; **Feed History** and make sure it is turned **Off**.

When the Feed is created, click on it to view its settings. In the side panel, go to&nbsp; **Feed History** and make sure it is turned **Off**.

![internet_of_things___iot_lcds___displays_Screenshot_2024-09-25_095926.png](https://cdn-learn.adafruit.com/assets/assets/000/132/894/medium640/internet_of_things___iot_lcds___displays_Screenshot_2024-09-25_095926.png?1728332343)

Create another Feed and name it **camera**. Repeat the process of turning **Off -**  **Feed**  **History**.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/893/medium800/internet_of_things___iot_Screenshot_2024-10-07_at_4.09.23%E2%80%AFPM.png?1728332046)

# Memento Photo Capture with itsaSNAP

## Install 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: Make sure you use CircuitPython 9.0.0 final or later. CircuitPython 9.0.0-beta.1 and earlier have a bug that can corrupt the fileystem.

```auto
import storage
storage.erase_filesystem()
```

Your board will reboot after running this.

[Download the latest version of CircuitPython for this board via circuitpython.org](https://circuitpython.org/board/adafruit_esp32s3_camera/)
Warning: As of CircuitPython 9, you'll need to create a folder called "sd" on your CIRCUITPY drive to mount the microSD card, if it's not already there.

[Follow these steps to create the /sd directory](https://learn.adafruit.com/adafruit-memento-camera-board/circuitpython-memento-starter-projects)
 **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/126/734/medium800/adafruit_products_resetNeo.jpg?1702908010)

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 **Factory Reset** 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 **CAMERABOOT**. Drag the **adafruit-circuitpython-adafruit\_esp32s3\_camera-etc.uf2** file to **CAMERABOOT**.

![adafruit_products_cameraboot.png](https://cdn-learn.adafruit.com/assets/assets/000/126/740/medium640/adafruit_products_cameraboot.png?1702932896)

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)

# Memento Photo Capture with itsaSNAP

## Code the Memento Cam

Once you've finished setting up your Memento with CircuitPython, you can access the code and necessary libraries by downloading the Project Bundle.

To do this, click on the **Download Project Bundle** button in the window below. It will download to your computer as a zipped folder.

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

## Upload the Code and Libraries to the Memento

After downloading the Project Bundle, plug your Memento into the computer's USB port with a known good USB data+power cable. You should see a new flash drive appear in the computer's File Explorer or Finder (depending on your operating system) called **CIRCUITPY**. Unzip the folder and copy the following items to theMemento's&nbsp; **CIRCUITPY** drive.

- **lib** folder
- **code.py**

Your Memento **CIRCUITPY** drive should look like this after copying the **lib** folder and the **code.py** file.

![](https://cdn-learn.adafruit.com/assets/assets/000/133/139/medium800/camera_MEMENTO_Memento_itsaSNAP_Capture_Cam.png?1729015375)

### WiFi Connection

This code connects to the WiFi network using credentials stored in environment variables located in the **settings.toml** file (discussed on the next page).

```auto
print(f"Connecting to {os.getenv('CIRCUITPY_WIFI_SSID')}")
wifi.radio.connect(
    os.getenv("CIRCUITPY_WIFI_SSID"), os.getenv("CIRCUITPY_WIFI_PASSWORD")
)
print(f"Connected to {os.getenv('CIRCUITPY_WIFI_SSID')}!")
```

### Adafruit IO and MQTT Setup

This section sets up the Adafruit IO HTTP API and MQTT client.

```auto
io = IO_HTTP(aio_username, aio_key, requests)

try:
    feed_camera = io.get_feed("camera")
except AdafruitIO_RequestError:
    feed_camera = io.create_new_feed("camera")

mqtt_client = MQTT.MQTT(
    broker=mqtt_broker,
    port=mqtt_port,
    username=aio_username,
    password=aio_key,
    socket_pool=pool,
    ssl_context=ssl_context,
    socket_timeout=5,
    keep_alive=60
)
```

### MEMENTO Initialization

These settings prepare the Memento for capturing images with a balance of quality and performance suitable for this project.

```auto
pycam = adafruit_pycamera.PyCamera()
time.sleep(2)

pycam.mode = 0
pycam.resolution = 3
pycam.led_level = 1
pycam.led_color = 0
pycam.effect = 0
```

### Image Capture and Upload Function

This function captures an image and sends it to Adafruit IO:

```auto
def capture_send_image():
    gc.collect()
    try:
        pycam.autofocus()
        time.sleep(1)
        jpeg = pycam.capture_into_jpeg()
        print("Captured image!")
        if jpeg is not None:
            print("Encoding image...")
            encoded_data = binascii.b2a_base64(jpeg).strip()
            print("Sending image to Adafruit IO...")
            io.send_data(feed_camera["key"], encoded_data)
            print("Sent image to IO!")
            cameraChime()
        else:
            print("ERROR: JPEG frame capture failed!")
    except (OSError, RuntimeError) as capture_error:
        print(f"Error during capture: {capture_error}")
```

### Main Loop

The main loop checks for MQTT messages and manual shutter presses.

```auto
while True:
    try:
        current_time = time.monotonic()

        if current_time - last_mqtt_check &gt;= MQTT_CHECK_INTERVAL:
            mqtt_client.loop(timeout=6)
            last_mqtt_check = current_time

        pycam.keys_debounce()
        if pycam.shutter.short_count:
            print("Manual capture triggered")
            capture_send_image()

        time.sleep(0.1)
    except MQTT.MMQTTException as mqtt_error:
        print(f"MQTT Error: {mqtt_error}")
        time.sleep(5)
        print("Attempting to reconnect...")
        try:
            mqtt_client.reconnect()
            print("Reconnected successfully!")
        except (OSError, RuntimeError) as reconnect_error:
            print(f"Failed to reconnect: {reconnect_error}")
    except (OSError, RuntimeError) as loop_error:
        print(f"Error in main loop: {loop_error}")
        time.sleep(5)
```

# Memento Photo Capture with itsaSNAP

## Setting Up Your Network Credentials

To make network inquiries using your Memento, you'll need to provide your WiFi and Adafruit IO credentials in a&nbsp; **settings.toml** file.

Plug your Memento to your computer via a known good data + power USB cable. Your board should show up as a thumb drive in your File Explorer / Finder (depending on your operating system) named **CIRCUITPY**.

Create a file with the name&nbsp; **settings.toml** &nbsp;in the root directory of the&nbsp; **CIRCUITPY** &nbsp;drive.

Add the following below:

The file should contain the keys&nbsp;`CIRCUITPY_WIFI_SSID`, &nbsp;`CIRCUITPY_WIFI_PASSWORD`, `CIRCUITPY_WEB_API_PASSWORD`,&nbsp;`AIO_USERNAME`, and `AIO_KEY`.&nbsp;

Once these are defined, CircuitPython will automatically connect to the network and start the webserver used for the workflow.

The web server is on port 80 unless overridden by&nbsp;`CIRCUITPY_WEB_API_PORT`. It also enables MDNS.

Here is an example&nbsp; **settings.toml** :

```auto
# To auto-connect to WiFi
CIRCUITPY_WIFI_SSID="YOUR-WIFI-NETWORK-NAME"
CIRCUITPY_WIFI_PASSWORD="YOUR-WIFI-NETWORK-PASSWORD"

# For Adafruit IO
AIO_USERNAME="YOUR-USERNAME"
AIO_KEY="YOUR-AO-KEY"

# To enable modifying files from the web. Change this too!
# Leave the User field blank in the browser.
CIRCUITPY_WEB_API_PASSWORD="passw0rd"

CIRCUITPY_WEB_API_PORT=80
```

# Memento Photo Capture with itsaSNAP

## Creating the "Memento Cam" shortcut

Use Apple Shortcut to trigger your Memento camera, retrieve the captured image, and save it to your iOS Photos app. You can download the Shortcut via the link below or build it out yourself using the steps below.

[Memento Cam Shortcuts](https://www.icloud.com/shortcuts/7075cee6777f42e188922da7cc5b96ac)
To set up this shortcut, you'll open the Shortcuts app on your iOS device and create a new shortcut named "Memento Cam."&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/132/944/medium800/internet_of_things___iot_6xdddx6.jpg?1728405704)

## Select your camera trigger feed

The first action in this shortcut utilizes itsaSNAP to send a trigger value to your Adafruit IO camera trigger feed. This action essentially starts image capture remotely with the Memento camera, initiating the photo capture process.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/932/medium800/internet_of_things___iot_IMG_7066.jpg?1728405127)

## Adding Wait for Buffer

Following the trigger, the shortcut incorporates a 5-second wait period.

This pause allows time for several important processes to occur on the Memento board: the camera needs to autofocus, capture the image, and then upload it to the designated Adafruit IO feed. Without this wait, the shortcut might attempt to retrieve the image before it's actually available.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/934/medium800/internet_of_things___iot_eIMG_7066.jpg?1728405199)

After the wait, the shortcut uses another itsaSNAP action, **Fetch Feed** , to fetch the latest data from your camera image feed on Adafruit IO.&nbsp;

![](https://cdn-learn.adafruit.com/assets/assets/000/132/939/medium800/internet_of_things___iot_eIMGd_7ff066.jpg?1728405374)

To transform this data into a usable image, the shortcut then employs a Base64 Decode action, followed by a "Get Images from Input" action. These steps convert the raw data into an image format that iOS can understand.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/941/medium800/internet_of_things___iot_eIMGd_7ff06xx6.jpg?1728405437)

The final step in the shortcut is to save this decoded image to your iOS Photos app.

You can choose to save it to your Recents album or any other album of your preference. This action completes the cycle, directly bringing the captured image from your remote Memento camera into your iPhone.

![](https://cdn-learn.adafruit.com/assets/assets/000/132/943/medium800/internet_of_things___iot_eIMGd_7ff06xdddx6.jpg?1728405531)

# Memento Photo Capture with itsaSNAP

## Use It!

![](https://cdn-learn.adafruit.com/assets/assets/000/133/062/medium800/internet_of_things___iot_IMG_7095.png?1728566037)

Power up your Memento with a battery pack or USB C cable. Open the Shortcuts app on your iOS device and run the Memento Cam Shortcut to IO Shortcut. You'll see a new photo appear on the shortcut display.

![](https://cdn-learn.adafruit.com/assets/assets/000/133/002/medium800thumb/internet_of_things___iot_IMG_01312-ezgif.com-video-to-gif-converter.jpg?1728502337)

A fun experiment would be to add a proximity sensor to this project to trigger image capture. It would be like having your own smart home security camera.

Info: Be sure to keep the camera near the WiFi used in your credentials.

![](https://cdn-learn.adafruit.com/assets/assets/000/133/003/medium800/internet_of_things___iot__9j_4AAQSkZJRgABAQEAAAAAAAD_2wBDAAwICQsJCAwLCgsODQwOEh4UEhEREiUaHBYeLCYuLSsmKikwNkU7MDNBNCkqPFI9QUdK_3.jpeg?1728502364 This image was taken using the Memento PyCamera by "Memento Cam" shortcut)


## Featured Products

### MEMENTO - Python Programmable DIY Camera - Bare Board

[MEMENTO - Python Programmable DIY Camera - Bare Board](https://www.adafruit.com/product/5420)
Make memories, or just a cool camera-based project,&nbsp;with **Adafruit's MEMENTO Camera Board**. It's a development board with everything you need to create programmable camera and vision projects: with a camera module, TFT preview screen, buttons, SD card slot and...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5420)
[Related Guides to the Product](https://learn.adafruit.com/products/5420/guides)
### Adafruit MEMENTO Camera Enclosure & Hardware Kit

[Adafruit MEMENTO Camera Enclosure & Hardware Kit](https://www.adafruit.com/product/5843)
Once you've picked up your **MEMENTO Camera** and you're ready to take it out into the world, here is a chic and minimalist enclosure that will look great on the runways of Paris or the street photography of New York City! These front and back plates have been...

Out of Stock
[Buy Now](https://www.adafruit.com/product/5843)
[Related Guides to the Product](https://learn.adafruit.com/products/5843/guides)
### Lithium Ion Battery Pack - 3.7V 6600mAh

[Lithium Ion Battery Pack - 3.7V 6600mAh](https://www.adafruit.com/product/353)
Need a massive battery for your project? This lithium-ion pack is made of 3 balanced 2200mAh cells for a total of 6600mA capacity! The cells are connected in parallel and spot-welded to a protection circuit that provides over-voltage, under-voltage, and over-current protection.

Each cell...

In Stock
[Buy Now](https://www.adafruit.com/product/353)
[Related Guides to the Product](https://learn.adafruit.com/products/353/guides)
### USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long

[USB C to USB C Cable - USB 3.1 Gen 4 with E-Mark - 6" long](https://www.adafruit.com/product/4198)
As technology changes and adapts, so does Adafruit! Rather than the regular USB A, this cable has&nbsp; **USB C to USB C** &nbsp;plugs!

USB C is the latest industry-standard connector for transmitting data&nbsp;_and_&nbsp;power. Like Lightning and MagSafe cables, USB C...

Out of Stock
[Buy Now](https://www.adafruit.com/product/4198)
[Related Guides to the Product](https://learn.adafruit.com/products/4198/guides)
### USB Type A to Type C Cable - approx 1 meter / 3 ft long

[USB Type A to Type C Cable - approx 1 meter / 3 ft long](https://www.adafruit.com/product/4474)
As technology changes and adapts, so does Adafruit. This&nbsp;&nbsp; **USB Type A to Type C** cable will help you with the transition to USB C, even if you're still totin' around a USB Type A hub, computer or laptop.

USB C is the latest industry-standard connector for...

In Stock
[Buy Now](https://www.adafruit.com/product/4474)
[Related Guides to the Product](https://learn.adafruit.com/products/4474/guides)
### Vertical Wall Power Supply with USB C - 5V 3A Output and Switch

[Vertical Wall Power Supply with USB C - 5V 3A Output and Switch](https://www.adafruit.com/product/5801)
We love the Raspberry Pi 4 and 5, with their fancy new USB Type C power connectors. Now we have an even&nbsp;_better_&nbsp;power supply that can be used with either Pi 4 or even a Pi 5 with 5V output, 3A of current to handle builds with accessories and displays. The vertical-style plug...

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

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

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

## Related Guides

- [Adafruit MEMENTO Camera Board](https://learn.adafruit.com/adafruit-memento-camera-board.md)
- [Adafruit IO Basics: Analog Output](https://learn.adafruit.com/adafruit-io-basics-analog-output.md)
- [Integrating Color Sensors with itsaSNAP and HomeKit](https://learn.adafruit.com/integrating-color-sensors-with-itsasnap-and-homekit.md)
- [How to Add a New Board to WipperSnapper](https://learn.adafruit.com/how-to-add-a-new-board-to-wippersnapper.md)
- [No-Code Battery Monitoring with WipperSnapper](https://learn.adafruit.com/no-code-battery-monitoring-with-wippersnapper.md)
- [No-Code IKEA Vindriktning Air Quality Sensor Hack with Adafruit IO](https://learn.adafruit.com/no-code-ikea-vindriktning-hack-with-qt-py-esp32-s3-and-adafruit-io.md)
- [itsaSNAP by Adafruit](https://learn.adafruit.com/it-s-a-snap-by-adafruit.md)
- [MEMENTO Camera Quick Start Guide](https://learn.adafruit.com/memento-camera-quick-start-guide.md)
- [Adafruit IO Basics: Dashboards](https://learn.adafruit.com/adafruit-io-basics-dashboards.md)
- [Set up Web Workflow on the Adafruit MEMENTO](https://learn.adafruit.com/set-up-web-workflow-on-the-adafruit-memento.md)
- [IoT Bird Feeder with Camera](https://learn.adafruit.com/iot-window-bird-feeder-with-camera.md)
- [Facial Detection and Recognition with MEMENTO](https://learn.adafruit.com/facial-detection-and-recognition-with-memento.md)
- [MEMENTO Focus Stacking](https://learn.adafruit.com/memento-focus-stacking.md)
- [Use Apple HomeKit Devices with itsaSNAP and Adafruit IO](https://learn.adafruit.com/use-apple-homekit-devices-with-itsasnap.md)
- [No-Code Counters and Email Reports with Adafruit IO Actions](https://learn.adafruit.com/no-code-counters-and-email-reports-with-adafruit-io-actions.md)
- [TTL Serial Camera](https://learn.adafruit.com/ttl-serial-camera.md)
