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

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

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

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

Q&A

解決済

1回答

5158閲覧

ESP8266とESP8266をWiFiルーターを介して命令実行させたい(arduino言語で)

t_yamashina

総合スコア13

Arduino

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

0グッド

1クリップ

投稿2016/06/07 03:07

###前提・実現したいこと
ESP8266とESP8266をWiFiルーターを介して命令実行させたい

###発生している問題・エラーメッセージ
arduino言語でそれぞれにスケッチを書きこみ、送信側のON/OFF情報を送り、
受信側でLEDを点灯・消灯させたい

###試したこと
ネット検索などしてみましたが、そもそも方法論が分かってないです。
ど素人ですみません。arduinoがうっすら分かる程度です。
ネット検索の結果、ソケット通信?とかのキーワードだけが見え隠れしますが
具体的に参考に出来そうなページが見つかりません。

また、そもそも出来ないとか?他のやり方がいいよというのもありましたら教えて頂きたいです。

根本的には、arduinoを使ってLEDのON/OFFなどを無線化して行いたいので。
Bluetoothもありかと思うのですが、まずはWiFi(ESP8266)でなんとかしてみたいです。
よろしくお願いします。

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

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

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

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

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

matobaa

2016/06/07 04:48

面白そうです。どこまでできているか確認させてください。ESP8266のIPアドレスは取得できていますか? 受信側ESP8266単体でLチカはできてますか? 送信側ESP8266単体でスイッチの検出はできていますか? 送信側→受信側のプロトコルは決めていますか? 実現するまでにどれくらいの時間を使えますか?
t_yamashina

2016/06/07 05:34 編集

返信ありがとうございます。 IPアドレスは取得できています。インターネットに接続できましたがルーターにはつながりません。どうしてでしょう? Lチカできます。スイッチは繋いでいませんが arduinoでは普通に使ってますので多分出来ます。 プロトコルってTCP/IPってのですか?この辺の知識無いです。 すみません。見当違いかもしれませんが、出来ればESP⇔ルーター⇔ESPだけで 構成できないかと・・・(インターネットを使わない構成) これが不可の場合、ESP⇔インターネット⇔ESPでの構成と考えたいです。 勝手言ってすみません。 時間に関しては、自習なので締め切りはありません。
matobaa

2016/06/07 06:31

いいかんじですね。けっこうすんなりいけそうかと思います。 構成は、「ESP⇔ルータ⇔ESP」でも構成できると思います。さらにいえば、ESP8266はアクセスポイントにもなれるので、「ESP(STAモード)⇔ESP(APモード)」でもつながると思います。やったことはないですが。
guest

回答1

0

ベストアンサー

Wifi層、IP層、アプリケーション層での接続を分けて考えるのがよさそうです。

|構成| 送信側(Wifi層) |送信側(アプリ層) | 受信側(Wifi層) | 受信側(アプリ層) |
|:-:|:-:|:-:|:-:|:-:|:-:|
|ESP⇔ESP|Wifi STA|Webクライアント | Wifi AP | Webサーバ|
|ESP⇔Wifiルータ⇔ESP|Wifi STA|Webクライアント | Wifi STA | Webサーバ|


送信側 ... Wifi STA + Webクライアントの例:
https://www.arduino.cc/en/Tutorial/WiFiWebClient

受信側 ... Wifi AP + Webサーバの例:
https://www.arduino.cc/en/Tutorial/WiFiWebServer

受信側 ... Wifi STA + Webサーバ の例:
http://qiita.com/ayasehiro/items/9a685c2e1a2c895183b3

Wifiシールドを利用している例なのでESP8266でそのままでは動かないとは思いますが、応用すればできるかと。

楽しそうです!!

投稿2016/06/07 08:20

matobaa

総合スコア2493

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

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

t_yamashina

2016/06/07 08:58

すごく丁寧に回答頂きありがとうございます。 本来ならば、これで理解できなければいけないのかもしれませんが 本当に申し訳ありませんキーワードだけ見て頭がフリーズしてしまいました。 ただ、ESP⇔ルーター⇔ESPというのを実現するにはWifi STA + WebサーバとWifi STA + Webクライアントの2つを理解する必要があるということは分かりました。 ちなみに、恥ずかしながらお聞きしたいのですが「Web」って言葉がつくということは 「インターネット」環境が必要ということになるのでしょうか?
matobaa

2016/06/07 10:20

いえ、インタネット環境は必要ありません。閉域ネットワークでも、アプリケーション層にWeb技術を使っていればWebサーバを流用できます。 この回答ではアプリケーション層プロトコルにHTTPを選択しています。HTTPならばそれ用のライブラリがあるので、ちょっと手抜きできるかなーというもくろみでした。 シリアル通信に慣れているようでしたら、Wifi接続のうえにTCP接続を張ってシリアルで指示を出すというのでもよいかと思います。ONにするにはこのコマンド、OFFにするにはこのコマンド、のように通信要領を決めて実装すれば実現できるはず。
matobaa

