This project aims towards the creation of a general purpose remotely controlled micropython executor board, specifically created for an esp32c3 with builtin 0.42inch oled display (from Aliexpress)
- utils.py: contains some utility functions and common variables. Is used by other scripts
- connect.py: importing this file connects to the specified wifi network using the esp32
- sh1106_oled.py: importing this file initialized the oled display (modified this code for the 0.42 inch display)
- Timeout.py: reimplements asyncio's timeout() macro, since it is missing in micropython's asyncio
- boot.py: if present does nothing, but ensures that no other boot.py is executed
- main.py: runs connect and starts server
- WIFI_CODES.json: contains ssid and password of the wifi network.
{
"your_wifi1": ["passcode"],
"two_wifis_with_same_ssid": ["password_for_1st_wifi", "password_for_2nd_wifi"]
}Each time the esp tries to connect it has a 15s timeout before trying the next password or the next connection.
My board implements this version of Micropython.
The connection port for the remote (unsecure) shell is 22. NetCat is fine for connecting and interacting with the terminal, althou you cannot use arrows/signals (a nice client terminal will be implementent to automatically connect to the esp).
The ip address of the esp32 is printed both on the serial terminal and on the mini oled display.
Inside utils.py::vars you can set some useful variables, such as AUTOSTART_SERVER or AUTORESTART_SERVER