The Raspberry Pi is a popular single board computer that is very versatile and can be used for a wide range of projects from home automation to video game emulators. One useful feature is the ability to control and monitor the Raspberry Pi remotely from another device like a smartphone or tablet. This allows you to access your Pi without needing to connect a keyboard, mouse, and monitor directly to it.

In this comprehensive guide, I will cover multiple methods for controlling your Raspberry Pi over the network from an Android or iOS smartphone or tablet.

Prerequisites

Before you can remotely access your Raspberry Pi, there are a few requirements:

  • Raspberry Pi set up and connected to your home network via Ethernet or WiFi
  • SSH enabled on the Pi
  • Pi needs a static IP address or dynamic DNS hostname
  • Smartphone or tablet on the same WiFi network as the Pi

If you need help getting SSH enabled or setting up a static IP/dynamic DNS, I have complete Raspberry Pi setup guides here.

Briefly, to enable SSH, open the Raspberry Pi configuration menu:

sudo raspi-config

Go to "Interfacing Options" and enable SSH. You‘ll also want to set a static IP address here so you always know how to access your Pi on the network.

Method 1: VNC Viewer

One of the easiest ways to access your Pi remotely is through VNC. The Raspberry Pi OS has the RealVNC server pre-installed. You just need to install a VNC Viewer app on your smartphone.

Some good cross-platform options include VNC Viewer (Free), Remotix VNC ($14.99) or Mocha VNC ($5.99).

To connect:

  1. Install a VNC Viewer app on your smartphone
  2. Launch the app and add a new connection
  3. Enter your Raspberry Pi IP address and port 5900
  4. Enter the username (default is pi) and password
  5. Tap Connect

You should now see your Raspberry Pi desktop mirrored on your phone screen! You can fully control the Pi with touchscreen gestures just like using a monitor and mouse/keyboard.

The main downside to VNC is that it can be fairly slow and laggy, especially over WiFi. But for basic functions, it gets the job done.

Method 2: SSH Terminal Access

For more advanced users, accessing your Pi via SSH terminal is extremely useful. There are many great SSH client apps for mobile – I‘ll highlight some of the best options:

JuiceSSH (Free for client-side usage) – Full-featured SSH client with shorthand commands, bookmarks, global search, dark mode and multiple windows. Has customizable widgets to trigger SSH commands.

Termius (Free tier available) – Supports SSH, telnet, Mosh and SFTP protocols. Includes broad cryptography and security options. Has scripting and bulk file transfer capabilities.

Server Auditor ($3.99) – Great troubleshooting tool that graphs remote system resources like CPU usage, network traffic, disk space, memory and processes. Very useful for diagnosing Pi issues.

To connect via SSH:

  1. Install your SSH client app of choice
  2. Add connection info for your Pi – IP address, username pi, port 22
  3. Select the connection and enter password
  4. You now have terminal access and can fully control your Pi!

SSH provides access to the Linux command line on your Pi for running commands, editing config files, executing scripts and scripts, transferring files with SFTP and more. Very useful for headless control without a keyboard or display.

Some common commands I use for managing my Pis remotely include:

sudo reboot (restarts the Pi)

sudo shutdown -h now (full shutdown) 

uptime (check load averages)

df -h (disk usage)  

top (process list)

sudo service apache2 start/stop/restart (web server control)  

tail -f /var/log/syslog (check syslogs)

There are endless possibilities available through the Linux terminal!

Method 3: Web Based Dashboards

If you run services on your Raspberry Pi like a media server, smart home hub, or web/database server, there are great web dashboards available for remote monitoring:

Pi-hole – Network-wide ad blocking server has built-in responsive dashboard with stats and control options.

Portainer – Full container management/monitoring for Docker instances. Very useful for containerized apps.

phpSysInfo – Open source PHP script that displays system resource usage statistics and metrics. Easy deployment.

Cockpit – Powerful server manager with resource usage reporting and log viewing. More advanced to set up.

Since these run through the web browser on your smartphone, you don‘t need to install any additional apps – just connect to your Pi‘s IP address.

Web dashboards allow you to easily check on your Pi without difficult terminal commands or viewing the desktop GUI. Most include mobile optimization and responsive design.

Method 4: Chrome Remote Desktop

If you want remote desktop functionality similar to VNC but with better performance, the Chrome Remote Desktop app is an excellent choice.

To set up:

  1. Install the Chrome Remote Desktop client on your mobile device
  2. On your Pi, install the Headless Chrome Remote Desktop package:
sudo apt install chromium-browser
  1. Run the remote desktop wizard to generate a PIN code:
chrome-remote-desktop
  1. Enter the PIN on your mobile app to connect and mirror your Pi!

Benefits over VNC include faster frame rates when streaming the desktop, shared clipboard between devices, and remote app launching.

Downsides are that it‘s limited to Chrome browsers, has fewer customization options, and remote sound playback is difficult.

But overall, Chrome Remote Desktop is one of the smoothest solutions for accessing your Pi on the go.

Method 5: Android Debug Bridge (ADB)

This next technique is more for advanced Android developers but allows full remote control over your Raspberry Pi through ADB tools.

The steps to enable ADB debugging:

  1. Install ADB tools on Pi:
sudo apt install android-tools-adb android-tools-fastboot
  1. Connect your Android device with a USB cable and enable developer options + USB debugging

  2. Approve debugging authorization popup on Android

  3. Now you can remotely execute ADB commands to your Pi terminal:

adb devices (list connected devices)

adb shell (remote terminal access)

adb logcat (view device logs)

adb reboot (reboot command)

With ADB you can remotely access a shell terminal, transfer files, sideload APKs, view system logs, debug apps, grant permissions, and fully control your Android device.

Since ADB runs over USB, WiFi latency and disconnects are not an issue. This is a very reliable way for developers to control test devices.

The main limitation is that your smartphone must be connected to the Pi via USB cable for ADB to function. But if you‘re developing Android apps specifically for your Pi, it‘s an indispensable tool.

Closing Thoughts

As you can see, the Raspberry Pi offers many flexible options for remote control over SSH or VNC. Web dashboards and ADB debugging provide alternative methods as well.

No matter your skill level or specific needs – whether that‘s a simple streaming desktop or full command line access – there is a solution to remotely manage your Raspberry Pi with your smartphone.

I encourage you to try out some of these remote control methods for convenient access to your Pi projects! Let me know in the comments if you have any questions.

Similar Posts