Raspberry Pi_Eng_00.1 Preface

Published Book on Amazon

All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2

출판된 한글판 도서

최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)

Original Book Contents



Main Topics

First, here introduces the motive with which the author wrote this book. Next, this provides an overview of the overall structure of the book and summarizes the contents in each chapter and provides guidance on the level of content covered.


It includes descriptions on the following topics:

   Motive of writing this book

   What this book covers

   Level of contents covered in this book

   Conventions used in this book



1.   Up to the Point of Writing This Book


Personally from the beginning of my social work experience, I have been working mainly in the IT field that deals with the basic business process of the company. I have mainly done the work of making the company business process efficient by utilizing the integrated IT system. We have done the works to support various enterprise business processings by developing enterprise application program mainly using ERP package or using various business tools.


However, I always have thought that I would like to have the ability to use a computer to directly control machines and circuits at will. I have wanted to use a computer to control a large automated factory, use an embedded program to adjust the components installed inside the machine and move the robot freely, or connect to various sensors to obtain the measurement data and give orders to arbitrarily control the external various devices, equipments and machines if necessary.


In the beginning of 2015, there was a period of time that I could take a break after completing a certain company's ERP project. In general, if I have such a spare period, I could not escape the habit of the past, and I would find out about what the recent technology of the IT sector is and how far it has been developed, or would attend the seminar and collect and read the report. I was doing something similar at the time.


Among the topics covered in many magazine articles and seminars, popular technologies were subjects such as IOT, Big Data, and 3D printer, and so on. While I attended the seminar several times and listened to various stories about the development progress of this topic, gathered related materials and reviewed the data, I thought that I would like to do it myself if possible. With this in mind, while I examined various contents, the IOT field which can control various external devices and equipments using a computer and read data from various external sensors has become attractive to me. In the process, I first encountered Raspberry Pi, which was reported to be able to implement and experience IOT without paying a lot of money.


At first, with some curiosity, I planned to invest only a short period of time to taste Raspberry Pi, but as time went on, I gradually dug deeply into it. However, topics such as Raspberry Pi, Linux, IOT, electricity/electronic circuits, sensor, etc. was actually the field that I first met, and I lacked basic knowledge a lot. When I first started to study, I bought and read books on the market. Then, unfortunately, those books did not fully explain what I would like to know, so there were a lot of difficulties. In order to overcome these shortcomings, I had to keep studying by searching through Internet for various data to supplement the missing contents and by comparing, arranging and matching the various data to solve the problem that was not compatible with each other.


After a few months passed and I studyed to some degree about Raspberry Pi, I thought that it would be helpful to other beginners if I could summarize and organize what I have experienced and what I have learned from starting out as a beginner to reaching to the certain degree of  understanding. I thought that it might be nice to explain everything in detail from a professional point of view that knows everything well, but if I could summarize and arrange what I had seen, experienced, and understanded from the beginner's perspective who started without knowing anything from the beginning, it would give beginners starting from scratch much help that any expert could not give. Fortunately, at that time, I had a certain degree of free time to finish it, so with this idea and big dream in mind, I started to arrange what I understood until then.


At the beginning of the work, I expected that all the important contents could be sorted out by 300 ~ 400 pages, but as the work went on, the volume grew up gradually. During the arrangement, I got to have desire to include more and more content gradually. Sometimes due to lack of ability, I could not describe contents simply, but explained it by verbose. In addition, as I thought that it would be a good idea to insert various pictures and images so that novices could understand contents easily, I got to supplement the contents. For these reasons, the volume was much beyond my original expectation and got to grow up to the extent that I could not control it. As a result of the final summary, it has been three times the initial expectation. It is a ridiculous thing. Even if I think of myself, it is pathetic thing. I hope you would have a lot of understanding.



2.   Overall Composition of This Book


This book is made up of two volumes that is divided into first volume and second volume. Originally, the composition of the book was planned in the form that all the contents were included in one volume, but the volume of the entire contents was too much to make one volume, so it was inevitably divided into two books. However, in order to give the overall uniformity in the composition and form of the book, and to organize the whole contents in a systematic manner, the contents of the book are structured as one book so that the reader can use them easily. Therefore, although the book is divided into two books, note that the chapter numbers of both volumes are given consecutively, the page numbers are also given consecutively, and the table of contents, the index, and so on are also displayed in this way as if both are one.





3.   What This Book Covers


This book starts with an introduction to Raspberry Pi, guides you through how to actually buy and operate it, and guides you through many commands and tools you can use. It also explains many tools and utilization methods needed to develope separate applications program, and explains how to use Raspberry Pi with connecting it with external devices, equipment, sensors and so on.


The following is a summary of the contents that each chapter describes.


Volume - Raspberry Pi Basics


[Chapter 1~Chapter 4] explains the details of Raspberry Pi for those who are new to Raspberry Pi, starting from background knowledge about Raspberry Pi such as what Raspberry Pi is, what features are available, and where they can be used. It also explains the preparations in detail for those who actually want to use it.


[Chapter 4~Chapter 9] introduces the operating system that can be used in Raspberry Pi and describes the installation procedure. It explains how to start and end Raspberry Pi after installation is completed, and explains how to adjust various configuration items necessary for system operation.


