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

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

ただいまの
回答率

90.34%

  • JavaScript

    17496questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • C

    3977questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Arduino

    575questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

  • Milkcocoa

    105questions

    Milkcocoaとは、バックエンド機能を提供するBaaSサービスの一つです。サーバを準備することなく、フロントエンドのコーディングだけでデータの保存・更新・取得、またPub/Sub通信行うことが可能です。

Arduino UNO コンパイルエラー error: 'Serial1' was not declared in this scope

解決済

回答 1

投稿

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

bobby2128

score 34

前提・実現したいこと

Arduino M0 Proではコンパイル出来ていたプログラムが、
Arduino UNOではエラーとなり、困っています。

Serialの箇所の記入が良くないようなのですが、アイデアやアドバイスなどございましたらお教えいただけますと幸甚に存じます。

(※ESP WROOM-02は、Arduino M0 Proには配線していますが、Arduino UNOには配線していません。∵配線しないとコンパイルできないということもないと思うので。。。)

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

C:\Users\y.y\Documents\Arduino\sketch_feb27a\sketch_feb27a.ino: In function 'void setupWiFi()':

sketch_feb27a:58: error: 'Serial1' was not declared in this scope

   wifi.begin(Serial1);

              ^

exit status 1
'Serial1' 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 "e9792f9"

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

// MilkcocoaのアプリID
#define MILKCOCOA_APP_ID      "readiy"
// Data Store名
#define MILKCOCOA_DATASTORE   "Machin"

/************* 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);

void setup() {

  // パソコンとのシリアル通信のポートを開ける
  Serial.begin(SERIAL_SPEED);
  // Wi-Fiモジュールとのシリアル通信のポートを開ける
  Serial.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(Serial1);

  // 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();
}

試したこと

http://qiita.com/risekichi/items/ea6fe852b0596908484e
上記のサイトを参考に、Serial1やSerial5, Serial0など書き換えトライしてみましたがどれも同様の結果となってしまいました。

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

Arduino IDE 1.8.0
Arduino UNO 
Arduino M0 Pro
ESP-WROOM-02 
(※ESP WROOM-02は、Arduino UNOには配線していません。)

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

wifi.begin(Serial1);
ではなく
wifi.begin(Serial);
のまちがいなのでは?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/02/28 10:14

    turbgraphics200様

    こんにちはご回答いただき誠にありがとうございます。
    Wifi.beginに該当する箇所をご提案通り修正しますと、コンパイル→書き込みはできるのですが、
    シリアルモニタ上に出力される文字が9600bpsだと文字化けし(プログラムに指定した速度は9600にも関わらず)、115200bpsだと文字化け混じりながら以下のように出力されます。
    Serialの宣言が、「パソコンとのシリアル通信」と「Wifiモジュールとのシリアル通信」とで重複しているからでしょうか。(※ちなみにWifiモジュールとは配線はまだしておりません)
    お手数おかけいたしますが、どうかアドバイスやご提案などございましたらご教授いただけますと幸甚に存じます。


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



    結果(シリアルモニタを115200bpsに設定した際)
    AT+CWJAP="Daimon5","e9799b94b2f9"9.9AT+CWJAP="Daimon5","e9799"9.9AT+CWJAP="on5","799"9.9AT+CWJAP="on5","799"9.9AT+CWJAP="on5","799"9

    キャンセル

  • 2017/02/28 10:27

    UNOとM0はシリアル周りのプログラミングがちょとちがうみたいで

    http://blog.kur.jp/entry/2016/06/11/%E6%A0%BC%E5%AE%89WIFI%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABESP8266%E3%82%92Arduino_Uno%E3%81%A7%E4%BD%BF%E3%81%86_1

    こちらを参考にしてはいかがでしょう。

    キャンセル

  • 2017/02/28 18:56 編集

    turbgraphics200様

    コメントいただきまして誠にありがとうございます。
    ESP-WROOM-02を新たに購入し、ATコマンドにてモードを3に変更しました。
    (※AT+CWMODE_DEF=3 WIFI default mode(1:sta/2:AP/3:sta+AP)Save to Flash)
    また、シリアル通信のスピードも9600に変更し、Arduinoに上記のプログラムを書き込み実行したのですが、症状としては変わらず、上記の結果が出るのみとなってしまいました。

    RTCを用いた通信の箇所と、相性がよくないのでしょうか。
    ESP-WROOM-02単体は、ATコマンドによってWifiへ接続することが可能であることは確認済みです。

    不思議なのは、プログラム中には9600と指定しているのにも関わらず、シリアルモニタの速度が9600だと文字化けし、115200だと文字化けが少し解消する点です。

    キャンセル

  • 2017/02/28 19:30

    ATコマンドでArduinoとESP間の接続速度は設定しました?
    AT+UART_DEF=9600,8,1,0,0

    キャンセル

  • 2017/03/01 09:11

    turbgraphics200様
    コメントいただきありがとうございます。
    おっしゃる通り、接続速度は設定済みでございます。

    キャンセル

  • 2017/03/01 11:40

    ううん、ちょっとこれ以上は私からは助言できませんね。
    私の環境(Win10)では文字化けは発生しません。
    ただ、USBで電力供給してた場合は時々供給電力少ないためか文字化け起こしてしまいますが。

    キャンセル

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

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

同じタグがついた質問を見る

  • JavaScript

    17496questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • C

    3977questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • Arduino

    575questions

    Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

  • Milkcocoa

    105questions

    Milkcocoaとは、バックエンド機能を提供するBaaSサービスの一つです。サーバを準備することなく、フロントエンドのコーディングだけでデータの保存・更新・取得、またPub/Sub通信行うことが可能です。