Notifications
Clear all

Using the ESP32-CAM MicroSD Card ... problems taking pictures "Time-Lapse Camera Code"

35 Posts
3 Users
1 Likes
1,536 Views
(@stefandws)
Member
Joined: 1 year ago
Posts: 14
Topic starter  

Here is my quick answers to your questions

logging additional information on the SD-CARD additional to the images stored on the SD-card .. instead of  using the serial monitor while board is connected to PC

Yes, you can, but you will need to study file system concepts to determine how to do this. 

thanks I will look into that

Just assign 0 to the counter as in myCounter = 0;

this does not work since the counter is stored somewhere into the eprom. If I format/delete the sd-card ... the counter does start from the last given no +1 .... this is perfect as long as don't want to start from zero.
I asume this counter has to be reset some other way

low priority

 

how to reduce (set) LED-flash light (brightness)

That might not be very easy, you need to know how to find things in the system, not just code, but the doc'n as well. I just had a quick look because I have looked at it before and I don't see a quick easy path. Make this low priority.

thanks I will look into that ... yes that is low priority

how to best continue in order to find optimal camera settings (... setting values of the camera

parameters by changing variables over time ... "for/next loop" ... with parameters logged to SD-card

I do not recommend for next, change one setting at a time.

The settings you inherited are optimal, but if you want to play, change ONE at a time, like brightness until it looks good to you, then move on to contrast etc.

Yes, only changing one parameter a time is important .... but this will take ages since there are millions of combinations possible.
So I thought changing parameters within a loop, taking a picture, writing a log file containing parameters ... letting the software change the parameters .... after a while there will be x pictures .... select the best ... look into the parameters stored on sd-card .... this would be much easier

... but also low priotrity .... since taking the pictures within the loop is working now


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6893
 

@stefandws In lop, you don't need restart at all, it automatically takes more pictures. loop should be empty and all the code goes in setup.

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
(@stefandws)
Member
Joined: 1 year ago
Posts: 14
Topic starter  

loop should be empty and all the code goes in setup.

@Ron 
sorry i don't get it

based on the code

ESP32-CAM Time-lapse camera
esp32cam-timelapse.ino
Takes time-lapse pictures with ESP32-CAM
Saves images to MicroSD Card

taking the pictures evey delayTime is happening within the loop.
Why should't I position the code triggering the pictures within the loop procedure?

it seems to work just fine ... is there a disadvantage in placing that code within the loop?

For my understanding once the device is attached to power or the reset button is pressed, the device is starting the code within setup.

After finishing setup to device is going to loop .... and repeatedly runs the code within loop?

 

******

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

 

esp32cam-timelapse.ino:

void setup() {
// Disable brownout detector
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
// Start Serial Monitor
Serial.begin(115200);
// Initialize the camera
configESPCamera();
// Initialize the MicroSD
initMicroSDCard();
}

void loop() {
// Path where new image will be saved in MicroSD card
String path = "/image" + String(pictureCount) + ".jpg";
Serial.printf("Picture file name: %s\n", path.c_str());

// Take and Save Photo
takeNewPhoto(path);

// Increment picture count
pictureCount++;

// Delay for specified period
delay(delayTime);

ESP.restart();
}

 

 


   
ReplyQuote
Ron
 Ron
(@zander)
Father of a miniature Wookie
Joined: 3 years ago
Posts: 6893
 

@stefandws It's a question of proper debugging technique. When I understood you were using the reset button on the non timelapse sketch I knew you could stop using the button and simply add the ESP.restart(); statement. As well you can remove the code that establishes pin13 as the reset button which you never did test. I think you did in fact do that and it worked, but then understood the need for creating numbered files. Rather than making trivial changes to do that, you chose to totally abandon the step by step approach I teach and went off on a tangent.

It is my belief the true bug is yet to be found, so a baby steps approach is needed. Since you have repeatedly refused to follow my directions, I must bow out now and leave you to your adventures.

I am unsubscribing from this topic, you are now on your own.

 

First computer 1959. Retired from my own computer company 2004.
Hardware - Expert in 1401, and 360, fairly knowledge in PC plus numerous MPU's and MCU's
Major Languages - Machine language, 360 Macro Assembler, Intel Assembler, PL/I and PL1, Pascal, Basic, C plus numerous job control and scripting languages.
Sure you can learn to be a programmer, it will take the same amount of time for me to learn to be a Doctor.


   
ReplyQuote
(@stefandws)
Member
Joined: 1 year ago
Posts: 14
Topic starter  

Hello Ron,

thank you for your help and thank you for your patience

sorry but I am not very familiar with the ESP32 device since this is my first project.

When I understood you were using the reset button on the non timelapse sketch I knew you could stop using the button and simply add the ESP.restart(); statement. As well you can remove the code that establishes pin13 as the reset button which you never did test. 

I don't understand what is ment by "... remove the code that establishes pin13 as the reset button"
The device has two buttons as can be seen on my pictures ... one is labeled RST the other IO0 ... I cannot change the mechanical wiring of that,

Based on my knowledge I only can tell that 

  • ESP.restart()
    putting ESP.restart() at the end within the loop procedure
  • changing the way of generating the name by changing the numbering system
    so that the counter does not always start from 0 when device is started
    (without changing the way the name is generated there is only one file on the sd-card .. new file is always overwriting the existing file)

the test setup is automatically generating excellent pictures for the camera fixed within the test housing.

Unfortunately I have somehow damaged the camera by switching from test environment to "real life" application and now have to wait for delivery of two new devices that I have ordered. 

At the moment non of the scripts are working any more 

Initializing the camera module...E (498) camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND)

I Think the topic can be closed since the test setting worked quite well by those modifications.

But most important ... get well soon!

and once again ... tank you very much for your help!

Stefan

 

 


   
ReplyQuote
Page 3 / 3