This article is a review of the popular Udemy course called Tech Explorations Raspberry Pi Full Stack featuring the Raspberry Pi created by Dr. Peter Dalmaris. The course gives a history of the Raspberry Pi, explains its value and use as a general purpose mini computing device, and even compares it to the Arduino. Dr. Dalmaris goes on to cover how to set up simple electronic circuits leveraging the architecture of the Raspberry Pi's GPIO pins and basic electronic components to capture environmental data, which is then served up via a Flask web application developed on the Raspberry Pi during the remainder of the course.
In the sections below I will describe in more detail what is covered in the associated areas of the course along with the things that I did and did not like about their respective content.
Getting to Know Raspberry Pi
As I mentioned in the introductory section, Dr. Dalmaris begins the course by explaining the history of the Raspberry Pi as well as its use cases as a low cost general computing device. The instructor explains the major progression from the initial version of the Pi up to the current model 3 version and even compares and contrasts the Raspberry Pi against a similar micro-controller computing device known as the Arduino. Overall, I felt the content in this section is quite solid. The explanations of the various components that make up a Raspberry Pi were thoroughly described.
Pins, GPIOs, and How to Control them with Python
In this section I felt the instructor skimped a bit. In my opinion he did not spend enough time going over the theory or meaning of circuitry nearly as much as I would have liked. Dr. Dalmaris spends a scant amount of time describing a wiring schematic for the circuit that allows a humidity and temperature sensor to be controlled by the Pi. Then he mearly demonstrates where to place the jumper wires, resistors, switches, and sensors between the Raspberry Pi's GPIO pins and a bread board and the attached sensor.
However, on the software side of things I feel the instructor did a rather good job of introducing the RPi.GPIO Python package that is used to interact with simple circuitry components like buttons and switches as input interrupters and LEDs as output devices. He uses a combination of examples in the Python interpreter and simple scripts to demonstrate how the Python programming language can be used to interact with the the electronic devices you set up in the earlier lectures.
In addition to demonstrating how to write simple scripts in Python to control the electronics of a RaspberryPi via the GPIO pins, he challenges the student to combine concepts and formulate their own solution then walks you through how he would go about solving the challenge.
Setting Up, Building and, Running the Web App Stack
From this point on the content for the course more or less turns into one that focuses on how to build and deploy a very basic Python web application using Flask and SQLite, which essentially mirrors the process you would see on an Ubuntu server.
I don't necessarily mean this in a negative way. The content is really quite great, but I was thinking that more Raspberry Pi specific content would be included, particularly around circuitry.
The instructor starts out demonstrating how to install the necessary software packages via the command line using apt-get. However, I was a little off-put at the lack of explanation of what and why we were installing some of the Linux packages via apt-get. Some are self-explanatory, like the SQLite libraries, but others were a complete mystery to me. For example what are these packages "sudo apt-get install libncurses5-dev libncursesw5-dev libffi-dev" and why are we installing them?
There were really good explanation of the primary components of the tech stack (i.e. OS, Nginx, uWSGI, Flask) that were installed along with how they all work together as a complete web application.
One thing that was particularly interesting was that the instructor chose to download and compile Python rather than install it via
apt-get install python3-dev. I personally had never done that and I enjoyed learning how to compile and install Python from source.
In regards to the Flask application the course content takes a rather minimalist approach to some parts of the application. For example, the instructor used vanilla SQLAlchemy and SQL scripts, which has its own value as being low-level and complete with plenty of resources.
Personally, I prefer to use some of the other popular Flask-based extension libraries like Flask-Migrate and Flask-SQLAlchemy. In fact, I quickly replaced the code in the Raspberry Pi I was working along with for these preferred packages.
The course concludes by piecing together a simplistic and functional UI that displays the temperature and humidity values being captured by the sensor attached to the Raspberry Pi. The UI is quite complete with tables and graphical charts using Google Charts and reasonably styled with a minimalist CSS library called Skeleton.
In this article I have provided what I feel is a honest and thorough review of a reasonably popular Udemy course Tech Explorations Raspberry Pi Full Stack by Dr. Peter Dalmaris. Overall I feel there is a significant amount of quality content concerning the use cases and value for the Raspberry Pi. The course provides a great example of how a simple sensor can be hooked up to a Raspberry Pi and programmed to collect and display the data. I personally would have liked to see more emphasis placed on implementing electronic circuits, which paled in comparison to the amount of content covering setting up and developing a web application on.
As always I thank you for reading and welcome comments and criticisms below.