家の外からスマホで遠隔操作、IoT作ります! ESP-WROOM02で遠隔でセンサー取得!

最終更新日

Comments: 4

こんばんわ!

今回はなんと、完全にIoTな物を作ってみたいと思います!

 

スマートフォンやPCから、遠隔でセンサーの値を取得できるようにしてみたいと思います!

 

今回はローカル環境ではなくいきなりサーバーを使って作ってみます!

 

サーバーやらネットワークの知識が絡んできますので、難しくはなってしまいますが、

なるべくわかりやすいように、説明をしていきたいと思いますので、どうぞよろしくお願いします^^

 

 

・ 詳細としては、スマホなどから命令をphpで送り、受け取った値をテキストファイル に保存し

ESP-WROOM02 でその命令を受け取ります!

 

受け取ったらセンサーの値を取得しESP-WROOM02から値をphpに送り、

受け取った値をテキストファイル に保存してブラウザに表示させるという流れになります!

 

・簡単なイメージ⇩

「スマホ(URLで送ります) → webサーバー(PHPで処理) → ESP-WROOM02 →

webサーバー(PHPで処理) → ブラウザーに表示しスマホなので確認」

 

作業の大まかな流れ↓

1.回路準備

2.開発環境の準備

3.サーバーの準備

4プログラミング・動作確認

5.まとめ

です!

 

ちなみに、1,2までは前前回ご紹介した、「センサーの値をFTPサーバーにCSVで送る(ESP-WROOM02)

と全く同じです!

 

では、早速解説に入りたいと思いますがまず、いろいろ準備するものがあります(´;ω;`)



①「回路の準備」

Wi-Fiモジュール ESP-WROOM-02

ESP-WROOM02

 

超小型USBシリアル変換モジュール

超小型USBシリアル変換モジュール

 

低損失三端子レギュレーター 3.3V1A TA48033S

三端子レギュレーター

 

電解コンデンサ 47μF35V(秋月電子で購入すると、3端子レギュレータに付属されています。)

電解コンデンサ

 

セラミックコンデンサ 0.1μF(秋月電子で購入すると、3端子レギュレータに付属されています。)

 

LED(起動などを確認するためのメッセージ用に使う。なので任意)

LED(緑)

 

タクトスイッチ(2個)(任意ですがあると便利です)

タクトスイッチ

 

ブレットボード

 

ミニブレットボード(あると便利)

 

ジャンパーワイヤー

ジャンパーワイヤー(オス)

 

ブレッドボード・ジャンパーワイヤ

(ブレットボードで回路を組むとき、見栄え良く綺麗に繫げられますのであると便利)

 

通信対応USBケーブル

タイプB通信ケーブル

 

 

※任意(楽したい方向け)

ESP-WROOM-02開発ボードを使うとすぐに開発ができるよう回路が組まれているため、上記の「ESP-WROOM02」「超小型USBシリアル変換モジュール」「3端子レギュレータ」「電解コンデンサ 47μF35V」「セラミックコンデンサ 0.1μF」「タクトスイッチ」は不要になります!

 

・次に回路の組み立てに入ります。

組み立てに関してはESP-WROOM02の回路は再び下記サイトさんの

6.各部品の接続」を参考にしていただければと思います。(とてもわかりやすいです)

WROOM 単体に Arduino スケッチで Wi-Fi ストリーミング

 

・ESP‐WROOM02本体の接続箇所

GPIO 0(IO0)をLOWの状態で起動させるときのみ書き込みモード、LOWじゃなければ実行モードになります

なのでGPIO 0とGNDにダクトスイッチをかましとくと後が楽です。

 

※RST(リセット)もLOWにすることでプログラムのリセットが行えますので

RSTとGNDにダクトスイッチをかましておくと後が楽です。

 

・完成するとこんな感じになると思います!

配線

※画像をクリックすれば拡大できます。

 

ESP-WROOM-02開発ボードをご使用の方はここからスタート。



②「開発環境の準備」

・まずはArduino IEDでESP-WROOM02を使えるようにします↓

Arduino IDEにESP-WROOM02を使えるようにする!

Arduinoファイルの中にあります「libraries」の中を開いて頂き、足りないライブラリーを入れていきます!

※もしかしたらデフォルトで入っているかもしれません。

esp8266FTPServer-master  (これはいらないかも)

Time-master

WiFi

 

③「サーバーの準備」

・次はwebサーバーの準備です!

今回使用しているサーバーはAmazonサーバーです^^

しかし、サーバーと聞くだけで私は嫌になってしまうほど苦手分野です(´・ω・`)ショボーン

 

