<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[日本語フォーラム]]></title><description><![CDATA[日本語フォーラム]]></description><link>https://community.m5stack.com/category/14</link><generator>RSS for Node</generator><lastBuildDate>Sat, 16 May 2026 05:12:36 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/category/14.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 May 2026 10:59:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[StackChan がやってきました。]]></title><link>https://community.m5stack.com/topic/8198/stackchan-がやってきました</link><guid isPermaLink="true">https://community.m5stack.com/topic/8198/stackchan-がやってきました</guid><pubDate>Sat, 02 May 2026 10:59:36 GMT</pubDate></item><item><title><![CDATA[M5Stack ALL BAND RADIO]]></title><link>https://community.m5stack.com/topic/8116/m5stack-all-band-radio</link><guid isPermaLink="true">https://community.m5stack.com/topic/8116/m5stack-all-band-radio</guid><pubDate>Fri, 06 Mar 2026 22:33:41 GMT</pubDate></item><item><title><![CDATA[M5Core2 All Band Radio]]></title><link>https://community.m5stack.com/topic/8115/m5core2-all-band-radio</link><guid isPermaLink="true">https://community.m5stack.com/topic/8115/m5core2-all-band-radio</guid><pubDate>Fri, 06 Mar 2026 22:32:22 GMT</pubDate></item><item><title><![CDATA[M5Stack FM Radio]]></title><link>https://community.m5stack.com/topic/8114/m5stack-fm-radio</link><guid isPermaLink="true">https://community.m5stack.com/topic/8114/m5stack-fm-radio</guid><pubDate>Fri, 06 Mar 2026 22:31:22 GMT</pubDate></item><item><title><![CDATA[質問：M5Stack by official のアップデートについて。]]></title><link>https://community.m5stack.com/topic/8088/質問-m5stack-by-official-のアップデートについて</link><guid isPermaLink="true">https://community.m5stack.com/topic/8088/質問-m5stack-by-official-のアップデートについて</guid><pubDate>Tue, 17 Feb 2026 13:11:33 GMT</pubDate></item><item><title><![CDATA[DRUM with M5Core2]]></title><link>https://community.m5stack.com/topic/7774/drum-with-m5core2</link><guid isPermaLink="true">https://community.m5stack.com/topic/7774/drum-with-m5core2</guid><pubDate>Fri, 22 Aug 2025 08:52:02 GMT</pubDate></item><item><title><![CDATA[DRUM with M5Stack]]></title><link>https://community.m5stack.com/topic/7773/drum-with-m5stack</link><guid isPermaLink="true">https://community.m5stack.com/topic/7773/drum-with-m5stack</guid><pubDate>Fri, 22 Aug 2025 08:51:08 GMT</pubDate></item><item><title><![CDATA[M5 WebRadio PCM5100A Dual PA]]></title><link>https://community.m5stack.com/topic/7762/m5-webradio-pcm5100a-dual-pa</link><guid isPermaLink="true">https://community.m5stack.com/topic/7762/m5-webradio-pcm5100a-dual-pa</guid><pubDate>Mon, 18 Aug 2025 03:44:36 GMT</pubDate></item><item><title><![CDATA[DRUM 2025 VSAMPLER M5Stack]]></title><link>https://community.m5stack.com/topic/7754/drum-2025-vsampler-m5stack</link><guid isPermaLink="true">https://community.m5stack.com/topic/7754/drum-2025-vsampler-m5stack</guid><pubDate>Fri, 15 Aug 2025 22:56:26 GMT</pubDate></item><item><title><![CDATA[M5Stack FM Radio]]></title><link>https://community.m5stack.com/topic/7752/m5stack-fm-radio</link><guid isPermaLink="true">https://community.m5stack.com/topic/7752/m5stack-fm-radio</guid><pubDate>Fri, 15 Aug 2025 04:30:30 GMT</pubDate></item><item><title><![CDATA[AtomS3R M12のレンズ距離による画質低下について]]></title><link>https://community.m5stack.com/topic/7733/atoms3r-m12のレンズ距離による画質低下について</link><guid isPermaLink="true">https://community.m5stack.com/topic/7733/atoms3r-m12のレンズ距離による画質低下について</guid><pubDate>Sun, 03 Aug 2025 10:00:26 GMT</pubDate></item><item><title><![CDATA[UnitV2のWiFi設定]]></title><description><![CDATA[@amudon
おそらくネットワーク接続できました！！！！！
ありがとうございます
]]></description><link>https://community.m5stack.com/topic/7726/unitv2のwifi設定</link><guid isPermaLink="true">https://community.m5stack.com/topic/7726/unitv2のwifi設定</guid><dc:creator><![CDATA[amudon]]></dc:creator><pubDate>Wed, 30 Jul 2025 08:14:02 GMT</pubDate></item><item><title><![CDATA[カードピュータ1.1をラズベリーパイのbleキーボードとして使いたいのですが、ブルートゥースでペアリングができません。]]></title><description><![CDATA[@yuyun2000 said in カードピュータ1.1をラズベリーパイのbleキーボードとして使いたいのですが、ブルートゥースでペアリングができません。:

