センサーの値をFTPサーバーにCSVで送る(ESP-WROOM02)

最終更新日

Comments: 9

こんにちは!

 

今回は、ESP-WROOM-02で取得したセンサーの値を、FTPサーバーを使ってサーバーに送ってみたいと思います!

 

サーバーなども絡んできて難しいですが、これができるようになると、例えば、センサーの値を定期的にサーバーに送りったり、値を蓄積してデータをとることだってできちゃいます!

 

更に応用すればスマートフォンなどから遠隔で、好きなタイミングでセンサーの値を取得できちゃったりも可能です^^

 

まさにIoTですね^^

 

大まかな流れ↓

1.回路準備

2.開発環境の準備

3.サーバーの準備(Xサーバーで説明を進めさせていただきます)

4プログラミング

5.動作確認・まとめ

です!

 

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



①「回路の準備」

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-WROOM-02(ESP8266)とESP-WROOM-32を使えるようにする!(Windows10)

 

・次にFTP通信するためのライブラリーを追加します。

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

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

esp8266FTPServer-master

Time-master

WiFi

③「サーバーの準備」

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

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

 

私が使用しているサーバーはXサーバーというレンタルサーバです!

(※有料です。)

 

・なので今回はXサーバーを使用して説明させて頂きますがサーバーの設定等は、

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

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

 

FTPサーバーのアカウント追加方法①

 

FTPサーバーのアカウント追加方法②

 

・次にマイPCにFTPクライアントソフトウェアをダウンロード、FTPサーバーと連携させます。

私が使用しているのは学校の授業でも使用したFFFTPというソウトなので、こちらで説明を進めさせて頂きたいと思います。

ここからダウンロードできます↓

FFFTPダウンロードサイト

 

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

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

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

FFFTPの設定

 

ここまで、結構大変かと思いますが次からが本番です!

頑張りましょう!



④「プログラミング」

やっとプログラミング!

 

・まず、Arduino IEDを起動して、こちらのメインコードをコピペしてください↓

(ファイル名は任意で)

メインコード

 

 

・次にファイルを分割し、新しいファイルにこちらのコードを記載します。(ファイル名は任意で)

やりかたは、Arduino IEDの右上にある ▼ を押してください。

 

押したら「新規タブ」を押してください。

 

すると下の方が黄色くなり、新規ファイルの名前と出ますのでそこに

ファイル名を入力してOKを押してください。

 

そうするとこのように1つファイルが増えます!

(ftp_1 と、更に ftpというファイルを追加しました)

 

 

・新しく作ったファイルに下記のFTPコードをコピペしてください↓

FTPコード

 

以上、まずはこれでビルドが通るか試してみてください!

これでエラーが出なければひとまずOKですね!

参考ページ

 

※ESP-WROOM-32ではこのプログラムだとエラーが出ます。

プログラムの改良が必要になりますが、まだ解決策は見つけられてないです(;^ω^)

もしわかる方教えて頂けると助かります(;^ω^)

 

「補足」

・ファイルを書き込むには追記と上書きがあります!

メインプログラムにありますここのヵ所↓

File f = SPIFFS.open(FILENAME, “a”);  // “a” は追記

f.println(“1234567”);

の、”a” を ”w” 変えると上書きになります!

 

また、f.println(“1234567”);

に、センサーの値を入れれば、センサーの値を送れるようになります^^

是非試してみてください^^

 

※SPIFFSを使うためにファイルシステムのアップローダ

という作業が必要かもしれません!

まだされてないかたはこちらのサイトさんを参考に 参考サイト

 

⑤「動作確認・まとめ」

・それでは、実際にESP-WROOM02に書き込んでみたいと思います!

書き込みモードにして書き込みスタート!

 

※ESP-WROOM02側で、GPIO 0(IO0)をLOWの状態で起動させるときのみ書き込みモード、

LOWじゃなければ実行モードになります。

 

※ビルドをした際に、こんなエラーが出たら書き込みモードになっていないのが原因です。

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

改善されない場合はもう一度①「回路の準備」を読み直してみてください。

 

・書き込みが成功すると、シリアルモニターにこんな感じで表示されていれば成功です!

 

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

 

・最後に、FFFTPソフトを使ってサーバーにちゃんと送られているか確認します!

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

 

送られてますね!

これで大成功です^^

 

一発で上手くいかないかもしれませんが、原因を探して頑張ってみてください^^

分らないところがありましたら、どうぞお気軽にコメント下さいませ^^

 

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


