Components and supplies
iRobbie-A App
Mini Pan/Tilt Camera Platform Anti-Vibration Camera Mount w/ 2 Servos
Dual Channel DC Motor Driver L298N
FT232RL FTDI Mini USB
MB102 Breadboard Power Supply Module
18650 Battery Holder
Adafruit (PID 3244) Mini 3-Layer Round Robot Chassis Kit - 2WD with DC Motors
ESP32-CAM
Apps and platforms
Arduino IDE
iRobbie-A
Project description
Code
esp32cam_car
arduino
esp32cam_car
arduino
Downloadable files
Video Surveillance Robot Connection Diagram
Video Surveillance Robot Connection Diagram
Comments
Only logged in users can leave comments
KDPA
2 years ago
Actually, the code supports both modes: with and without router. To switch between these modes you can comment lines in the code or just press the reset button on ESP32-CAM
Anonymous user
2 years ago
Hi! The code is made in such a way that ist opens an WiFi Access-point (AP). So yes: no router required! You just connect your mobile device to the robot WiFi AP.
deathdaygamers
2 years ago
hey i found an app that will help you all if using an android or anydevice wanted to be free ,this is free version of app https://play.google.com/store/apps/details?id=com.p4f.esp32camai and also if you want to make it more easy just edit in code write their as WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Camerafeed = WiFi.localIP().toString(); Serial.println("' to connect"); } this will make your device wifi station means connected to router and hence go to serial monitor and find ip and ok go to serial monitor find ip address and now open a webrowser type your ip adress and wait now see boom you can see connected to your esp32 but wait a minute add this library in your code to use http ,#include "esp_http_server.h". also like my comment and follow me
Anonymous user
2 years ago
Can u share your modified android app code.
Anonymous user
2 years ago
can you send it to me?
Anonymous user
2 years ago
Can u upload modified android app code.in my case app can't connect to esp 32 board.so plz send me your code or upload here.
Anonymous user
2 years ago
Really cool project! Thanks for sharing! The app is not cheap, but it is also possible to edit the code and add a few buttons to control the robot. I used a Zumo chassis and a small L298N motor driver. Now its a very compact design, i love it! In the beginning i had lots of trouble with broken connections, but after adding an external antenna its works great.
Anonymous user
2 years ago
can you give me
Anonymous user
2 years ago
Hi! very nice! I was looking for a project with esp32-cam like this I upload the sketch on the board but i can't see the control joystick on the web page. I see the stream, the servo's control and the other, but not the joistick. any suggestion? thanks
KDPA
2 years ago
In order to see the joystick and control the robot you have to download and install iRobbie-A app on your iPhone/iPad https://apps.apple.com/us/app/irobbie-a/id1478706096?ls=1
Anonymous user
2 years ago
So this is not open source, this is advertising your $6 expensive app? Hmm... too bad.
Anonymous user
2 years ago
Sir When I uploaded the above code...I am getting an error as mentioned below. I couldn't able to understand that ,So please help me. abhiman:271:34: error: 'httpd_req_t' was not declared in this scope static esp_err_t capture_handler(httpd_req_t *req){ ^ abhiman:271:47: error: 'req' was not declared in this scope static esp_err_t capture_handler(httpd_req_t *req){ ^ abhiman:340:33: error: 'httpd_req_t' was not declared in this scope static esp_err_t stream_handler(httpd_req_t *req){ ^ abhiman:340:46: error: 'req' was not declared in this scope static esp_err_t stream_handler(httpd_req_t *req){ ^ abhiman:417:30: error: 'httpd_req_t' was not declared in this scope static esp_err_t cmd_handler(httpd_req_t *req) ^ abhiman:417:43: error: 'req' was not declared in this scope static esp_err_t cmd_handler(httpd_req_t *req) ^ abhiman:598:33: error: 'httpd_req_t' was not declared in this scope static esp_err_t status_handler(httpd_req_t *req){ ^ abhiman:598:46: error: 'req' was not declared in this scope static esp_err_t status_handler(httpd_req_t *req){ ^ abhiman:657:32: error: 'httpd_req_t' was not declared in this scope static esp_err_t index_handler(httpd_req_t *req){ ^ abhiman:657:45: error: 'req' was not declared in this scope static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t capture_handler(httpd_req_t*)': abhiman:271:50: error: 'esp_err_t capture_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t capture_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:271:18: note: previous declaration 'esp_err_t capture_handler' static esp_err_t capture_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t stream_handler(httpd_req_t*)': abhiman:340:49: error: 'esp_err_t stream_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t stream_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:340:18: note: previous declaration 'esp_err_t stream_handler' static esp_err_t stream_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t cmd_handler(httpd_req_t*)': abhiman:417:46: error: 'esp_err_t cmd_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t cmd_handler(httpd_req_t *req) ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:417:18: note: previous declaration 'esp_err_t cmd_handler' static esp_err_t cmd_handler(httpd_req_t *req) ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t status_handler(httpd_req_t*)': abhiman:598:49: error: 'esp_err_t status_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t status_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:598:18: note: previous declaration 'esp_err_t status_handler' static esp_err_t status_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t index_handler(httpd_req_t*)': abhiman:657:48: error: 'esp_err_t index_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:657:18: note: previous declaration 'esp_err_t index_handler' static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'void startCameraServer()': abhiman:671:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:678:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:685:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:692:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:699:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ Multiple libraries were found for "WiFi.h" Used: C:\\Users\\abhim\\OneDrive\\Documents\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.6\\libraries\\WiFi Not used: C:\\Program Files\\WindowsApps\\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\\libraries\\WiFi exit status 1 'httpd_req_t' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
Anonymous user
2 years ago
Can I please get the code only to run the car... Without camera
Anonymous user
2 years ago
Thank you so mucho.excelent job. The App is for android? How can i test the car forward...
KDPA
2 years ago
So far the app is available only for iOS devices.
Anonymous user
2 years ago
Cool solution & good tutorial... Question about remote pilot: What is exactly the role of the Robbie app? only available on iPhone? The html / javascript page is not self sufficient? is it for the video window, for wifi connectivity? What possibility for piloting from Android, or from raspberry? Cordially yours
KDPA
2 years ago
Hello, Thank you for your interest to my project! The iRobbie-A app provides a user friendly interface to work with various controllers, including ESP32-CAM. For example, you can zoom in on the video stream while the joystick is still in its original place and size. We are working on adding other functions in the app. So far the app is available only for iOS devices.
prekshapre
3 years ago
Can I please get the code only to run the car... Without camera
Anonymous user
4 years ago
Sir When I uploaded the above code...I am getting an error as mentioned below. I couldn't able to understand that ,So please help me. abhiman:271:34: error: 'httpd_req_t' was not declared in this scope static esp_err_t capture_handler(httpd_req_t *req){ ^ abhiman:271:47: error: 'req' was not declared in this scope static esp_err_t capture_handler(httpd_req_t *req){ ^ abhiman:340:33: error: 'httpd_req_t' was not declared in this scope static esp_err_t stream_handler(httpd_req_t *req){ ^ abhiman:340:46: error: 'req' was not declared in this scope static esp_err_t stream_handler(httpd_req_t *req){ ^ abhiman:417:30: error: 'httpd_req_t' was not declared in this scope static esp_err_t cmd_handler(httpd_req_t *req) ^ abhiman:417:43: error: 'req' was not declared in this scope static esp_err_t cmd_handler(httpd_req_t *req) ^ abhiman:598:33: error: 'httpd_req_t' was not declared in this scope static esp_err_t status_handler(httpd_req_t *req){ ^ abhiman:598:46: error: 'req' was not declared in this scope static esp_err_t status_handler(httpd_req_t *req){ ^ abhiman:657:32: error: 'httpd_req_t' was not declared in this scope static esp_err_t index_handler(httpd_req_t *req){ ^ abhiman:657:45: error: 'req' was not declared in this scope static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t capture_handler(httpd_req_t*)': abhiman:271:50: error: 'esp_err_t capture_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t capture_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:271:18: note: previous declaration 'esp_err_t capture_handler' static esp_err_t capture_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t stream_handler(httpd_req_t*)': abhiman:340:49: error: 'esp_err_t stream_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t stream_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:340:18: note: previous declaration 'esp_err_t stream_handler' static esp_err_t stream_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t cmd_handler(httpd_req_t*)': abhiman:417:46: error: 'esp_err_t cmd_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t cmd_handler(httpd_req_t *req) ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:417:18: note: previous declaration 'esp_err_t cmd_handler' static esp_err_t cmd_handler(httpd_req_t *req) ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t status_handler(httpd_req_t*)': abhiman:598:49: error: 'esp_err_t status_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t status_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:598:18: note: previous declaration 'esp_err_t status_handler' static esp_err_t status_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'esp_err_t index_handler(httpd_req_t*)': abhiman:657:48: error: 'esp_err_t index_handler(httpd_req_t*)' redeclared as different kind of symbol static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino:657:18: note: previous declaration 'esp_err_t index_handler' static esp_err_t index_handler(httpd_req_t *req){ ^ C:\\Users\\abhim\\OneDrive\\Desktop\\project\\abhiman\\abhiman.ino: In function 'void startCameraServer()': abhiman:671:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:678:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:685:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:692:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ abhiman:699:5: error: invalid conversion from 'esp_err_t {aka int}' to 'esp_err_t (*)(httpd_req_t*) {aka int (*)(httpd_req*)}' [-fpermissive] }; ^ Multiple libraries were found for "WiFi.h" Used: C:\\Users\\abhim\\OneDrive\\Documents\\ArduinoData\\packages\\esp32\\hardware\\esp32\\1.0.6\\libraries\\WiFi Not used: C:\\Program Files\\WindowsApps\\ArduinoLLC.ArduinoIDE_1.8.42.0_x86__mdqgnx93n4wtt\\libraries\\WiFi exit status 1 'httpd_req_t' was not declared in this scope This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
Anonymous user
4 years ago
Can u upload modified android app code.in my case app can't connect to esp 32 board.so plz send me your code or upload here.
deathdaygamers
4 years ago
hey i found an app that will help you all if using an android or anydevice wanted to be free ,this is free version of app https://play.google.com/store/apps/details?id=com.p4f.esp32camai and also if you want to make it more easy just edit in code write their as WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Camerafeed = WiFi.localIP().toString(); Serial.println("' to connect"); } this will make your device wifi station means connected to router and hence go to serial monitor and find ip and ok go to serial monitor find ip address and now open a webrowser type your ip adress and wait now see boom you can see connected to your esp32 but wait a minute add this library in your code to use http ,#include "esp_http_server.h". also like my comment and follow me
Anonymous user
2 years ago
can you send it to me?
Anonymous user
2 years ago
Can u share your modified android app code.
ra55
5 years ago
Really cool project! Thanks for sharing! The app is not cheap, but it is also possible to edit the code and add a few buttons to control the robot. I used a Zumo chassis and a small L298N motor driver. Now its a very compact design, i love it! In the beginning i had lots of trouble with broken connections, but after adding an external antenna its works great.
Anonymous user
2 years ago
can you give me
rainman130
5 years ago
Hi! very nice! I was looking for a project with esp32-cam like this I upload the sketch on the board but i can't see the control joystick on the web page. I see the stream, the servo's control and the other, but not the joistick. any suggestion? thanks
KDPA
2 years ago
In order to see the joystick and control the robot you have to download and install iRobbie-A app on your iPhone/iPad https://apps.apple.com/us/app/irobbie-a/id1478706096?ls=1
Anonymous user
2 years ago
So this is not open source, this is advertising your $6 expensive app? Hmm... too bad.
Anonymous user
5 years ago
Thank you so mucho.excelent job. The App is for android? How can i test the car forward...
KDPA
2 years ago
So far the app is available only for iOS devices.
Anonymous user
5 years ago
Controlling the robot through internet can it be done without a router..?
KDPA
2 years ago
Actually, the code supports both modes: with and without router. To switch between these modes you can comment lines in the code or just press the reset button on ESP32-CAM
Anonymous user
2 years ago
Hi! The code is made in such a way that ist opens an WiFi Access-point (AP). So yes: no router required! You just connect your mobile device to the robot WiFi AP.
eco13
5 years ago
Cool solution & good tutorial... Question about remote pilot: What is exactly the role of the Robbie app? only available on iPhone? The html / javascript page is not self sufficient? is it for the video window, for wifi connectivity? What possibility for piloting from Android, or from raspberry? Cordially yours
KDPA
2 years ago
Hello, Thank you for your interest to my project! The iRobbie-A app provides a user friendly interface to work with various controllers, including ESP32-CAM. For example, you can zoom in on the video stream while the joystick is still in its original place and size. We are working on adding other functions in the app. So far the app is available only for iOS devices.
Anonymous user
5 years ago
Hi! Nice project, thanks for sharing it! I uploaded the code, works nicely. But some questions arise: 1. why do you first connect to WiFi and then open a WiFi Access Point? 2. if I connect to the WiFI AP and go to IP 192.168.4.1 I can see your GUI, I can stream the video, use the servo and the flash light. But I do not see the 2D-slider for the motors (the grey circle with the red inner one). I do not find that in your code, either. May you help me with that? Thanks a lot! - fabqu
KDPA
2 years ago
Hello, Thank you for your interest to my project! Actually the robot connects to your WiFi networks and doesn't create a WiFi Access Point. In order to control the robot you have to download and install iRobbie-A app on your iPhone https://apps.apple.com/us/app/irobbie-a/id1478706096?ls=1
Anonymous user
2 years ago
Hi! Thanks for the reply. Can't you just add the joystick to the web-application as well? We want to use that software for kids in our labs: mint-labs-regensburg.de And: yes, it opens up a WiFi Access point! After like 10 seconds being connected to the WiFi Router, it disconnects and opens up the Access point ;) EDIT: I don't have an Apple device, so the App is no solution for me. Alse the MINT-Labs do not have an iPad/iPhone.
Anonymous user
2 years ago
Controlling the robot through internet can it be done without a router..?