Raspberry PiのBluetooth設定Raspbian Bullseyeでは、BlueZのバージョンによってBLE互換性が異なる場合があります。以下のコマンドでBluetoothサービスを再起動し、デバイスを再スキャンしてください：
sudo systemctl restart bluetooth
bluetoothctl scan on

当初はGUIデスクトップで接続できない状態でしたが、おかげさまでCLIコマンドで bluetoothctl を使い、scan on でアドレスをスキャンし、pair &lt;MACアドレス&gt; で無事に接続できました。
CLIコマンドの使い方をよく知らなかったので調べるきっかけができました。ありがとうございます。
]]></description><link>https://community.m5stack.com/topic/7695/カードピュータ1-1をラズベリーパイのbleキーボードとして使いたいのですが-ブルートゥースでペアリングができません</link><guid isPermaLink="true">https://community.m5stack.com/topic/7695/カードピュータ1-1をラズベリーパイのbleキーボードとして使いたいのですが-ブルートゥースでペアリングができません</guid><dc:creator><![CDATA[deardeer]]></dc:creator><pubDate>Wed, 16 Jul 2025 23:39:45 GMT</pubDate></item><item><title><![CDATA[Atom JoyStickのATOM S3のファームをVisualStudioCodeのPlatformIOプラグインから書き込みたい]]></title><description><![CDATA[@kuriko
早速のご回答ありがとうございます。テンプレートダウンロードさせて頂きました。
こちらのテンプレートと設定値を比較しながら再度ビルドとアップロードを試みます。
]]></description><link>https://community.m5stack.com/topic/7647/atom-joystickのatom-s3のファームをvisualstudiocodeのplatformioプラグインから書き込みたい</link><guid isPermaLink="true">https://community.m5stack.com/topic/7647/atom-joystickのatom-s3のファームをvisualstudiocodeのplatformioプラグインから書き込みたい</guid><dc:creator><![CDATA[stx28eeeee3]]></dc:creator><pubDate>Wed, 02 Jul 2025 05:02:49 GMT</pubDate></item><item><title><![CDATA[module_llm.setbaudrateのエラーの対処法]]></title><link>https://community.m5stack.com/topic/7623/module_llm-setbaudrateのエラーの対処法</link><guid isPermaLink="true">https://community.m5stack.com/topic/7623/module_llm-setbaudrateのエラーの対処法</guid><pubDate>Tue, 17 Jun 2025 22:53:14 GMT</pubDate></item><item><title><![CDATA[16340リチウムバッテリー残量の取得]]></title><description><![CDATA[@SOMESOME
GPIOの8から、ADCを通した電圧がとれるようです。
analogRead(8);
当方では取れた値と計算値で以下のような値が取れてます。
実測値
4.16 V ADC 2440	満充電
3.80 V ADC 2325
3.71 V ADC 2222
3.50 V ADC 2100
3.00 V ADC 1800
計算値
3.4 V（警告） ≒ ADC 2036
3.2 V（機能制限） ≒ ADC 1916
3.0 V（強制停止） ≒ ADC 1796
ざっくり実装でよければ
100%	4.150V
90&amp;	4.035V
80%	3.920V	
70%	3.805V
60%	3.690V
50%	3.575V
40%	3.460V
30%	3.345V
20%	3.230V
10%	3.115V
くらいを見積もればよいのでは、と思われます。
]]></description><link>https://community.m5stack.com/topic/7562/16340リチウムバッテリー残量の取得</link><guid isPermaLink="true">https://community.m5stack.com/topic/7562/16340リチウムバッテリー残量の取得</guid><dc:creator><![CDATA[wat_nor]]></dc:creator><pubDate>Tue, 20 May 2025 05:30:26 GMT</pubDate></item><item><title><![CDATA[M5Stack Reflective IR モジュールが 0 のままになる問題について（相談）]]></title><link>https://community.m5stack.com/topic/7296/m5stack-reflective-ir-モジュールが-0-のままになる問題について-相談</link><guid isPermaLink="true">https://community.m5stack.com/topic/7296/m5stack-reflective-ir-モジュールが-0-のままになる問題について-相談</guid><pubDate>Sat, 15 Feb 2025 03:06:55 GMT</pubDate></item><item><title><![CDATA[COM.LTE Module(SIM7600G)でデータ送信ができません]]></title><description><![CDATA[データ通信を行うことができたので、共有させていただきます。
SIM7600のデータシートを参照し、通信を行うことができました。
COM.LTE Module(SIM7600G)を使用することで、長距離におけるデータ伝送が可能です。
使用する方がいましたら、参考にしてください。
Va10, Va11, Va12にセンサで取得したデータを代入することで、
観測機器を製作できます。
[　M5stack Basic code　]
#include &lt;M5Stack.h&gt;                                
#include &lt;stdint.h&gt;
#include &lt;vector&gt;
#include "TFTTerminal.h"

