Raspberry Pi: Full Stack
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 wish to setup wireless networking on your Raspberry Pi, you will also need a USB Wifi dongle.
To make the most from this course, you should be familiar with basic programming and be comfortable with the command line.
What are the requirements?
A Raspberry Pi, any version
A Windows, Mac or Linux computer
A DHT11 or DHT22 sensor
An 5mm LED
A breadboard and jumper wires
Access to the Internet
A USB Wifi dongle, if available
What am I going to get from this course?
Setup the minimal Raspbian operating system to the RPi.
Install 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
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
Install and configure a USB Wifi adaptor for your RPi
What is the target audience?
Some experience in programming is useful.
Ability to wire electronics.
Ability to do independent research using online resources
|Section 1: Introduction to the course|
About the Raspberry Pi
Detailed List of Components you will need
Please read this before continuing!
|Section 2: The Operating System|
Installing mini Raspbian using Mac OS X
Installing mini Raspbian using Windows
|Section 3: Python and GPIOs|
Make an LED blink
Read the status of a button
Read temperature and humidity from a digital sensor
|Section 4: Setup the Web application stack|
What is the Web application stack?
Install Nginx, the Web server
Install Flask and venv
About log files
Serving static assets and Skeleton
Styling our Web application with Skeleton
Debugging a Flask application
|Section 5: Building a simple Flask application on the Raspberry Pi|
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 6: Improving our application with date-time range record selector|
Selecting historical sensor data records with a time-date range
Define a date-time range in the URL
Timezones in Rasbian
Tidying up: refactor our application code
|Section 7: Improving the user interface|
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 8: Setup cloud charting and analysis with Plotly|
Add Plotly links
Add Plotly support to the Flask application script
|Section 9: Other useful things to know|
Install and configure a Wifi USB dongle for wireless networking
|Section 10: Conclusion|
Other educational content from Peter, including coupon offers
Peter Dalmaris, Tech Explorer
Peter is Chief Explorer at Tech Explorations. He is fascinated by technology because of its ability to make amazing things happen, and science because of its ability to make nature transparent.
He is an Electrical and Computer Engineer, has a PhD (most of which was spent reading philosophy of knowledge) and a couple of Masters in Information Systems.
He has been a lecturer for over 13 years in a variety of IT (and occasionally management) subjects. During this time, he has developed a hands-on teaching style, whereby he invites and challenges his students to learn by doing. He has taught thousands of students in dozens of undergraduate and postgraduate courses.
Peter is also a software developer at Futureshock Enterprises, making applications using Ruby, Ruby on Rails, and iOS.
Peter has been an electronics enthusiast since he remembers himself when he wrecked his sister’s digital watch and his parents VCR. He replaced the watch but managed to fix the VCR.
Now, he is particularly fascinated by the rapid prototyping opportunities that the Arduino and similar platforms has brought about.
He lives in Sydney, Australia.
- Lectures 0
- Quizzes 0
- Duration 50 hours
- Skill level All level
- Language English
- Students 5244
- Assessments Self