質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

90.02%

Arduino M0ProとESP-WROOM-02を用いてmilkcocoaに接続できません

解決済

回答 2

投稿

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

umiu

score 5

Arduino M0ProとESP-WROOM-02を用いてmilkcocoaと接続できません

Arduino M0ProとESP-WROOM-02をこちらにあるように接続し、以下のプログラムを実行すると、"Join AP success"やIPアドレスや"milkcocoa on sucess"等が出力されるのですが、そのあとに

Connecting to MQTT... Connection failed
-1
Retrying MQTT connection in 5 seconds...
Connection failed
-1


と表示され、上手くいきません。
解決案がありましたら教えていただければ幸いです。

該当のソースコード

#include "ESP8266.h"
#include "Milkcocoa.h"
#include "Client_ESP8266.h"

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

#define WLAN_SSID       "ここにid入力"
#define WLAN_PASS       "ここにpass入力"


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

#define MILKCOCOA_APP_ID      "ここにアプリid入力"
#define MILKCOCOA_DATASTORE   "esp8266"
/************* 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);

int cnt;

void setup() {
  Serial.begin(115200);
  delay(10);

  Serial.println(F("Milkcocoa SDK demo"));

  // Connect to WiFi access point.
  Serial.println(); Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WLAN_SSID);

  wifi.begin(Serial5, 115200);

  Serial.print("FW Version:");
  Serial.println(wifi.getVersion().c_str());

  if (wifi.setOprToStation()) {
      Serial.print("to station ok\r\n");
  } else {
      Serial.print("to station err\r\n");
  }

  if (wifi.joinAP(WLAN_SSID, WLAN_PASS)) {
      Serial.print("Join AP success\r\n");
      Serial.print("IP: ");
      Serial.println(wifi.getLocalIP().c_str());    
  } else {
      Serial.print("Join AP failure\r\n");
  }

  if (wifi.disableMUX()) {
      Serial.print("single ok\r\n");
  } else {
      Serial.print("single err\r\n");
  }

  if(milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush)){
      Serial.println("milkcocoa on sucesss");   
  }
  else {
      Serial.println("milkcocoa on failure");   
  }

  cnt = 0;
};

void loop() {
  milkcocoa.loop();

  DataElement elem = DataElement();
  elem.setValue("v", cnt++);
  milkcocoa.push(MILKCOCOA_DATASTORE, &elem);

  delay(7000);
};

void onpush(DataElement *pelem) {
  Serial.println("onpush");
  Serial.println(pelem->getInt("v"));
};

試したこと

・Arduino version 1.8.0/1.8.2/1.7.9/1.7.8で試みましたが出力に変化はありませんでした。

https://github.com/milk-cocoa/Milkcocoa_Arduino_SDK
にあるようにver1.7.8の際は修正を行っていました。

https://github.com/exshonda/ESP8266_Arduino_AT
にあるようにバッファサイズの拡張も行いました。

・出力は以下です。

Milkcocoa SDK demo


Connecting to "SSID名"
FW Version:AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
compile time:Aug 15 2016 13:58:59
to station ok
Join AP success
IP: +CIFSR:STAIP,"IP名"
+CIFSR:STAMAC,"~~"
single ok
milkcocoa on sucesss
Connecting to MQTT... Connection failed
-1
Retrying MQTT connection in 5 seconds...
-1

補足情報

上記のソースはMilkcocoa_Arduino_SDKのmilkcocoa_esp8266というサンプルです。
PCのOSはWindows10です。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

checkベストアンサー

0

Milkcocoa_ESP8266_SDKのmilkcocoa_esp8266で同様の現象が発生しました。
エラーが発生したのはaterm MR03LMでした。
ルータの問題かと思い、手持ちのスマホ ASUS Zenfoneで接続したらエラーが解消されました。
可能であれば、wifiのアクセス先を変更してみてはいかがでしょうか。

私はなんとしてもaterm MR03LM接続にしたいので良い方法が無いか粘ってみます。。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/07/02 21:08

    ご回答ありがとうございます。 
    こちらでも手持ちのiPhone6のテザリングを利用したところ解決しました。
    ルーターはBuffaloのWSR-300HPを使用していました。
    ファームウェアの更新や再起動を試しても上手くいっていません。
    いい方法があればいいのですが。。。

    キャンセル

0

無事接続できましたので報告します。
私の場合、プロバイダのネットバリアベーシックというサービスにより通信規制がかかっていたことが原因でした。
これにより1883番ポートが使用できませんでした。
https://www.akakagemaru.info/port/plala.html

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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