Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Web Service Clients on Raspberry Pi Pico W(C++)
Rating: 4.7 out of 5(12 ratings)
199 students

Web Service Clients on Raspberry Pi Pico W(C++)

Restful Web Services for the Raspberry Pi Pico W
Created byDr Jon Durrant
Last updated 4/2025
English

What you'll learn

  • Understand Restful Web Services Concepts
  • Write Web Service clients on the Raspberry Pi Pico using LWIP
  • Write Web Service clients on the Raspberry Pi Pico using coreHTTP
  • Write Web Service servers on the Raspberry Pi Pico using LWIP
  • Write Web Service servers on the Raspberry Pi Pico using Socket based HTTPD

Course content

10 sections63 lectures6h 4m total length
  • Introduction4:11

    In this lecture I introduce the course and it's goals.

  • Introducing Your Tutor2:14

    In this lecture I introduce myself as your tutor, Dr Jon Durrant.

  • Course Approach6:40

    This lecture outlines the course approach and resources available to support you.

  • Section Summary0:19

    This is a summary lecture for this section

Requirements

  • Able to work with the Raspberry Pi Pico SDK Toolchain
  • Able to programme in C/C++ on microcontroller
  • Awareness of computer networks (IP and Ethernet)
  • Able to install software and configure firewall on own laptop or desktop
  • Basic knowledge of Python which will be used for test clients and servers.

Description

Using Web Services I can pull real-world data for my Raspberry PI Pico W to act on. Or submit sensor data from my Pico W to central services in an IoT pattern. Web Services enable us to connect the Pico W to a wider world of exciting distributed systems.

In this course, we explore how to code C/C++ for a Pico-W to become a web service client. We look at two fundamental libraries to manage the HTTP protocol; LWIP HTTP App and coreHTTP. coreHTTP requires that we also use FreeRTOS kernel and LWIP Sockets. The library gives us a great deal of flexibility and with wolfSSL allows us to connect to HTTPS web services.

The restful web services we primarily target on the course respond with JSON payloads. The course teaches how to parse these using two optional libraries coreJSON and tiny-JSON. Some web service payloads return XML and a further two libraries are explored to be able to handle these payloads.

The course uses STDIO for the output of most web services. Two examples use a pre-built Pico-W display board, the PIMORONI Galactic Unicorn. One example uses a TFT screen, this will needs to be wired to the Pico W. Optionally you could modify these examples to produce STDIO or use alternative hardware.

The course assumes knowledge of C++. Though each example walks through the functionality, the course will not talk about the syntax of C++. FreeRTOS Kernel is used to support concurrent tasks and enable POSIX Sockets. An understanding of FreeRTOS Kernel is assumed. I have another course on FreeRTOS Kernel for the Raspberry PI Pico to cover this.

The course assumes you can compile and deploy C++ code to the Pico Q using the Raspberry PI Pico SDK. My other course “Introduction to C Development Environment for Raspberry PICO” teaches these skills.

A web service test environment to support building and understanding these web services clients uses Python. Some Python knowledge would be helpful.

Who this course is for:

  • IoT developers
  • Hobbyist working on IoT and Web Service projects
  • Embedded developers