Introduction
  • 0010 - What is this course about
  • 0030 - Parts you will need
  • 0050 - How to get help
  • 0060 - Code repository
Get to know your Raspberry Pi
  • 0110 - Raspberry Pi 3 specs and features
  • 0111 - Raspberry Pi 4 specs and features
  • 0120 - Raspberry Pi models
  • 0130a - Raspberry Pi vs Arduino high level comparison
  • 0130b - Raspberry Pi vs Arduino comparing the boards
Getting Started
  • 0160 - Operating systems for the Raspberry Pi
  • 0165 - Headless vs GUI
  • 0170 - Download and Install Raspbian Lite using Etcher
  • 0180 - How to enable SSH and configure Wifi in headless mode
  • 0190a - Boot for the first time and basic configuration
  • 0190b - Connect for the first time using Mac OS
  • 0190c - Boot for the first time and connection using Windows
  • 0210a - Working as the "root" user
  • 0210b - How to enable the "root" user for logging on with SSH
How to recover from a serious glitch by backing up and restoring your SD card
  • 0220a - Backup an SD card (Mac OS)
  • 0220b - Restore an SD card (Mac OS)
  • 0220c - Backup an SD card (Windows)
  • 0220d - Restore an SD card (Windows)
Pins, GPIOs, and how to control them with Python
  • 0250 - The Rapsberry Pi GPIO header and numbering system
  • 0260a - A taste of Python on the Command Line Interpreter
  • 0260b - A taste of Python on the Command Line Interpreter Functions
  • 0270a - A taste of Python with a simple program
  • 0280 - Wire a simple circuit
  • 0290a - Install the Python installer program pip
  • 0290b - Manipulate an LED using rpi.gpio
  • 0300 - Read a button
  • 0305 - Control an LED with a button
  • Please read before you continue: DHT22 library update
  • 0310a - Install Git and the DHT library
  • 0310b - Use the DHT22 sensor
Setup the Web application Stack
  • 0340 - The Web Application Stack
  • 0350 - The Python Virtual Environment
  • 0360a - Set up system Python - preparation
  • 0360b - Download, compile and install Python 3
  • 0365 - Setup the app Python Virtual Environment
  • 0430a - Setup Nginx
  • 0430b - Setup Flask
  • 0435 - A tour of a simple Flask app
  • 0440a - uWSGI installation
  • 0440b - Nginx configuration
  • 0440c - USWGI configuration
  • 0440d - USWGI and Nginx configuration testing
Styling with Skeleton
  • 0450 - Configure systemd to auto-start uwsgi
  • 0460a - Install SQlite3
  • 0460b - Working with SQlite3
  • 0470a - Static assets and the Skeleton boilerplate CSS
  • 0470b - Setup the static assets directory
  • 0470c - Introducing the Skeleton boilerplate CSS
  • 0470d - Copying files using SFTP
  • 0480 - Flask templates
  • 0497 - Debugging a Flask app
Getting started with our web application
  • 0500a - Introduction to the section - Getting started with our web application
  • 0500b - Install the DHT library and the rpi-gpio module
  • 0500c - Install the DHT library and the rpi-gpio module
  • 0510 - Create a database to store sensor data
  • 0520 - Sensor data capture script
  • 0530 - Schedule sensor readings with cron
  • 0540a - Display database records in the browser - Python script
  • 0540b - Display database records in the browser - Template
Implement the date range selection feature
  • 0560a - Introduction - Implement the datetime range selection feature
  • 0560b - Select range of records in SQLite
  • 0570 - Set datetime range in URL and show records in browser
  • 0580 - URL querystring validation
  • 0590 - Quick tidying up
  • 0595 - Adding radio buttons for quick timedate range selection
  • 0597 - Provision the Python script to work with the radio buttons
Improving the user interface with Google Charts and datetime selector
  • 0610a - Introduction to Google Charts
  • 0610b - Implementation of Google Charts
  • 0610c - Testing Google Charts
  • 0650a - Introduction to the datetime picker widget
  • 0650b - Implement the datetime picker widget
  • 0650c - Upload and test the datetime picker widget
Dealing with time zones
  • 0665 - Adjust datetimes to local time zone on the client side
  • 0670a - Introduction to Arrow
  • 0670b - Implement Arrow
  • 0670c - Upload timezone changes and test
  • 0680 - Link the two pages of the application
Charting with Plotly
  • Please read before you begin this section
  • 0710a - Install Plotly
  • 0710b - Try out Plotly on the command line
  • 0720a - Implement Plotly support on the client side
  • 0720b - How to debug Javascript
  • 0730a - Add Plotly support to the app script
  • 0730b - Server side debugging example