I am thinking of building a device that does not have a screen or a keyboard. I want to use my phone to configure the Wi-Fi credentials when I first turn it on. Is NFC a good solution for this? How hard is it to implement NFC tag reading on a microcontroller like an ESP32? Is there a cheaper or simpler way to achieve this?
NFC allows for secure local IoT credential provisioning via NDEF message transmission, though soft-AP provisioning serves as a more common and cost-effective alternative for simple Wi-Fi configuration.
1 answer
NFC is technically viable for credential provisioning, but it is often an over-engineered solution for simple Wi-Fi setup tasks. While the ESP32 handles the I2C communication with an NFC reader module quite well, the complexity of managing NDEF records and the limited proximity requirements frequently lead to a poor user experience compared to standard provisioning methods. If you value developer velocity and robust documentation, I would suggest looking toward a soft-AP provisioning model instead.
Implementing an NFC stack on a microcontroller requires significantly more state-machine management than simply broadcasting an SSID for a mobile application to connect to. You are trading a straightforward software flow for a hardware dependency that introduces both cost and potential mechanical design challenges in your final housing.

