会社でIoTっぽい仕事を任された
公開 2024/11/15 16:18
最終更新
2024/11/15 17:45
ここのところ、Pythonを使って会社のデータ集計をやってきたのですけれども、マイコンを利用したIoTっぽいことをやることになりました。(相談相手がいないのでChatGPTとかローカルLLMとかにお世話になっていたりします。十分実用的になってありがたいことです。M5Stack関係でもVSCode+Continue+Ollamaはいい仕事をしてくれます。)
今のところ、テストケースの段階でしかないので、M5Stack社のATOMS3 Liteをコアに進めていこうかと。コストダウンの圧力が強くなれば、互換カードを利用することも考えたいですが、多分必要ないかなと考えています。個人的にはM5StackとかM5Stick C Plusなんかも持っているんですが、運用上必要な機能はESP32(WiFi)とGrove互換I/F(I2C)くらいなので。
ATOMS3 Lite入手当日の成果としては、Lチカできました。
UIFlowとか横道にそれたり、VSCode+PlatformIOで書き込みできないことに悩んだりしたので、
一応の顛末を。
M5Burner-v3-beta-win-x64 からUIFlow 2.0のFirmwareを書き込むとCOM5(もともとはCOM4でした)が出てくるけど、この状態のまま、PlatformIOから書き込みを行おうとしてもSerial Portが反応しないと言われて使用できない。
ATOMS3 Lite本体の横にあるResetボタンを長押しし、緑ランプが点灯するのを待つ。(2秒程度で消える)するとCOM5が消えてCOM4が出てくる。この状態であれば、書き込みできる。
PlatformIOから追加するライブラリは、以下。
m5stack/M5Unified@^0.2.0
m5stack/M5AtomS3@^1.0.1
fastled/FastLED@^3.9.3
m5stack/M5GFX@^0.2.0
ソースは以下。
ベースは検索でヒットした「さとやまノート」様のページからもらってきていますが、うまく動かないので、公式ページからgithubをたどって<https://github.com/m5stack/M5AtomS3/blob/main/examples/Basics/lite_led/lite_led.ino>
同様なコードであることを確認して使用しています。
公式ではAtomS3.dis.show();のところはAtomS3.update();になっていますね。
同様に動くのでどっちでもいいかなと。
明日はWiFiを試してみたいと思います。
Stick C PlusでMQTTを試したものがあるのでこれを移植してみようかと思います。
今のところ、テストケースの段階でしかないので、M5Stack社のATOMS3 Liteをコアに進めていこうかと。コストダウンの圧力が強くなれば、互換カードを利用することも考えたいですが、多分必要ないかなと考えています。個人的にはM5StackとかM5Stick C Plusなんかも持っているんですが、運用上必要な機能はESP32(WiFi)とGrove互換I/F(I2C)くらいなので。
ATOMS3 Lite入手当日の成果としては、Lチカできました。
UIFlowとか横道にそれたり、VSCode+PlatformIOで書き込みできないことに悩んだりしたので、
一応の顛末を。
M5Burner-v3-beta-win-x64 からUIFlow 2.0のFirmwareを書き込むとCOM5(もともとはCOM4でした)が出てくるけど、この状態のまま、PlatformIOから書き込みを行おうとしてもSerial Portが反応しないと言われて使用できない。
ATOMS3 Lite本体の横にあるResetボタンを長押しし、緑ランプが点灯するのを待つ。(2秒程度で消える)するとCOM5が消えてCOM4が出てくる。この状態であれば、書き込みできる。
PlatformIOから追加するライブラリは、以下。
m5stack/M5Unified@^0.2.0
m5stack/M5AtomS3@^1.0.1
fastled/FastLED@^3.9.3
m5stack/M5GFX@^0.2.0
ソースは以下。
#include <M5AtomS3.h>
void setup() {
// put your setup code here, to run once:
AtomS3.begin(true); // true: enable LED, false: disable LED(default:false)
AtomS3.dis.setBrightness(100);
}
void loop() {
AtomS3.dis.drawpix(0xff0000); // RED
AtomS3.dis.show();
delay(500);
AtomS3.dis.drawpix(0x00ff00); // GREEN
AtomS3.dis.show();
delay(500);
AtomS3.dis.drawpix(0x0000ff); // BLUE
AtomS3.dis.show();
delay(500);
}
ベースは検索でヒットした「さとやまノート」様のページからもらってきていますが、うまく動かないので、公式ページからgithubをたどって<https://github.com/m5stack/M5AtomS3/blob/main/examples/Basics/lite_led/lite_led.ino>
同様なコードであることを確認して使用しています。
公式ではAtomS3.dis.show();のところはAtomS3.update();になっていますね。
同様に動くのでどっちでもいいかなと。
明日はWiFiを試してみたいと思います。
Stick C PlusでMQTTを試したものがあるのでこれを移植してみようかと思います。
