はじめに
バスがあと何分で着くかだけを表示するミニサイネージを作ったのですが、これを販売する際に各家庭のWiFiの設定が必要になります。そこで、SDカードにWiFi設定を書き込んでもらうことで接続できるようにしました。
最寄りのバス停にバスがあと何分で着くかだけを表示するものなんだけど、1番よく使う#熊本 #MaaS #M5Stack #GTFS pic.twitter.com/pjmSrhtCe0
— がちもとさん@メタバース熊本 (@sotongshi) December 16, 2021
開発環境
- Windows 10 PC
- M5Stack
実装
1.M5Stackの初期設定はこちらからお願いします
2.M5Stackを起動したらSetupボタンを押し、internet modeでM5Stackを起動します
Setup | Switch mode | WiFi Select | API Key |
---|---|---|---|
3.RebootするとAPI Keyが表示されるので、PCから https://flow.m5stack.com/ に接続し、API Keyを入力しましょう
4.settings.jsonにSSIDとPasswordを記述し、SDカードに置いときます
{
"SSID":"xxxx",
"Password":"yyyy"
}
5.UIFlowでプログラムを書きます
6.BlocklyからPythonにすると
wifiCfg.doConnect(str((json_data['SSID'])), str((json_data['Password'])))
が変数などの初期化部分に記述されてしまうようです。。
settings.jsonを読み込んだあとにWiFiに接続するように変更しましょう。
from m5stack import *
from m5ui import *
from uiflow import *
import wifiCfg
import json
setScreenColor(0x222222)
json_data = None
lcd.font(lcd.FONT_DejaVu24)
with open('/sd/settings.json', 'r') as fs:
json_data = json.loads((fs.read()))
wifiCfg.doConnect(str((json_data['SSID'])), str((json_data['Password'])))
if wifiCfg.wlan_sta.isconnected():
lcd.print(((str('Connected to ') + str(str((json_data['SSID']))))), 0, 0, 0xffffff)
else:
lcd.print(((str('Not connected to ') + str(str((json_data['SSID']))))), 0, 0, 0xffffff)
7.Runで実行、もしくはDownloadでM5Stackにデプロイします。
Blocklyに戻るとPythonの方も元に戻るので注意してください。
お疲れ様でした。