WiFi非搭載のM5StickVをネットにつなげる方法を紹介します。
目次
結論
Groveコネクタ経由でM5StickCと接続するのが一番おすすめです。
M5StickVからUARTでデータを送信し、M5StickCで受信したデータをWiFiでネットに飛ばします。
Wi-FiがないM5StickVを、M5StickCと繋ぎLINEに投稿してみるまでの手順 – Qiitaで詳しく解説されています。
その他の方法
M5StickC以外の方法も考えてみました。
GroveコネクタでESP32と接続する
ようはUARTでデータを受けられてネット接続機能があるデバイスならOKです。
ラズベリーパイやESP32でも動きます。
ただ、小型・バッテリー内蔵・Groveコネクタ搭載しているM5StickCがやっぱりお手頃です。
microSD/SD変換コネクタでFlashAirを使う
WiFi搭載したSDカードの東芝 FlashAirはどうでしょうか?
SDカードにデータを書き込むだけなら、M5StickVより手軽に使えそうです。
M5StickV+FlashAir(W-04)の組み合わせで試してみました。
以下がMaixpyのサンプルスクリプトです。
Aボタンを押すとカメラの画像をSDカードに保存します。
import lcd
import sensor
import image
import time
#ディスプレイ初期化
lcd.init()
lcd.rotation(2)
#イメージセンサー初期化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
#sensor.skip_frames(time = 2000)
#初期設定
from Maix import GPIO
from fpioa_manager import *
fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
but_a=GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)
path = "/sd/image.jpg"
while True:
img = sensor.snapshot()
lcd.display(img)
#Aボタンを押したらSDカードに保存
if but_a.value() == 0:
img = sensor.snapshot()
sensor.run(0) #電圧降下対策
print("save image")
time.sleep(1) #電圧降下対策
img.save(path)
time.sleep(1)
sensor.run(1)
検証してみた結果、安定的に動作させることはできませんでした。
内蔵バッテリーが満充電状態かつモバイルバッテリーから給電している状態だと動作しました。ただ、100%成功するわけではなく、内蔵バッテリーの充電状況によっては動作しないときもありました。
また、内蔵バッテリーやPCからのUSB給電だと失敗します。
FlashAirは通常のSDカードより消費電力が大きいことが影響していると思われます。
M5StickVはmicroSDカードの相性問題がシビアですが、やはり電源(AXP192)が少し弱いのかもしれません。
電源関連はM5StickVのmicroSDカード相性問題で検証しています。
Maixduinoを使う
そもそもWiFiが必要なら、ESP32-WROOM-32を搭載しているMaixduinoを使うのも一案です。
同じK210チップなのでソフトウェアは互換性があります。
M5StickV+を待つ
WiFi機能を追加したM5StickV+が近いうちに発売予定です。
技適の関係上、日本ですぐに使えるかは分かりませんが。