MicroPython and ESP8266 Airboat

Creating an Access Point

Figure 5 shows how to set up an access point in just a few lines of code. For this example, the access point is called ESP32 with the password 12345678. When the code runs, I will be able to see when a remote user connects and disconnects to the access point.

Figure 5: MicroPython access point.

MicroPython Web Server

After getting the access point working, the next step is to create a web server. For this simple web server project, I embedded the HTML content into my Python code. For a more complex application, I would definitely have web pages that are files independent of the code.

For the web server example application (Listing 1), I start with the access point connection code (lines 10-19) and then set up a socket on port 80 (lines 48-50). The HTTP request/response sequence is passed through a function called web_page(request) (line 22), which looks for keywords in the HREF request. The embedded HTML code passes keywords by anchor tags (e.g., <a href='/?forward'>; line 41).

Listing 1

Access Point Web Server

 

Often, mobile frameworks like Bootstrap are used to help with formatting; however, because I'm running a standalone access point, I need to define all style codes manually.

The MicroPython default web server address is 192.168.4.1, which you can change in the access point setup. When the web server is running, I should be able to toggle the stop/forward states.

Writing Outputs

The MicroPython command-line interface (CLI) is a good way to test the hardware setup and outputs. To access it, press the Connect icon (Figure 6) and enter Ctrl+C.

Figure 6: MicroPython I/O test on the command line.

The machine library lets you manage hardware pins:

>>from machine import Pin

Pin objects can be either inputs or outputs:

Pin14 = Pin(14, Pin.IN)
Pin5 = Pin(5, Pin.OUT)

The value of a pin is read by pin<object>.value() and is set by pin<object>.value(<thevalue>).

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • CircuitMess Nibble

    The Nibble kit by CircuitMess is a freely programmable mobile game console that makes getting started with microcontroller programming a breeze.

  • BBC micro:bit

    Designed for students, the BBC micro:bit, in conjunction with MicroPython and the Mu editor, can help you get started with microcontroller programming.

  • Light Painting

    In the photographic method of light painting, you expose a subject over an extended period of time while moving the light sources. With a little technical support from a Raspberry Pi Pico, you can achieve sophisticated results.

  • ESP8266 for WiFi Sniffing

    The ESP8266 is in the core of many IoT devices. Thanks to ESP8266 sniffer mode, you can monitor the WiFi medium for diagnostics and optimization.

  • CircuitPython

    The CircuitPython run-time environment runs on almost all microcomputers and microcontrollers, making it perfect for cross-platform programming.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News