Armadilloフォーラム

PythonによるWifi接続方法について

en_k-makino

2025年6月18日 15時31分

==========
製品型番:AGX4520-C03D0
Debian/ABOSバージョン:3.21.3-at.13
カーネルバージョン:5.10.237-0-at
3G/LTE モジュール情報 (Debianのみ):
その他:
==========

Armadillo Base OSでVScodeを用いてPython言語による開発を行っています。

クライアントとしてWifi接続するプログラムを作成していますが、Wifi接続できません。
使用しているライブラリは、wifi (https://pypi.org/project/wifi/)です。

ネットワークの検索には成功しているようですが、接続するときにエラーが出力されます。
解決方法、もしくは他のライブラリのご紹介をしていただけないでしょうか。
プログラムとエラー内容は添付資料のとおりです。

よろしくお願いいたします。

以上

ファイル ファイルの説明
Python_wifiプログラム.txt Python_wifiプログラム
Python_wifiエラー内容.txt Python_wifiエラー内容
コメント

at_satoshi.ohta

2025年6月18日 16時15分

太田です。

コンテナ内から Wifi 接続するにはコンテナ側から Armadillo Base OS の設定を変更する必要があるので ABOS Web の Rest API を使用するのが良いかと思います。

トークンを設定した後、python側から Rest API を操作する方法はいかがでしょうか?
ABOS Web の Rest API について参考になる製品マニュアルの節は以下です。

- token を設定する方法
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
- 無線ネットワークの操作方法
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…

コンテナから ABOS Web には「https://host.containers.internal:58080」でアクセスできます。

どうぞよろしくお願いいたします。

> 太田です。
>
> コンテナ内から Wifi 接続するにはコンテナ側から Armadillo Base OS の設定を変更する必要があるので ABOS Web の Rest API を使用するのが良いかと思います。
>
> トークンを設定した後、python側から Rest API を操作する方法はいかがでしょうか?
> ABOS Web の Rest API について参考になる製品マニュアルの節は以下です。
>
> - token を設定する方法
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
> - 無線ネットワークの操作方法
> https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
>
> コンテナから ABOS Web には「https://host.containers.internal:58080」でアクセスできます。
>
> どうぞよろしくお願いいたします。
>
>
ご回答ありがとうございます。

トークンの設定は「add_args --env=AUTH="Authorization:Bearer 3b86f373-a1e2-4407-9011-xxxxxxxxxxxx"」といった感じでapp.confにて設定しております。

[ATDE ~]$ curl_rest https://armadillo.local:58080/api/connections
こういったコマンドラインの入力をPython側から操作する方法をご教授いただけないでしょうか。

UARTやBLEといった他の周辺機器との接続は、ライブラリにて成功しました。
おそらく、こういったコマンドラインからの入力をライブラリ内で行っているものだと考えています。

初歩的な質問かと思いますが、よろしくお願いいたします。

以上

at_satoshi.ohta

2025年6月18日 17時50分

太田です。

例えば以下の方法はどうでしょうか?
例では、/api/tokens でトークンの一覧を取得しています。

import requests
 
response = requests.get("https://<Armadillo の ip アドレス>:58080/api/tokens", headers={"Authorization": "Bearer <トークン>"}, verify=False)
print(response.status_code)
print(response.json())

reauestsライブラリを使用すれば Rest API を python でも使用できると思います。

トークンは実際に運用する際にはスクリプトに直書きは良くないと思われますのでご注意ください。

どうぞよろしくお願いいたします。