m5stackで組込み!!

Arduinoによるm5stack開発のいろいろと...

Arduino Pro IDEとは?

Arduino IDEとは違いデバッグができるみたいですけど。。。できない。
まずは使い方がさっぱりわからない。
α版なのでバグも多いみたい。。。

ちなみにこちらからダウンロードできます。
github.com

興味がある人はダウンロードしてみてください。
また使い方が分かったらぜひ教えていただきたいです。笑

twitterに投稿 その2

ソースを綺麗にしたので公開

メインファイル

#include <M5Stack.h>
#include "WifiTwitter.h"

WifiTwitter wifitwitter("YOUR_TOKEN");

void setup() {
  String config_ini;
  String ssid;
  String password;
  /* 初期化 */
  M5.begin();
  /* SD初期化 */
  SD.begin();

  /* 文字サイズを変更 */
  M5.Lcd.setTextSize(1);
  
  /* ファイルオープン */
  File datFile = SD.open("/set/config.ini");
  if( datFile )
  {
    M5.Lcd.println("File open successful");
    /* サイズ分ループ */
    while( datFile.available() )
    {
      config_ini = config_ini + datFile.readString();
    }
    /* ファイルクローズ */   
    datFile.close();
  } 
  else
  {
    M5.Lcd.println("File open error hello.txt");
  }
  /* SSID取得 */
  config_ini = config_ini.substring(config_ini.indexOf("#SSID\r\n") + 7);
  ssid = config_ini.substring(0, config_ini.indexOf("\r\n"));
  /* パスワード取得 */
  config_ini = config_ini.substring(config_ini.indexOf("#SSID_PASS\r\n") + 12);
  password = config_ini.substring(0, config_ini.indexOf("\r\n"));

  /* connect to WiFi */
  M5.Lcd.print("Connecting to YOUR_SSID ");
  /* wifi初期化 */
  WiFi.begin(ssid.c_str(), password.c_str());
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      M5.Lcd.print(".");
  }
  M5.Lcd.println(" CONNECTED");

  /* disconnect WiFi as it's no longer needed */
//  WiFi.disconnect(true);
//  WiFi.mode(WIFI_OFF);
}

void loop() {
  M5.update();
  // Aボタン
  if (M5.BtnA.wasPressed()) {
    if (wifitwitter.post("tweet for M5stack A Btn")) {
      int status = wifitwitter.wait();
      if (status == 200) {
        Serial.println("OK.");
      } else {
        Serial.print("failed : code ");
        Serial.println(status);
      }
    } else {
      Serial.println("connection failed.");
    }
  }
  // Bボタン
  if (M5.BtnB.wasPressed()) {
    wifitwitter.post("tweet for M5stack B Btn");
  }
  // Cボタン
  if (M5.BtnC.wasPressed()) {
    wifitwitter.post("tweet for M5stack C Btn");
  }
}

twitterライブラリ

このライブラリをもとにEthernetからwifiに変更しました。
github.com

twitterに投稿 その1

先日うまくいかなかったTwitteへの投稿が成功しました!!
やったー!!!

参考サイト

こちらのサイトを参考にしました。
stewgate-u.appspot.com

http://arduino-tweet.appspot.com/arduino-tweet.appspot.com

通信

私は通信環境でwifiを使っていますが、どちらものサイトもEthernetを使用していますので、Wwificlientを使うように変更しました。

ポート番号

ポート番号80ではアクセスできなかったので、ポート番号443を使用するように変更しました。

投稿

投稿元がArduinoになってることが確認できました!
ソースは綺麗にしてから公開できるようにしときます。

f:id:yamanonono:20200224230734p:plain

Arduino IDEのビルド高速化

日頃Arduino IDEを使って思っていることはビルドが遅い!!
1行直しただけなのに何故こんなに遅いのか。。。

Arduino IDEのビルド高速化

ネットで調べてみたらやっぱり解決策がありました。
こちらのサイトを参考にしました。

https://nagayasu-shinya.com/arduino-buildpath-fix/#toc4nagayasu-shinya.com

まとめ

あまり変わってないような。。。
けど、少しは早くなってるかも?
イマイチ実感がわかないが、ちょっとでも高速にしたい人は試してみてください。

BLEのサーバ側

今回はBLEのサーバ側を作成します。

BLEとは

Bluetooth Low Energyの略語です。
日本語で言うと低消費電力の通信モード、そのまんまですね。

サーバ側とクライアント側

BLEにはサーバとクライアントの役割があり、サーバはデータの送信側、クライアントはデータの受信側です。

サンプルコード

Arduino IDEにあるサンプルコードで作りました。

f:id:yamanonono:20200205220955p:plain
サンプルコード


シリアルにつないでログを出すとこんな感じです。

f:id:yamanonono:20200205222243p:plain
シリアルログ


スマホBluetoothの端末を検索すると「Long name works now」が表示されているのがM5stackです。

f:id:yamanonono:20200205221957p:plain
選択

選択するとちゃんと接続できました!

f:id:yamanonono:20200205221950p:plain
接続