Robert Savage
Published © MIT

Monocle: View & Control IP Cameras with Alexa & Arduino

Monocle enables Alexa devices such as Echo Show/Spot & FireTV to view your network IP cameras & control them with a wireless PTZ controller.

BeginnerFull instructions provided2 hours6,396

Things used in this project

Hardware components

Arduino MKR1000
Arduino MKR1000
(RECOMMENDED) The Arduino MKR1000 can be used in any of the PTZ controllers demonstrated on this project page.
×1
3-Axis Joystick 10K Potentiometers with Momentary Pushbutton
(RECOMMENDED) This 3-Axis Joystick provides the best user experience and is used in the "Deluxe" PTZ controller project.
×1
OLED I2C Display Module - 0.96" Inch Yellow/Blue (128X64 pixels)
(RECOMMENDED) An OLED display provides a user interface to support more advanced capabilities such as preset recall by navigating through menus on the display. This OLED display can be used in either the "Deluxe" or "Basic" PTZ controller projects.
×1
Raspberry Pi Zero Wireless
Raspberry Pi Zero Wireless
(OPTIONAL) A Raspberry Pi or similar platform can be used to host the Monocle Gateway on your network. A computer may also be used to host the gateway if the computer remains running all the time.
×1
ESP32S
Espressif ESP32S
(OPTIONAL) The ESP32 is used in the IR Remote and Atari/Commodore PTZ controller projects.
×1
Makerfocus ESP32 Development Board (Wemos Lolin)
(OPTIONAL) The ESP32 is used in the IR Remote and Atari/Commodore PTZ controller projects. This is the compact ESP32 development module used to develop the examples.
×1
ESP8266 ESP-12E
Espressif ESP8266 ESP-12E
(OPTIONAL) The ESP8622 is used in the Atari/Commodore PTZ controller project.
×1
Makerfocus D1 Mini 4M WIFI Development Board (ESP8266 ESP-12F)
(OPTIONAL) The ESP8622 is used in the Atari/Commodore PTZ controller project. This is the compact ESP8622 development board used to develop the examples.
×1
Adafruit 2-Axis Joystick with Momentary Pushbutton
(OPTIONAL) This 2-Axis Joystick provides a more compact size and is used in the "Basic" PTZ controller project.
×1
Adafruit Lithium Ion Polymer Battery 3.7V 1200mAh
(OPTIONAL) Only needed if powering the MKR1000 based PTZ controller from battery power. The MKR1000 includes a built-in Lithium Ion battery charging circuit for this capacity battery pack.
×1
Infrared Remote Control & Receiver Kit
(OPTIONAL) In some cases where a compact form of PTZ control is desired, this IR remove and receiver kit provides the most compact and discrete control and is used in the IR Remote PTZ controller project.
×1
OLED I2C Display Module - 0.91" Inch Blue (128X32 pixels) [2 pc]
(OPTIONAL) An OLED display provides a user interface to support more advanced capabilities such as preset recall by navigating through menus on the display. This OLED display can be used in either the "Deluxe" or "Basic" PTZ controller projects. This is a more compact, miniaturized controller still retaining a GUI.
×1
DB9 Male Socket and Plastic Shroud
(OPTIONAL) Only needed if building the Retro Joystick PTZ controller project.
×1
2.2"x1.4"x 0.6" Plastic Electric Project Case
(OPTIONAL) Only needed if building the Retro Joystick PTZ controller or IR Remote PTZ controller project and using either the ESP32 or ESP8266 boards.
×1
Hammond 1591TSBK Plastic Enclosure (Black)
(OPTIONAL) This is the plastic enclosure used for the Deluxe PTZ Controller project.
×1
Serpac A21 ABS Plastic Enclosure, Black
(OPTIONAL) This plastic enclosure would be ideal for the Basic PTZ Controller project. It would also be a suitable enclosure for the Retro and/or IR Remote PTZ controllers if using the Arduino MKR1000 board.
×1

Software apps and online services

Arduino IDE
Arduino IDE
Used to compile and deploy the Monocle PTZ controller firmware to the embedded hardware devices.
Alexa Skills Kit
Amazon Alexa Alexa Skills Kit
Behind the scenes, an Alexa Smart Home skill securely communicates your camera information between the Amazon Alexa services and the Monocle Gateway. The Alexa Skill only needs to be added it to the Alexa Smart Home and linked to the Monoclecam.com account.
Monocle
<https:/MonocleCam.com> This is an online service and platform for this project. The user is required to sign up for an account and link the Monocle account to the Monocle Alexa Smart Home Skill in the Alexa skills store. The user can logon to the web portal and add individual network cameras for Alexa to access/view and for the Monocle PTZ controller to control.
NodeJS
"Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. " The Monocle Gateway runs on the NodeJS platform. The user will need to install NodeJS on the computer or embedded SoC that will run the Monocle Gateway. DOWNLOAD THIE INSTALLER FOR YOUR OS FROM: https://nodejs.org/

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Solder
Solder Wick
Electronics Wire Cutters (Thin Profile; Diagonal/Flush)
These are the ones I own and use daily. Not the cheapest, but high quality!
Electronics Pliers (Thin Profile/Long Reach)
These may not be the most economical but are high quality.
Electronics Wire Stripper (small gauge)
Hook-Up Wire (22 Gauge)
Norseman 7pc Acrylic Point Drill Set with Soft Case
These drill bits are amazing for acrylic / plexiglass / lexan / polycarbonate.
Irwin Industrial Tools 10225 Unibit General Purpose Step Drill Bit Set, 4-Piece
PRO TIP: Have a set of quality step bits in your toolbox. They are wonderful for drilling large holes in plastics (acrylic/plexiglass/lexan/polycarbonate).

