👣
Raspberry Pi Picoの固有IDをMicroPythonから取得する
初めに
Raspberry Pi Picoなどのマイコンを使ってセンシングを行っている場合、「どの機器で記録した値か」を識別するために何かしらの識別子(ID)が欲しくなることがあります。
Raspberry Pi Picoには固有ID(UID: Unique ID)があるようなので、MicroPythonから取得する方法を調べてみました。
固有IDの取得
MicroPythonを使っている場合、machine.unique_id()
で固有IDを簡単に取得することができます。
返り値は8バイト(64ビット)のバイト列です。(Raspberry Pi Picoの場合、サイズはボード次第)
import machine
import binascii
uid = machine.unique_id()
print(str(binascii.hexlify(uid), "utf-8"))
手元のRaspberry Pi Picoでは、以下の値が出力されました。
e6605481db385d37
Raspberry Pi Picoの固有ID
上記の通り、Raspberry Pi Picoの固有IDを取得することができました。
ただ、Raspberry Pi Picoの主要チップである「RP2040」に固有IDがあるわけではなく、NORフラッシュメモリの固有IDを読み出しているようです。
そのため、RP2040を使った他のボードでは動かない可能性があるので注意が必要です。
最後に
Raspberry Pi Picoから固有IDを取得することができました。
この固有IDをセンシングした値と一緒に保存しておくことで、識別が楽に行えそうです。
参考資料
以下のページを参考にしました。
Discussion