krzmaz / pico-w-webserver-example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Example of a web server using Pico SDK and lwIP

This example was described in more detail in a blog post: https://krzmaz.github.io/2022-08-15-creating-a-web-server-on-raspberry-pi-pico-w-using-pico-sdk-and-lwip/
In my testing it reached ~20x performance of the MicroPython implementation from point 3.9.1 of https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf

If you want to test this example with your html files, just add/edit them in the src/fs directory and rebuild the project!


Dependencies:

  • CMake 3.19+
  • ARM GNU toolchain
  • Perl (should be already present on *nix systems)

For the first two you can refer to these instructions


One time setup

cp cmake/credentials.cmake.example cmake/credentials.cmake
# <fill in your credentials>

Building

./build.sh

Flashing

The built USB Flashing Format file will be located in build/src/pico_w_webserver.uf2 - just copy it over to the Pico W to flash it!

SSI

Now the example uses Server Side Includes (SSI) to introduce dynamic data into the HTML responses.
As per documentation:

SSI-enabled pages must have one of the predefined SSI-enabled file extensions

Which means that no cost should be introduced in non SSI pages

References

About

License:MIT License


Languages

Language:C++ 52.1%Language:CMake 20.4%Language:C 18.6%Language:HTML 7.3%Language:Shell 1.6%