Tuesday 12 January 2016

Controlling Your Raspberry Pi Remotely

After we had a running Raspberry Pi with operating system inside, it is time to control our Raspberry Pi remotely. Because we don't want to stuck in a boring place when we configure our Raspberry Pi, do we? So I would like to share about control our Raspberry Pi remotely and configure it everywhere we want as long it has same network between the Raspberry Pi and a controller.

To control our Raspberry Pi, our controller device (another computer or smartphone) must have a same network address with our Raspberry Pi or we can say it these devices must in same Local Area Network (LAN). Generally speaking, we can control our Raspberry Pi using SSH protocol (Port 22 in default).

So, what we can do to control our Raspberry Pi? In this idea, I would like to share my knowing about controlling our Raspberry Pi remotely.

1. The Components

For the needed component we just focus on the Raspberry Pi, because it is the main actor here. For the rest, we can set the configuration automatically. 
  1. Raspberry Pi that already have operating system inside
  2. Ethernet STRAIGHT cable configuration
  3. Wireless Access Point

2. The Topology

After all components is gathered, it is time to make our devices in the same network or on same local area network/ To do that, we must make our topology first. The common topology that is used for local network is Star Topology. The Star Topology happen when there is a hub/switch as a center of node  is connected to the rest of nodes (computer, laptop or smartphone) around. 


3. The Setting

The first thing to be set is the wireless access point. We must configure the IP of access point as a gateway and the distributed IP for the rest of the device. For the configuration, we can refer to the access point manual book. This step is to make the local IP so the devices (laptop, computer, smartphone and Raspberry Pi) is in the same network. In this case I use 192.168.0.0 as local network address.

After that, let's go through to our Raspberry pi configuration. For the Raspberry Pi configuration, I make it a static IP (I used 192.168.0.16) to be easy to remember and if the network accidentally reset by itself the configuration is still the same. Because if we make the configuration by default, when we reset the Raspberry Pi, there is a possibility that the IP will change to another IP address.

To configure the IP permanently, we must edit some lines in file /etc/network/interfaces. Don't forget to backup the file first before we edit it.

 sudo cp /etc/network/interfaces /etc/network/interfaces.bak

Then edit the file.

 sudo nano /etc/network/interfaces

Edit and add some lines focus on eth0 device.

 auto eth0
 allow-hotplug eth0
 iface eth0 inet static
       address 192.168.0.16
       gateway 192.168.0.1

Save the configuration and restart the service.

 sudo /etc/init.d/networking restart

After that, we must ensure that our Raspberry pi has the ssh service by type ssh on the terminal. But by default the Raspberry Pi already has this service. If our Raspberry doesn't have this service, it will appear an error message.

 -bash: ssh: command not found

Then we must install the package.

 sudo apt-get install ssh

Congratulation, with these configuration our Raspberry Pi is ready to be controlled remotely via terminal later.

But if we left it like these, we just can control our Raspberry Pi via terminal. There is another way to control the Raspberry Pi via desktop. To make it happen, we must install another service. The service we want to install is xrdp. This service allows us to control the Raspberry Pi via the Raspberry Pi desktop.

Install the xrdp package

 sudo apt-get install xrdp  

Now we can control our Raspberry Pi via it's desktop.

4. The Remote Tools

After we have set the Raspberry Pi so it can be controlled from other device, it is the time to set the controller device. Usually the controller device is always another computer (laptop or PC). But how about control our Raspberry Pi from our smartphone? In this idea I would like to share how to control our Raspberry Pi not only from our computer but also from our smartphone.

The important thing before we control our Raspberry Pi remotely is we must make sure that our controller device and the Raspberry Pi is in the same local Network. To make this happen, we just configure our controller device's network address to be the same as our Raspberry Pi's network address or we can just set our device to automatically obtain the IP address. So we don't have to define the IP address. It will be defined by the wireless access point. Because our access point will distribute the IP address automatically based on the number of active devices.

In this case I assume that we have already set the IP address for the controller device in the same local network as our Raspberry Pi.

Control Raspberry Pi from other computer

There are plenty of tools that is used to control our Raspberry Pi remotely. The common tool is called putty and we can get the tool from putty official site. Putty is free and open-source terminal emulator to control the remote device. Another tool that we can use is Remote Desktop Connection. Remote Desktop Connection is built-in program on Windows operating system. From Remote Desktop Connection we can control the Raspberry Pi from the Raspberry Pi desktop. In this idea I would like to try these tools.

Putty
Putty is a portable software. So once we download putty from it's official site, we don't have to install putty to our computer. Just double click on putty icon and it will appears putty window interface.

Input our Raspberry Pi IP address (192.168.0.16) and use port 22 as default post. Then click "Open".


Then we directly connected to our Raspberry Pi terminal and will be asked for username and password. Input our Raspberry Pi username and password.


Congratulation buddy, now we can control our Raspberry Pi from the Terminal.

Remote Desktop Connection
Remote Desktop Connection is Windows built-in program that can control the host computer remotely from host's computer desktop. On Mac, there is a same tool like CoRD. But in this idea I just describe how to control our Raspberry Pi using Remote Desktop Connection. Because I use Wndows.

Open the Remote Desktop Connection in Window -> All Programs -> Accessories -> Remote Desktop Connection.

Input our Raspberry Pi's IP address and click "Connect".


And it will direct you to xrdp login window. Input our Raspberry Pi username and password.


Then we go trough our Raspberry Pi desktop.


Great job fellas, now we can control our Raspberry Pi from Raspberry Pi desktop.

Control Raspberry Pi from our smartphone