Story

Read more

Schematics

Monocle PTZ Controller - Deluxe 3-Axis Joystick (MKR1000)

This circuit diagram depicts the wiring layout between the Arduino MKR1000 micro-controller board, a I2C OLED display module and a very nice 3-axis joystick controller. This design is pretty simple and straightforward, the 3-axis joystick provides an analog signal for each axis of control as well as a digital input signal for the center push button. The OLED display is connected via the I2C bus and is based on the SSD1306 driver IC. The peripherals share a common ground and VCC (3.3VDC).

(SKILL LEVEL: INTERMEDIATE)

Monocle PTZ Controller - Basic 2-Axis Joystick (MKR1000)

This circuit diagram depicts the wiring layout between the Arduino MKR1000 micro-controller board, a I2C OLED display module and a basic 2-axis joystick controller. This design is pretty simple and straightforward, the 2-axis joystick provides an analog signal for each axis of control as well as a digital input signal for the center push button. The OLED display is connected via the I2C bus and is based on the SSD1306 driver IC. The peripherals share a common ground and VCC (3.3VDC).

(SKILL LEVEL: INTERMEDIATE)

Monocle PTZ Controller - IR Remote Control (MKR1000)

This circuit diagram depicts the wiring layout between the Arduino MKR1000 micro-controller board and a 38KHz IR receiver. This design is very basic, a single data pin is connected to the micro-controller and the Arduino-Infrared library does all the heavy lifting to process the IR signal and decode the IR data.

(SKILL LEVEL: BEGINNER)

Monocle PTZ Controller - IR Remote Control (ESP32)

This circuit diagram depicts the wiring layout between the ESP32 micro-controller board and a 38KHz IR receiver. This design is very basic, a single data pin is connected to the micro-controller and the Arduino-Infrared library does all the heavy lifting to process the IR signal and decode the IR data.

(SKILL LEVEL: BEGINNER)

Monocle PTZ Controller - Atari/Commodore Joystick (MKR1000)

This circuit diagram depicts the wiring layout between the Arduino MKR1000 micro-controller board and the DB9 male socket that your Atari/Commodore compatible joystick will plug into. This design is very basic, the joystick simply makes contact closures to ground for up, down, left, right and fire functions. The micro-controller firmware does need to pull each digital pin to HIGH or separate pull-up resistors can be used instead.

(SKILL LEVEL: BEGINNER)

Monocle PTZ Controller - Atari/Commodore Joystick (ESP32)

This circuit diagram depicts the wiring layout between the ESP32 micro-controller board and the DB9 male socket that your Atari/Commodore compatible joystick will plug into. This design is very basic, the joystick simply makes contact closures to ground for up, down, left, right and fire functions. The micro-controller firmware does need to pull each digital pin to HIGH or separate pull-up resistors can be used instead.

(SKILL LEVEL: BEGINNER)

Monocle PTZ Controller - Atari/Commodore Joystick (ESP8266)

This circuit diagram depicts the wiring layout between the ESP8266 micro-controller board and the DB9 male socket that your Atari/Commodore compatible joystick will plug into. This design is very basic, the joystick simply makes contact closures to ground for up, down, left, right and fire functions. The micro-controller firmware does need to pull each digital pin to HIGH or separate pull-up resistors can be used instead.

(SKILL LEVEL: BEGINNER)

Code

Monocle PTZ Controller Arduino Library

This repository contains the fully open source Arduino library for communicating with the Monocle Gateway as well as the various PTZ Controller projects for the different form-factors and control surfaces. The PTZ controller projects are included in the "examples" which make its super each to open and start your own project in the Arduino IDE when you have this library installed.

Monocle Gateway Service

This repository contains the open source Monocle Gateway that you install on a computer or embedded device like a Raspberry Pi inside your network and communicates with the Monocle platform and provides local camera control on your network.

Credits

Robert Savage

Robert Savage

1 project • 2 followers
Technology enthusiast, entrepreneur, open source contributor, technology blogger, experienced software architect/engineer. Pi4J Founder.

Comments