LoginSignup
4
6

More than 5 years have passed since last update.

ESP-WROOM-02からWiFi接続してIoTなHello World

Last updated at Posted at 2016-08-11

電子工作知識ゼロのWeb系エンジニアがIoTに挑戦。
とりあえず、Espuruino(JavaScriptで動くマイコン)とESP WROOM-02(WiFiモジュール)を繋げて、外出先からセンサの情報を取得するようなことを目指しています。

Espruinoに接続してプログラムを実行

今回は、マイコンなしでインターネット接続して、プチIoTをしてみます。

準備するもの

  • ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》
  • USBシリアル変換モジュール:USB Serial FTDI(3.3v/5.0V切り替え機能付き)
  • 10kΩの抵抗(1/2Wでも1/4Wでも)
  • ブレッドボード
  • ジャンパワイヤ(オス-オス)
  • ブレッドボード用ジャンパワイヤ(オス-オス)
    • ↑なくてもいいけどあるとキレイに配線できる
  • ピンヘッダ(オス-オス)
  • USBケーブル(A-B)
  • はんだごて

手順

USBドライバインストール

ここから対応するものを落としてきて入れる

配線の準備

  • ESP-WROOM-02のモジュールに、ピンヘッダをハンダ付け。
    image6.JPG

  • USBシリアル変換モジュールのジャンパピンを、3.3V側に移動。
    image5.JPG

配線

  1. ESP-WROOM-02のピンヘッダを、ブレッドボードの適当なところに、ピンが縦に並ぶように挿す
  2. USBシリアル変換モジュールとブレッドボードを、ジャンパワイヤで接続する
    • RX
      • ESP-WROOM-02のTXD(と並んだどこか)
    • TX
      • ESP-WROOM-02のTXD(と並んだどこか)
    • VCC
      • +列のどこか
    • GND
      • -列のどこか  
  3. ブレッドボード上で配線する

    • ESP-WROOM-02の3V3(と並んだどこか)と、+列
    • ESP-WROOM-02のGND(と並んだどこか)と、-列
    • ESP-WROOM-02のEN(と並んだどこか)と、+列を10kΩ抵抗で
    • ESP-WROOM-02のRST(と並んだどこか)と、+列を10kΩ抵抗で
  4. USBシリアル変換モジュールとPCをUSB接続
    これで完了です!
    image3.JPG
    image4.JPG

私はこうなりました。
10kΩ抵抗が手に入らなかったので、20kΩを並列に。ゴチャゴチャしちゃいましたね。
(物理の知識が完全に抜けた私には、並列にすると半分になる理屈がピンと来ないのですが、そういうものらしいです)
10kΩ抵抗があれば、↑で書いたように、+とモジュール側を抵抗で直接接続して良いはず。

家のWiFiに接続

USBでシリアル接続するのに、CoolTermというターミナルソフトを使用します。
Windowsなら、TeraTermが良さそうです。
CoolTermの設定はこちらが参考になりました!

以降はコマンドで操作します。
各コマンドを入力したら、Enterで確定してください。

接続確認

AT

「OK」と表示されれば、ESP-WROOM-02と接続OK!

WiFiモードを設定

アクセスポイントに接続するステーションモードにしておきます。

AT+CWMODE=1

アクセスポイントに接続

AT+SWJAP="SSID","password"

「OK」が表示されたら、IPがどうなったか確認。

AT+CIFSR

IPとMacアドレスが表示されました!
繋がった!

dweet.io経由でHello World

dweet.ioという、IoT開発者向けのプラットフォームを利用します。

まずは、画面表示する簡単なhtmlを準備。
thingNameのところはユニークになりそうな値を設定してください。
作成後はブラウザで開いておきます。

esptest.html
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ESP TEST</title>
<script src="http://dweet.io/client/dweet.io.min.js"></script>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
  $(function(){
    var thingName = "esptest_momoham_0811";  //ユニークなthingNameを指定
    dweetio.listen_for(thingName, function(dweet) {
      $('#dweet_val').text(dweet.content.val);
    });
  });
</script>
</head>
<body>
  <div id="dweet_val"></div>
</body>
</html>

ESP WROOM-02をdweet.ioに接続。

AT+CIPSTART="TCP","dweet.io",80

Enterを押すとOKが返ってきます。

CONNECT
OK

次に、送信するデータのバイト数を指定。
テキストエディタなどに先に下に記載のPOSTコマンドを書いて、文字数をカウントしておくと良いです。
改行コードは¥r¥nが3つ入るので、6バイト足してください。

AT+CIPSEND=89

Enterを押すと

>

が表示され、リクエスト入力待ちの状態になります。
いよいよ、データを送信します。

POST https://dweet.io/dweet/for/esptest_momoham_0811?val=HelloWorld!
Host: dweet.io

最後はEnterを2回入力してください。
成功すると、dweet.ioから返ってきたレスポンスが表示されます。

Recv 85 bytes

SEND OK

+IPD,369:HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: application/json
Content-Length: 213
Date: Thu, 11 Aug 2016 03:01:12 GMT
Connection: close

{"this":"succeeded","by":"dweeting","the":"dweet","with":{"thing":"esptest_momoham_0811","created":"2016-08-11T03:01:12.040Z","content":{"val":"HelloWorld!"},"transaction":"e236ddb6-c764-4899-b808-058815ac5eca"}}CLOSED

先ほどのhtmlにHelloWorld!が表示されました!

次回は、インターネット経由でLEDライトを光らせてみようと思います。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6