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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Arduino

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

Q&A

4回答

5196閲覧

ESP-WROOM-02を使ってArduino Unoでwifi通信を行いたい

ccchogeee

総合スコア11

Arduino

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

0グッド

0クリップ

投稿2020/07/17 08:12

編集2020/07/19 08:26

前提・実現したいこと

arduino unoからスマートフォンに通知が来るシステムを作りたく、
ESP-WROOM-02(ESP8266)を使ってwifi通信を行おうと思っています。

秋月でこちらのwifiモジュールを購入しました↓
wi-fiモジュール ESP-WROOM-02 DIP化キット

そして、以下のようなサイトや本を参考に配線を行ったのですが、
wifiモジュールと通信ができていないようです。
ESP-WROOM-02とArduinoで初めてのATコマンド通信
Arduinoと数百円のWi-Fiモジュールで爆安IoTをはじめよう
Arduino[実用]入門―Wi-Fiでデータを送受信しよう!

例えば、こちらのサイトのコードを動かしてみたところ、
シリアルモニタに「good morning」は表示されますが、
「Hello world」は表示されません。
「AT」と打って送信しても、何も反応がありません。

配線は上の3つのサイトのとおりに3種類に試してみました。
コードはそれに対応してピン番号等書き換えていますが、基本的には下記のコードです。

配線は何度も確認しながらしたのでミスはないものとして(あるかもしれませんが…)、
考えられる可能性はどのようなものがあるでしょうか?
またこれ以外に参考にできるサイト等ありましたら教えていただきたいです。

ざっくりとした質問で申し訳ありませんが、
よろしくお願いします。

試したこと

配線は上の3つのサイトの方法で試してみましたが、どれも動きませんでした。
電源はpcからのUSBに加えて、ACアダプターを使ってみています。
esp-wroom-02のリセットボタンも作って押してみますが、何も反応はありません。

コード

arduino ideのスケッチの例から修正をしています。
・CRおよびLE
・115200
にシリアルモニタの設定を変更しています。

#include <SoftwareSerial.h> SoftwareSerial mySerial(2, 3); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(115200); mySerial.println("Hello, world?"); } void loop() { // run over and over if (mySerial.available()) { Serial.write(mySerial.read()); } if (Serial.available()) { mySerial.write(Serial.read()); } }

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SHOMI

2020/07/17 11:04 編集

>以下のようなサイトや本を参考に配線を行ったのですが どの配線を参考にしたんですか? 2番目のサイトを参考に配線はD10,11につないで、プログラムはD2, 3なら動くわけはないですが…
thkana

2020/07/18 04:17

> 以下のようなサイトや本を参考に配線を行ったのですが で、結局今あなたの実際の状況はどうなのでしょう。どこになにが書いてあろうと、あなたが実際にどういう配線をしているのか、それが全てです。 話を聞いている限りでは、配線を間違えているか、さなければいずれかの部品が壊れているかの可能性が高いです。対象を絞り込むためには、あなたが実際にどういう配線をしているかを知る必要があります。場合によってはテスターなどがあると強力な武器になる可能性もありますが...
ccchogeee

2020/07/26 02:54

コメントありがとうございます。 配線はサイトを参考にしました。 コードは配線に合わせてそれぞれ修正をしました。 (配線はD10,11につないで、プログラムはD10, 11と書き直すなど) 配線は合っているものとして、(ほんっとうに合っているかはわかりませんが、、、) 何か他にうまくいかない理由があれば知りたいと考えています。
guest

回答4

0

頑張ってください!Yahoo!知恵袋おすすめです!

投稿2020/07/17 08:30

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/07/17 08:46

「ryufegyo」のアカウントは凍結されています。 アカウント「ryufegyo」はteratailの利用規約に違反したため凍結されています。 へえ、こんな機能あったんだ。
ccchogeee

2020/07/26 02:57

コメントありがとうございます! Yahoo!知恵袋もみてみます!
guest

0

まずは何が起こっているのかを探ってみましょうか。

  1. ESP-WROOM-02は一旦外してしまって、ソフトシリアルの入出力に指定している端子(D10とD11ですか?)をショートして、そのスケッチを実行してみて下さい。

(ソフトシリアルから出力したデータがそのまま受信されるはず)

-何かしら受信できる -> Arduino側、スケッチは多分あっている
-何も受信出来ない -> Arduino側、スケッチになにか問題がある

2.以下のスケッチをArduinoに書き込む(D0,D1を入力にして、他には何もしないプログラム)

Arduino

1void setup(){ 2pinMode(0,INPUT); 3pinMode(1,INPUT); 4} 5void loop(){}

WROOM02のRXをD0に、TXをD1に接続する(電源/GNDも適宜)。
(つまり、Arduinoのメインマイコンには何もさせず、Arduino上のUSB-シリアル変換だけを利用する)
この状態で、シリアルモニタからAT だとかその他何かしらを入力してみて反応が得られるかどうか見る

-応答がある -> 少なくともESP-WROOM-02は生きている
-応答がない -> シリアルのボーレート設定等が間違っていないか確認。間違いがないということならESP-WROOM-02が動作していない

投稿2020/07/26 03:39

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

連絡ありがとうございます。
でしたら回路が誤っている可能性が非常に高いです。

こちらの回路の画像を送りますので、
照らし合わせてみてください。
(温度センサーのIot化をしているため多少見づらいです。)

考えられる間違いは、電圧か、ポートか、単純に配線の間違いです。

電圧計をお持ちでしたら、
5vと3.3vに電圧が変換できているか、
試してみることをおすすめします。

あとは、2ポートがRX・3ポートがTXに繋がっているかなど、配線をもう一度確認していただきたいです。

投稿2020/07/26 03:21

ishii_

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

全く同じ状況になりましたので、及ばずながら
回答させていただきます。
解決策としてSerial.begin(9600)とmySerial.begin(9600)に速度を変更し
シリアルモニタを「CRおよびLF」9600bpsに変更します。
これでATと打ち込んでも「OK」と帰ってくるはずです。
宜しければ試してみてください。
![![![イメージ説明]イメージ説明
#include <SoftwareSerial.h>

SoftwareSerial mySerial(2,3); // RX, TX

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}

Serial.println("Goodnight moon!");

// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.println("Hello, world?");
}

void loop() { // run over and over
if (mySerial.available()) {
Serial.write(mySerial.read());
}
if (Serial.available()) {
mySerial.write(Serial.read());
}
}

投稿2020/07/21 06:29

編集2020/07/26 03:43
ishii_

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ccchogeee

2020/07/26 02:57

コメントありがとうございます! >解決策としてSerial.begin(9600)とmySerial.begin(9600)に速度を変更しシリアルモニタを「CRおよびLF」9600bpsに変更します。 これをやってみましたが、シリアルモニタに表示されるのは、「Goodnight moon!」のみで、「Hello, world?」が表示されません。。。 その状態で「AT」と打ち込んでも何も変化がありませんでした。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問