Connecting to WiFi
Exercise 1:
Verify the available access points before the activation of the ESP32
WiFi.
Study the
MicroPython documentation on the WLAN class
.
- Configure the WiFi interface as an access point.
- Check if the interface is already active and activate it, if not. Confirm that activation succeeded. If activation fails, emit an error message.
| WiFi network before activation of the ESP32 access point |
WiFi after activation |
|
|
Connect the PC to the new access point and verify that communication works using ping.
Exercise 2:
- Configure the ESP32 as "station interface"
- Verify if the interface is active, activate it if not.
- Scan the network and print all available information about the SSIDs found in a tabular format
- Connect the ESP32 with the router specifying the SSID and the password
- Verify that the connection was successful. (This may take a few seconds. Wait up to 10 s for the connection to be established)
- Print the IP address assigned to your ESP32
- Print the MAC address of the ESP32 WiFi interface
- Verify with ping that the ESP32 is accessible
Here is a screen dump of the solution:
This is what you will see if you try to ping the ESP32:
You can try ping also on the ESP32:
from uping import ping
ping("the machine_to_be-checked")
Exercise 3:
Write a module: wifi.py which encapsulates the functionality of exercise 2. Upload the module to the /lib folder on the ESP32.
The code connecting to the ESP32 will then be as simple as this:
from wifi import
connect()
Exercise 4 :
Add a function returning the ESP32's IP address.
Read the current UTC time from the network using NTP. Set the real time clock on the ESP32. Provide a function that converts UTC into your local time.
Exercise 5 :
Write a TCP server and a client program running both on the PC. The server waits for a connection request from the client on port 5000, accepts it and sends a message to the client. After that, a prompt appears on the client and the user can type a message to be sent to the server. The server prints this message and creates a prompt on its side, where a message can be entered, to be sent to the client. A ping-pong communication is started. Typing the message "bye" on the client side terminates the connection.
Exercise 6 :
- Move the server to the ESP32. In this case, the WiFi initialization is needed before starting the server part. Test the communication as you did in exercise 5.
- Move the client to the ESP32 and run the server on the PC.
Exercise 7 :
Write a client on the ESP32 which reads the temperature and humidity from the DHT11 every 5s and packs the result into a message of the following form:
temperature [°C]: 25,humidity [%]: 56
Send this message to a server on the PC
The server parses the message and extracts the parameter names (temperature [°C] and humidity [%]) and the values and plots them in a dynamic plot created with matplotlib. The parameter names are used for the legend, the values are displayed graphically.
In the above plot, I put a finger on the DHT11, which quickly increases the measured humidity and more slowly increases the temperature.
--
Uli Raich - 2022-08-29
Comments