open-degu / USER_COMMUNITY

Deguの使い方に関する疑問を投稿、回答するためのIssueを提供しています。
4 stars 2 forks source link

DeguベースユニットとDeguゲートウェイ間通信について #35

Open vanityangel opened 4 years ago

vanityangel commented 4 years ago

現在、公開されている手順に従いDeguゲートウェイ経由でDeguベースユニットをAWS IoT Coreに 登録できています。 (http://10.0.0.1/degu/にてMACアドレス登録まで

手順通りですと、Deguベースユニットの電源を再度ONすればDeguゲートウェイ間の通信が確立し LEDランプが点灯するようですが、2つのLEDともに点灯しない状況です。

なお、Deguベースユニットのmain.pyは元々のファイルから更新はしておりません。

このような事象の対応策、または手順の不備などございましたらご指摘いただけると幸いです。

yoshidam-at commented 4 years ago

マニュアルの表記がわかりにくく混乱を招き申し訳ありません。

DeguのLED1はDeguゲートウェイのThreadネットワークにJoin成功した際に点灯させております。 Deguの2回目以降起動時は既にThreadネットワークにJoin済みの為、LEDを点灯するトリガーがなくLED1は点灯しません。

LED1が点灯していなくても、AWS IoTコンソール上のシャドウが更新されていれば正常に動作しております。

LED1の点灯を確認したい場合は、トラブルシューティング 「AWS IoT Coreのシャドウが更新されない」を参考に一度Deguのネットワーク情報などを削除し再度Deguゲートウェイに接続すると確認出来ます。 https://open-degu.github.io/trouble_shooting#join_another_gateway

ご確認よろしくお願いします。

vanityangel commented 4 years ago

早速のご回答ありがとうございます。 残念なことにAWS IoTのシャドウが更新されていません。。 頂いたリンク情報を実施してまた状況のご報告をさせて頂きます!

yoshidam-at commented 4 years ago

追記です。

Degu v0.9.xからv1.0.0-rc1移行ガイド https://open-degu.github.io/user_manual/60_version100/ に記載しておりますが、DeguとDeguゲートウェイのバージョン不一致がありますと、 DeguのAWS IoT Coreへの登録は出来てもシャドウ更新などは出来ません。 現時点では、Deguゲートウェイ側が新しいと不一致になる可能性が高いです。

その場合は、DeguとDeguゲートウェイを最新にして頂くのがいいかと思われます。

大変お手数ですがよろしくお願いします。

vanityangel commented 4 years ago

ありがとうございます! 現在のDeguゲートウェイとDeguベースユニットそれぞれのバージョンの確認などはどのようにすればよろしいでしょうか?

yoshidam-at commented 4 years ago

Deguゲートウェイは、シリアルから

DeguGW # apt show degu-manager

のコマンドを入力しますと

Package: degu-manager
Version: 2.0.0-1
Priority: optional
...

の様にパッケージのバージョンが表示されます。

Deguは、シリアルを接続し、

Start background micropython process.

の前に以下のようにバージョンが表示されるのがv1.0.0-rc1で 全くバージョンが表示されないのがv0.9.x以前となります。

Degu F/W version: 1.0.0-rc1
Start background micropython process.
vanityangel commented 4 years ago

https://github.com/open-degu/USER_COMMUNITY/issues/26 なども見ながら、 sudo dfu-util --alt 1 -D degu.binを実行してみましたが、

: dfu-util: No DFU capble USB device available と表示されています。

確かにDuguベースユニット自体はどこにも接続しておらず、Deguゲートウェイ上で 実行しているためかと思います。

現状、MACのターミナルでscreenにてDeguゲートウェイにアクセスして実行していますが、 Deguベースユニットは結局どこに接続する必要などがあるのでしょうか??

Deguゲートウェイのバージョンは 2.0.0-1です。 Deguのバージョンが不明なため、AWS IoT CoreよりThingsを削除し、LinuxサーバにUSB 接続したDeguに対して、Linuxサーバ上でdegu_delete_con_info.shを実行し、 16+0 レコード入力 16+0 レコード出力 16384 バイト (16 kB) コピーされました、 4.76918 秒、 3.4 kB/秒 Successed delete degu connection information. のように成功しており、手順の通りに再度MACアドレスを登録、Deguベースユニットの 電源(電池入れ替え)を実施しましたがシャドウには何も現れないため、上記issues/26 を参照しながら実行しているところとなります。。

yoshidam-at commented 4 years ago

dfu-util: No DFU capble USB device available に関しては、

最新の状態へのアップデート https://open-degu.github.io/user_manual/20_software_update/ の『アップデート手順』に記載しています、

3. DeguのSW4(ケース外側に出ているスイッチ)を押しながら、  
MicroUSBケーブル(micro Type-B側)を接続してください。

を行っていただけると上手く行くかと思われます。 SW4は2つ並んでいるLEDの向かって右側に存在します。

vanityangel commented 4 years ago

何度も恐縮ですありがとうございます。 DeguベースユニットのSW4の資料が見当たらないのですが、白い四角いボタンが引っ込んだ ところにあるのでそれかと思います。

yoshidam-at commented 4 years ago

SW4は引っ込んでいるボタンになります。 資料があちこちにあって申し訳ないのですが、 https://github.com/open-degu/hardware の『Hardware Overview / 概要』に図がありますので、ご参照ください。

vanityangel commented 4 years ago

重ね重ねありがとうございます! 後ほど確認させていただきます。

vanityangel commented 4 years ago

1.AWS IoT CoreからThings削除 2.Deguベースユニットの初期化(LinuxにUSB接続しdegu_delete_con_info.sh実行) 3.DeguベースユニットのTypeAケーブルをDeguゲートウェイのUSBに差し、DeguベースユニットのSW4を押しながらケーブルMicroB入れる(LED1,2が交互には点灯せず) 4.sudo dfu-util --alt 1 -D degu.binを実行してみましたが、dfu-util: No DFU capble USB device availableと表示されています…

うーん。

vanityangel commented 4 years ago

3の手順の際にJST 2pin PHコネクタを外して、JP3をショートしてください。も実施しています。

yoshidam-at commented 4 years ago

JP1とJP2はショートさせていますでしょうか? https://open-degu.github.io/user_manual/20_software_update/ の『アップデート手順』の3に下にある図を参照願います。

vanityangel commented 4 years ago

はい。赤黒線の部分は引っこ抜いています。 LED1,2が交互に点滅しないのでうまくできていないようです。。

vanityangel commented 4 years ago

失礼しました。赤黒線の部分は接続して、 https://open-degu.github.io/user_manual/20_software_update/ の『アップデート手順』の3に下にある図を参照願います。 のJP1とJP2のショートというのが具体的にどういう操作になりますでしょうか?

そもそもJP2とJP1がURLの図ですと||のようになっているようですが、 Deguベースユニットでは=のようになっています。

JST 2pin PHコネクタを外すというのが大変申し訳ございませんがJP3の部分のコネクタの上部(黒色の小さい部品)を外せば良いのか、対象はJP1、JP2部分の同様の部分なのか? また||と=というようにURLの図と異なるJP1、JP2で良いのかご教授頂けないいでしょうか?

yoshidam-at commented 4 years ago

Degu_dfu__

このような感じですが見えますでしょうか? JP1,2,3全てショートさせた状態(JP1縦, JP2縦, JP3横)です。

赤黒ケーブルは抜いて、USBケーブルからの給電にしてください。

vanityangel commented 4 years ago

うーんURLを見ると「JP1とJP2はショートさせる」とうのではなく、 JST 2pin PHコネクタを外して、JP3をショートしてくださいと書いてあり、 コネクタを外して、And JP3をショートさせる手順なのか? コネクタを外す=この段階でショートしているということを書いているのか不明ですが、 JST 2pin PHコネクタを外してとあり、画像検索すると、赤黒線のコネクタを外せば良いように見受けられる。 違うのかな。。。

vanityangel commented 4 years ago

写真までありがとうございます。 つまりショートというのはカバー的なものはかぶせる。 かつ、私のDeguベースユニットの場合はたまたまJP1,2が横になっていたのでショートされていないということですね。

vanityangel commented 4 years ago

sudo dfu-util --alt 1 -D degu.binの実行がめでたくDone!まで終わりました。 LED1,2も交互に点滅しております。

この後はUSBをDeguゲートウェイから抜くのはわかっているのですが、 赤黒線は元に戻す(=これがようやく電池給電ということがわかりました!)、 そしてJP1,2,3はそのままショートさせていて良いかだけ教えて頂けないでしょうか?

ohsawa commented 4 years ago

そしてJP1,2,3はそのままショートさせていて良いかだけ教えて頂けないでしょうか?

そのままで良いです。

写真の状態だと、USBと電池のどちらか電圧が高い方が自動的に 選択されて給電されます。

このとき、USBを抜いても、リセットは起きずに電池から給電が 継続するので、電源を切りたい場合は、赤黒のコネクタを抜くか、 電池を取り外してください。

ここで注意点なのですが、元のJP1,2が=の並びになっている状態 では電池給電端子から3.6V以上 (つまりベースボードの乾電池3本だと過大入力です!) 供給するとボードが故障する可能性があります。今回は、動作して いるようなので恐らく問題ありません。

従って繰り返しになりますが、=の並びは3V程度のリチウムコイン電池を 想定したジャンパの配置だったので、乾電池での利用は、前述のとおり 写真の配置のまま使ってください。

これらのジャンパの配置と給電のパターンは下記のページに図を用意しています。 是非参考にしてください。 https://github.com/open-degu/hardware

vanityangel commented 4 years ago

ありがとうございます。 なるほど、中を見ないと乾電池も入れてはいけない仕様なのですね。。

また乾電池の場合はJP3は黒い先端部分を抜いた状態が正しいように見受けれたのですが、 ショートさせた状態で良いのですね。

ただ、相変わらずシャドウは更新されません。。

yoshidam-at commented 4 years ago

Degu内main.pyを最新のものに更新にしたうえで、 https://github.com/open-degu/degu-micropython-samples/blob/master/basic/default/main.py AWS IoT Coreのシャドウが更新されない https://open-degu.github.io/trouble_shooting#not_update_shadow の手順を実施ください。

vanityangel commented 4 years ago

ありがとうございます。 やはりシャドウは更新されませんね。。壊れてしまったのかなぁ。。

ちなみに https://open-degu.github.io/user_manual/30_setup/ この証明書の再発行などはしていないのですが、こちらもすべてやり直さないといけないのでしょうか?

yoshidam-at commented 4 years ago

前提

手順

  1. Degu内のネットワーク情報をクリア、AWS IoT CoreからDegu削除
  2. Deguは電源オフの状態(電池やUSBから給電されていない状態)
  3. Deguゲートウェイ経由でスマホでDeguをAWS IoTへ登録
  4. Deguの電源を入れる

で基本的にはDeguは接続されます。 mqttinfo.jsonの内容が間違っていると、Deguゲートウェイ内で動作しているDeguを登録するモジュールが上手く動作せず、AWS IoTへのDegu登録が失敗する場合がありますが、Degu登録は出来ているので、この点は問題ないかと思われます。

vanityangel commented 4 years ago

何度もありがとうございます。 Degu内のmain.pyは現在ご指示頂いた下記のものとなっております。 https://github.com/open-degu/degu-micropython-samples/blob/master/basic/default/main.py

またバイナリも 「sudo dfu-util --alt 1 -D degu.binの実行がめでたくDone!まで終わりました。」 のようにアップデートが完了しているので問題ないと思います。

1点、頂いた手順のうち2が私の手順ではこの時点では電源が入ったままでしかやっておりませんでした。 Degu内のネットワーク情報のクリアが今できる状況でないため別途ご報告させていただきます。

yoshidam-at commented 4 years ago

申し訳ありません。 Degu登録後、そのままシャドウ更新を行う際タイミングによってシャドウ更新されない不具合が見つかりましたので、下記にIssueを発行しております。 対処出来次第リリース致します。

Sometimes Degu fail to update shadow, right after register Degu to AWS IoT Core. open-degu/degu#41