ここは知識不足の為説明できません(´;ω;`)

お手数ですがググってくださいm(__)m

参考サイト

 

④「プログラミング」

・サーバーの準備が出来ましたら、命令を出すURLと値を取得するURLを準備します!

そのためには、下記のコードをphp形式でまず保存してください。

 

※php形式のファイルを作るには特に専用ソフトは必要なく、メモ帳で作れます!

但し、プログラミングの雰囲気を味わうためにはやはり

専用ソフトを使ったほうがいいと思います^^

 

・次に「get-test」というフォルダーを作ってその中に、

「index.php」ファイル名でプログラムを作ってください。

 

「index.php」

 

メモ帳でも作れますが、プログラミングの雰囲気は出ません(笑)

 

 

・「set-test」というフォルダーを作ってその中に、

「index.php」ファイル名でプログラムを作ってください。

 

「index.php」

 

フォルダーを用意し、上記のコードをそれぞれフォルダーの中に入れましょう。

 

・これらのフォルダーをwebサーバーに保存します。

保存の仕方はいろいろありますが定番のFFFTPというソフトを使うことをお勧めします^^

 

FFFTPダウンロードサイト

 

・FTPサーバーと連携させる手順は、こちらも

他のサイトさんを参考にしていただいたほうが

分かりやすいと思いますのでご参考までに↓

FFFTPの設定

 

・フォルダーをFFFTPでアップロードするとこんな感じになるかと思います↓

 

 

フォルダーの中身⇩

 

・次にURLの準備です!

 

・まずは命令や値をを出すURLです!

http:// サーバー(ホスト)名 /set-test/?set_val=1

※set_val=の次に入れた文字が送られるようになります。

 

ではブラウザーで開いてみましょう!

すると真っ白! こうなれば成功です!

 

・⇩次は値を取得するURLです。

http:// サーバー(ホスト)名 /get-test

ブラウザーで開いてみると「1,」と表示!

 

・これであとはESP-WROOM02本体でこのURLを取得し、1だったらセンサーの値を送る、

みたいなプログラムを作れば完成ですね!

 

・では、ここからはいよいよクライマックス、ESP-WROOM02のコードを書いていきます!

 

 

・ビルドが完了し、起動して上手くいけば先ほどのgetURL( http:// サーバー(ホスト)名 /get-test )

で送られた値が上書きされています!

こんな感じになります⇩

 

5.「まとめ」

・これで、スマホから遠隔でセンサーの値を取得出来る様になりました!

例えば、温度センサーと組み合わせれば外から部屋の温度を監視出来たりできますね!

但し、セキュリティー面などは考慮していないないのでご注意を!

 

ご不明点等ございましたらお気軽にコメント下さい^^

以上、ご訪問ありがとうございました^^


4件のフィードバック

  1. はじめまして。
    IoTとして遠隔操作する物の作成、興味を大変そそられました。
    1点質問なのですが、ESP32-WROOM-32として置き換えをする場合、どのようにプログラムの変更をすればよろしいでしょうか?
    ヘッダーファイルを探してみたりと色々試しましたが解決しなかったので、ご教授願いたいです!

    よろしくお願いします。

    • はじめまして、ご質問ありがとうございます。
      ESP32で使いたい場合は下記のように書き換えてみてください⇩
      ———————————–
      //#include
      //#include
      //#include

      #include
      —————————-
      //ESP8266WebServer server(80);

      WiFiServer server(80);
      ————————————
      とりあえずこれでビルドは通るはずです。
      以降、ちゃんと取得とかできるかは試してないのでわかりませんので、一度これで試してみてください(;^ω^)

      似たような記事があるのでこちらもご参考にどうぞ⇩
      https://toccho.net/2019/12/11/ledcube-remote-esp-local/

      • 早速のご返答、ありがとうございます。
        只今試してみましたが、ビルドは可能ですがSETがget-testにアップロードされませんでした。
        wifiの接続、LEDの点灯は問題ありませんが、更新されませんでした…
        大人しく02を購入してみようと思います…
        ありがとうございました!

        • 左様でございましたか(;^ω^)
          お役に立てなくて申し訳ないです。
          時間ができたらこちらでも試してみますね‼

酒井 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする