Raspberry Pi Full Stack Raspbian
4.6 (994 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,219 students enrolled

Raspberry Pi Full Stack Raspbian

A whirlwind tour of full-stack web application development on the Raspberry Pi
Highest Rated
4.6 (994 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
9,219 students enrolled
Last updated 3/2020
English [Auto], Indonesian [Auto], 4 more
  • Italian [Auto]
  • Polish [Auto]
  • Romanian [Auto]
  • Thai [Auto]
Current price: $86.99 Original price: $124.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 9.5 hours on-demand video
  • 2 articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • 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
  • A Raspberry Pi 4, 3, 2, model B
  • A Windows, Mac or Linux computer
  • A DHT22 sensor
  • An 5mm LED
  • A pushbutton
  • A breadboard and jumper wires
  • Access to the Internet
  • (Check hardware requirements in a free lecture in the first section of the course)

Welcome to Raspberry Pi: Full Stack, a hands-on project designed to teach you how to build an Internet-of-Things application based on the world’s most popular embedded computer.

This is an updated and improved remake of the original Raspberry Pi Full Stack. In this new course, I have updated all of the technologies involved in the current state of the Art, and have also added new content.

This course will expose you to the full process of developing a web application.

You will integrate LEDs, buttons and sensors with Javascript, HTML, web servers, database servers, routers and schedulers.

You will understand why the Raspberry Pi is such a versatile tinkering platform by experiencing first hand how well it combines:

  • open hardware, that includes wireless and wired networking and the ability to connect sensors and actuators,
  • the powerful Linux/Debian operating system, which gives you access to high-level programming languages and desktop-level software applications
  • and, the flexibility of open source development software which, literally, powers the cloud applications that you use every day

As you progress through the sections, you will learn how to complete a single step of the application development process.

You’ll start with the operating system, add Python and play with some common hardware. Then you'll set up the web application stack, and the application itself.

You will learn and add new features and refinements as you move through the lectures.

This course is perfect for people that have at least basic understanding of computers and electronics.

Ideally, you have experience in experimenting with the Arduino and are comfortable with the breadboard and simple components.

This course contains a substantial amount of programming. For this, you will need to be comfortable working with a text editor. Any prior knowledge of Python, Javascript or other high-level programming language will be beneficial, although it is not strictly necessary.

There are no requirements necessary to enrol; I only ask you to be ready to learn and willing to put the required time and effort.

Please don't forget to watch the free lectures in the first section of the course. These lectures will give you detailed information on the course content and the hardware you will need.

Looking forward to learning with you!

Who this course is for:
  • Makers who want to experience the full process of web application development
  • Any experience in programming with a high-level language is useful but not necessary
  • Experience with small breadboard circuit is useful but not necessary
  • Anyone who want experience working with modern web application development technologies
Course content
Expand all 91 lectures 09:39:36
+ Get to know your Raspberry Pi
5 lectures 38:36
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
9 lectures 49:40
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
4 lectures 26:21
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
11 lectures 01:16:58
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
0310a - Install Git and the DHT library
0310b - Use the DHT22 sensor
+ Setup the Web application Stack
12 lectures 01:09:50
0340 - The Web Application Stack
0350 - The Python Virtual Environment

The setup process is available on Github: https://github.com/futureshocked/RaspberryPiFullStack_Raspbian/edit/master/CommandLineInstructions/360_seting_up_system_Python_notes.txt

For convenience, I copy it here:

ssh pi@

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install build-essential

$ sudo apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev libffi-dev

$ sudo apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libsqlite3-dev libgdbm-dev tk8.5-dev libssl-dev openssl

$ sudo apt-get install python-dev

0360a - Set up system Python - preparation

Update, February 5, 2020. At this time, Python 3.8.1 is the latest version.

To install Python 3.8.1, follow this process (you can remain as user “pi” until the last few steps that require root):

~ $ cd ~

~ $ mkdir python-source

~ $ cd python-source/

~/python-source $ wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz

~/python-source $ tar zxvf Python-3.8.1.tgz

~/python-source $ cd Python-3.8.1/

~/python-source/Python-3.8.1 $ ./configure --prefix=/usr/local/opt/python-3.8.1

~/python-source/Python-3.8.1 $ make

~/python-source/Python-3.8.1 $ sudo make install

At this point, Python 3.8.1 is now installed in /usr/local/opt/python-3.8.1

Test your new Python:

~/python-source/Python-3.8.1 $ /usr/local/opt/python-3.8.1/bin/python3.8 --version

The response should be: “Python 3.8.1”

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
9 lectures 46:57
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
8 lectures 50:27
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
7 lectures 01:01:25
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
6 lectures 33:03
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