Arduino M0 ProとESP-WROOM-02とMILKCOCOAの接続

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,348

bobby2128

score 40

Arduino M0 ProとESP-WROOM-02とMILKCOCOAの接続

タイトル通り、Arduino M0 ProとESP-WROOM-02とMILKCOCOAの接続を行いたいです。
「センサーでなんでもできるおもしろまじめ電子工作」という本の、
サンプルプログラムを用いて実施を試みました。
ところが、Arduino M0 ProにArduino IDEから書き込む際に、以下のエラーメッセージがIDE上に出てきて困っています。
サンプルコードは、
http://www.shuwasystem.co.jp/products/7980html/4660.html
にございます、8.1 のプログラムです。(以下にも示しています)

発生している問題・エラーメッセージ

exit status 1
'Serial5' was not declared in this scope

```

該当のソースコード

// ライブラリの読み込み

include "ESP8266.h"

include "Milkcocoa.h"

include "Client_ESP8266.h"

// 転送スピード

define SERIAL_SPEED  115200

/********************* WiFi Access Point *****************************/

// Wi-Fi SSID

define WLAN_SSID             "Daimon5"

// Wi-Fi PASSWORD

define WLAN_PASS             "Admiral2128"

/********************* Your Milkcocoa Setup *****************************/

// MilkcocoaのアプリID

define MILKCOCOA_APP_ID      "uniixstvro4"

// Data Store名

define MILKCOCOA_DATASTORE   "toilet"

/********* Milkcocoa Setup (you don't need to change this!) **************/

define MILKCOCOA_SERVERPORT  1883

/******** Global State (you don't need to change this!) **************/

// Create an ESP8266Client class to connect to the MQTT server.
ESP8266Client wifi;

const char MQTT_SERVER[] PROGMEM    = MILKCOCOA_APP_ID ".mlkcca.com";
const char MQTT_CLIENTID[] PROGMEM  = TIME MILKCOCOA_APP_ID;

Milkcocoa milkcocoa = Milkcocoa(&wifi, MQTT_SERVER, MILKCOCOA_SERVERPORT, MILKCOCOA_APP_ID, MQTT_CLIENTID);

// センサーを接続するピン
const int sensorPin = A0;

// 光センサーの閾値
const int threshold = 500;

// 現在の明るさを保持
boolean nowSensorState = false;

// 切り替え前の明るさを保持する
boolean sensorState = false;

void setup() {
// パソコンとのシリアル通信のポートを開ける
Serial.begin(SERIAL_SPEED);
// Wi-Fiモジュールとのシリアル通信のポートを開ける
Serial5.begin(SERIAL_SPEED);

// Wi-Fi設定
setupWiFi();

// Milkcocoaへ光センサーの値がpushされた
milkcocoa.on(MILKCOCOA_DATASTORE, "push", milkcocoaPushDataHandler);
}

/*
Wi-Fiを設定します
*/
void setupWiFi() {
Serial.print("Connecting to ");
Serial.println(WLAN_SSID);

// シリアルポートの指定
wifi.begin(Serial5);

// Wi-Fiへ接続(成功するまで処理を繰り返す)
while (!wifi.joinAP(WLAN_SSID, WLAN_PASS)) {
delay(500);
Serial.print(".");
}

Serial.println("Wi-Fi connected");
Serial.println("IP address: ");
// Wi-FiのローカルIPアドレスをシリアルモニターへ表示
Serial.println(wifi.getLocalIP().c_str());
}

/**

  • ループ処理
    */
    void loop() {
    // Milkcocoaのループ処理を実行
    milkcocoa.loop();

// センサーの値
int sensorValue = analogRead(sensorPin);

Serial.print("Sensor Value : ");
Serial.println(sensorValue);

// センサーの値と閾値を比較
nowSensorState = sensorValue > threshold;

// 明るさに変化がなければloop()関数の始めに戻る
if (sensorState && nowSensorState || !sensorState && !nowSensorState) {
return;
}

// Milkcocoaへ送信するデータを作成
DataElement elem = DataElement();
// lightというデータ名で値を追加
elem.setValue("lightState", nowSensorState);
// Milkcocoaへデータを送信
milkcocoa.push(MILKCOCOA_DATASTORE, &elem);

// 1秒処理を止める
delay(1000);
}

/*

  • Milkcocoaへ光センサーの値がpushされた
    */
    void milkcocoaPushDataHandler(DataElement *pelem) {
    // 明るさの状態を更新
    sensorState = nowSensorState;
    }

試したこと

特に有効な手段は施していないです。

補足情報(言語/FW/ツール等のバージョンなど)

スマートフォンのテザリングでWifiを飛ばしています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ozwk

    2017/01/16 15:06

    ツール > ボードをちゃんと設定していますか?

    キャンセル

  • bobby2128

    2017/01/16 15:11

    ozwk様 こんにちは早速のご連絡をいただき誠にありがとうございます。ボードの設定はArduino M0 Pro(Programing)で設定した状態での症状となります。説明が不足しており申し訳ございません。

    キャンセル

  • ozwk

    2017/01/16 15:14

    IDEのバージョンは?

    キャンセル

  • bobby2128

    2017/01/16 15:19

    otwk様 IDEのバージョンは、1.8.0でございます。よろしくお願いいたします。

    キャンセル

回答 1

checkベストアンサー

+1

IDEのver1.8(より前?)からSerial1に変更されたらしいです。
(公式のソースは見つけられていないので今探しています。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/16 15:44

    otwk様
    こんにちはご連絡いただき誠にありがとうございます。
    状況について説明不足の中、度々のアドバイスをいただきありがとうございました。
    書き込むことができました。誠にありがとうございました。

    キャンセル

  • 2017/01/16 16:06 編集

    現在書き込み完了後、スマホのテザリングのWifiへの接続を試みているのですが、シリアルモニタに「.......」(待機中の意味)が表示されるのみでなかなか接続されません。一度、スマホ側に接続済みユーザーの名前が浮かんだのですが、Arduinoの電源を切って再度接続を行おうおするとできない状況になっています。

    接続には時間を要するものなのでしょうか。

    お手数おかけいたしますが、よろしくお願いいたします。

    少し待って解決しない場合は、ベストアンサーに選出させていただき新たにご質問投稿させていただきます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.22%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる