This book is a project. Using a step-by-step approach, it will help you explore your Raspberry Pi in a way that will help you appreciate both its hardware and its software capabilities.
In writing this book, I have tried to break away from the classic text book format of chapters, sections and long paragraphs, and instead present this highly technical topic as an engineer would approach it: with a lot of iterations, each delivering a gradual improvement to the overall functionality of the system, with each iteration comprising of several step.
Each step is marked with a number so that you can refer to it in your own notes, or in your communication with me or other readers of this book.
All of the code that I describe in this project is hosted on Github, from where you can download it on your computer. It is much better to copy code from the Github repository rather than trying to manually copy it from this book. I provide links to the file that I am discussing at different parts of the project; simply click to a link and copy the code from the screen.
In writing this project, I make a few assumptions about you:
- You can program a computer in at least one programming language, not necessarily Python
- You are not afraid of learning a new programming language
- You are comfortable working with electronics. You will need some basic beginner-level skills.
- You are not easily frustrated. What you are about to do in this project requires patience!
- You like to explore different technologies. The modern maker must be good in multiple technologies, hardware, software and different “sub-categories” of each one.
The goal is to show you how to setup a Raspberry Pi computer so that:
- It measures temperature and humidity.
- It reports the values in real time via a web browser.
- It record these values in a database.
- It retrieves these records and displays them in tabular format and in graphical format in a web browser.
- It sends the values to a graphical analysis cloud service.
You will learn:
- How to setup the minimal Raspbian operating system to the RPi.
- Install the a Python virtual environment
- Install and use Flask, a Python-based web micro-framework
- Install and use uWSGI as the application server for Flask
- Install and use Nginx light-weight web server
- Use the RPi GPIOs as digital input and outputs
- Use a DHT22 humidity and temperature sensor
- Install and use the SQLite database
- Use the Google Chart API to create visual representations of the sensor data
- Use JQuery to add interactivity to web pages
- Use Plotly for graphical analysis of sensor data