We may earn an affiliate commission when you visit our partners.
Course image
Miguel Grinberg

Welcome to MicroPython and the Internet of Things, a beginner tutorial that will introduce you to the exciting world of microcontrollers and small-form Internet enabled devices. On the hardware side, the tutorial is centered around the ESP8266 chip, an inexpensive, yet unbelievably powerful microcontroller. As far as software, I'm going to show you how to program this little device with MicroPython, a lightweight version of the Python language that is designed to run on devices with limited resources.

Enroll now

What's inside

Learning objectives

  • Building digital circuits without soldering
  • Programming the esp8266 microcontroller with micropython
  • Interface with sensors
  • Display text and graphics on a small oled screen

Syllabus

Welcome
Hello, MicroPython!
Introduction to the ESP8266 Development Board
The Breadboard
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Provides a hands-on introduction to MicroPython, which is a lightweight version of Python, making it accessible for learners with basic programming knowledge
Focuses on the ESP8266 chip, a popular and inexpensive microcontroller, allowing learners to experiment without significant financial investment
Covers interfacing with sensors and displaying data on OLED screens, enabling learners to create interactive and practical IoT devices
Explores Wi-Fi connectivity, HTTP requests, and IFTTT webhooks, enabling learners to connect their microcontrollers to the internet and automate tasks
Includes topics such as deep sleep mode and external reset buttons, which are useful for creating low-power and reliable IoT applications
Requires learners to acquire an ESP8266 development board, breadboard, DHT22 temperature sensor, and SSD1306 OLED screen, which may require additional purchases

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical intro to micropython and iot

According to learners, this course serves as a great introduction to MicroPython and the ESP8266 for building basic Internet of Things projects. Students particularly appreciate the hands-on approach and practical projects, finding them excellent for getting started even with minimal prior experience in microcontrollers. While the course is praised for providing a solid foundation and clear explanations suitable for beginners, some reviewers note that sections involving external cloud services may be outdated, requiring manual updates or workarounds. More experienced learners suggest the course lacks depth for those seeking advanced topics, confirming its focus as a valuable first step into low-cost IoT development.
Requires specific ESP8266 board and parts
"You definitely need to source the specific hardware kit mentioned."
"Had some minor issues getting my specific ESP8266 module recognized initially."
"Make sure you have all the components listed before you start."
Great starting point for MicroPython and IoT
"As a total beginner, this course was perfect for getting into microcontrollers."
"It truly assumes no prior knowledge of MicroPython, which I needed."
"A great first step into the world of ESP8266 and basic IoT concepts."
"Easy to follow and understand, even without much technical background."
Build practical circuits and code for IoT
"The projects were the highlight; actually building things made it click."
"Loved wiring the circuits and seeing the code work on the ESP8266."
"Getting the weather station project running was very satisfying."
"The hands-on coding and projects are the strongest part of the course for me"
Basic introduction, not for experienced users
"If you have experience with Python or microcontrollers, this might be too basic."
"Wish it went deeper into MicroPython features or optimization."
"Provides a good overview but doesn't delve into more complex IoT architectures."
Some services used may have changed or need updates
"The section on IFTTT required some manual workarounds as the platform changed."
"Found a few external links or services mentioned were no longer current."
"Could benefit from an update on the cloud integration parts to reflect current services."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in MicroPython and the Internet of Things with these activities:
Review Basic Electronics Concepts
Reviewing basic electronics concepts will provide a solid foundation for understanding the hardware aspects of the course, especially when building circuits on the breadboard.
Browse courses on Ohm's Law
Show steps
  • Read introductory materials on electronics.
  • Solve practice problems related to Ohm's Law and Kirchhoff's Laws.
  • Identify common electronic components and their functions.
Brush Up on Python Fundamentals
Refreshing Python fundamentals will make learning MicroPython much easier, as MicroPython is a subset of Python. Focus on syntax, data types, and control flow.
Browse courses on Python Syntax
Show steps
  • Review Python tutorials or online courses.
  • Write simple Python programs to practice basic concepts.
  • Familiarize yourself with Python's standard library.
