Giter Club home page Giter Club logo

hire-vladimir / esp32-homekit-camera Goto Github PK

View Code? Open in Web Editor NEW

This project forked from maximkulkin/esp32-homekit-camera

0.0 2.0 0.0 3 MB

Firmware for esp32-camera module to act as Apple Homekit IP camera

License: MIT License

Makefile 0.19% C 63.27% C++ 0.73% Roff 0.42% Shell 1.68% SAS 0.19% Smalltalk 0.02% WebAssembly 0.18% Assembly 15.52% HTML 0.12% Module Management System 0.18% Perl 0.57% Objective-C 0.12% Python 0.60% PHP 16.21%

esp32-homekit-camera's Introduction

esp32-homekit-camera

Firmware for esp32-camera module to act as Apple Homekit IP camera.

Based on esp-homekit.

Prerequisites

Build instructions ESP32

  1. Clone git repo
  2. Change directory to repo cd esp32-homekit-camera
  3. Initialize and sync all submodules (recursively) git submodule update --init --recursive
  4. Configure device settings per menuconfig settings section, make menuconfig
    • This step is critical
  5. Apply esp32-camera.patch patch git apply --directory="components/esp32-camera" esp32-camera.patch
  6. Compile code make all
  7. To prevent any effects from previous firmware (e.g. firmware crashing right at start), highly recommend to erase flash make erase_flash
  8. Upload Upload firmware to ESP32 make flash monitor
    • Note, ESP32 GPIO0 pin needs to be connected to GND pin to enable flashing
    • To exit monitor, on mac control+]

Menuconfig settings

Before compiling, you need to alter several settings in menuconfig, follow configuration prompts make menuconfig:

  • Serial flasher config
    • Default serial port
    • Flash size = 4 MB
  • Partition Table
    • Partition Table = Custom partition table CSV
    • Custom partition CSV file = partitions.csv
  • Component config
    • Driver configuration
      • RTCIO configuration
        • Support array rtc_gpio_desc for ESP32 = check
    • ESP32-specific
      • Support for external, SPI-connected RAM = check
      • SPI RAM config
        • Initialize SPI RAM during startup = check
        • SPI RAM access method = Make RAM allocatable using malloc() as well
    • Camera configuration
      • OV2640 Support = check
    • HomeKit
      • SPI flash address for storing HomeKit data = 0x3A0000
  • ESP32 HomeKit Camera
    • WiFi SSID
    • WiFi Password
    • Device hostname
    • Select Camera Pinout
      • Select Camera Pinout = your variant of module
    • LED Pin
      • PIN = your variant of module
        • ESP32-CAM by AI-Thinker == 33
    • Image sensor vertical flip
      • Toggle if HomeKit app has video feed upside down
    • Image sensor horizontal mirror
      • Toggle if HomeKit app has video feed mirrored
    • Image sensor enhance settings
      • EXPERIMENTAL: adjusts contrast, saturation, etc for better image quality
    • HomeKit Device Setup Code
    • HomeKit Device Manufacturer
    • HomeKit Device model name
    • HomeKit Device model number
    • HomeKit Device Serial number
    • Use WIFI MAC address as serial number
      • Note: this takes precedence over static serial number setting above
    • HomeKit Device Firmware version

Add camera to HomeKit app

  1. Open Home app
  2. Click + sign to add accessory
  3. On Add Accessory screen, click I Don't Have a Code or Cannot Scan button
  4. The ESP camera accessory should be shown, click the icon
  5. On Uncertified Accessory prompt, select Add Anyway
  6. On Enter HomeKit Setup Code, enter setup code
    • Default is 111-11-111
  7. Click Continue button
  8. Select camera location, continue
  9. Enter camera name, continue
  10. Click Done
  11. Camera ready to use

Troubleshooting

While not HomeKit specific, good amount of troubleshooting information for flashing ESP32 devices can be found at https://randomnerdtutorials.com/esp32-cam-troubleshooting-guide/

Other

Device runs a webserver on HTTP port 5556

esp32-homekit-camera's People

Contributors

hire-vladimir avatar jangolen avatar maximkulkin avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.