When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
In this course you will use a Raspberry Pi 4 to build a complete network-connected project with sensors and motors and access it from your smartphone. We'll explore all the parts which make this work, so you can use this experience as a foundation for your own projects. We'll use the Raspberry Pi as an "embedded system" (as opposed to a desktop computer) so you're ready to build a Raspberry Pi into your projects as the brains that make it all work. Want to build your own Internet of Things (IoT) device? Home automation? Robotics? This is the class to learn how it all works, to get you building on your own. No experience in embedded systems, programming, or electronics is assumed, and optional bonus sections are provided for those who want a fast start in Python programming, Linux essentials, and basic electronics. The course is divided into four modules to explore each focus area with demontrations and extras along the way: 1) installing and configuring a Raspberry Pi, 2) accessing the Raspberry Pi over the network, 3) programmatically controlling external sensors and motors, and 4) accessing the embedded device through a web interface. After these four modules you'll get started building your own projects right away, and the three follow-on courses in this Coursera specialization dive into each area to really boost your skills and the complexity of your projects. I hope you enjoy all the courses and I hope you take your builds to the next level.
In this module, we introduce the Raspberry Pi, and discuss how it is different from an Arduino. We will install and configure the operating system on a Raspberry Pi and connect to it via a network connection. If you’re not familiar with the Linux shell, there is an optional bonus section at the end of this module on Linux command line basics. Soon, we'll be using the pins on the Raspberry Pi to control things in the real world such as an LED.
What's included
14 videos2 readings2 assignments
Show info about module content
14 videos•Total 94 minutes
Module 1 Introduction•1 minute
Introducing the Raspberry Pi•5 minutes
How are Raspberry Pi and Arduino Different?•9 minutes
Physical Connections on the Raspberry Pi•10 minutes
Introducing Raspberry Pi OS•6 minutes
Installing Raspberry Pi OS•8 minutes
Configuring with raspi-config•4 minutes
Determining the Raspberry Pi IP Address•4 minutes
Connecting with SSH•11 minutes
Running Command-Line Performance Tests•7 minutes
Summary of Module 1•1 minute
Shell, Prompt, and User•7 minutes
Directory Navigation•10 minutes
Executables and the Python Interpreter•11 minutes
2 readings•Total 12 minutes
Follow Along with Your Own Raspberry Pi •2 minutes
Summary of Commonly Used Commands•10 minutes
2 assignments•Total 60 minutes
Module 1•30 minutes
Linux Command Line•30 minutes
Controlling Your Raspberry Pi Over the Network
Module 2•3 hours to complete
Module details
As we enter this module, your Raspberry Pi is up and running on the network and we’ve done quite a lot on the Linux command line. In this module, we’ll connect to a full graphical desktop session over the network, learn some electronics theory and how we can use the GPIO pins to light an LED, and create a web API endpoint to toggle the LED and demonstrate how embedded devices can use simple web APIs for a control interface. At the end of this module is an optional bonus section on the Python language, which you might find useful if Python is new for you. All of this is groundwork for the next module where we create sensors and spin motors with the Raspberry Pi.
What's included
13 videos2 assignments
Show info about module content
13 videos•Total 126 minutes
Introduction to Module 2•1 minute
Connecting to a Remote GUI desktop with VNC•8 minutes
Introducing the Raspberry Pi OS Graphical Desktop•11 minutes
VNC vs SSH for Designing IoT, Home Automation, and Robotics•6 minutes
Currents and Voltages in a Circuit•18 minutes
Analysis of an LED Circuit•12 minutes
Using Python to Light an LED•17 minutes
Python Web Frameworks•7 minutes
Writing an API Endpoint•20 minutes
Summary of Module 2•1 minute
Introduction to Python•5 minutes
Basic Python syntax•13 minutes
Using the Official Python Documentation•7 minutes
2 assignments•Total 60 minutes
Module 2•30 minutes
The Python Programming Language•30 minutes
Using Sensors and Motors
Module 3•4 hours to complete
Module details
In this module, we’ll build on our Raspberry Pi GPIO skills and use some of the dedicated circuitry for driving special signals, like the pulse width modulation (PWM) circuitry, to vary the brightness of an LED. We’ll also access external hardware to run a motor, and discuss when external hardware is necessary, such as for real-time application or to drive power-hungry devices like motors. This is a fun module, and if you've been wondering how to control hardware with a Raspberry Pi, I think you'll find a lot of answers in this module. In the final module, Module 4, we'll take these individual skills and everything we've learned in Modules 1 and 2, along with some new ideas, and build a project together. By the end of this module, you might be surprised to see what types of complex systems you already know how to design and build.
What's included
19 videos2 assignments
Show info about module content
19 videos•Total 162 minutes
Introduction to Module 3•2 minutes
Learning More About the Raspberry Pi Hardware (Part 1)•12 minutes
Learning More About the Raspberry Pi Hardware (Part 2)•14 minutes
Vendor-Agnostic Serial Protocols•12 minutes
Software Stacks for Serial Protocols (Part 1)•14 minutes
Software Stacks for Serial Protocols (Part 2)•13 minutes
Troubleshooting I²C Sensor Signals•8 minutes
What to Look for When Troubleshooting SPI•5 minutes
Controlling LED Brightness with PWM•9 minutes
What is Real-Time Processing and When Do You Need It?•8 minutes
Offloading Power and Timing Responsibilities to a Driver Board•5 minutes
Types of Motors and How to Control Them (Part 1)•13 minutes
Types of Motors and How to Control Them (Part 2)•9 minutes
Types of Motors and How to Control Them (Part 3)•4 minutes
Types of Motors and How to Control Them (Part 4)•5 minutes
Summary of Module 3•1 minute
Linux Administration Basics: Root, Commands, and Directories•12 minutes
Linux Administration Basics: Background Tasks and Services•9 minutes
Linux Administration Basics: Creating Users and Home Directories•6 minutes
2 assignments•Total 60 minutes
Module 3•30 minutes
Linux Administration Basics•30 minutes
Let's Make Our Own IoT Project
Module 4•4 hours to complete
Module details
In the first three modules we got our Raspberry Pi running over the network, we interfaced to physical world items such as LEDs and motors, and we controlled our Raspberry Pi with a web API. In this module we’ll take a closer look at some security concepts, combine what we know about sensors and electronics to create our own web-enabled home automation project you can access from your phone or computer. We'll keep things simple because the goal is for you to understand how all the parts work and, when it's time for you to create your own project, you can extend these concepts to create even the wildest projects.
What's included
20 videos1 reading1 assignment
Show info about module content
20 videos•Total 221 minutes
Introduction to Module 4•3 minutes
Design Patterns for IoT and Automation Projects•8 minutes
Reviewing Our Project Part 1: Familiar Topics•6 minutes
Reviewing Our Project Part 2: New Topics•5 minutes
Easy Authentication with SSH Keys•14 minutes
Using Flask to Create an API Server•18 minutes
Loosely Coupled Software Modules (Part 1 of 2)•15 minutes
Loosely Coupled Software Modules (Part 2 of 2)•10 minutes
Diving Into Our Flask API Server•15 minutes
Web Frameworks and How to Learn Them (Part 1 of 2)•16 minutes
Web Frameworks and How to Learn Them (Part 2 of 2)•12 minutes
Creating a Minimal Web Application with React and Flask (Part 1 of 2)•16 minutes
Creating a Minimal Web Application with React and Flask (Part 2 of 2)•14 minutes
Diving into Our Web Application (Part 1 of 2)•13 minutes
Diving into Our Web Application (Part 2 of 2)•14 minutes
Let's Make a Custom Sensor•9 minutes
Creating Our Sensor Hardware•21 minutes
System Integration in the Real World•9 minutes
Summary of Module 4•2 minutes
Summary of Course 1 in this Coursera Specialization•2 minutes
1 reading•Total 10 minutes
Link to Github repository referenced in this module•10 minutes
1 assignment•Total 30 minutes
Module 4•30 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
The mission of The Johns Hopkins University is to educate its students and cultivate their capacity for life-long learning, to foster independent and original research, and to bring the benefits of discovery to the world.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.