• Stars
    star
    388
  • Rank 110,734 (Top 3 %)
  • Language
    C++
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A small example app for ESP32 + Micro-RTSP

TenDollarWebcam

This little project has two goals:

  1. Be a little open source webcam (with so-so quality, but hey $10 and open source)
  2. Serve as an example app for the Micro-RTSP library.

sample VLC view

These camera are very cheap (< $10) and the ESP32 has a fair amount of horsepower left over for other work.

devboards

Supported boards

Virtually any OV2460 + ESP32 board should work.

For boards other than this list you might (probably not) need to change esp32cam_config to use the GPIO assignments for your hardware.

I've tested the following boards with the stock config: ex1, ex2, ex3.

ESP32-CAM board special handling needed

This board is great in some ways: it has PSRAM (so can in theory capture might higher res images than SVGA) and it is cheap and tiny. Two downsides:

  • It has no built in USB port, so to program you'll need to use a USB serial adapter. See docs for a photo of the proper pins.
  • The GPIO assignments are different for the camera, so you'll need to define USEBOARD_AITHINKER

TTGO-T board special handling needed

@drmocm contributed a config file for this great board. It might be the current best choice because it has an extra 8MB of RAM which makes it possible to use very high resolutions on the camera.
You will need to #define USEBOARD_TTGO_T in ESP32-devcam.ino to get the proper bindings for this board.

How to buy/install/run

This project uses the simple PlatformIO build system. You can use the IDE, but for brevity in these instructions I describe use of their command line tool.

  1. Purchase one of the inexpensive ESP32-CAM modules from asia (see above).
  2. Install PlatformIO.
  3. Download this git repo and cd into it.
  4. pio run -t upload (This command will fetch dependencies, build the project and install it on the board via USB)

The first time you run your device you'll need to use an Android or iOS app to give it access to your wifi network. See instructions here.

At this point your device should be happily serving up frames. Either via a web-browser at http://yourdeviceipaddr or more interestingly via a standard RTSP video stream. If your device has an LCD screen it will be showing the IP address and boot messages to that screen.

To see the RTSP stream use the client of your choice, for example you can use VLC as follows:

vlc -v rtsp://yourdevipaddr:8554/mjpeg/1

Note: an older version of these instructions/code had you manually place your wifi keys into the source code. That code is now commented out, in favor of AutoWifi.

More Repositories

1

Micro-RTSP

A RTSP video server intended for very small CPUs (ESP32 etc)
C++
744
star
2

arduleader

An android ground controller (and other things) for Mavlink/Arduplane
Scala
141
star
3

steamback

A Decky plugin to add versioned save-game snapshots to Steam-cloud enabled games.
Python
57
star
4

framework-portduino

An Arduino API that sits on top of Linux and other operating systems. This lets you run Arduino code on Raspberry PI, desktops, etc... All as a standard user-space application.
C++
42
star
5

AutoWifi

Making ESP32 wifi setup trivial with Android/iOS helper apps. 5 lines of code and no more hardcoded keys.
C++
38
star
6

Gaggle

An Android application for glider pilots
Java
34
star
7

nrf51-extractor

A tool for code readout of 'protected' NRF51 devices - using a ST-LINK/jtag.
Python
14
star
8

ezdevice-esp32

Client side software for ezdevices (ESP32 version)
C++
8
star
9

usb-serial-for-android

An unofficial fork of http://code.google.com/p/usb-serial-for-android/
Java
7
star
10

reddit-bots

The old source code to /u/All-American-Bot
Python
6
star
11

ParticleWebLog

A publish based web logger for particle.io
C++
3
star
12

ESP32-AutoUpdate

Making secure software updates from the cloud for your ESP32 project/product
C++
3
star
13

SW102_LCD_Bluetooth

C
3
star
14

AndroidShared

Code that is used as a submodule by a number of Geeksville modules
Java
2
star
15

ezdevice-python

Python tool & library for using ESP32 based Ezdevice.net projects
Python
2
star
16

API

drone API experiments
Python
1
star
17

particle-humidity

A cloudified humidity sensor based on particle.io
C++
1
star
18

hummingbot

A google AIY-Vision machine vision based hummingbird tweeting bot
Python
1
star
19

SW102_LCD_Bluetooth-bootloader

C
1
star
20

3scale-akka

A small async akka wrapper for the 3scale.com API
Scala
1
star
21

primus-python

A python client for sending/receiving real time events with Primus compatible servers.
Python
1
star