/*serial通信のinclude

#include &lt;WiFi.h&gt;
#include &lt;WiFiMulti.h&gt;
#include &lt;HTTPClient.h&gt;
#include &lt;ArduinoJson.h&gt;

*/

TFT_eSprite Disbuff      = TFT_eSprite(&amp;M5.Lcd);
TFT_eSprite TerminalBuff = TFT_eSprite(&amp;M5.Lcd);
TFTTerminal terminal(&amp;TerminalBuff);
TaskHandle_t xhandle_lte_event = NULL;
SemaphoreHandle_t command_list_samap;
uint32_t numberbuff[128];
String readstr;
uint8_t restate;

char buffer[255];

uint32_t    interval = 1; // unit:sec
uint16_t    chipid   = ESP.getEfuseMac() % 10000;
const char* deployid = "AKfycbw1vfUnV_E6B9O0tWaKMPKXkvahMsXIG-jrpk2SS2a1kGAAz59iQy1_p_H7kp7x8VnKsg";

const char *send_url = "https://script.google.com/macros/s/AKfycbyMcbm5u-ySil5s6LF6__EyyAVYMt9idkIRBaRBWk3ut3jR3A9VFe7lobGQE9qdBHuR/exec";

unsigned long counter = 0;
unsigned long tick = 0;
const char* data = "Hello World";

const String sim_apn = "ppsim.jp";  
const String sim_user = "pp@sim";
const String sim_pass = "jpn";

typedef enum {
    kQUERY_MO = 0,
    KTEST_MO,
    kASSIGN_MO,
    kACTION_MO,
    kQUERY_MT,
    kTEST_MT,
    kASSIGN_MT,
    kACTION_MT,
    kINFORM
} LTEMsg_t;

typedef enum {
    kErrorSendTimeOUT = 0xe1,
    kErrorReError     = 0xe2,
    kErroeSendError   = 0xe3,
    kSendReady        = 0,
    kSending          = 1,
    kWaitforMsg       = 2,
    kWaitforRead      = 3,
    kReOK
} LTEState_t;

struct ATCommand {
    uint8_t command_type;
    String str_command;
    uint16_t send_max_number;
    uint16_t max_time;
    uint8_t state;
    String read_str;
    uint16_t _send_count;
    uint16_t _send_time_count;

} user;

