Skip to content
ayushsharma82Public

About

A better WiFi manager + captive portal for microcontrollers

Topics

Resources

Code of conduct

Stars

135 stars

Watchers

5 watching

Forks

Repository files navigation

NetWizard Lite


   


NetWizard is a user-friendly yet robust WiFi manager and captive portal library for wireless microcontrollers. Eliminate the trouble of hard-coding WiFi credentials by letting NetWizard handle the networking for your device!

Additionally, NetWizard lets you create a custom configuration page of your choice which is shown at the time of setup. The possibilities are endless!


Features

  • 🛜 No hard-coded WiFi credentials
  • ⚙️ Create a custom configuration page using just C++
  • ⚡ Intuitive step-by-step setup flow which makes user interaction easier
  • 📱 Responsive portal, full-screen on phones and a focused card on desktop
  • 🌐 Available in 12 languages (with right-to-left support) and a language picker for your users
  • 📍 Shows the device's network and IP address once it's connected
  • 🎷 No need to learn HTML/CSS/JS
  • 🛫 Ready to use within 4-5 lines of code

Supported MCUs

NetWizard works on the following microcontrollers/boards:

  • ESP32
  • RP2040 + W (Pico W etc.)
  • RP2350 + W (Pico 2W etc.)
  • ( more coming soon )

Documentation

Learn more about Installation & Usage: Click Here


OSS Preview

Once you have integrated NetWizard library in your code, you can connect to your device's AP and then this captive portal will pop up for you to configure your device:

NetWizard Lite setup flow on a phone

On a laptop or desktop, the same steps appear in a centered card:



NetWizard Lite portal on desktop



Settings Fields

Ask for your own settings on the portal's last step. Each field has a type, so you get the value back as that type:

NetWizardHeader mqtt(&NW, "MQTT");
NetWizardInput host(&NW, "Host", "", "mqtt.example.com"); // String
NetWizardInput port(&NW, "Port", 1883);                    // int

NW.onConfig([&]() {
  String h = host.getValue();
  int p = port.getValue();
  return true; // return false to reject the values
});

NetWizardInput holds a String, int, float or double. Numeric fields bring up the number keyboard and are checked on the device, so a value that doesn't parse is rejected instead of being saved. NetWizardDivider and NetWizardSpacer add separation between fields.


Portal Language

The portal is translated into English, Spanish, French, German, Portuguese, Italian, Russian, Chinese, Japanese, Korean, Arabic and Hindi. By default it follows the language of the visitor's browser, and visitors can switch it from the language picker next to the close button.

NetWizard portal in 12 languages

To choose the default language yourself, call setLanguage() before autoConnect():

NW.setLanguage("hi"); // en, es, fr, de, pt, it, ru, zh, ja, ko, ar or hi

A language the visitor picks is remembered on their device and takes priority over this default.


Looking for more? Upgrade to Pro

Netwizard Pro comes with the following extended functionality:

  • Static IP configuration (set from code or by your users in the portal)
  • Exclusive settings fields (password, toggle and textarea)
  • Links
  • Statistics
  • Whitelabel / Branding
  • UI Source
  • Softt Commercial License 1.3


Available here:


NetWizard Pro

Contributions

Every contribution to this repository is highly appreciated! If you spot any bug or problem, open a issue or pull request so that it can be rectified for everyone.

For feature requests: Please open a issue and I'll add the feature in a future release once I get some time in my hands.


License

NetWizard open-source edition is licensed under Affero General Public License v3.0 ( AGPL-3.0 ).

If you are intending to use NetWizard in a commercial project, please consider purchasing NetWizard Pro which comes with a less restrictive SOFTT Commercial License 1.3 (SCL-1.3).

About

A better WiFi manager + captive portal for microcontrollers

Topics

Resources

Code of conduct

Stars

135 stars

Watchers

5 watching

Forks

Releases

Used by

Contributors

Languages