Course Highlights
  • Setup the minimal Raspbian Lite operating system to the RPi.
  • Learn how to work in headless mode
  • Learn to install and use 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
  • Setup systemd to automatically start your application
  • 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
  • Assign a static IP address to your Raspberry Pi
  • Expose your application to the Internet, and access it from anywhere
Skills you will learn!
Curriculum

4 Topics
0010 - What is this course about
0030 - Parts you will need
0060 - Code repository
0070 – Course update briefing

5 Topics
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

10 Topics
0160 - Operating systems for the Raspberry Pi
0165 - Headless vs GUI
Read this before you install the Raspberry Pi OS (in the next lecture)
0170 - Download and Install Raspbian Lite
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

4 Topics
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)

12 Topics
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

12 Topics
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

9 Topics
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

8 Topics
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

7 Topics
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

6 Topics
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

5 Topics
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

7 Topics
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

2 Topics
0810 - Setting a static IP address
0850 - Expose your app to the Internet with port forwarding

2 Topics
0760 - Recap and what's next
Bonus Lecture

9 Topics
19.10 Introduction to the application update
19.20 Backup and update apt packages
19.30 Update system Python to 3.8.13
19.40 Update Python Virtual Environment to 3.8.13
19.50 Update application Python modules
19.55 Update the RF24 driver
19.60 Update Javascript JS libraries and other assets
19.70 Testing the full stack app (successful)
19.75 Tweak the application to work with the updated components

  Write a Review

Raspberry Pi Full Stack

Go to Paid Course