using namespace std;
vector&lt;ATCommand&gt; serial_at;
String zmmi_str;
void LTEModuleTask(void* arg) {
    int Number = 0;
    String restr;
    while (1) {
        xSemaphoreTake(command_list_samap, portMAX_DELAY);

        if (Serial2.available() != 0) {
            String str = Serial2.readString();
            restr += str;

            if (restr.indexOf("\r\n") != -1) {
            }

            if (restr.indexOf("+ZMMI:") != -1) {
                zmmi_str = restr;
            } else if ((restr.indexOf("OK") != -1) ||
                       (restr.indexOf("ERROR") != -1)) {
                Serial.print(restr);
                if (restr.indexOf("OK") != -1) {
                    if ((serial_at[0].command_type == kACTION_MO) ||
                        (serial_at[0].command_type == kASSIGN_MO)) {
                        serial_at.erase(serial_at.begin());
                        Serial.printf("erase now %d\n", serial_at.size());
                    } else {
                        serial_at[0].read_str = restr;
                        serial_at[0].state    = kWaitforRead;
                    }
                } else if (restr.indexOf("ERROR") != -1) {
                    serial_at[0].state = kErrorReError;
                } else {
                }
                restr.clear();
            }
        }

        if (serial_at.empty() != true) {
            Number = 0;
            switch (serial_at[0].state) {
                case kSendReady:
                    Serial.printf(serial_at[0].str_command.c_str());
                    Serial2.write(serial_at[0].str_command.c_str());
                    serial_at[0].state = kSending;
                    break;
                case kSending:

                    if (serial_at[0]._send_time_count &gt; 0) {
                        serial_at[0]._send_time_count--;
                    } else {
                        serial_at[0].state = kWaitforMsg;
                    }
                    /* code */
                    break;
                case kWaitforMsg:
                    if (serial_at[0]._send_count &gt; 0) {
                        serial_at[0]._send_count--;
                        serial_at[0]._send_time_count = serial_at[0].max_time;
                        Serial.printf(serial_at[0].str_command.c_str());
                        Serial2.write(serial_at[0].str_command.c_str());
                        restr.clear();
                        serial_at[0].state = 1;
                    } else {
                        serial_at[0].state = kErrorSendTimeOUT;
                    }
                    /* code */
                    break;
                case kWaitforRead:
                    /* code */
                    break;
                case 4:
                    /* code */
                    break;
                case kErrorSendTimeOUT:
                    /* code */
                    break;
                case 0xe2:
                    /* code */
                    break;
                default:
                    break;
            }
        }
        xSemaphoreGive(command_list_samap);
        delay(10);
    }
}

void AddMsg(String str, uint8_t type, uint16_t sendcount, uint16_t sendtime) {
    struct ATCommand newcommand;
    newcommand.str_command      = str;
    newcommand.command_type     = type;
    newcommand.max_time         = sendtime;
    newcommand.send_max_number  = sendcount;
    newcommand.state            = 0;
    newcommand._send_count      = sendcount;
    newcommand._send_time_count = sendtime;
    xSemaphoreTake(command_list_samap, portMAX_DELAY);
    serial_at.push_back(newcommand);
    xSemaphoreGive(command_list_samap);

    while ((readSendState(0) == kSendReady) || (readSendState(0) == kSending) ||
           (readSendState(0) == kWaitforMsg))
        delay(50);
    restate = readSendState(0);
    readstr = ReadMsgstr(0).c_str();
    EraseFirstMsg();

    terminal.print(readstr);

}

uint8_t readSendState(uint32_t number) {
    xSemaphoreTake(command_list_samap, portMAX_DELAY);
    uint8_t restate = serial_at[number].state;
    xSemaphoreGive(command_list_samap);
    return restate;
}

uint32_t getATMsgSize() {
    xSemaphoreTake(command_list_samap, portMAX_DELAY);
    uint32_t restate = serial_at.size();
    xSemaphoreGive(command_list_samap);
    return restate;
}
String ReadMsgstr(uint32_t number) {
    xSemaphoreTake(command_list_samap, portMAX_DELAY);
    String restate = serial_at[number].read_str;
    xSemaphoreGive(command_list_samap);
    return restate;
}

bool EraseFirstMsg() {
    xSemaphoreTake(command_list_samap, portMAX_DELAY);
    serial_at.erase(serial_at.begin());
    xSemaphoreGive(command_list_samap);
    return true;
}

