diy smart camera: ESP32-CAM with TFT

  Переглядів 20,870

Jonathan R

Jonathan R

Рік тому

This is a DIY smart camera made with an esp32-cam and a TFT screen, put together on some perf board.
To get this working requires three tweaks:
1. Use esp32 board version 1.0.6.
2. Change the User_setup.h file in the TFT_eSPI library to reflect the pins you are using for SPI connection to TFT screen (i've provided my copy on the gihub repo).
3. Update the calloc to ps_calloc in your C:\Users\yourname\Documents\Arduino\libraries\bird_classification_3_inferencing\src\edge-impulse-sdk\porting\arduino\ ei_classifier_porting.cpp file. The idea for this work around came from Ralph Bacon ( / ralphbacon .
Links:
The code repo: github.com/jonathanrandall/ed...
Next episode: connecting the camera to Azure:
• DIY smart camera #2: U...
The RobotZero One project that this is based on:
robotzero.one/esp32-cam-tft-s...
The Kaggle datasets.
Animals: www.kaggle.com/datasets/ashis...
People: www.kaggle.com/datasets/ahmad...
Scenes: www.kaggle.com/datasets/aryan...
My Edge Impulse Project:
studio.edgeimpulse.com/studio...
Edge Impulse Repo:
github.com/edgeimpulse/exampl...

КОМЕНТАРІ: 30
@47lokeshkumar74
@47lokeshkumar74 Рік тому
Nice
@Bianchi77
@Bianchi77 Рік тому
Creative video, thanks :)
@jonathanr4242
@jonathanr4242 Рік тому
Thank you
@yupingliao4078
@yupingliao4078 Рік тому
Thank
@PavolFilek
@PavolFilek Рік тому
I need this for my talking BMS + MPPT.
@jonathanr4242
@jonathanr4242 Рік тому
I would be interested to see how that goes.
@jeanyluisa8483
@jeanyluisa8483 Рік тому
To be honest I would rather like to see see the connection diagram and the code, than the artful usage of hotglue.
@jonathanr4242
@jonathanr4242 Рік тому
I hear what you're saying and I will try to take that on board for the next video.
@RandomTorok
@RandomTorok 5 місяців тому
Can you provide a Parts list? Specifically where can I get that battery holder.
@Reyxv16
@Reyxv16 Рік тому
Hello, do you know how many gpio are free to add more buttons in case the memory reader is used?
@jonathanr4242
@jonathanr4242 Рік тому
There is not much in the way of pins for the esp32-cam. You can probably push it to about three or four extra pins if you use pin 16, 1, 3 and 0. But you need pin 1 and 3 for flashing (while 0 is held low). If you do OTA updates, you can probably work out something with those pins or you can work out some kind of pin-sharing arrangement? My advice would be to use a port expander or another esp32 dev board with an esp32-now communication (I have tried the latter on another project with good results).
@madladdan
@madladdan Рік тому
How did you overlay that OSD?
@jonathanr4242
@jonathanr4242 Рік тому
Hi. I didn't end up using the OSD because it didn't work with the colour image I used the rgb_print function which is from github.com/MakeMagazinDE/ESP32-CAM/blob/master/app_httpd.cpp.
@madladdan
@madladdan Рік тому
@@jonathanr4242 Thank you. I assume that print function is injected into the video stream? So you can only see those values if you have video?
@jonathanr4242
@jonathanr4242 Рік тому
@@madladdan No. The opposite. I only overlay on a still picture. So, I have to convert it to rgb888, print out to the image, and then convert back to jpeg and save to memeory. The code is on my github repository. I also print out to the tft screen (same text), but this won't show up on the image file, only the tft screen. Also, you need to have esp32 board version 1.0.6 installed for this to work. //print to image rgb888_matrix = dl_matrix3du_alloc(1, fb->width, fb->height, 3); fmt2rgb888(fb->buf, fb->len, fb->format, rgb888_matrix->item); // HERE print some text // rgb_print(rgb888_matrix, 0x000000FF, "Hello!"); for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) { char tmp[32]; sprintf(tmp, "%s: %0.2f", result.classification[ix].label, result.classification[ix].value); rgb_print(rgb888_matrix, 0x000000FF, tmp, ix*15 + 2); } Serial.println("printing to image"); size_t _jpg_buf_len = 0; uint8_t * _jpg_buf = NULL; // free(fb->buf); // fb->buf = NULL; bool jpeg_converted = fmt2jpg(rgb888_matrix->item, fb->width*fb->height*3, fb->width, fb->height, PIXFORMAT_RGB888, 80, &_jpg_buf, &_jpg_buf_len); //&fb->buf Serial.println("converted jpg");
@madladdan
@madladdan Рік тому
@@jonathanr4242 Oh I see. Thank you
@47lokeshkumar74
@47lokeshkumar74 Рік тому
If I connected to usb camera. Then which embedded used
@jonathanr4242
@jonathanr4242 Рік тому
That would be dependent on what device the usb camera is connected to. The camera is just the capture mechanism but the image needs to be processed on some kind of computer chip.
@47lokeshkumar74
@47lokeshkumar74 Рік тому
@@jonathanr4242 could you suggest which type of computer chip we can use to get the picture apart from computer.
@jonathanr4242
@jonathanr4242 Рік тому
@@47lokeshkumar74 Ok. You mean a usb camera connected to a pc. There are a number of options for deployment. When you get to the deployment step, there is an option to "run your impulse directly" on a computer. I would look into that.
@darkgt0066
@darkgt0066 Рік тому
Where is the circuit diagram bro?
@jonathanr4242
@jonathanr4242 Рік тому
The RobotZero website, referenced in the description, has the schematic for connecting the esp32-cam to the tft screen. The only other thing I use is a push button, which is on pin 4 of the esp32 cam. If you are using TFT_eSPI library you need to copy the User_Setup.h file from my github repo (the first github link in the description).
@frosty1433
@frosty1433 7 місяців тому
Maybe it's more accurate than your realize and you really are 0.4% bird. Did you have any chicken before testing?
@jonathanr4242
@jonathanr4242 7 місяців тому
😆🤣
@tienong223
@tienong223 Рік тому
excuse me, i want to make it become a dash cam, is it possible and can you make a video about it? Thank you very much
@jonathanr4242
@jonathanr4242 Рік тому
That's a very good idea The issue is, the neural network classification runs a bit slow on the esp32 for a dash cam. We could use motion detection so it records images when it detects movement.
@tienong223
@tienong223 11 місяців тому
@@jonathanr4242 but actually i dont need it detects anything just for recording image while you driving car ~~
How to Run Linux on an ESP32
18:53
element14 presents
Переглядів 143 тис.
I shouldn’t have kept the $1,000,000 computer
28:05
Linus Tech Tips
Переглядів 1,3 млн
Teenagers Show Kindness by Repairing Grandmother's Old Fence #shorts
00:37
Fabiosa Best Lifehacks
Переглядів 11 млн
Зомби Апокалипсис  часть 1 🤯#shorts
00:29
Biggest TFT 7" for Arduino or ESP32 - Parallel Communication
10:16
Electronoobs
Переглядів 43 тис.
How to Scroll Image (ESP32 and TFT display)
8:00
Volos Projects
Переглядів 28 тис.
Making the most EQUIPPED DIY Security Camera with ESP32-CAM
26:36
Max Imagination
Переглядів 323 тис.
ESP32-CAM + TFT Screen + 3D Print  - SelfieCam
6:27
robotzero.one
Переглядів 25 тис.
ESP32 CAM Getting Started | Face Detection
10:11
Viral Science - The home of Creativity
Переглядів 251 тис.
Programmable Wildlife / Security / Timelapse Camera Projects with an ESP-32 CAM
1:11:38
10 Great Artificial Intelligence projects using ESP32-CAM!!!
7:18
ToP Projects Compilation
Переглядів 134 тис.
DIY AI Camera using Google Vision API & ESP32 CAM Module
14:16
How To Electronics
Переглядів 20 тис.