** UPDATE: 15 March 2018 **

** I have published an new version of this course that uses Raspbian Lite, Python 3, and newer versions of all software and hardware components. **

** The name of the new course is Tech Explorations™ Raspberry Pi Full Stack Raspbian **

** Please consider enrolling to the new course, unless you have a specific reason to enrol to this older course **


The objective of this course is to take you to a whirlwind tour of the Raspberry Pi, and introduce you to everything that is great about it.

Structured as a project, you will become familiar with the various components that make up the web development stack: the operating system, the hardware (including the GPIOs), the application server, web server, database server, and the Python programming language.

You will also become familiar with Cloud services that you will integrate into your Raspberry Pi-powered web application.

You application will take sensor data and make them available to the user via a web interface that is constructed based on jQuery and HTML5.

You will need a Raspberry Pi, a DHT22 sensor, a button, an LED, a few resistors and a breadboard.

If you have a Wifi USB dongle, you will learn how to set it up with your Raspberry Pi.

To make the most from this course, you should be familiar with basic programming and be comfortable with the command line.

Introduction to the course

  • Introduction START
  • About the Raspberry Pi
  • Components
  • Detailed list of the components you will need
  • Please read this before you continue

The Operating System

  • Section 2 introduction
  • Installing mini Raspbian using Mac OS X
  • Installing mini Raspbian using Windows
  • Section 2 Quiz
  • Section 2 conclusion

Python and GPIOs

  • Section 3 Introduction
  • Set up Python
  • GPIO basics
  • Make an LED blink
  • Read the status of a button
  • Read temperature and humidity from a digital sensor
  • Section 3 Quiz
  • Section 3 Conclusion

Setup the Web application stack

  • Section 4 Introduction
  • What is the Web application stack?
  • Install Nginx, the Web server
  • Install Flask and venv
  • Install uWSGI
  • Setup Upstart
  • About log files
  • Serving static assets and Skeleton
  • Styling our Web application with Skeleton
  • Debugging a Flask application
  • Section 4 Quiz
  • Section 4 Conclusion

Building a simple Flask application on the Raspberry Pi

  • Section 5 Introduction
  • Show DHT22 sensor data in the browser
  • Install the SQLite3 database
  • Use a Python script to store sensor reading to the database
  • Automate sensor data logging with cron and SQLite3
  • Show historical sensor data in the browser
  • Section 5 Quiz
  • Section 5 Conclusion

Improving our application with date-time range record selector

  • Section 6 Introduction
  • Selecting historical sensor data records with a time-date range
  • Define a date-time range in the URL
  • Timezones in Rasbian
  • Validating timestamps
  • Tidying up: refactor our application code
  • Section 6 Quiz
  • Section 6 Conclusion

Improving the user interface

  • Section 7 Introduction
  • Adding date range radio buttons
  • Visualise sensor data with Google Charts
  • Install a datetime picker widgets
  • Setting up the datetime picker widget
  • Setting up time zones on the client side
  • Setting up time zones on the server side
  • Link the two pages of the application
  • Section 7 Quiz
  • Section 7 Conclusion

Setup cloud charting and analysis with Plotly

  • Section 8 Introduction
  • Setup Plotly
  • Add Plotly links
  • Add Plotly support to the Flask application script
  • Section 8 Conclusion

Other useful things to know

  • Install and configure a Wifi USB dongle for wireless networking
  • Quick setup guide for Nginx, uwsgi and Upstart Part 1
  • Quick setup guide for Nginx, uwsgi and Upstart Part 2


  • Conclusion

Raspberry Pi: Full Stack Minibian

Enrol to this course

If you have a discount coupon, please apply it in the shopping cart page.
Enrol for US$50