Skip to main content

A simple network configuration utility for MicroPython on the ESP-8266 and ESP-32 boards

Project description

micropython-wifimanager

A simple network configuration utility for MicroPython on boards such as ESP8266 and ESP32.

Configuration

Simply upload your JSON file with your networks, the default path is '/networks.json', which is specified in the class property config_file.

A sample configuration may look like this:

{
	"schema": 2,
	"known_networks": [
		{
			"ssid": "User\u2019s iPhone",
			"password": "Password1",
			"enables_webrepl": false
		},
		{
			"ssid": "HomeNetwork",
			"password": "Password2",
			"enables_webrepl": true
		}
	],
	"access_point": {
		"config": {
			"essid": "Micropython-Dev",
			"channel": 11,
			"hidden": false,
			"password": "P@55W0rd"
		},
		"enables_webrepl": true,
		"start_policy": "fallback"
	}
}

Configuration schema

  • schema: currently this should be 2
  • known_networks: list of networks to connect to, in order of most preferred first
    • SSID - the name of the access point
    • password - the clear test password to use
    • enables_webrepl - a boolean value to indicate if connection to this network desires webrepl being started
  • access_point: the details for the access point (AP) of this device
    • config - the keys for the AP config, exactly as per the micropython documentation
    • enables_weprepl - a boolean value to indicate if ceating this network desires webrepl being started
    • start_policy - A policy from the below list to indicate when to enable the AP
      • 'always' - regardless of the connection to any base station, AP will be started
      • 'fallback' - the AP will only be started if no network could be connected to
      • 'never' - The AP will not be started under any condition

Simple usage (one shot)

Here's an example of how to use the WifiManager.

MicroPython v1.9.4 on 2018-05-11; ESP32 module with ESP32
Type "help()" for more information.
>>> from wifi_manager import WifiManager
>>> WifiManager.setup_network()
connecting to network Foo-Network...
WebREPL daemon started on ws://10.1.1.234:8266
Started webrepl in normal mode
True

Asynchronous usage (event loop)

The WifiManager can be run asynchronously, via the cooperative scheduling that micropthon has in uasyncio. If you call WifiManager.start_managing() as follows, it will ensure that periodically the network status is scanned, and connection will be re-established as per preferences as needed.

import uasyncio as asyncio
from wifi_manager import WifiManager

WifiManager.start_managing()
asyncio.get_event_loop().run_forever()

Contribution

Found a bug, or want a feature? open an issue.

If you want to contribute, create a pull request.

System flow

System flow

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

micropython-wifimanager-0.3.6.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

micropython_wifimanager-0.3.6-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file micropython-wifimanager-0.3.6.tar.gz.

File metadata

  • Download URL: micropython-wifimanager-0.3.6.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.0

File hashes

Hashes for micropython-wifimanager-0.3.6.tar.gz
Algorithm Hash digest
SHA256 aedb07308cd2c836b63243cd7c4e663adb6fa8dfb0a5cc5dbaa2fe15de4e9801
MD5 1111a4312cdd8fae412c94c4817906e4
BLAKE2b-256 c26a60dc1437be8f825616970041a0c2032b08995e328e4a58dd69b6687579a0

See more details on using hashes here.

File details

Details for the file micropython_wifimanager-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: micropython_wifimanager-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 5.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.0

File hashes

Hashes for micropython_wifimanager-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 ab87110e58a3fc141b8b2cb73c7cedb9d4af6d21809e713e7ae35b9bdba744fd
MD5 31f3bf6a71eaba2e7a03f85e6e6321d3
BLAKE2b-256 c709a1d00d0b2ab19417d2fe90e8550f73463243cebb78da29c134970eb041c9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page