esp32开发与应用(唯一ID识别)
【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】很多产品都有激活的要求这个时候就要求产品有唯一ID。而这个唯一ID可以是芯片的ID也可以是模块的ID。当然esp32比较特殊一点它是一个带wifi的mcu所以我们就可以把mac地址当成ID。这样就比较好一点。1、不需要连接线目前这个mac不需要和其他模块通信所以不需要外接连线。2、mac唯一ID的由来不管是模块还是pc上面的网卡都是唯一ID这个是由mac模块本身的特性决定的。3、ai编程这部分都准备好了之后就可以找chatgpt或者是deepseek直接问它如何获取芯片的mac id即可。不出意外的话我们就可以得到这样的代码#include stdio.h #include inttypes.h #include esp_system.h #include esp_mac.h #include esp_log.h static const char *TAG UNIQUE_ID; static void print_mac_address(void) { uint8_t mac[6]; esp_err_t ret esp_read_mac(mac, ESP_MAC_WIFI_STA); if (ret ESP_OK) { ESP_LOGI(TAG, MAC Address (Unique ID): %02x:%02x:%02x:%02x:%02x:%02x, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); } else { ESP_LOGE(TAG, Failed to read MAC address: %s, esp_err_to_name(ret)); } } void app_main(void) { ESP_LOGI(TAG, ESP32 Unique ID Example ); print_mac_address(); ESP_LOGI(TAG, End of Example ); }4、代码编译和执行整体内容还是比较简单的基本上通过一个esp_read_mac函数就可以获得全部mac地址的内容。加上mac地址本身具有唯一性那么就可以用mac地址当成是esp32模块的id这是比较好的一个做法。当然如之前所说拿到代码之后我们可以先编译一下然后烧入和运行。没有问题的话就可以把这个功能记下来了等到后面用到的时候实际部署一下就可以。