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

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

ただいまの
回答率

90.86%

  • Arduino

    453questions

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

Arduinoでwifi通信がならない

解決済

回答 2

投稿 編集

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

mizugasira

score 21

・実現させたいこと
ArduinoでのWifi通信

・機器

osoyoo arduino uno r3 (5V)
ESP-WROOM-02 Wi-Fi シールド (5V or 3.3V どちらも可)

・問題点
arduino unoを使用して、その上に半田ごてをしたESP-WROOM-02 Wi-Fi シールドをのせていてpwrは点灯してるのですが、シリアルモニタからATコマンドを打っても反応がありません。(打ってもATコマンド自体がシリアルモニタに反映されていません。)いろいろ調べてみたのですがESP-WROOM-02 Wi-Fi シールドの記事があまり見つからずに苦戦しています。

自分の知識不足も承知していますが、どこがどういけないのか検討もつきません。
お力添えよろしくお願いいたします。

・開発環境
Mac OS X Yosemite 10.10.4

#include <HttpClient_ESP8266_AT.h>

// Arduino UNO の場合は、例えばデジタル入出力の 11 番, 12 番ピンを利用して
// ESP-WROOM-02 とシリアル通信するように設定します。
const byte rxPin = 12; // Wire this to Tx Pin of ESP8266
const byte txPin = 11; // Wire this to Rx Pin of ESP8266
HttpClient_ESP8266_AT httpClient(rxPin, txPin);

void setup() {
    // PC と通信する HardwareSerial の baudrate を設定します。
    // ESP-WROOM-02 の baudrate とは関係ありません。
     Serial.begin(115200);

    // ESP-WROOM-02 との接続確認を行います。
    while(true) {
        if(httpClient.statusAT()) {
            Serial.println("AT status OK");
            break;
        }
        else {
            Serial.println("AT status NOT OK");
        }
        delay(1000);
    }

    // SSID と PASSWORD でアクセスポイントに接続します。
    while(true) {
        if(httpClient.connectAP("SSID", "PASSWORD")) { // <- 書き換えてください。
            Serial.println("Successfully connected to an AP");
            break;
        }
        else {
            Serial.println("Failed to connected to an AP. retrying...");
        }
        delay(1000);
    }
}

void loop() {
    // 本サンプルでは特に通信はせず、WiFi の接続が切れていないかどうかを
    // 1 秒毎に確認して結果を出力しつづけます。
    if(httpClient.statusWiFi()) {
        Serial.println("WiFi status OK");
    }
    else {
        Serial.println("WiFi status NOT OK");
    }
    delay(1000);
}

arduino shield
arduino
arduino

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • mizugasira

    2017/01/13 15:45

    そこもサンプルとして持ってきたのでよく分かっていません

    キャンセル

  • ozwk

    2017/01/13 15:47

    サンプルの出処はwebサイトですか?

    キャンセル

  • coco_bauer

    2017/01/13 17:02

    写真を見ると、シールドのSW3 (ソフトウェアUARTとハードウェアUARTの切り替え(?))が、ソフトウェアUART側になっているように見えます。スケッチはハードウェアUARTを使うようになっているようですが。

    キャンセル

回答 2

checkベストアンサー

+1

秋葉原の千石電商で同じものが有ったので買ってみました。(スイッチサイエンス製ですね)
’画像で貼り付けてみたのですが恐らくPinの2と4の部分を半田付けしてしまっているのですがそこに半田をしてしまってはいけなかったのでしょうか。’いいえ正しいですよ。
ozwk氏が指摘されている通りソフトウエアシリアルではPin2とPin4ですね。シールドにSW<==>HWのスライドスイッチが有りますのでSW側にすればOKです。HWにするとUSBのシリアルとスケッチ書き込み時に衝突しますので、先ずはSWで試されてください。

イメージの追加。
イメージ説明
ピンソケットを立ててみて、プローブ装着。

イメージ説明
シールド装着。
イメージ説明
紹介したヘッダーの場合。

イメージ説明
さらにUNOの上にイーサー&SDシールドとWifiシールドそしてコネクターシールドと重ねてみた。