Read 'Programming the ESP8266 with Arduino'
Reading this book will provide a deeper understanding of the ESP8266 chip and its capabilities, complementing the MicroPython-focused content of the course.
Show steps
  • Read the chapters related to GPIO and Wi-Fi connectivity.
  • Experiment with the Arduino code examples provided in the book.
  • Compare the Arduino approach to the MicroPython approach.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple LED Control Web App
Building a web app to control an LED connected to the ESP8266 will solidify your understanding of Wi-Fi connectivity, HTTP requests, and basic web development concepts.
Show steps
  • Set up a basic web server on the ESP8266 using MicroPython.
  • Create a simple HTML page with buttons to turn the LED on and off.
  • Write MicroPython code to handle HTTP requests and control the LED.
  • Test the web app from a computer or smartphone.
Document Your Weather Station Project
Documenting your weather station project will reinforce your understanding of the concepts covered in the course and help you share your knowledge with others.
Show steps
  • Write a detailed description of your project, including the hardware and software components.
  • Create a schematic diagram of your circuit.
  • Write a step-by-step guide on how to build and program the weather station.
  • Publish your documentation on a blog or online forum.
Read 'Internet of Things with Python'
Reading this book will broaden your understanding of the Internet of Things and how Python can be used to build IoT solutions.
Show steps
  • Read the chapters related to data acquisition and cloud integration.
  • Explore the Python code examples provided in the book.
  • Consider how the concepts can be applied to your MicroPython projects.
Contribute to a MicroPython Library
Contributing to an open-source MicroPython library will provide valuable experience in collaborative software development and deepen your understanding of MicroPython's ecosystem.
Show steps
  • Find a MicroPython library on GitHub that interests you.
  • Read the library's documentation and code.
  • Identify a bug or feature that you can contribute.
  • Submit a pull request with your changes.

Career center

