obniz-cli
obniz-cliはnpmで配信されているobnizOS書き込み専用のソフトで主に以下のことが可能です。
- obnizOSの書き込み
- クラウドにサインインしてデバイスの生成
- obnizIDを指定してのDeviceKeyの書き込み
- Wi-Fiなどネットワークの設定
obniz-cliがあれば、デバイスの生成からWiFi設定までを1コマンドで済ませることができるので、大量なデバイス生成も容易です。
例えば以下のコマンドでデバイスの生成(説明付き)=>OSの書き込み=>WiFi設定が行われます。
obniz-cli os:flash-create -p /dev/tty.USBSERIAL --description "工場Aに設置" --config ./wifi-config.json
obniz-cliの準備
obniz-cliはEspressif社提供の公式ツール「esptool」を利用することで書き込みを行います
利用にはNodejs12以降とpipが必要となります。
ここからの利用方法は https://github.com/obniz/obniz-cli に載っているのでそれに従います。
まずnpmでインストールします。シェルから以下を実行します。
npm i obniz-cli -g
次にesptoolをインストールします
pip install esptool
これでソフトウェアの準備は完了です。プログラムを書き込みたいデバイスをシリアルでPCと接続します。
USBドライバについて
プロセッサにプログラムを転送するためにマシンにUSBドライバが必要な場合があります(DevKitCやM5Stackは必要なことが多いです)、その場合はhttps://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers このドライバがESP32の開発ボードで利用されている場合が多いので、必要に応じてインストールしてください。(可能性として高いと言うだけです。正確なものはメーカーのドライバ情報をご確認ください)
obniz-cliより利用できるシリアルポートを以下コマンドで確認できます。
obniz-cli os:ports
obniz-cliでのデバイス生成
サインイン
まずはobnizクラウドにサインインする必要があります。
obniz-cli signin
上記コマンドでブラウザが立ち上がり認証画面となります。obniz-cliへの認証を行っていただくとサインインが完了し、シェルに完了が表示されます。
生成と書き込み
以下のコマンドでアカウント上にデバイスが生成され、OSの書き込みと同時にデバイスキーの設定が行われます(シリアルポート名はあなたのものをご利用下さい)
obniz-cli os:flash-create -p /dev/tty.USBSERIAL
obnizOSは無指定ではobnizOS for ESP32の最新のものがダウンロードされます。
ハードウェア別obnizOSの選択
無指定ではobnizOS for ESP32が指定されています。--hardwareを指定することで専用obnizOSをインストールすることでディスプレイなどが起動時から利用できるようになります。例えばobnizOS for M5StickCなら
obniz-cli os:flash-create -p /dev/tty.USBSERIAL --hardware m5stickc
となります。hardwareは以下から選択可能です。
Device | OS | --hardware |
---|---|---|
M5Stack Basic | obnizOS for M5Stack Basic | m5stack_basic |
M5StickC | obnizOS for M5StickC | m5stickc |
ESP32, ESP32-PICO, ESP32-WROOM32, DevKitC | obnizOS for ESP32 | esp32w |
デバイスキー設定失敗時の挙動
デバイスの生成後、デバイスに対してDeviceKeyの設定が行われます。
その設定に失敗した場合も、同じコマンドを実行することで前回書き込みに設定した番号を書き込むか聞かれますのでYESと答えれば書き込むことができます。
また、生成されたデバイスはあなたのアカウントにすでに存在しているため以下のobnizIDを指定した書き込みでも書き込むことができます、
自動設定
OS書き込み時に以下の設定も同時に行うことができます。
- Wi-Fiなどネットワーク設定
- descriptionの設定
obniz-cli os:flash-create -p /dev/tty.USBSERIAL --description "工場A" --config ./wifi-config.json
引数 | 説明 | 設定例 |
---|---|---|
--description | obnizクラウド上に保存されるデバイスの説明 | --description "工場A" |
--config | ネットワーク設定 | --config ./wifi-config.json |
所有デバイスの書き込み
あなたのデバイス一覧にあるデバイスを書き込む方法です。サインインした上でobnizIDを指定して書き込みます。
obniz-cli os:flash -p /dev/tty.USBSERIAL -i 0000-0000 --config ./wifi-config.json
引数 | 説明 | 設定例 |
---|---|---|
-i | アカウント内にあるobniz ID | -i 0000-0000 |
消去方法
設定を間違えた場合などデバイスキーも含めobnizOSも削除して初期化することができます。
obniz-cli os:erase
ターミナルからの設定
obnizOSと対話することでobniz-cliを使わずにデバイスキーの設定することも可能です。
obnizOSの書き込みだけ行われたデバイスではターミナル経由で設定できます。
まず、デバイスとシリアル通信にて設定を行います。お使いのターミナルアプリ又は以下のpythonモジュールで通信できます。
python -m serial.tools.miniterm /dev/tty.SLAB_USBtoUART 115200
通信を開始した段階でデバイスキーの入力待ちとなっています。
エンターキーを押すことで以下の表示が出れば正常にobnizOSが動作しています。
DeviceKey:
また、通信した状態でデバイスをリセットすると以下のように表示が行われます。
obniz ver: 2.0.0
DeviceKey:
この状態でデバイスキーの書き込みを待っています。
クラウドからダウンロードしてきたデバイスキーは以下のような文字列になっています。
12345678&5f4fd05f4fd07ebbb7275f4fd08a6075f4fd08a60267a35b2
これをそのまま入力しエンターキーを押すことで設定が完了します。
完了後はネットワークの設定となります。