Another way to control our Raspberry Pi is from our smartphone especially for android. When I tried to search an app to do remote connection like putty, there are a lot of apps that similar to each other. But just one app that have my attention. The app is JuiceSSH. I choose this app because I think it is easy to use. We can download this app to our smartphone from google apps store freely.

After we download the JuiceSSH app from google apps store and open the app on our smartphone.


Make a new connection and input our Raspberry Pi username followed by it's IP address (pi@192.168.0.16)


Then we will be asked for our Raspberry Pi password.


Input the password of our Raspberry Pi and we directly connected to our Raspberry Pi Terminal


TADA!!! No we can control our Raspberry Pi from our smartphone.

That's all the sharing idea. I hope this will be useful for you. Thanks for your attention.



Sunday 10 January 2016

Raspberry Pi: Setting Your Display

After we already run our Raspberry Pi with Raspbian "Wheezy" operating system at the first time as described on previous idea, it seems that something wrong with the output display on our monitor/TV. The display is overlap with our monitor/TV.



So, in this idea I would like to share how to set and fix the overlap display. 

The default resolution that the Raspberry Pi has is 1280 x 720. Sometimes, some monitors/TVs doesn't support this resolution. So we must set the display to fit the output display on our monitor/TV. To set the display, we just edit 4 lines in /boot/config.txt.

Here we go for the step to fix the display problems.

Step 1: Login to the Raspbian "Wheezy" operating system

Before we go through, as always, we must login to the Raspbian "Wheezy" operating system. Enter your username and password. If you didn't change the password, it will be username: pi and password: raspberry.

 raspberry login: pi
 Password: raspberry

Step 2: Backup the original file

Remember: For now and next time before we edit some files, we must back the file first. So, if there is something happen after we edit the file, we can revert it back to original default setting.

 sudo cp /boot/config.txt /boot/config.txt.bak

Step 3: Edit the file

After we have the back up file, it is time to edit the file.

 sudo nano /boot/config.txt

To fix the overlap display we just edit 4 lines only. Find the overscan_ lines and bash it out.

 overscan_left=40
 overscan_right=50
 overscan_top=40
 overscan_botton=15

Edit the value as you like and save it.

Step 4: Feel the difference

After the edit step is done, it is the time to feel the difference by reboot our system.

 sudo reboot  

And see what happen to the output display on our monitor/TV


If the display still overlap with the monitor/TV, we can just edit the overscan value and reboot it again.


Raspberry Pi: First Run

Raspberry Pi, or people call it Raspi, is a low cost mini computer. With the Raspberry Pi, people enable to explore computing and learn how to program in languages like Scratch and Python. It is like a normal computer, but a mini one. It is capable of doing everything like the normal PC can do, from browsing, and playing high definition video.

In this idea, I would like to share about the Raspberry Pi first run. Raspberry Pi is like a normal motherboard PC, but mini, without operating system and using SD card to store the operating system. So after we have a Raspberry Pi, we must install operating system into the SD card so we can do whatever we want like a normal PC.

The Components

To do the Raspberry Pi first run, we need several components:
  1. Raspberry Pi (I used Model B rev2)
  2. 5V phone charger
  3. TV/Monitor (with cable to connect it to Raspberry Pi, I used RCA cable)
  4. Keyboard 
  5. SD Card (min. 2GB)
  6. Computer with SD card reader
  7. Some accessories like (LAN cable, internet connection, etc)

Selecting Raspberry Pi Operating System

Since the Raspberry Pi use ARM processor, it cannot run the same operating system like our computer. Instead it must run one of the operating systems that have been optimized and ported to the Raspberry Pi processor and hardware architecture. There are plenty of the Raspberry Pi operating system like Raspbian, Arch Linux, RetroPi, ect.

In this idea, I used Raspbian "Wheezy" operating system. This operating system is the standard operating system to run on the Raspberry Pi and has very good Integration with the Raspberry Pi's hardware. We can get the operating system at Raspbian official site.

Supporting Tools

To get this idea or our Raspberry Pi run smoothly for it's first run, we need some programs as supporting tools to transfer the image to SD SDFormatter and Win32DiskImager.

Getting Started

Once we have the formatter and imager. Insert the SD card into our computer card reader. Firstly, we format the SD card using SDFormatter. Actually we can use the default formatter in our computer, but sometime it doesn't format the SD card clearly.


After we format our SD card, then we extract the downloaded Raspbian "Wheezy" to get the image file. Because when we downloaded the file, it was the zip format.

Next, Run the Win32DiskImager and select our Raspbian "Wheezy" image file. Then select the SD card device drive (in this case my SD card on drive H:). Click "Write" and wait until the writing process is done.


While waiting, we can connect the Raspberry Pi to USB keyboard, mouse, monitor or TV.

First Boot

Once we have Raspbian "Wheezy" in our SD card, plug it into the Raspberry Pi's SD slot.



Connect the 5V phone charger to the Raspberry Pi and the we will see the boot sequence on our TV/Monitor (if not, check the connection between the Raspberry pi with the Monitor/TV). After the first boot, the Raspberry Pi will show the setup mode.


If this doesn't happen we can manually enter the setup mode while type the following command.

 sudo raspi-config  

In this setup we want to set:
  • Expand the Filesystem
  • Our new password (default username: pi and password: raspberry but it is optional)
  • Set locale and time zone
  • Enable Desktop boot (optionally)
After that, we can now reboot the Raspberry Pi and enter Raspbian "Wheezy" operating system with default username and password (if we didn't change the password) and we can configure the Raspberry Pi in the way we want to.

Reliable Sources