Introduction: ESP32 Based Ip Video Surveillance
This is an example how to use an Ili9342 based touchscreen and ESP32 to show live pictures of an IP camera on the screen. This can be used for example for video surveillance, video door bells and similar applications.
Step 1: Materials
Step 2: Hardware Monitor
I've used our AZ-Touch MOD kit for ESP32 as hardware plattform. This kit comes with a 2.4 or 2.8 inch tft touchscreen. The demo will work with both screen sizes, but of course it makes more sense to use the bigger 2.8 inch screen in this application.
Step 3: Camera
This example was written for the ESP32-CAM camera. Please install the CameraWebServer example on the ESP32-cam which comes with the Arduino IDE.
It's important to choose "ESP Wrover Module" as board and "Huge APP ..." as partition scheme.
The software of the monitor can be used with other IP cameras too if these cameras can provide a JPG picture via http in QVGA (320 x 240) or VGA (640 x 480) size. Probably some small changes especially in the host address configuration are needed in this case.
Step 4: Libraries
Install the following libraries through Arduino Library Manager:
- Arduino TFT_eSPI Library https://github.com/Bodmer/TFT_eSPI
- Arduino TJpg_Decoder library https://github.com/Bodmer/TJpg_Decoder
You can also download the library also directly as ZIP file and uncompress the folder under yourarduinosketchfolder/libraries/ After installing the libraries, restart the Arduino IDE.
Step 5: TFT_eSPI Setup
I've prepared a User setup files for the TFT_eSPI library especially for AZ-Touch and ESP32
Please replace the original User_Setup.h file in your ...\Arduino\libraries\TFT_eSPI\ folder
Step 6: Firmware of Monitor
You will find the firmware for the ESP32 based monitor here:
Download the ZIP and open it in the Arduino IDE
Step 7: Settings
Open the file settings.h in the Arduino IDE and enter your WiFi SSID & password in the fields in the WiFi section:
const char* ssid = "your ssid";
const char* password = "your password";
Furthermore you have to change the host ip address to the ip address of your camera.
const char* host = "192.168.178.40";