9件のフィードバック

  1. はじめまして、
    記事の投稿ありがとうございます。
    すいませんが、質問させてもらえませんか。
    そちらでは今でも このページ記載のコードで動作しますか?
    この手順を試したところ、掲載されている成功例画像と違って、
    実行後で以下の部分のような550の数値のとこでエラーがでました。
    なんらか 原因など思い当たるとこがあれば教えてもらえないでしょうか?

    STOR /futami_test/spiffs.txt
    >550 /futami_test/spiffs.txt: No such file or directory

    QUIT
    FTP Err :32

  2. ※似た文章をすでに送ってしまったかもしれません
    電撃さんでしょうか
    はじめまして、

    以下の記事をみました。
    http://toccho.xsrv.jp/2018/07/09/sensor-ftp-csv-esp-wroom02/#comment-107
    記事の投稿ありがとうございます。
    私は趣味でESPからウェブサーバにcsvやテキスト形式のファイルを送ろうとしています。
    すいませんが、質問させてもらえませんか。
    そちらでは今でも このページ記載のコードで動作しますか?
    この手順を試したところ、掲載されている成功例画像と違って、
    実行後で以下の部分のような550の数値のとこでエラーがでました。
    なんらか 原因など思い当たるとこがあれば教えてもらえないでしょうか?

    STOR /futami_test/spiffs.txt
    >550 /futami_test/spiffs.txt: No such file or directory

    QUIT
    FTP Err :32

    それと、この内容をESP32の方でも試されていますか?
    お忙しいところすいませんが、よろしくお願いします。

    • 初めまして^^
      コメント・ご訪問頂きありがとうございます^^

      内容を確認させていただきました^^
      いくつか確認させてください^^

      1.まず、エラー内容というのはArduino IEDのシリアルモニターで表示された内容ですか?
      それともブラウザで表示されたエラーですか?

      2.エラー内容はこれがすべてですか?

      お手数ですが状況の方をさらに詳しく教えて頂けると幸いです(;^ω^)

      その他の質問につきましては、
      ESP32ではまだ試していませんが近々試す予定です^^

  3. すいません、返事に気づきませんでした。
    ご回答ありがとうございます。

    1.については、Arduino IEDのシリアルモニターで表示された内容です。
    2. については、以下が 表示されたもの全体です。
    STOR以降がうまくいっていないようです

    Command connected
    >220 FTP Server ready.
    USER 「私のユーザ名」
    >331 Password required for 「私のユーザ名」
    PASS
    >230 User 「私のユーザ名」 logged in.
    Type i
    >200 Type set to I
    PASV
    >227 Entering Passive Mode (157,112,183,138,234,164).
    Data port: 60068
    Data connected
    STOR /futami_test/spiffs.txt
    >550 /futami_test/spiffs.txt: No such file or directory
    QUIT
    FTP Err :32
    http://「私のIPアドレス」/spiffs.txt
    finish

    追加情報なのですが、
    ESP8266が乗っていれば他の形式のマイコンでも動作すると考えて、
    以下のESPを使っております
     WeMos D1 CH340 WiFi 開発ボード ESP8266
     https://www.amazon.co.jp/gp/product/B01D1D0EO4/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1

    • いえいえ^^

      もしかしたらSPIFFSファイルシステムアップローダーという作業が必要だったかもしれません(;^ω^)
      まずSPIFFSでファイルの読み書きができるか試してみてください(;^ω^)
      下記のサイトが参考になるかと思います⇩
      https://tomosoft.jp/design/?p=7814

      また、ディレクトリーの位置が間違っている可能性もありますのでこれでも上手くいかないようでしたらディレクトリー確認したいので、
      #define FTP_DIR “/***”
      のところをどのように記載しているか確認させていただければと思います(;^ω^)

      追加情報ありがとうございます^^
      触ったことありませんがおっしゃる通りWeMos D1 CH340 WiFi 開発ボード ESP8266でもできるはずです^^

  4. TOCCHO様、
    ESP8266NodeMCUで一発で動きました。
    ※数か所Errorがあるようですが、きちんと、spiffs.txtがFTPサーバに作成されていました。
    感動しました。

    すみません、ESP32版の作成は可能でございますか??

    • PAO様、コメント頂きありがとうございます!
      返信が遅くなり申し訳ないです(;^ω^)
      error申し訳ないです(;^ω^)

      ESP32でも同じようにできると思いますが試していないのでわかりません。申し訳ないです(;^ω^)

コメントを残す

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

コメントする