2016/06/07 11:03

「ESP8266でインタネットに接続できている」とのことなので、Wifi STAモードでの接続はクリアしてます。あとは、(HTTPを採用するなら)Webサーバを立てて、その裏の実装である「リクエストに応じてLEDをオンオフする」を作れば受信側はできあがりかと。
t_yamashina

2016/06/08 00:06

重ね重ね丁寧な回答ありがとうございます。 閉域ネットワークでもWeb技術を使っていれば「Webサーバ」って言うんですね。 すごく参考になりました。こういう言葉の意味が分からないだけで中々前に進めないもので本当に助かります。 ちなみに、「HTTP」もほんの少し以前にかじったことがあるのでライブラリがあって 使いやすいならこちらの方式でまずはやってみたいです。 シリアル通信も使ったことはあるのですが、結局参考サイトを基にコピペして使ってるだけで根本的には理解していないです。 お時間許す範囲で結構ですのでご享受頂けると助かります。
t_yamashina

2016/06/08 00:20

ちなみに、現在色んなサイトの情報を参考にしているのですが結局色んなキーワードがあって頭の中がゴチャゴチャになってしまっています。 「IPアドレスとポート」を指定して送信側・受信側のお互いが見ることのできる入れ物の 中のデータをソケット通信とか。 「HTTP」だとURLを指定して送受信するのかなとか? 「webSocket」とか言う技術を使ってやる方法だとか色々あるようで困惑してます。 この辺も噛み砕いて整理して頂けますでしょうか。 お願いばかりで申し訳ありません。
matobaa

2016/06/08 03:11

ふむ、そのへんですと「OSI参照モデル」とか「TCP4階層モデル」を使うとアタマの整理ができるかと思いますので検索してみてください。今回の質問のケースですと、物理層~データリンク層あたりにWifiを、ネットワーク層~トランスポート層あたりにTCP/IPを、セッション層~プレゼンテーション層あたりでHTTPを使おうとしています。 「IPアドレスとポート」は、TCP/IP層の言葉、 「URL」は、HTTP層の言葉 (←ちょっと厳密ではないですが)、 「WebSocket」はさらにその上なので今回は除外してよいかと思います。
t_yamashina

2016/06/09 02:59

ネットワーク構築とは、いろんな技術の積み重なりで成立していて、各々自分がどの技術を使って構築するか把握していなければいけないと言うことなんですね。 少し言葉の意味が見えてきました。 次は具体的な段にステップアップでしょうか?
matobaa

2016/06/10 01:20

ん、どこまで理解が進んだのでしょう? 丸投げっぽいにおいがしてきました。さて、どうしましょう? A) このへんは深堀りする必要が無くて単に実現ができればいい ということなら、これみてこの通りにしろと誘導します B) いや、ここが楽しいから丸ごとコピーするような回答されたらつまらなくなっちゃうよ ということなら、アプリ層のプロトコルをまだ決めてないことですし、ゆっくり進めようかと思います。 なお、いま私のほうでは、アプリ層はFirmataが使えるかなぁと掘ってるところです。
t_yamashina

2016/06/10 11:07

通信の確立には、そこに使われている技術が階層のように積み重なって成立しているという概念が理解できたところです。 この先の進め方としては、出来ればまず結果が欲しいです。当初、ご相談させて頂いたようにESP(SWのON/OFF)⇔Wifiルータ⇔ESP(LED点灯) がしたいです。 その上で、この技術の応用を利かせるなら どこを深堀りしないと理解できないかを ご相談したいです。 お時間割いて頂き、ご丁寧にレクチャーしていただいているにも関わらず不快な思いをさせてしまったのなら誠に申し訳ありません。
matobaa

2016/06/10 14:27

いや、不快に思ってるということは全くなく、どの程度の回答を求めているのかの間合いをはかっていたところです。 例示したサンプルをうまく組み合わせればつながるにはつながるはずです。 アプリ層プロトコルを独自に書くのがいいのか(やりたいことはすぐに実現するけど、その先のペースが落ちる)、汎用的なものを使うのか(立ち上がりは選定などに時間がかかるが、あとが楽)……あたりを考えることこそが面白い部分なので、その辺を奪ってしまってはいけないとも思っています。
t_yamashina

2016/06/15 00:11

自分の性格を考えると、まず成功体験が欲しいです。 それを糧に次のことが考えられるかなと... いま、少し時間が無いのでまた時間を置いて考えてみたいと思います。
matobaa

2016/06/23 01:13

Software Design 2016年7月号に「プログラマが知っておくべきTCP/IP」という記事がありました。TCP4階層モデルなどにも言及されていて参考になるかと存じます。 http://gihyo.jp/magazine/SD/archive/2016/201607
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問