esp
--- ESP8266 と ESP32 に関連する関数¶
esp
モジュールは、ESP8266 と ESP32 の両方のモジュールに関連する固有の機能を提供します。一部の機能はこれらのポートのどちらか一方でしか使えません。
関数¶
- esp.sleep_type([sleep_type])¶
注記: ESP8266 のみ
スリープのタイプを取得/設定します。
sleep_type にパラメータが与えた場合、スリープのタイプをその値にを設定します。この関数がパラメータなしで呼び出された場合は、現在のスリープのタイプを返します。
指定可能なスリープのタイプは定数として定義されています:
SLEEP_NONE
-- すべての機能が有効SLEEP_MODEM
-- モデムのスリープ、WiFi モデム回線をシャットダウンSLEEP_LIGHT
-- 軽量スリープ、WiFi モデム回路をシャットダウンし、プロセッサを定期的に停止
可能であれば、システムは自動的に設定されたスリープモードに入ります。
- esp.deepsleep(time_us=0, /)¶
注記: ESP8266 のみ - ESP32 では
machine.deepsleep()
を使用ディープスリープに入ります。
RTC クロック回路を除いてモジュール全体がパワーダウンします。RTC クロック回路は、ピン16がリセットピンに接続されている場合、指定時間後にモジュールを再起動するのに使えます。それ以外の場合、モジュールは手動でリセットされるまでスリープします。
- esp.flash_id()¶
注記: ESP8266 のみ
フラッシュメモリのデバイスIDを取得します。
- esp.flash_size()¶
フラッシュメモリの合計サイズを取得します。
- esp.flash_user_start()¶
ユーザフラッシュスペースが始まるメモリオフセットを取得します。
- esp.flash_read(byte_offset, length_or_buffer)¶
- esp.flash_write(byte_offset, bytes)¶
- esp.flash_erase(sector_no)¶
- esp.osdebug(uart_no)¶
注釈
これは ESP8266 の形式です。
OS シリアルデバッグログのレベルを変更します。OS ブート時、OS シリアルデバッグログメッセージは無効化されています。
uart_no
は、OS レベル出力を受信する UART ペリフェラル番号です。None
を指定すると、OS シリアルデバッグログメッセージを無効化します。
- esp.osdebug(uart_no[, level])
注釈
これは ESP32 の形式です。
OS シリアルデバッグログのレベルを変更します。OS ブート時、OS シリアルデバッグログメッセージはエラー出力のみに限定されています。
この関数の動作は、それに渡される引数に依存します。次の組み合わせがサポートされています:
osdebug(None)
は、デフォルトの OS デバッグログメッセージレベル(LOG_ERROR
)を復元します。osdebug(0)
は、すべての利用可能なOSデバッグログメッセージを有効にします(デフォルトのビルド構成ではLOG_INFO
です)。osdebug(0, level)
は、OS デバッグログメッセージレベルを指定された値に設定します。ログレベルは定数として定義されています:
LOG_NONE
-- ログを出力しないLOG_ERROR
-- 重大なエラー、ソフトウェアモジュールが自力で回復できない場合LOG_WARN
-- 回復措置がとられたエラー状態LOG_INFO
-- 正常なイベントの流れを記述する情報メッセージLOG_DEBUG
-- 通常の利用には必要のない余分な情報(値、ポインタ、サイズなど)LOG_VERBOSE
-- デバッグ情報の大きな塊、あるいは出力があふれる可能性のあるメッセージを頻繁に出力
注釈
デフォルトでは MicroPython バイナリのサイズを節約するために
LOG_DEBUG
とLOG_VERBOSE
は組み込まれていませんこれらのログレベルでの出力を得るには、変更した ""sdkconfig
" ソースファイルを使ったカスタムビルドが必要です。注釈
ESP32 上のログ出力は "Raw REPL" モードで自動的に中断されます。これは通信の問題を防ぐためです。これは、mpremote run などのツールを使う際に、OS レベルのログが表示されないことを意味します。
- esp.set_native_code_location(start, length)¶
注記: ESP8266 のみ
ネイティブコードがコンパイルされた後に実行のために配置される場所を設定します。
@micropython.native
,@micropython.viper
,@micropython.asm_xtensa
デコレータが関数に適用されると、ネイティブコードが生成されます。ESP8266は iRAM または(メモリマップされている)フラッシュの下位 1MB のいずれかからコードを実行する必要があり、この関数はその位置を制御します。start と length がどちらも
None
であった場合、ネイティブコード位置は iRAM1 領域の最後にあるメモリの未使用部分に設定されます。この未使用部分のサイズはファームウェアによって異なり、通常は非常に小さく(約500バイト)、非常に小さな関数を格納するのに使います。この iRAM1 領域を使用する利点は書き込んでもメモリの寿命が縮まないことです。start と length のどちらも
None
でない場合はどrちらも整数でなければならず、 start はネイティブコードを格納するフラッシュの先頭からのバイトオフセットを指定する必要があります。 length はネイティブコードを格納するために最初から何バイトのフラッシュを使用できるかを指定します。 start と length は、セクタサイズの倍数(4096バイト)にしてください。フラッシュする前にフラッシュは自動的に消去されるので、他(たとえばファームウェアやファイルシステム)では使用されないフラッシュの領域を使うようにしてください。フラッシュを使用してネイティブコードを格納する場合、 start+length は1MB以下でなければなりません。繰り返し消去(および書き込み)を行うとフラッシュは寿命を縮めていくので、この機能は控えめに使ってください。特に、ネイティブコードは起動ごとに再コンパイルしてフラッシュに書き換える必要があります(スリープ解除からの起動の場合も含みます)。
上記のどちらの場合も、iRAM1 またはフラッシュを使って指定領域に空きがなくなった後、関数にネイティブデコレータを使うとその関数のコンパイル中に
MemoryError
例外が発生します。