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!

1 – Getting Started with this course
0010 – What is this course about
0030 – Parts you will need
0050 – How to get help
0060 – Code repository

2 – Get to know your Raspberry Pi
0110 – Raspberry Pi 3 specs and features
0120 – Raspberry Pi models
0130a – Raspberry Pi vs Arduino high level comparison
0130b – Raspberry Pi vs Arduino comparing the boards

3 – Setup the operating system
0160 – Operating systems for the Raspberry Pi
0165 – Headless vs GUI
0170 – Download and Install Stretch 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

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

5 – Pins, GPIOs, and how to control them with Python
0250 – The Raspberry 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

6 – 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 – UWSGI configuration
0440d – UWSGI and Nginx configuration testing
0450 – Configure systemd to auto-start uwsgi

7 – Styling with Skeleton
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 – 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

9 – 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 query string validation
0590 – Quick tidying upCOMPLETE
0595 – Adding radio buttons for quick timedate range selection
0597 – Provision the Python script to work with the radio buttons

10 – 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

11 – 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

12 – Charting with Plotly
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

13 – Publish on the Internet
0810 – Setting a static IP address
0850 – Expose your app to the Internet with port forwarding

14 – Conclusion
0760 – Recap and what’s next

Raspberry Pi Full Stack Raspbian

Enrol to this course

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