ESP32 使用Mac地址做为唯一标识

本文讲解在Arduino-ESP32 环境下,使用ESP.getEfuseMac() 可获取芯片的MAC地址并转换为字符串。

在Arduino-ESP32 环境下,使用ESP.getEfuseMac() 可获取芯片的MAC地址,函数定义如下:

uint64_t getEfuseMac();
uint64_t是unsigned long long类型,有8个字节,要存入数据库的话最好是转换成字符串,

用下面的代码可将其转换成16进制的字符串

uint64_t number;
unsigned long highNum = (unsigned long)((number & 0xFFFF0000) >> 16);
unsigned long lowNum = (unsigned long)((number & 0x0000FFFF));
String hexStr = String(highNum, HEX) + String(lowNum, HEX);

完整代码:

#include <Arduino.h>

void setup() {
  Serial.begin(115200);

  uint64_t number = ESP.getEfuseMac();
  unsigned long highNum= (unsigned long)((number & 0xFFFF0000) >> 16);
  unsigned long lowNum= (unsigned long)((number & 0x0000FFFF));
  String chipId = String(highNum, HEX) + String(lowNum, HEX);

  Serial.printf("chipId: %s\n", chipId);
}

void loop() {

}
- 本文为本站原创文章,转载请保留出处。
- 文章链接:https://www.xpstem.com/article/2000390

2024-08   阅读(172)   评论(0)
 标签: 创客 ESP32

涨知识
二进制

二进制(binary),发现者莱布尼茨,是在数学和数字电路中以2为基数的记数系统,是以2为基数代表系统的二进位制。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示 。

评论:
相关文章
【ESP32 C++教程】Unit4-3 红外接收和遥控

本小节主要讲解红外接收和遥控器件,以及遥控操作LED。


【ESP32 C++教程】Unit4-2 模拟量传感器

本小节讲解模拟量传感器使用,旋转电位器,DHT11温湿度传感器和实现自定义传感器类。


【ESP32 C++教程】Unit4-1 数字量传感器

本小节讲解Sensor类及派生类、数字量传感器使用和传感器的推荐交互流程。


【ESP32 C++教程】Unit3-2 触摸输入

本小节讲解ESP32内置触摸引脚的用法,


【ESP32 C++教程】Unit3-1 按键输入

本小节主要介绍按键信号转换、Button类及派生类、和Button交互推荐流程。


【ESP32 C++教程】Unit2-2 Ws2812灯珠

本小节主要介绍Ws2812灯珠的使用、对父类进行扩展实现自定义功能,和指针向下强制转换的使用。


【ESP32 C++教程】Unit2-1 RGB三色LED

本小节主要介绍RGB三色LED的使用,以及多态的具体实现。


【ESP32 C++教程】Unit1-3 ESP32 Arduino 开发框架

ESP32 Arduino Framework是专门针对ESP32开发板的Arduino应用开发框架,为用户开发IOT应用、HMI应用提供一致的开发体验。


ESPConnect:基于浏览器的ESP32管理器

ESPConnect是一个基于现代浏览器的管理器,在你需要快速验证、调试、管理文件、检查状态的时候,它能帮你省下大量打开和切换重型工具的时间。


用ESP32做一个FM收音机

本文介绍两种使用TEA5767收音机模块实现FM收音机的方案,感兴趣的朋友可在此基础上实现更丰富的功能。