Learners who complete MicroPython and the Internet of Things will develop knowledge and skills that may be useful to these careers:
Internet of Things Developer
An internet of things developer creates applications that connect physical objects to the Internet. This course, with its emphasis on the ESP8266 microcontroller and MicroPython, directly aligns with the work an internet of things developer does. The course covers key topics like sending HTTP requests, using webhooks, and creating applications using Wi-Fi. A focus on interfacing with sensors and displaying data on a screen is directly relevant to many internet of things projects. Any aspiring internet of things developer should benefit from taking this course.
Embedded Systems Engineer
An embedded systems engineer designs, develops, and tests software and hardware for embedded devices. This role often involves working with microcontrollers, like the ESP8266, which this course covers thoroughly. The course's focus on programming in MicroPython, interfacing with sensors, and controlling displays provides a strong foundation for entry into this field. A focus on creating applications that run on resource-limited devices is directly applicable to real-world embedded systems challenges. This course helps build the kind of practical knowledge an Embedded Systems Engineer needs to succeed.
Firmware Engineer
A firmware engineer develops low-level software that interacts directly with hardware. This course is highly relevant to the work of a firmware engineer due to the focus on programming microcontrollers and interfacing with sensors directly using MicroPython. The skills in the course about creating applications for resource-constrained devices and interacting with hardware components form a practical guide for this role. A firmware engineer will quickly find that the ability to implement custom applications on microcontrollers is crucial to their work. This course helps build a strong base for firmware engineering work.
Robotics Engineer
A robotics engineer designs, builds, and tests robots and robotic systems. This course may be useful for roles involving embedded systems and sensor integration, which are often used in robotics development. The course teaches how to interface with sensors, control displays, and program microcontrollers, all of which are relevant. Because many robotics projects require low-level control of components, the hands-on experience with MicroPython will be helpful. A robotics engineer may find the focus on creating real-world applications using microcontrollers especially practical.
Automation Engineer
An automation engineer designs, develops, and implements automated systems and processes. This course may be useful because it provides hands-on experience with microcontrollers, coding, and sensor integration which is helpful for many automation projects. The course's teachings can be used for data logging, sending HTTP requests, and controlling displays that are components of many automation systems. An automation engineer may appreciate that the course uses MicroPython, a language that allows for rapid prototyping and experimentation with low-level hardware.
Hardware Engineer
A hardware engineer designs and develops physical hardware components and systems. While this course centers on software, the hands-on experience of building circuits on a breadboard and using microcontrollers can be useful for a hardware engineer. The course's focus on interfacing hardware with software, specifically using sensors and displays, will be valuable. A hardware engineer who takes this course gains an understanding of how software interacts with the hardware they design, which can lead to more robust and well-integrated systems. A hardware engineer may also value gaining experience with MicroPython.
Test Engineer
A test engineer designs and implements tests for hardware and software systems. This course may be helpful because it provides an understanding of how to program embedded systems and interface with sensors and displays. The course's hands-on approach to creating real-world applications using a microcontroller can help a test engineer better identify how to create effective tests for embedded systems. A test engineer may find the course's content on debugging helpful since it also covers how to handle errors when working with embedded devices.
Research Engineer
A research engineer works on research and development projects, often requiring practical programming and hardware knowledge. This course may be useful as it provides hands-on experience with microcontrollers, sensor interfaces and data communication which are common elements required in many research projects. The course will help an engineer become familiar with the development of new systems that they might be researching. A research engineer may benefit from the ability to program using MicroPython. This course may be helpful to those who want to pursue further research in this area.
Data Scientist
A data scientist analyzes data to extract meaningful insights and inform decisions. This course may be useful since it teaches how to collect sensor data and work with data communication protocols which can be valuable for data driven projects which involve hardware. The course's focus on logging data to the cloud and creating sensor based applications directly relates to many roles in data science. A data scientist may appreciate that this course teaches an engineer how to obtain and manage data from devices. This course may be helpful in particular for data scientists working with devices.
Software Developer
A software developer designs, writes, and tests software applications. This course may be useful as it introduces programming using MicroPython, which is a type of software. The course focuses on implementing applications for resource constrained systems which can broaden a software developer's understanding of a variety of embedded systems. A software developer will find that the course's teachings could help them apply their software skills to hardware. This course may be helpful to those who want to work in the area of software development for embedded systems.
Technical Support Specialist
A technical support specialist helps users troubleshoot technical issues with hardware and software. This course may be useful since it provides hands-on experience with an embedded system which can help the specialist understand basic operations of devices. The course's teachings about how to implement MicroPython, interface with sensors, and connect devices to the internet may be helpful for this role. A technical support specialist may find the course's content can help them to resolve issues for users. This course may be helpful for those who want to support embedded systems based applications.
Industrial Designer
An industrial designer creates design concepts for manufactured products. This course may be useful by giving industrial designers a practical understanding of electrical components and how they are implemented in real-world products. It may also help them learn the basics of MicroPython and hardware integration. An industrial designer may find that having this kind of knowledge helps them design more practical and effective products by working directly with physical devices. This course may help those looking to expand their skill set.
Science Teacher
A science teacher educates students in scientific principles and practices. This course could be useful for a science teacher who wants to teach students about electronics and microcontrollers, specifically in the context of the internet of things. The hands-on component of this course can help a teacher to better understand the practical side of these topics which will help them teach the concepts in class. A science teacher can use the knowledge they gain here to create projects for their students. This course may be helpful for educators who wish to introduce their students to these technical areas.
Product Manager
A product manager guides the development and launch of new products. This course may be useful as it may help a product manager gain practical experience with embedded systems, sensors, and connectivity. A product manager who has taken this course would have a better understanding of some of the practical aspects of hardware development. Because they will have personally engaged with the technology, it may help them to better manage the team and make decisions about new product features. This course may be helpful for a product manager looking to work with tech products.
Project Manager
A project manager is responsible for planning, executing, and closing projects. This course may be useful because it provides an overview of the development process for embedded systems. A project manager who has taken this course may better understand the technical aspects of projects that involve hardware and embedded systems. The hands on experience might help them better estimate project scope and plan the project timeline. This course may be helpful for a project manager who works in the field of hardware and embedded systems.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in MicroPython and the Internet of Things.
Provides a broader perspective on IoT concepts and applications using Python. It covers topics such as data acquisition, data processing, and cloud integration. While it doesn't focus specifically on MicroPython or the ESP8266, it offers valuable insights into the overall IoT landscape. This book is more valuable as additional reading to expand your knowledge.
Provides a comprehensive guide to programming the ESP8266, although it uses the Arduino IDE instead of MicroPython. It's valuable for understanding the ESP8266's capabilities and hardware interfaces. While the code examples won't be directly transferable, the concepts and explanations are highly relevant. This book can be used as a reference to better understand the ESP8266.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser