My Project – Full Overview (with Camera Output)
I’m developing a complex multi-device control system that involves two Android phones, two Arduino boards, and real-time camera feedback. My goal is to remotely control hardware connected to the Arduinos and also receive live visual and status feedback from the system.
Devices Involved
- Phone 1 – The Bridge/Controller Phone
- Physically connected to Arduino 1 via a USB OTG cable.
- Acts as the central relay: it receives commands from Phone 2, sends them to Arduino 1, receives responses, and forwards them back.
- Also runs the camera, capturing visuals of the Arduino setup or the task being performed. These visuals are streamed or periodically sent back to Phone 2.
- Phone 2 – The Remote Command Phone
- Used as my remote control interface.
- Sends commands over a network connection (like Wi-Fi or hotspot) to Phone 1.
- Receives status updates, command responses, and live camera feedback from Phone 1.
- Arduino 1 – Primary Controller
- Connected via USB OTG to Phone 1.
- Receives serial commands from Phone 1.
- Executes hardware functions (like moving a motor, switching lights, reading sensors).
- Forwards specific commands or data to Arduino 2 when needed.
- Arduino 2 – Secondary Hardware Node
- Connected to Arduino 1 through UART, I2C, or similar.
- Executes tasks based on relayed commands.
- Can send data or responses back to Arduino 1 for aggregation and return to Phone 1.
Camera Integration
One of the key features of my project is that Phone 1’s camera will act as a live monitoring tool:
- The camera will either capture live video (if feasible) or snap periodic images of the Arduino setup in action.
- This visual feedback is sent to Phone 2, helping me confirm that the remote commands were carried out correctly.
- It could also help monitor physical actions (e.g., whether a motor moved or a servo turned), especially when I’m not physically present near the devices.
- This feature is essential for trust and remote verification of the system's operation.
Function Flow – Step by Step
- I send a command from Phone 2 over Wi-Fi to Phone 1.
- Phone 1 receives the command and sends it to Arduino 1 via USB OTG.
- Arduino 1 acts on the command and, if needed, relays it to Arduino 2.
- Arduino 2 performs its function and returns a status message to Arduino 1.
- Arduino 1 sends a response back to Phone 1.
- Phone 1 sends both the status response and camera image/video to Phone 2.
- On Phone 2, I can now see if the command worked properly and visually monitor the result.
What I Want to Use
- MIT App Inventor or Thunkable to build the app on Phone 1 because I prefer block-based visual development over raw Android coding.
- A USB OTG Serial extension to enable communication between Phone 1 and Arduino 1.
- A network component (like WebSockets or HTTP requests) to receive commands from Phone 2 and return data.
- A camera component on Phone 1 to stream or periodically upload snapshots to Phone 2.
- I'm also exploring if AI tools can help speed up app creation or automate some parts—but so far, I haven’t found an AI that can fully build all of this in one go (especially with OTG + networking + camera support together).
Final Summary
In simple terms, I want to:
- Use Phone 2 to send commands remotely.
- Have Phone 1 act as a smart bridge that talks to Arduino 1 (via USB OTG), sends and receives commands, and uses its camera for visual feedback.
- Use Arduino 1 to perform core tasks and also relay some commands to Arduino 2.
- Get back responses and camera views from Phone 1 to Phone 2 so I can fully monitor the system remotely.
But I have an feeling that it should be much simpler but I don’t know any work arounds.