[Chapter 6~Chapter 7] explains Terminal connection, Desktop connection, local connection, and remote connection, which are methods of connecting to the system after Raspberry Pi works. It explains what the Terminal and Desktop window is and what function they have.


[Chapter 8~Chapter 17] describes in detail the basic framework of the Linux system and various commands and tools. It describes in detail the Terminal, Shell program, various Shell commands, how to set up network, how to define users and user groups, how to set permissions for files, the meaning of various devices and how to check device contents, the structure of storage device and file system, how to manage files, how to install and upgrade programs, and so on.

Volume - Utilizing Raspberry Pi


[Chapter 18~Chapter 20] covers more advanced topics on the Raspberry Pi system. This guides several ways to remotely connect to the Raspberry Pi system from outside, and explains available several monitoring methods to check the current status of the system. And when executing command in the system, how to execute command automatically according a certain rule without manual execution and how to execute multiple commands at the same time in batch mode are explained here.


[Chapter 21~Chapter 22] describes the office programs and tools available in Raspberry Pi. It introduces various tools such as office document tool, image editing program, printing program, internet browser, and so on and introduces how to do multimedia work using camera or video.


[Chapter 23~Chapter 24] introduces a tool to be used for developing a separate application program in Raspberry Pi. It describes various development languages and tools such as Python, Java, C, Scratch, and explains how to build database servers and Web servers such as Apache, MySQL, and PHP for those who need a database or want to build and operate a Web.


[Chapter 25] explains the basics for performing various interfaces and implementing IOT by using Raspberry Pi to interface with external machines, equipment, sensors, and so on. It explains the contents of the GPIO that Raspberry Pi has and how to actually handle it, and gives a basic understanding of the electricity/electronics needed to connect to external devices or electronic circuits. And by using a couple of examples in reality, it explains how to connect Raspberry Pi to an external device or how to interact with a sensor.


4.   Level of Content Covered in This Book


This book has a basic goal to go to the level of implementing IOT using Raspberry Pi. So, this book covers everything you need from the moment you first get to Raspberry Pi to actually implementing IOT. It is not just trying to do what you are told, but aiming to understand the contents of the book properly and acquire sufficient knowledge and experience to the degree that you could do other work later with no problems.


If you want to use any kind of computer properly, you need more than a certain level of knowledge about various subjects. Although Raspberry Pi is a tiny computer, it is a complete computer with enough power to do most of the things that you can do on a regular PC. Therefore, for being able to use Raspberry Pi properly, you need to understand various related topics properly.


This book covers almost everything you need to use Raspberry Pi, so the scope of the book is very wide. This book starts with a basic introduction to a specific topic in order to explain it as easy as possible. It explains the related subjects to a certain degree of level that is necessary to utilize the system. It contains all basically necessary contents widely. Also, it does not just list the contents for the specific topics, but it provides a basic understanding of basic principles and explains a framework for how they can be used.


However, due to limitation of page, we could not explain all the contents about the subject in detail to the advanced level, so we compromised explanatory depth to the level we thought was appropriate. Therefore, we did not explain all the details about a specific topic, but we adjusted the level by suggesting what the details are.


In addition, by separately providing guidance on what to study additionally for a particular subject, this book tried to guide you on what to learn individually in the future. Especially, as the subjects such as program development language, database, HTML, PHP, Web server, external interface with external devices have too much contents so that it is difficult to explain all contents, this book explained these only to the essential degree of level for utilization. Thus, I inform you that if you want to utilize these subjects at a high level, you must learn related knowledge through additional learning.

5.   Conventions Used in This Book


The items described in the following are a number of conventions used in this book to make the book easier to read and understand.


   The menu path will be displayed in the following format:

Application Menu Menu àHelp à Debian Reference


   The name of independent program will be displayed as follows:

TightVNC program              -- <TightVNC> program


   The objects on the screen will be displayed as follows:

Button                             -- [Test Connection] button

Tab                                 -- [Outbound file] tab

Radio button                                -- [Extension] radio button

Field                                -- [Partner Name] field


   The table and field names of the DB will be displayed as follows:

Table                               -- table CDHDR

Field                                -- field BUKRS


   The figure or chart will be displayed as follows:

Figure                              -- [Figure 10.1]

Table                               -- [Table 1.1]


   The main syntax of a system command will be display in the following format:


command  [option]   [string]


   The execution of a system command wiil be displayed in the following format:


command  [option]   [string]


   A detailed description of the system commands is composed as follows:


[Command Format]

command  [option]   [string]


[Command Overview]

   This describes the main functions of the command.

   User privilege          -- Describe the privileges required to execute the command.


[Detail Description]

   This describes the command in detail if necessary.


[Main Option]

option 1

option 1 description

option 2

option 2 description

option 3

option 3 description


When describing the option, we have included the English description provided by the system in order to avoid the error caused by the wrong translation of the non-expert person, and added the explanation if necessary. Below are some examples.



Don't actually reboot or halt but only write the wtmp record (in the /var/log/wtmp file).

-v, --invert-match

Invert the sense of matching, to select non-matching lines.  (-v is specified by POSIX.)

à Retrieve rows that contain data that does not match pattern.


[Used Example]

Here describe the contents of the example and describe the process of actually testing it in the system. The first line shows the command to be executed, and the next line shows the processing result.


pi@raspberrypi ~ $ command

results of command execution