Before building several projects for a home security system and the control of domestic appliances by electronically controlled systems, in this chapter, we're going to go into an initial configuration and prepare our Raspberry Pi Zero to work in a network, so you can use it for all the projects we will see in this book.
Before we go through the projects, build our network with the devices, and connect our sensor to the boards, it's important to understand the configuration of the Raspberry Pi. The main idea of this chapter is to explain how to set up your Raspberry Pi Zero; we will cover the following topics:
Setting up Raspberry Pi Zero
Preparing the SD card
Installing the Raspbian operating system
Configuring your Raspberry Pi Zero with a serial console cable
Accessing the network remotely
Accessing via remote desktop
Configuring a web server
The Raspberry Pi is a low-cost board dedicated to purpose projects. Here, we will use a Raspberry Pi Zero board. Take a look at the following link: https://www.adafruit.com/products/2816. I used this board.
In order to make the Raspberry Pi work, we need an operating system that acts as a bridge between the hardware and the user. This book uses the Raspbian Jessy, which can be downloaded from https://www.raspberrypi.org/downloads/. At this link, you will find all of the information you need to download all the pieces of software necessary to use with your Raspberry Pi to deploy Raspbian. You need a micro SD card of at least 4 GB.
The kit that I used to test the Raspberry Pi Zero includes all the necessary things for installing everything and getting the board ready:
The Raspberry Pi Zero only boots from an SD card and cannot boot from an external drive or USB stick. For this book, it's recommended to use a 4 GB micro SD card.
There are many operating systems that are available for the Raspberry Pi board, most of which are based on Linux. However, the one that is usually recommended is Raspbian, is an operating system based on Debian, which was specifically made for Raspberry Pi.
In order to install the Raspbian operating system on your Pi, follow the next steps:
Download the latest Raspbian image from the official Raspberry Pi website: https://www.raspberrypi.org/downloads/raspbian/
Next, insert the micro SD card into your computer using an adapter. (An adapter is usually given with the SD card.)
Then download Win32DiskImager from https://sourceforge.net/projects/win32diskimager/.
You will see the following files, as shown in the screenshot, after downloading the folder:
Open the file image, select the path where you have the micro SD card, and click on the Write button.
After a few seconds,you have Raspbian installed on your SD card; insert it into Raspberry Pi and connect the Raspberry Pi board to the power source via the micro-USB port.
In the following screenshot, you can see the progress of the installation:
In this section, we will look at how to communicate, the Raspberry Pi Zero from a computer using a TTL serial converter. We can do this debugging with a serial console cable connected to the computer using the USB port. We communicate with the board with a serial cable, because if we want to send commands from our computer to the board, it's necessary to communicate using this cable. You can find the cable at https://www.adafruit.com/products/954:
It’s important to consider that the cable uses 3.3 volts, but we don’t care because we’re using the cable from Adafruit. It is tested to work at this level of voltage.
You need to follow the next steps in order to install and communicate with your Raspberry Pi Zero:
It's necessary that you have a free USB port on your computer.
We need to install the driver for the serial console cable so that the system can recognize the hardware. We recommend that you download the driver from https://www.adafruit.com/images/product-files/954/PL2303_Prolific_DriverInstaller_v1_12_0.zip.
We use an interface (console software), called PuTTY, running on a Windows computer; so we can communicate with our board, the Raspberry Pi. This software can be downloaded and installed from http://www.putty.org/.
For the connections, we need to connect the red cable to 5 volts, the black cable to ground, the white cable to the TXD pin, and the green cable to the RXD pin on the Raspberry Pi Zero.
The other side of the cable connects the plug to the USB port.
This is an image of the connections; it's for the hardware configuration:
Once the driver is installed, we have here the Port COM, which is already installed:
This configuration is for Windows installation; if you have different operating system, you need to do different steps.
How get the Device Manager screen: On your windows PC, click on the Start icon, go to Control Panel, select System, and then click on Device Manager.
In the following screenshot, you can see the device manager of the USB serial port:
Open the terminal in PuTTY, and select Serial Communication as
COM3, Speed as
115200, Parity as None, and Flow Control as None; click on Open:
When the blank screen appears, press Enter on your keyboard:
This initiates a connection to your Pi board and asks for your username and password; you will see a screen like the following screenshot, with the authentication login:
The default username for the Raspberry Pi Zero is
pi, and the password is
Our Raspberry Pi will be working in a real network, so it needs to be set up to work with all the devices that will be together. For this reason, we need to configure our home network. We will show you how to use the Ethernet adapter and the Wi-Fi plug that can be used in the Raspberry Pi Zero.
If you want to connect our Raspberry Pi Zero to the local network, you need to use a USB OTG Host Cable - MicroB OTG male to female from Adafruit. You can find it here: https://www.adafruit.com/products/1099. The board that we're using doesn't have an Ethernet connector, so it's necessary to use it to communicate with the devices from outside.
In the following image, we can see the Ethernet adapter connected to the Raspberry Pi Zero:
This is the connector that you can use to connect your Ethernet adapter and make a link to the network:
Now we need to follow the next steps to configure the Ethernet connection adapter:
Connect your adapter to the converter; I used a TRENDnet NETAdapter, but you can use an Ethernet Hub and USB Hub with Micro USB OTG Connector from Adafruit. You can find it here: https://www.adafruit.com/products/2992m. This is a hub and can be connected to the Ethernet cable or USB devices.
Verify the router configuration, and after both LEDs start blinking, you can see the IP address in your configuration. The DHCP server assigns the IP address to the Raspberry Pi.
This is what you will see as your router configuration on your hostname raspberrypi:
As we know the IP address that our Raspberry Pi has, we will access to it using the PuTTY terminal as we can see in the following screenshot. You need to enter the IP address, and the port is
22 by default; click on the Open button:
After that, we have the login screen as follows:
Use the following command:
sudo ifconfig -a
We can now see the information about the configuration of the Ethernet controller adapter. Eth0 is the Ethernet adapter:
Use the following command to configure the wireless network:
sudo apt-get install wireless-tools
In the following screenshot, we can see the result of the
After executing the command, we will see the result of installing
To have a networking configuration, we need to assign an IP address to our device in order to be involved in the network.
Enter the following command:
sudo nano etc/network/interfaces
In the following configuration file, called
interface, we explain what we need to add to the file so that we can connect our Raspberry Pi Zero to the Wi-Fi network for the Wlan0 connection.
We start the file configuration; it means the beginning of the file:
We configure the Ethernet device
loopback for the local host and start up the DHCP server:
iface lo inet loopback iface eth0 inet dhcp
Allow the configuration of the
wlan0 for Wi-Fi connection:
allow-hotplug wlan0 auto wlan0
We start up the DHCP server for the Wi-Fi connection and input the name of your
ssid and the password. We need to type
password parameters of your Wi-Fi network:
iface wlan0 inet dhcp wpa-ssid "ssid" wpa-psk "password"
We need to test whether the device is responding to the other host. Now, if everything is configured well, we can see the following IP address in the Wi-Fi connection:
We can see in the router configuration the current IP address that is assigned to the wireless network:
This will upgrade your Pi board by downloading all the latest packages from the official Raspberry Pi repository, so it's a great way to make sure that your board is connected to the Internet. Then, from your computer, type the following:
sudo apt-get update
The following screenshot show the Raspberry Pi collecting the packages data:
Here we have results after the installation is finished:
In this section, we need the RDP package with the Raspbian Operating System. To do that, first we need to execute the following command:
sudo apt-get install xrdp
This command executes and installs the RDP process and updates the package:
At the end of this chapter, you want to be able to access the board from your own computer using Remote Desktop; you need to type the IP address of your Raspberry Pi and click on the Connect button:
After we type the IP address of the Raspberry Pi Zero, we will see the following screen; it's necessary to write your username and password:
You need the login information of your Raspberry Pi, username, and password:
This is the main window of the Operating System; you have correctly accessed your Raspberry Pi Remote Access with Remote Desktop:
There are several web servers available that we can install on your Raspberry Pi. We're going to install the
lighttpd web server. Also, we need to install PHP support, which will help us run a website into our Raspberry Pi and have dynamic web pages.
To install and configure, log in to the Raspberry Pi via the terminal console of PuTTY:
Update the package installer:
sudo apt-get update
sudo apt-get install lighttpd
Once installed, it will automatically start up as a background service; it will do so each time the Raspberry Pi starts up:
To set up our PHP 5 interface for programming with PHP 5, we need to install the
PHP5module support with the following command; this is necessary to have our server, and it can execute PHP files so that we can make our website:
sudo apt-get install php5-cgi
Now we need to enable the
PHP FastCGImodule on our web server:
sudo lighty-enable-mod fastcgi-php
For the last step, we have to restart the server with the following command:
In the following screenshot, we show the content of the page that will to appear when we configure the web server and the PHP 5 interface. The web server installs a test placeholder page in the location
/var/www. Type the IP address of your Raspberry Pi in the browser, for example,
http://192.168.1.105/, and the following screen appears, opening the active page of the configured server:
At this point, we need to test our website with PHP. This can be done by writing a simple PHP script page. If PHP is installed correctly, it will return information about its environment and configuration.
Go to the next folder, where it's the root document:
Create a file called
We use the word
nanoso that we can get into the file of the system with the privileges and execute the following command:
sudo nano phpinfo.php
After creating the file, as given in the following screenshot, press CTRL-X, and then save the file:
In your browser, enter the IP address of your Raspberry Pi, for example,
http://192.168.1.105/phpinfo.php, and you should see the following screen:
In the first chapter of this book, we looked at how to configure our Raspberry Pi Zero board so we can use it in later chapters. We looked at what components were needed for the Pi, and how to install Raspbian so we can run the software on our board.
We also installed a web server, which we will be using in some projects of the book. In the following chapter, we are going to dive into how to connect devices to your Raspberry Pi and Arduino boards. We'll also look at the various things we can connect to the Raspberry Pi using GPIO.