/* ハンダ付けの仕方(アフターサービス)*/

イメージ説明
安価なシールドの汎用(秋月電子で200円なり)に予めピンソケットをはんだ付け。(もしくは市販のシールドでピンソケットを使っている物を使用)

イメージ説明
そのピンにピンソケットのセット(6PIN,8PINx2,10PIN)をそれぞれ差し込む。

イメージ説明
ピンソケットの位置を調整して基板と隙間が無く、歪みが無いことを確認して20W程度のハンダごてでハンダが解けたら5秒位待って離す(ピンソケットのピン付近のハンダが毛細管現象で裏面にちょうど良い感じで流れる)
で簡単、きれいに仕上がります。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/01/13 17:31

    言われた通りスイッチの部分を切り替えてozwkさんのpinの変更をしましたらwifiへの接続ができました。(Wifi status OKが帰ってきました。)
    みなさん本当にありがとうございます。

    キャンセル

  • 2017/01/13 18:00

    写真で気になったのが、‘ピンヘッダー‘。arduino用の上にも差し込めるタイプをお勧めします。将来の拡張やデバッグの際のピンの信号確認が容易です。秋葉原ならば秋月電商が手軽な値段。6PIN、8PINx2,10PINの物をそろえておけば。ピンの長さが長い物もあり、コネクターなどの干渉も対応できます。ネットで’秋月’で検索すると安価なシールドも多いですよ。

    キャンセル

  • 2017/01/13 18:03

    スイッチサイエンスのHPを参考にされる事も。 https://www.switch-science.com/catalog/2619/ ここに使い方(WIKI)のリンクがあります。

    キャンセル

  • 2017/01/14 00:20

    MasahikoHirataさん
    参考ありがとうございます。ちょうどそのことで話をしていました。
    それと気になっているのが、シールドに半田ごてした部分の横の穴にその差し込むタイプを半田するとそこからの信号が受け取れるようになれるのでしょうか。

    キャンセル

  • 2017/01/14 11:17

    信号を取るには、”GND"と取りたい信号の部分に測定用の端子などが出ていれば。使いやすいのが秋月のスクリューシールドボード(Screw Shield For Arduino) http://akizukidenshi.com/catalog/g/gM-07039/ 店頭には置いていないので通販で。ついでに ピンソケット 1x6 ( 6P) リード長10mm http://akizukidenshi.com/catalog/g/gC-04045/ http://akizukidenshi.com/catalog/g/gC-04046/ 
    ピンソケット 1x10 (10P) リード長10mm http://akizukidenshi.com/catalog/g/gC-07199/ Arduino用ユニバーサル基板 ガラスコンポジット http://akizukidenshi.com/catalog/g/gP-06877/ を用意すると便利です。

    キャンセル

  • 2017/01/14 12:44

    参考資料をたくさんありがとうございます。パーツなども取りそろえようと思います。
    それと測定用の端子というのは上に書かれた、ピンソケット 1 * 6 リード長10mmでよろしいのでしょうか。

    キャンセル

  • 2017/01/14 13:20

    ピンソケットは本来はシールドにはんだ付けするのですが、”下駄をはかす”ことも出来ますので、ここから端子を出せます。具体的にはUNOの上に各ピンヘッダーを立てる(差し込む)。その上にシールドを差し込み、ピンの裸の部分(10mmの部分)に線を半田するなり、プローブ(ICクリップ)を接続。入手しやすいのは千石電商あたりのこれ。 ICクリップ小 https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=A24A-3BJ5

    キャンセル

  • 2017/01/14 14:04

    各ピンヘッダーを差し込んで、その上にシールドを差し込むのはよくわかったのですが、

    > ピンの裸の部分(10mmの部分)に線を半田する

    ピンソケットは使用しなくてもよろしいのでしょうか。ピンの裸の部分というのはピンヘッダーのことなのでしょうか。
    理解が乏しくすいません。

    キャンセル

  • 2017/01/14 14:11

    実物の写真を上記の回答に追加しますね。

    キャンセル

  • 2017/01/14 14:20

    色々とありがとうございます。

    キャンセル

  • 2017/01/14 14:27

    貴殿の場合、既にピンコネクターをはんだ付けされているので、間にピンソケットを立てるのが良いかと。私の場合はシールドに10mmのピンソケットを装着していますので。

    キャンセル

  • 2017/01/14 16:20

    一番上の写真でwifiのシールドにピンソケットを付けられているのですが、自分はそこにピンヘッダーを半田してしまっているのですがそれは取り外してピンソケットを付けた方がよろしいでしょうか。

    キャンセル

  • 2017/01/14 16:46

    '取り外してピンソケット'。慣れていれば良いのですが、ハンダ吸い取り機などが無ければやめた方が良いです。新規にシールドを購入された際にはピンソケットを使うように。その代りに10㎜とか15㎜や20mmの足の長さのピンヘッダーを下に履かせれば信号は取り出しやすい訳です。

    キャンセル

  • 2017/01/14 16:48

    メーカーも Arduinoシールド用ピンソケットのセット(R3対応) https://www.switch-science.com/catalog/995/ を用意されていました。(在庫切れの様ですが)

    キャンセル

  • 2017/01/14 18:19

    わかりました。であれば自分の今の現状で開発することはできないのでしょうか。
    自分が半田ごてしたPinの横の部分にピンソケットを半田してそこから値の取得などは可能なのでしょうか。
    自分でもうまく説明ができてないと思うのですが、宜しくお願いします。

    キャンセル

  • 2017/01/14 18:42

    '自分の今の現状で開発することはできないのでしょうか。'工夫すれば可能と思いますが。それと無理にPINの値を拾うのではなくarduinoのIDE(開発ソフト)のシリアルモニターを使用して、途中の値を’Serial.begin(9600);'の'Serial.print(変数)’などで表示しながら進めれば?

    キャンセル

  • 2017/01/14 18:58

    言い方を間違えていました。
    > ピンソケットを半田してそこから値の取得
    ではなく、
    > ピンソケットを半田したら半田ごてした部分のPinと同じように使えるのでしょうか。

    キャンセル

  • 2017/01/14 19:07

    ’ピンソケットを半田したら半田ごてした部分のPinと同じように使えるのでしょうか。’市販のシールドはほとんどがピンソケットタイプ。問題なく信号の伝達されています。つまりハンダ付けした貴殿のPINと同じように使用できます。

    キャンセル

  • 2017/01/14 19:08

    ちなみに市販の物の例。http://akizukidenshi.com/catalog/goods/search.aspx?search=x&keyword=%83V%81%5B%83%8B%83h&image=%8C%9F%8D%F5

    キャンセル

  • 2017/01/14 19:10

    ピンヘッダーでの積み重ねの一例。http://ideahack.me/article/147

    キャンセル

  • 2017/01/14 19:14

    半田ごてを既にしてしまったPinの横の穴に、ピンソケットを半田しても同様に使える戸言う解釈でよろしいですか。

    キャンセル

  • 2017/01/14 19:54

    ’Pinの横の穴’これは意味がないような気がします。ピンソケットは積み重ねる意味がありますが、隣のピンでは間隔が異なりますので。どうしてもピンソケットにする場合はハンダ吸い取り機(私の場合は https://www.amazon.co.jp/%E5%A4%AA%E6%B4%8B%E9%9B%BB%E6%A9%9F%E7%94%A3%E6%A5%AD-goot-GS-108-%E3%81%AF%E3%82%93%E3%81%A0%E5%90%B8%E5%8F%96%E5%99%A8/dp/B0016V5KHU)を使ってある程度ハンダを取り除いてあまり力を掛けずにピンを抜きます。もっと手っ取り早いのがピンヘッダーをニッパで壊してハンダ吸い取り機。ピンを一本ずつ抜けますから。そしてピンソケットをはんだ付け。うまく作成するコツは Arduino用ユニバーサル プロトシールド基板 ガラスコンポジット 金フラッシュ http://akizukidenshi.com/catalog/g/gP-07555/ などに先にピンソケットをはんだ付けして、このピンを利用して傾いたりしないようにピンの先にピンヘッダーを取り付けてはんだ付け。分かりにくいでしょうから写真を追加します。

    キャンセル

  • 2017/01/14 20:49

    写真を参考にもう一度取り組もうと思います。
    写真の基盤の二枚目のところに逆さにしたシールドを差し込んで半田で固定という考えでいいですか。

    キャンセル

  • 2017/01/14 22:42

    ’逆さにしたシールドを差し込んで半田で固定’それで。まずは試してみるのが一番です。なので高いシールドよりプロトシールドなどで練習がおすすめです。

    キャンセル

  • 2017/01/14 22:52

    わかりました。明日専門店に行き今回勧めてもらったもの一式揃えようと思います。
    長々と教えていただきありがとうございます。

    キャンセル

  • 2017/01/14 23:08

    貴殿のように前向きで答え甲斐のある質問者に回答できましたことに”いいオジサン”回答者としてうれしく思います。
    また何か質問があればコメントで。

    キャンセル

  • 2017/01/15 00:17

    何も知りませんでしたが、今回いい勉強になりました。
    また質問すると思うのでその時は宜しくお願いします。

    キャンセル

  • 2017/01/15 00:25

    はい。待っております。

    キャンセル

  • 2017/01/15 00:55

    写真など使わせていだいていいですか

    キャンセル

  • 2017/01/15 01:53

    いいですよ。(ピントが気に入りませんが)

    キャンセル

  • 2017/01/16 11:30 編集

    すいません。今回はコードの部分で少しお聞きしたいことがあります。
    #include <HttpClient_ESP8266_AT.h> というヘッダファイルを使用して、Wifi通信を行い、このファイルの post() を使ってデータを自分のサーバのphpに値を送信しようとしているのですが、値の送信がうまくいきません。
    現段階では、wifiの接続成功・サーバへのアクセス成功までは成功しています。

    接続をしているコードは以下です。
    httpClient.post("サーバのhost", // ex: www.◯◯.com
    "ファイルまでのパス", // ex: /Arduinos/wifi_communication/output.php
    "送信させる値", // ex: temp=100 <- たぶん自分はここが違うと思っています。
    "application/x-www-form-urlencoded" // エンコードの指定
    );

    キャンセル

  • 2017/01/16 11:44

    別質問にされる方が良いかと。あと参考に成りそうなのが https://www.qoosky.io/techs/14bfffdc82

    キャンセル

  • 2017/01/16 11:45

    そうですよね。お早いご対応感謝します。別質問として聞いてまいります。

    キャンセル

  • 2017/01/19 13:34

    お久しぶりです。
    前回は多くの質問に答えていただきありがとうございます。
    いきなりですが、温度センサから取得した温度をデータベースに挿入し、webページからグラフで出力させることができました。
    本当にありがとうございました。
    所で、今回のノウハウをqiitaという所に投稿しようとしているのですが、投稿してもよろしいでしょうか。

    キャンセル

  • 2017/01/19 17:09

    いいですよ。公開された回答ですから。

    キャンセル

  • 2017/01/19 17:50

    ありがとうございます。

    キャンセル

0

rxPin = 2, txPin = 4にしてみてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/01/13 16:40 編集

    画像で貼り付けてみたのですが恐らくPinの2と4の部分を半田付けしてしまっているのですがそこに半田をしてしまってはいけなかったのでしょうか。
    言い訳になるようですが、店舗の方でシールドは購入したのですが「画像のように半田付けすればなる」と言われたので半田付けをしています。

    キャンセル

  • 2017/01/13 16:54

    Arduinoとの接続のためのピンヘッダつけただけですよね?

    キャンセル

  • 2017/01/13 16:56

    そうですね。ピンヘッダ自体は接続のためにつけただけです。

    キャンセル

  • 2017/01/13 17:32

    pinの変更をして、スイッチを切り替えたところうまく接続できました。本当にありがとうございます。

    キャンセル

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

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

関連した質問

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

  • Arduino

    453questions

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