uint16_t GetstrNumber(String Str, uint32_t* ptrbuff) {
    uint16_t count = 0;
    String Numberstr;
    int indexpos = 0;
    while (Str.length() &gt; 0) {
        indexpos = Str.indexOf(",");
        if (indexpos != -1) {
            Numberstr      = Str.substring(0, Str.indexOf(","));
            Str            = Str.substring(Str.indexOf(",") + 1, Str.length());
            ptrbuff[count] = Numberstr.toInt();
            count++;
        } else {
            ptrbuff[count] = Str.toInt();
            count++;
            break;
        }
    }
    return count;
}

vector&lt;String&gt; restr_v;
uint16_t GetstrNumber(String StartStr, String EndStr, String Str) {
    uint16_t count = 0;
    String Numberstr;
    int indexpos = 0;

    Str = Str.substring(Str.indexOf(StartStr) + StartStr.length(),
                        Str.indexOf(EndStr));
    Str.trim();
    restr_v.clear();

    while (Str.length() &gt; 0) {
        indexpos = Str.indexOf(",");
        if (indexpos != -1) {
            Numberstr = Str.substring(0, Str.indexOf(","));
            Str       = Str.substring(Str.indexOf(",") + 1, Str.length());
            restr_v.push_back(Numberstr);
            count++;
        } else {
            restr_v.push_back(Numberstr);
            ;
            count++;
            break;
        }
    }
    return count;
}

String getReString(uint16_t Number) {
    if (restr_v.empty()) {
        return String("");
    }
    return restr_v.at(Number);
}

uint16_t GetstrNumber(String StartStr, String EndStr, String Str,
                      uint32_t* ptrbuff) {
    uint16_t count = 0;
    String Numberstr;
    int indexpos = 0;

    Str = Str.substring(Str.indexOf(StartStr) + StartStr.length(),
                        Str.indexOf(EndStr));
    Str.trim();

    while (Str.length() &gt; 0) {
        indexpos = Str.indexOf(",");
        if (indexpos != -1) {
            Numberstr      = Str.substring(0, Str.indexOf(","));
            Str            = Str.substring(Str.indexOf(",") + 1, Str.length());
            ptrbuff[count] = Numberstr.toInt();
            count++;
        } else {
            ptrbuff[count] = Str.toInt();
            count++;
            break;
        }
    }
    return count;
}


//データ送信プログラム
void addRowToGoogleSheetsdoGet(float val0, float val1, float val2) {
//URL
  //String url = "https://script.google.com/macros/s/" + String(deployid) + "/exec?chipid=ESP" + String(chipid) + "&amp;val0=" + String(val0) + "&amp;val1=" + String(val1) + "&amp;val2=" + String(val2);
  String url =  String(send_url) + "?chipid=ESP" + String(chipid) + "&amp;val0=" + String(val0) + "&amp;val1=" + String(val1) + "&amp;val2=" + String(val2);

  terminal.println("[HTTP] begin...");
  terminal.println(url);
  terminal.println("[HTTP] POST...");

// コンテンツタイプの設定
  AddMsg("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n", kASSIGN_MT, 1000, 1000);

// AT commmand : URLの設定 &amp; http post（今回はURLにデータを追加している）
  AddMsg("AT+HTTPPARA=\"URL\",\"" + url + "\"\r\n", kASSIGN_MT, 1000, 1000);

  delay(1000);
  terminal.println("[HTTP] GET...");

// HTTP GET リクエスト
  AddMsg("AT+HTTPACTION=0\r\n", kASSIGN_MT, 5000, 5000);

  delay(1000);
}


//データdopost送信プログラム
void addRowToGoogleSheetsdoPost(float val0, float val1, float val2) {
//URL
  //String url = "https://script.google.com/macros/s/" + String(deployid) + "/exec?chipid=ESP" + String(chipid) + "&amp;val0=" + String(val0) + "&amp;val1=" + String(val1) + "&amp;val2=" + String(val2);
  //String url =  String(send_url) + "?chipid=ESP" + String(chipid) + "&amp;val0=" + String(val0) + "&amp;val1=" + String(val1) + "&amp;val2=" + String(val2);

  String jsonPayload = "{\"chipid\":\"ESP" + String(chipid) + 
                     "\", \"val0\":" + String(val0) + 
                     ", \"val1\":" + String(val1) + 
                     ", \"val2\":" + String(val2) + "}";

  terminal.println("[HTTP] begin...");

  terminal.println("[HTTP] POST...");

  // HTTPヘッダーを設定
  AddMsg("AT+HTTPPARA=\"URL\",\"" + String(send_url) + "\"\r\n", kASSIGN_MT, 1000, 1000);
  AddMsg("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n", kASSIGN_MT, 1000, 1000);

// データを送信
  AddMsg("AT+HTTPDATA=" + String(jsonPayload.length()) + ",10000\r\n", kASSIGN_MT, 1000, 1000);
  delay(100);
  AddMsg(jsonPayload + "\r\n", kASSIGN_MT, 1000, 1000);
  delay(100);
  AddMsg("AT+HTTPACTION=1\r\n", kASSIGN_MT, 5000, 5000);

  delay(1000);
  terminal.println("[HTTP] GET...");

// HTTP GET リクエスト
  AddMsg("AT+HTTPACTION=0\r\n", kASSIGN_MT, 5000, 5000);

  delay(1000);
}

void setup() {
    // put your setup code here, to run once:
    M5.begin(true, true, true, false); //LCD, SDカード, serial, I2Cの有効無効
    Serial2.begin(115200, SERIAL_8N1, 5, 13);

    Disbuff.createSprite(320, 20);
    Disbuff.fillRect(0, 0, 320, 20, BLACK);
    Disbuff.drawRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
    Disbuff.pushSprite(0, 0);

    TerminalBuff.createSprite(120, 220);
    TerminalBuff.fillRect(0, 0, 120, 220, BLACK);
    TerminalBuff.drawRect(0, 0, 120, 220, Disbuff.color565(36, 36, 36));
    TerminalBuff.pushSprite(0, 20);
    terminal.setGeometry(0, 20, 120, 220);

    pinMode(2, OUTPUT);
    digitalWrite(2, 0);

    Disbuff.setTextColor(WHITE);
    Disbuff.setTextSize(1);
    for (int i = 0; i &lt; 100; i++) {
        Disbuff.fillRect(0, 0, 320, 20, Disbuff.color565(36, 36, 36));
        Disbuff.pushSprite(0, 0);
        Disbuff.setCursor(7, 7);
        Disbuff.printf("Reset Module %02d", i);
        Disbuff.pushSprite(0, 0);
        delay(10);
    }
    digitalWrite(2, 1);

    xTaskCreate(LTEModuleTask, "LTEModuleTask", 1024 * 2, (void*)0, 4,
                &amp;xhandle_lte_event);
    command_list_samap = xSemaphoreCreateMutex();
    xSemaphoreGive(command_list_samap);

    terminal.println("Initializing SIM7600...");

// モジュール起動確認
    AddMsg("AT\r\n", kQUERY_MT, 1000, 1000);

// 機能の追加（フルモード）
    AddMsg("AT+CFUN=1\r\n", kQUERY_MT, 1000, 1000);

// LTE接続
    AddMsg("AT+CGATT=1\r\n", kQUERY_MT, 1000, 1000);

//　通信強度
    AddMsg("AT+CSQ\r\n", kQUERY_MT, 1000, 1000);

//　インターネット登録状況
    AddMsg("AT+CREG?\r\n", kQUERY_MT, 1000, 1000);

// APN設定
    AddMsg("AT+CGDCONT = 1, \"IP\", \"" + sim_apn + "\"\r\n", kASSIGN_MT, 1000, 1000);

// 認証情報の設定 : 無くても良い
    //AddMsg("AT+CGAUTH = 1, \"" + sim_user + "\", \"" + sim_pass + "\"\r\n", kASSIGN_MT, 1000, 1000);

// PDPコンテキスト有効化
    AddMsg("AT+CGACT=1,1\r\n", kQUERY_MT, 1000, 1000);

// HTTP機能の初期化
    AddMsg("AT+HTTPINIT\r\n", kQUERY_MT, 1000, 1000);

// PDPコンテキストを設定
    AddMsg("AT+HTTPPARA=\"CID\",1\r\n", kQUERY_MT, 1000, 1000);

}

void loop() {
    M5.update();
    float val0 = random(0, 1000) / 10.0;
    float val1 = random(0, 1000) / 10.0;
    float val2 = random(0, 1000) / 10.0;

    terminal.print("ESP");
    terminal.println(chipid);
    terminal.printf("[val0] %.1f\n[val1] %.1f\n[val2] %.1f\n", val0, val1, val2);
    addRowToGoogleSheetsdoGet(val0, val1, val2);
    //addRowToGoogleSheetsdoPost(val0, val1, val2);
    delay(interval * 1000);

    if (M5.BtnC.wasPressed()) {
        terminal.println("Restarting...");
        delay(1000);
        esp_restart();  // ESP32をリセット
    }

    delay(1000);
    esp_sleep_enable_timer_wakeup(10000);
    esp_sleep_enable_ext0_wakeup((gpio_num_t)M5.BtnA.wasPressed(), 0);
    esp_deep_sleep_start();

}


/*本来のhttp post方法（仮）-----------------------------------------------------

// URL を設定
AddMsg("AT+HTTPPARA=\"URL\",\"" + url + "\"\r\n", kASSIGN_MT, 1000, 1000);

// コンテンツのタイプを設定（JSON 例）
AddMsg("AT+HTTPPARA=\"CONTENT\",\"application/json\"\r\n", kASSIGN_MT, 1000, 1000);

// 送信データの準備（例：50バイトのデータを10秒以内に送信）
AddMsg("AT+HTTPDATA=50,10000\r\n", kASSIGN_MT, 1000, 1000);
delay(100);  // 少し待機

// 送信する JSON データを設定（例）
AddMsg("{\"temperature\":25.5,\"humidity\":60}\r\n", kASSIGN_MT, 1000, 1000);
delay(100);

// HTTP POST を開始
AddMsg("AT+HTTPACTION=1\r\n", kASSIGN_MT, 1000, 1000);
delay(5000);  // 応答待機

// レスポンスを取得（HTTP GET）
AddMsg("AT+HTTPREAD\r\n", kASSIGN_MT, 1000, 1000);

--------------------------------------------------------------------------------*/

[　Google Spread Sheet code　]
function doGet(e) {
  Logger.log("Received GET request: " + JSON.stringify(e));

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  if (!sheet) {
    return ContentService.createTextOutput("Error: Sheet not found").setMimeType(ContentService.MimeType.TEXT);
  }

  // パラメータを取得
  var chipid = e.parameter.chipid || "Unknown";
  var val0 = parseFloat(e.parameter.val0) || 0;
  var val1 = parseFloat(e.parameter.val1) || 0;
  var val2 = parseFloat(e.parameter.val2) || 0;

  // スプレッドシートにデータを記録
  sheet.insertRowBefore(2);
  sheet.getRange(2, 1).setValue(new Date()); // 受信日時
  sheet.getRange(2, 2).setValue(chipid);
  sheet.getRange(2, 3).setValue(val0);
  sheet.getRange(2, 4).setValue(val1);
  sheet.getRange(2, 5).setValue(val2);

  return ContentService.createTextOutput("Data received successfully").setMimeType(ContentService.MimeType.TEXT);
}

以下は本プログラムの動作及び、システム構成です。
[image: 1742129699102-com.lte_page-0001.jpg]
[image: 1742129711430-com.lte_page-0002.jpg]
[image: 1742129722203-com.lte_page-0003.jpg]
[image: 1742129733672-com.lte_page-0004.jpg]
[image: 1742129742017-com.lte_page-0005.jpg]
[image: 1742129750099-com.lte_page-0006.jpg]
]]></description><link>https://community.m5stack.com/topic/7215/com-lte-module-sim7600g-でデータ送信ができません</link><guid isPermaLink="true">https://community.m5stack.com/topic/7215/com-lte-module-sim7600g-でデータ送信ができません</guid><dc:creator><![CDATA[hakushiro]]></dc:creator><pubDate>Sun, 19 Jan 2025 02:12:39 GMT</pubDate></item><item><title><![CDATA[DIN BASEのバッテリー残量が少ない時の動作について]]></title><link>https://community.m5stack.com/topic/7184/din-baseのバッテリー残量が少ない時の動作について</link><guid isPermaLink="true">https://community.m5stack.com/topic/7184/din-baseのバッテリー残量が少ない時の動作について</guid><pubDate>Sat, 11 Jan 2025 05:12:16 GMT</pubDate></item><item><title><![CDATA[拡張モジュールの互換性について教えてください]]></title><description><![CDATA[@k0u1_H
お役に立てて嬉しいです。
]]></description><link>https://community.m5stack.com/topic/7069/拡張モジュールの互換性について教えてください</link><guid isPermaLink="true">https://community.m5stack.com/topic/7069/拡張モジュールの互換性について教えてください</guid><dc:creator><![CDATA[kuriko]]></dc:creator><pubDate>Mon, 09 Dec 2024 05:24:28 GMT</pubDate></item><item><title><![CDATA[M5Stack Fire V2.7のGPIO36をサーボモータ制御に使えない件]]></title><description><![CDATA[Fire v2.7 ( ESP32 )
https://docs.m5stack.com/ja/core/fire_v2.7
GPI26は DAC です。
GPI36は ADC です。
SENSOR_VP は GPIO36 として入力に使用します。
GPIO34 ~ 39. は 入力専用です。
[image: 1755489453148-%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-08-18-12.53.21.png]
]]></description><link>https://community.m5stack.com/topic/6909/m5stack-fire-v2-7のgpio36をサーボモータ制御に使えない件</link><guid isPermaLink="true">https://community.m5stack.com/topic/6909/m5stack-fire-v2-7のgpio36をサーボモータ制御に使えない件</guid><dc:creator><![CDATA[macsbug]]></dc:creator><pubDate>Sat, 19 Oct 2024 11:16:52 GMT</pubDate></item><item><title><![CDATA[フラッシュ内容の抽出について]]></title><description><![CDATA[Arduino IDEの環境設定で、コンパイルの詳細情報を表示する項目をONにしてコンパイルすると、ELFファイルなどの処理手順が分かるので、これが参考になりそうです。
さらに、スタディを進めたいと思います。
]]></description><link>https://community.m5stack.com/topic/6864/フラッシュ内容の抽出について</link><guid isPermaLink="true">https://community.m5stack.com/topic/6864/フラッシュ内容の抽出について</guid><dc:creator><![CDATA[RuriObb]]></dc:creator><pubDate>Fri, 04 Oct 2024 23:14:23 GMT</pubDate></item><item><title><![CDATA[質問：M5Dial で RFID が反応しないので質問させてください。]]></title><description><![CDATA[@namazu2024 ちなみにですが、デフォルトで入ってくるサンプルプログラムではモバイルsuicaが読み取れました。
]]></description><link>https://community.m5stack.com/topic/6819/質問-m5dial-で-rfid-が反応しないので質問させてください</link><guid isPermaLink="true">https://community.m5stack.com/topic/6819/質問-m5dial-で-rfid-が反応しないので質問させてください</guid><dc:creator><![CDATA[ymd_m]]></dc:creator><pubDate>Sat, 21 Sep 2024 11:01:48 GMT</pubDate></item><item><title><![CDATA[M5go V2.7]]></title><link>https://community.m5stack.com/topic/6799/m5go-v2-7</link><guid isPermaLink="true">https://community.m5stack.com/topic/6799/m5go-v2-7</guid><pubDate>Fri, 13 Sep 2024 13:47:22 GMT</pubDate></item><item><title><![CDATA[質問：m5burner が使えません（MacBook&#x2F;M1 + UIFlow2 + m5burner）]]></title><description><![CDATA[申し訳ありません、早合点でした、アップできました。
これですが、きちんとアップロードモードに入れられていなかったためでした。
M5StampS3 の G0 ボタンは、背面のコレで、シールに隠れていて押しにくく、
表のダイヤルボタンと同時に推す様な形になっていて押したと勘違いしていました 🙇🏻‍♂️
シール剥がしてきちんと押す様にしたら画面が真っ暗になるモードに入り、
この状態からだと各種ローダーが利用できました  🙇🏻‍♂️
[image: 1725519175064-mfg_s007-pin127.png]
]]></description><link>https://community.m5stack.com/topic/6767/質問-m5burner-が使えません-macbook-m1-uiflow2-m5burner</link><guid isPermaLink="true">https://community.m5stack.com/topic/6767/質問-m5burner-が使えません-macbook-m1-uiflow2-m5burner</guid><dc:creator><![CDATA[namazu2024]]></dc:creator><pubDate>Thu, 05 Sep 2024 04:28:46 GMT</pubDate></item></channel></rss>